/* ============================================================
   King Slayer Sportfishing: /contact/ page layer
   Requires tokens.css then base.css.
   Spine: compact .page-hero photo band > two-column contact
   grid (NAP/social/directions, then a static placeholder
   form) > cta band.
   Colour and type come from tokens only. No border-radius.
   ============================================================ */

/* ============ 1. Photo band ============
   The shared .page-hero from base.css carries the band. Only the
   breadcrumb needs a page-level nudge: base.css gives .crumbs a
   1rem block padding that reads as a gap once the crumb sits at
   the top of the bottom-aligned scrim block. */
.page-hero .crumbs{padding-top:0;padding-bottom:1.2rem}

/* ============ 2. Contact grid ============ */
.contact-layout{
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:clamp(2rem,5vw,4.5rem);
}

/* ---- info column ---- */
.contact-info h2,
.contact-form-wrap h2{
  font-family:var(--display);
  font-stretch:125%;
  font-variation-settings:'wdth' 125;
  font-weight:750;
  font-size:clamp(1.3rem,2.4vw,1.65rem);
  text-transform:uppercase;
  color:var(--cream);
  margin-bottom:1.4rem;
}
.contact-details{
  display:flex;
  flex-direction:column;
  gap:1.3rem;
  padding-bottom:1.75rem;
  margin-bottom:1.75rem;
  border-bottom:1px solid var(--line);
}
.contact-details dt{
  font-family:var(--display);
  font-stretch:125%;
  font-variation-settings:'wdth' 125;
  font-weight:600;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--blue-bright);
  margin-bottom:.4rem;
}
.contact-details dd address{font-style:normal;color:var(--ice);font-size:1rem}
.contact-details dd a{
  color:var(--ice);
  text-decoration:none;
  border-bottom:1px solid var(--blue);
  padding-bottom:.1em;
}
.contact-details dd a:hover{color:var(--blue-bright);border-color:var(--blue-bright)}
.contact-details .call-link{border-bottom:2px solid var(--blue)}
.social-links{display:flex;gap:1.4rem}

.contact-info h3{
  font-family:var(--display);
  font-stretch:125%;
  font-variation-settings:'wdth' 125;
  font-weight:700;
  font-size:1.02rem;
  text-transform:uppercase;
  color:var(--cream);
  margin-bottom:.5rem;
}
.map-links{display:flex;flex-wrap:wrap;gap:.9rem 1.5rem;margin-top:.9rem}
.map-links a{
  color:var(--ice);
  text-decoration:none;
  border-bottom:1px solid var(--blue);
  padding-bottom:.1em;
  font-size:.96rem;
}
.map-links a:hover{color:var(--blue-bright);border-color:var(--blue-bright)}

/* the one lodging line that has to survive the cut */
.contact-lodging{
  color:var(--dim);
  font-size:.95rem;
  margin-top:1.5rem;
  padding-top:1.2rem;
  border-top:1px solid var(--line);
}

/* ---- form column ---- */
.contact-form-wrap{
  background:var(--panel);
  border:1px solid var(--line);
  padding:clamp(1.75rem,3.5vw,2.25rem);
}
.form-field{margin-bottom:1.2rem}
.form-field label{
  display:block;
  font-family:var(--display);
  font-stretch:125%;
  font-variation-settings:'wdth' 125;
  font-weight:600;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--dim);
  margin-bottom:.5rem;
}
.form-field input,
.form-field textarea{
  width:100%;
  background:var(--deep-800);
  border:1px solid var(--line);
  color:var(--ice);
  font-family:var(--body);
  font-size:1rem;
  padding:.7em .85em;
}
.form-field textarea{resize:vertical}
.form-field input:focus,
.form-field textarea:focus{outline:2px solid var(--blue-bright);outline-offset:2px}
.contact-form .btn[disabled]{
  cursor:not-allowed;
  opacity:.55;
}
.contact-form .btn[disabled]:hover{border-color:var(--blue);color:var(--ice)}
.form-note{color:var(--dim);font-size:.88rem;margin-top:.9rem}
.privacy-promise{
  color:var(--dim);
  font-size:.85rem;
  margin-top:1.5rem;
  padding-top:1.2rem;
  border-top:1px solid var(--line);
}

/* ============ Responsive ============ */
@media (max-width:880px){
  .contact-layout{grid-template-columns:1fr;gap:2.5rem}
}
@media (max-width:640px){
  .social-links{flex-direction:column;gap:.6rem}
}
