/* ---------- page hero ---------- */
.page-hero{background:var(--bg-dark);color:#fff;padding:186px 0 90px;position:relative;overflow:hidden}
.page-hero .eyebrow{color:var(--cyan)}
.page-hero h1{font-size:clamp(38px,5vw,58px);color:#fff;font-weight:700;letter-spacing:-.02em;max-width:18ch}
.page-hero h1 strong{font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-hero p.sub{margin-top:26px;font-size:19px;line-height:1.65;color:rgba(255,255,255,.78);max-width:600px}

/* ---------- contact layout ---------- */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:start}
.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:46px 42px}
.form-card h2{font-size:26px;margin-bottom:8px}
.form-card p.hint{color:var(--ink-soft);font-size:15px;margin-bottom:32px}
.field{margin-bottom:22px}
.field label{display:block;font:600 13px var(--sans);color:var(--navy);margin-bottom:8px}
.field label span{color:var(--orange)}
.field input,.field textarea{width:100%;font:400 15.5px var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(5,163,181,.15)}
.field textarea{min-height:140px;resize:vertical}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-msg{margin-top:18px;font-size:14.5px;display:none}
.form-msg.err{display:block;color:#c0392b}

/* ---------- contact details ---------- */
.details h2{font-size:26px;margin-bottom:12px}
.details p.blurb{color:var(--ink-soft);font-size:15.5px;margin-bottom:36px}
.office{border-top:1px solid var(--line);padding:28px 0}
.office h3{font-size:15px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:14px}
.office ul{list-style:none;display:grid;gap:8px;font-size:15px;color:var(--ink-soft)}
.office a{color:var(--navy);text-decoration:none;font-weight:500}
.office a:hover{text-decoration:underline}
.office .addr{margin-top:6px;line-height:1.55}

/* ---------- footer ---------- */
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;margin-bottom:52px}
.foot-grid>div{min-width:0}
footer.site a{overflow-wrap:anywhere}
footer.site h4{font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:18px}
footer.site ul{list-style:none;display:grid;gap:10px}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .contact-grid{grid-template-columns:1fr;gap:48px}
}
@media(max-width:720px){
  section{padding:72px 0}
  .form-card{padding:34px 26px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .nav-links{position:fixed;inset:0;background:var(--navy);flex-direction:column;justify-content:center;gap:28px;display:none;z-index:55}
  .nav-links.open{display:flex}
  .nav-links a{color:#fff!important;font-size:20px}
  .nav-toggle{display:block}
  .nav .btn{display:none}
}
