/* Contact page — extends global tokens/components from main.css */

/* Visually-hidden utility */
.sr-only {
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* Page hero */
.contact-hero {
  padding-block: 32px;
  background: linear-gradient(0deg, rgba(11,11,12,.04), rgba(11,11,12,0));
}
.page-hero__sub { color: var(--text-500); margin: 6px 0 0; }

/* Success notice (appears when #success is targeted) */
.notice { display:none; }
.notice:target {
  display:block;
  padding-block:12px;
  background:#f2fff7;
  border-top:1px solid #d7f3e2;
  border-bottom:1px solid #d7f3e2;
}
.notice p { margin:0; color:#0a5a2a; }

/* Layout */
.contact-wrap { padding-block: 28px 56px; }
.form-layout {
  display:grid; gap:24px;
  grid-template-columns: 1fr;
}
@media (min-width:1024px){
  .form-layout { grid-template-columns: 1fr 560px; align-items:start; }
}

/* Sidebar (Direct info) */
.direct {
  background:#fff; border:1px solid #eee; border-radius:12px;
  box-shadow:var(--shadow-1); padding:16px; height:fit-content;
}
@media (min-width:640px){ .direct { padding:20px; } }
.direct__title {
  font-family:"Playfair Display", serif;
  letter-spacing:.02em; margin:0 0 8px;
}
.direct__grid { display:grid; gap:12px; margin:8px 0 12px; }
.direct__item .meta { display:block; color:var(--text-500); font-size:12px; }
.direct__note { color:var(--text-500); font-size:14px; }
.direct__social { margin-top:16px; }
.direct__sub {
  font-family:"Playfair Display", serif;
  letter-spacing:.02em; margin:0 0 8px;
}

/* Form card */
.form-card {
  background:#fff; border:1px solid #eee; border-radius:12px;
  box-shadow:var(--shadow-1); padding:16px;
}
@media (min-width:640px){ .form-card { padding:20px; } }
@media (min-width:1024px){ .form-card { padding:24px; } }

/* Groups & fields */
.field-group { border:0; margin:0 0 16px; padding:0; }
.group-title {
  font-family:"Playfair Display", serif; letter-spacing:.02em;
  font-size:20px; font-weight:600; margin:0 0 8px;
}
.field { display:grid; gap:6px; margin:10px 0; }
input[type="text"], input[type="email"], input[type="tel"], input[type="file"], select, textarea {
  width:100%; padding:12px 14px;
  border-radius:8px; border:1px solid #e8e2d7; background:#fff;
  font:inherit;
}
textarea { resize:vertical; min-height:140px; }
.select-wrapper { position:relative; }

/* Inline hints & errors */
.field__hint { margin:0; color:var(--text-500); font-size:13px; }
.field__error { margin:0; color:#8b1e2d; font-size:13px; min-height:16px; }
.field[data-invalid] input,
.field[data-invalid] select,
.field[data-invalid] textarea { border-color:#c73946; box-shadow:0 0 0 1px rgba(199,57,70,.2); }
.field[data-invalid] .label-row label { color:#8b1e2d; }
.form-status {
  display:none; margin-bottom:12px; padding:12px 14px;
  border-radius:8px; border:1px solid transparent;
}
.form-status.is-success { display:block; background:#f2fff7; border-color:#d7f3e2; color:#0a5a2a; }
.form-status.is-error { display:block; background:#fff5f5; border-color:#f2c7c7; color:#8b1e2d; }
.form-hint { margin:0 0 12px; color:var(--text-500); }
.label-row { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.char-counter { font-size:13px; color:var(--text-500); }

/* Purpose tabs (legacy) */
.tabs {
  display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 12px;
}
.tab {
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px; border-radius:999px; cursor:pointer;
  border:1px solid #e8e2d7; background:#fff; box-shadow:var(--shadow-1);
  font-weight:600;
}
/* Active tab highlighting (CSS-only) */
#purpose-press:checked ~ .tabs label[for="purpose-press"],
#purpose-business:checked ~ .tabs label[for="purpose-business"],
#purpose-general:checked ~ .tabs label[for="purpose-general"]{
  border-color:var(--champagne); box-shadow:var(--shadow-2);
}

/* Purpose panes (legacy) */
.pane-grid { display:grid; gap:10px; }
.pane { display:none; padding:10px 12px; border-radius:8px; background:var(--ivory); border:1px solid #e8e2d7; }
#purpose-press:checked ~ .pane-grid [data-pane="press"]{ display:block; }
#purpose-business:checked ~ .pane-grid [data-pane="business"]{ display:block; }
#purpose-general:checked ~ .pane-grid [data-pane="general"]{ display:block; }
.pane__lead { margin:0; color:#7a663f; }

/* Actions */
.actions { display:flex; gap:12px; align-items:center; margin-top:8px; flex-wrap:wrap; }
.actions .loading { color:var(--text-500); font-size:14px; display:none; }
.form-card.is-loading .actions .loading { display:inline-flex; }
.form-card.is-loading [data-submit] { opacity:.7; pointer-events:none; }
.tiny-note { color:var(--text-500); font-size:13px; margin-top:10px; }
.noscript { color:var(--text-500); font-size:14px; background:#fff8e6; padding:10px 12px; border-radius:8px; border:1px solid #f1d89c; }

/* Honeypot (hidden) */
.hp {
  position:absolute !important;
  width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0; padding:0; margin:-1px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
