/* ============================= CONTACT PAGE ============================= */

.contact-hero{
  background:var(--navy-900); color:#fff;
  padding-top:calc(var(--section-pad-y) + 4rem);
  padding-bottom:var(--space-8);
}
.contact-hero h1{ font-size:var(--fs-hero); max-width:20ch; }
.contact-hero p{ margin-top:1.5rem; color:rgba(255,255,255,.65); font-size:var(--fs-body-lg); max-width:56ch; }

/* ---- Enquiry routing cards ---- */
.route-cards{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5);
}
.route-card{
  padding:var(--space-6);
}
.route-card .idx{ font-family:var(--font-mono); font-size:.75rem; color:var(--sky-600); letter-spacing:.1em; }
.route-card h3{ font-family:var(--font-display); font-size:1.45rem; margin:1.1rem 0 .65rem; }
.route-card p{ color:var(--ink-soft); font-size:.94rem; margin-bottom:1.1rem; }
.route-card a{
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.06em;
  color:var(--sky-600); display:inline-flex; align-items:center; gap:.4em;
  border-bottom:1px solid transparent; transition:border-color .25s var(--ease-out);
}
.route-card a:hover{ border-color:var(--sky-600); }
@media (max-width:860px){ .route-cards{ grid-template-columns:1fr; } }

/* ---- Split screen: form + details ---- */
.contact-split{
  display:grid; grid-template-columns:1.3fr .9fr; gap:var(--space-9);
  align-items:start;
}
.contact-form-col h2{ font-family:var(--font-display); font-size:var(--fs-display-lg); margin-bottom:.85rem; max-width:16ch; }
.contact-form-col > p.lead{ color:var(--ink-soft); font-size:var(--fs-body-lg); max-width:48ch; margin-bottom:2.5rem; }

/* Premium framing for the form itself — a considered panel rather than fields
   floating directly on the section background. */
.form-panel{
  background:var(--paper);
  border:1px solid var(--line-on-light);
  border-radius:var(--radius-lg);
  padding:var(--space-7);
}
@media (max-width:640px){ .form-panel{ padding:var(--space-5); } }

/* Groups the submit action, status message and privacy note into one clearly
   separated closing block so the form doesn't just trail off. */
.form-actions{
  margin-top:2rem;
  padding-top:2rem;
  border-top:1px solid var(--line-on-light);
  display:flex; flex-direction:column; align-items:flex-start; gap:0;
}
.form-note{
  margin-top:1.25rem; font-size:.85rem; color:var(--charcoal-500);
}
.form-status{
  margin-top:1.25rem; font-size:.9rem; color:var(--sky-700); min-height:1.2em;
}

.contact-info-col{
  border-left:1px solid var(--line-on-light);
  padding-left:var(--space-8);
}
@media (max-width:980px){
  .contact-split{ grid-template-columns:1fr; gap:var(--space-8); }
  .contact-info-col{ border-left:0; border-top:1px solid var(--line-on-light); padding-left:0; padding-top:var(--space-7); }
}

.info-block{ margin-bottom:var(--space-7); }
.info-block h4{
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--charcoal-300); margin-bottom:1rem;
}
.info-detail{ display:block; font-size:1.05rem; margin-bottom:.4rem; }
.info-detail a{ transition:color .2s; }
.info-detail a:hover{ color:var(--sky-600); }
.info-detail.muted{ color:var(--ink-soft); font-size:.9rem; }

.locations-mini{ border-top:1px solid var(--line-on-light); }
.location-mini-row{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding-block:1rem;
  padding-inline:.5rem;
  margin-inline:-.5rem;
  border-bottom:1px solid var(--line-on-light);
  border-radius:var(--radius-sm);
  transition:background .3s var(--ease-out);
}
.location-mini-row:hover{ background:var(--paper); }
.location-mini-row .loc-name{ font-size:.98rem; }
.location-mini-row .loc-name span{ display:block; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--charcoal-300); margin-top:.25rem; }
.location-mini-row a.loc-link{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; color:var(--sky-600);
  white-space:nowrap;
  transition:color .25s var(--ease-out), transform .25s var(--ease-out);
  display:inline-block;
}
.location-mini-row:hover a.loc-link{ color:var(--sky-700); transform:translateX(3px); }
.location-mini-note{ margin-top:1.1rem; font-size:.86rem; color:var(--ink-soft); }

/* ---- Candidate note banner ---- */
.candidate-note{
  display:flex; gap:1rem; align-items:flex-start;
  padding:1.4rem 1.6rem;
  border:1px solid var(--line-on-light);
  border-radius:var(--radius-md);
  background:var(--paper);
  margin-bottom:var(--space-7);
}
.candidate-note .mark{ font-family:var(--font-mono); font-size:.75rem; color:var(--sky-600); flex:0 0 auto; margin-top:.15rem; }
.candidate-note p{ font-size:.92rem; color:var(--ink-soft); }
.candidate-note strong{ color:var(--ink); font-weight:600; }
