.gc-form { display: flex; flex-direction: column; gap: var(--gc-space-4); }
.gc-form__field { display: flex; flex-direction: column; gap: 6px; }
.gc-form__field > span { font-size: var(--gc-fs-sm); font-weight: 600; color: var(--gc-text); }
.gc-form__req { color: var(--gc-low, #B80C09); font-style: normal; }
.gc-form input,
.gc-form textarea,
.gc-form select {
width: 100%;
padding: var(--gc-space-3) var(--gc-space-4);
font-family: inherit; font-size: var(--gc-fs-base); color: var(--gc-text);
background: var(--gc-surface); border: 1px solid var(--gc-border);
border-radius: var(--gc-radius-sm);
transition: border-color var(--gc-transition), box-shadow var(--gc-transition);
}
.gc-form textarea { resize: vertical; min-height: 120px; }
.gc-form input:focus,
.gc-form textarea:focus,
.gc-form select:focus {
outline: none; border-color: var(--gc-blue);
box-shadow: 0 0 0 3px var(--gc-blue-tint);
}
.gc-form__submit { align-self: flex-start; margin-top: var(--gc-space-2); } .gc-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gc-form__msg { padding: var(--gc-space-3) var(--gc-space-4); border-radius: var(--gc-radius-sm); font-size: var(--gc-fs-sm); }
.gc-form__msg.is-ok  { background: var(--gc-good-bg); color: var(--gc-good-strong); }
.gc-form__msg.is-err { background: var(--gc-low-bg); color: var(--gc-low-strong); }
.gc-form__done {
padding: var(--gc-space-5) var(--gc-space-5);
background: var(--gc-good-bg); color: var(--gc-good-strong);
border: 1px solid var(--gc-good); border-radius: var(--gc-radius);
font-weight: 600;
}