.form { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 0 1rem; .group { label { display: block; font-size: .825rem; font-weight: 600; text-transform: uppercase; sub { font-size: .75rem; font-weight: 400; opacity: .75; vertical-align: top; padding: 0 0 0 .25rem; text-transform: lowercase; } } input, select, textarea { position: relative; width: 100%; height: 2.5rem; color: var(--f-color); background: var(--b-color); font-family: var(--p-font); font-size: .925rem; font-weight: 400; padding: .75rem .75rem; margin: .5rem 0 1rem 0; border: .1rem solid var(--hr-color); border-radius: .25rem; outline: .1rem solid transparent; &:focus { border-color: var(--f-color); } &::placeholder { font-family: var(--p-font); font-size: .925rem; } } select { background: url("data:image/svg+xml,") no-repeat; background-position: calc(100% - 1rem) center; appearance: none; padding: 0 .75rem; option { background: var(--b-color); color: var(--w-color); } } textarea { min-height: 8rem; resize: vertical; } } .hide { display: none; } button { grid-column: 1/3; color: var(--s-color); background: var(--b-color); font-family: var(--p-font); font-size: 1rem; font-weight: 600; padding: .5rem 1rem .65rem 1rem; margin: 1rem 0 0 0; border: .15rem solid var(--s-color); border-radius: .25rem; &:hover { cursor: pointer; background: var(--btn-hover); } } } @media only screen and (--viewport-4) { .form { display: block; button { width: 100%; } } }