/* =============================================================
   forms.css — Contact form
   ============================================================= */
.form{display:flex;flex-direction:column;gap:var(--space-24)}
.field{display:flex;flex-direction:column;gap:var(--space-8)}
.field__label{font-weight:var(--fw-semibold);font-size:var(--fs-body-sm);color:var(--text-primary)}
.field__label .req{color:var(--color-error)}
.field__control{width:100%;min-height:48px;padding:var(--space-12) var(--space-16);
  background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  font-size:var(--fs-body);color:var(--text-primary);
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
textarea.field__control{min-height:140px;resize:vertical;line-height:1.5}
.field__control::placeholder{color:var(--color-ink-300)}
.field__control:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring-focus)}
.field__control[aria-invalid="true"]{border-color:var(--color-error)}
.field__error{font-size:var(--fs-body-sm);color:var(--color-error);min-height:1.2em;
  display:flex;align-items:center;gap:var(--space-4)}
.field__error:empty{min-height:0}

/* Honeypot */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Form status */
.form__status{border-radius:var(--radius-md);padding:var(--space-16) var(--space-24);font-size:var(--fs-body-sm)}
.form__status[data-state="success"]{background:var(--color-eco-100);color:var(--color-eco-700);
  border:1px solid rgba(46,139,87,.25)}
.form__status[data-state="error"]{background:#fdecea;color:var(--color-error);
  border:1px solid rgba(192,57,43,.25)}
.form__status:empty{display:none}

/* Contact split */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.contact-card{background:var(--bg-surface);border:var(--border-hairline);border-radius:var(--radius-lg);
  padding:clamp(1.75rem,4vw,3rem);box-shadow:var(--shadow-sm)}
.info-block{display:flex;gap:var(--space-16);padding-block:var(--space-24);border-bottom:var(--border-hairline)}
.info-block:last-child{border-bottom:none}
.info-block__icon{width:44px;height:44px;flex:0 0 auto;border-radius:var(--radius-md);
  background:var(--color-steel-100);color:var(--color-steel-600);display:flex;align-items:center;justify-content:center;
  transition:transform var(--dur-base) var(--ease-out),background var(--dur-base),color var(--dur-base)}
.info-block:hover .info-block__icon{transform:scale(1.08);background:var(--grad-steel);color:#fff}
.info-block__icon svg{width:22px;height:22px}
.info-block__label{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;
  letter-spacing:.1em;color:var(--text-secondary);margin-bottom:var(--space-4)}
.info-block__value{color:var(--text-primary);font-weight:var(--fw-medium);line-height:1.5}
.info-block__value a{color:var(--text-primary)}
.info-block__value a:hover{color:var(--text-brand)}

/* Map placeholder */
.map-embed{margin-top:var(--space-48);border-radius:var(--radius-lg);overflow:hidden;
  border:var(--border-hairline);background:var(--color-mist-200);aspect-ratio:21/8;
  display:flex;align-items:center;justify-content:center;position:relative}
.map-embed iframe{width:100%;height:100%;border:0}
.map-embed__note{color:var(--text-secondary);font-size:var(--fs-body-sm);text-align:center;padding:var(--space-24)}
