/* ============================================================
   Contact page — page-specific styling
   (shared structure lives in site.css)
   ============================================================ */

/* hero */
.contact-hero{padding-bottom:clamp(30px,5vw,60px)}
.contact-orb{width:420px;height:420px;background:radial-gradient(circle,var(--violet),transparent 60%);top:-120px;right:-60px}
.contact-title{margin-top:18px;max-width:16ch}
.contact-lead{margin-top:22px}

/* layout */
.contact-form-section{padding-top:clamp(20px,4vw,50px)}
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
@media(max-width:880px){.contact-grid{grid-template-columns:1fr;gap:40px}}

/* form card */
.contact-form-card{padding:clamp(26px,4vw,40px)}
.form-title{font-size:1.5rem}
.form-intro{color:var(--ink-soft);font-size:.93rem;margin-top:8px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:520px){.form-row{grid-template-columns:1fr}}
.field textarea{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:11px;padding:.8em 1em;color:#fff;font-family:var(--font-body);font-size:.95rem;outline:none;transition:border-color .25s;resize:vertical;min-height:130px}
.field textarea:focus{border-color:var(--violet)}
.field select{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:11px;padding:.8em 1em;color:#fff;font-family:var(--font-body);font-size:.95rem;outline:none;transition:border-color .25s}
.field select:focus{border-color:var(--violet)}
.field select option{background:#16142a;color:#fff}
.contact-submit{margin-top:22px;width:100%;justify-content:center}
.contact-submit svg{width:18px;height:18px}
.form-note{color:var(--ink-dim);font-size:.8rem;margin-top:14px;text-align:center}
.form-note a{color:var(--cyan)}

/* success state */
.form-done{display:none;text-align:center;padding:40px 24px}
.form-done.show{display:block}
.form-done .tick{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:rgba(18,185,129,.12);border:1px solid rgba(18,185,129,.4)}
.form-done .tick svg{width:26px;height:26px;stroke:var(--emerald);fill:none;stroke-width:2.4}
.done-title{font-size:1.4rem}
.done-note{color:var(--ink-soft);font-size:.95rem;margin-top:10px;max-width:38ch;margin-left:auto;margin-right:auto}
.done-note a{color:var(--cyan)}

/* offices */
.office-card{padding:26px;margin-top:20px}
.office-card h3{font-size:1.15rem;margin-bottom:6px}
.office-card .chip{margin-top:4px}
.office-card .meta{display:grid;gap:10px;margin-top:16px}
.office-card .meta a{color:var(--cyan)}
.icon-pin{width:18px;height:18px;flex:none;stroke:var(--violet);fill:none;stroke-width:1.8;margin-top:2px}
.meta-line{display:flex;gap:10px;color:var(--ink-soft);font-size:.92rem;line-height:1.5}

/* phone / email mini cards */
.contact-mini{grid-template-columns:1fr 1fr;margin-top:20px}
@media(max-width:480px){.contact-mini{grid-template-columns:1fr}}
.contact-mini-card{padding:22px}
.contact-mini-card h5{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px}
.contact-mini-card p{font-size:.92rem}
.contact-mini-card a{color:var(--cyan)}
.contact-mini-card .dim{color:var(--ink-dim)}
