/* ==========================================================================
   Forms (light-theme — used in contact page etc.)
   Booking forms (dark) live in booking.css.
   ========================================================================== */

.ab-form { display: flex; flex-direction: column; gap: 18px; }
.ab-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ab-form__row { display: flex; flex-direction: column; gap: 6px; }
.ab-form__row label { font-family: var(--ab-font-mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ab-ink-500); }
.ab-form__row .req { color: var(--ab-orange-500); }
.ab-form__row input,
.ab-form__row select,
.ab-form__row textarea {
    width: 100%; padding: 14px 16px;
    background: var(--ab-white);
    border: 1px solid var(--ab-line-strong);
    border-radius: var(--ab-radius-sm);
    color: var(--ab-ink-900);
    font-family: var(--ab-font-body); font-size: 1rem;
    transition: var(--ab-dur);
}
.ab-form__row input:focus,
.ab-form__row select:focus,
.ab-form__row textarea:focus { outline: none; border-color: var(--ab-ice-500); }
.ab-form__row textarea { min-height: 140px; resize: vertical; }
.ab-form__hp { position: absolute; left: -9999px; }
.ab-form__msg { padding: 14px 18px; border-radius: var(--ab-radius-sm); font-size: 0.92rem; }
.ab-form__msg--success { background: rgba(22,181,127,0.10); border-left: 3px solid var(--ab-success); color: #1c5e44; }
.ab-form__msg--error   { background: rgba(229,72,72,0.10); border-left: 3px solid var(--ab-danger);  color: #7a1f1f; }

@media (max-width: 700px) {
    .ab-form__grid { grid-template-columns: 1fr; }
}
