/* ==========================================================================
   Booked Wild — contact pages
   Loaded after assets/services.css, which supplies the design system: tokens,
   header, burger, footer, buttons and the widget. Only what is specific to
   /contact-bristol/ and /contact-levi/ lives here.
   ========================================================================== */

/* ---- split hero ----------------------------------------------------------
   The two location photographs are 800px wide, so they are framed rather than
   used full-bleed: at this size they stay sharp, and it gives the contact
   pages a composition of their own inside the same system. */
.chero{background:var(--ink);color:var(--cream);padding:150px var(--pad) 96px}
.chero__grid{max-width:var(--max);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:center}
.chero--mirror .chero__grid{direction:rtl}
.chero--mirror .chero__grid > *{direction:ltr}
.chero h1{font-size:clamp(38px,5.2vw,84px);line-height:.98;letter-spacing:-.04em;
  font-weight:800;color:var(--white);max-width:14ch}
.chero .eyebrow{color:var(--accent-soft)}
.chero__lede{font-family:'Karla',sans-serif;font-size:clamp(18px,1.4vw,22px);line-height:1.55;
  color:rgba(242,246,238,.86);max-width:52ch;margin-top:26px}
.chero__figure{margin:0;border-radius:var(--r-card);overflow:hidden;
  box-shadow:0 30px 70px rgba(6,20,13,.42)}
.chero__figure img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;
  object-position:50% 50%}
.chero__caption{font-family:'Karla',sans-serif;font-size:13.5px;line-height:1.5;
  color:rgba(242,246,238,.62);margin-top:14px}

/* ---- location prose ----------------------------------------------------- */
.cwhy__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:64px;
  align-items:start}
.cwhy p + p{margin-top:20px}
.cpair{margin-top:44px;padding-top:28px;border-top:1px solid var(--line-2)}
.cpair p{font-family:'Karla',sans-serif;font-size:17px;line-height:1.6;color:var(--body);
  max-width:56ch}
.cpair a{display:inline-flex;align-items:center;gap:9px;font-family:'Karla',sans-serif;
  font-size:16px;font-weight:600;color:var(--accent);margin-top:16px}
.cpair a:hover{color:var(--ink)}
.cpair a span{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.cpair a:hover span{transform:translateX(6px)}

/* ---- what we do: three linked cards -------------------------------------- */
.cdo{list-style:none;margin:56px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.cdo a{display:flex;flex-direction:column;gap:10px;height:100%;background:var(--card);
  border-radius:var(--r-card);padding:32px 30px 34px;color:var(--cream);
  transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s ease}
.cdo a:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(6,20,13,.34);color:var(--cream)}
.cdo h3{font-size:21px;line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--white)}
.cdo p{font-family:'Karla',sans-serif;font-size:16px;line-height:1.6;color:rgba(242,246,238,.82)}
.cdo em{font-style:normal;font-family:'Karla',sans-serif;font-size:15px;font-weight:600;
  color:var(--accent-soft);margin-top:auto;padding-top:12px}

/* ---- contact block ------------------------------------------------------- */
.cbox{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;
  align-items:start;margin-top:52px}
/* the booking link now sits in the aside copy */
.cbox__aside .lede a{color:var(--white);font-weight:700;
  border-bottom:1.5px solid rgba(159,220,169,.6);padding-bottom:1px}
.cbox__aside .lede a:hover{color:var(--accent-soft);border-bottom-color:var(--accent-soft)}
.cdetails{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.cdetails li{padding:22px 0;border-bottom:1px solid rgba(242,246,238,.18)}
.cdetails li:first-child{border-top:1px solid rgba(242,246,238,.18)}
.cdetails dt,.cdetails .lbl{font-family:'Karla',sans-serif;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:700;color:var(--accent-soft);margin-bottom:8px}
.cdetails .val,.cdetails a{font-size:19px;line-height:1.35;letter-spacing:-.015em;font-weight:700;
  color:var(--white)}
.cdetails a:hover{color:var(--accent-soft)}
.cdetails .note{display:block;font-family:'Karla',sans-serif;font-size:15px;font-weight:400;
  letter-spacing:0;color:rgba(242,246,238,.7);margin-top:6px}

/* ---- embedded contact form ----------------------------------------------
   A cream panel on the dark section, the same move the floating widget makes,
   so the two read as the same family. Field treatment is the site's: 1.5px
   #D3E0CE border, 12/14px radius, accent-green focus. */
.cbox__aside{display:flex;flex-direction:column;gap:34px}
.cform{background:var(--cream);border-radius:var(--r-card);padding:36px 34px 34px;
  box-shadow:0 26px 60px rgba(6,20,13,.34)}
.cform__title{font-size:23px;line-height:1.15;letter-spacing:-.025em;font-weight:800;
  color:var(--ink);margin:0 0 22px}
.cform__inner{display:flex;flex-direction:column;gap:18px}
/* contact.js hides the form once the message is away; without this the display
   rule above outranks the hidden attribute and the form stayed on screen with
   the confirmation stacked beneath it. */
.cform__inner[hidden]{display:none}
.cform__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cfield{display:flex;flex-direction:column;gap:7px;min-width:0}
.cfield label{font-family:'Karla',sans-serif;font-size:14px;font-weight:600;color:var(--body)}
.cfield__req{color:var(--accent)}
.cfield__opt{font-weight:400;color:var(--muted)}
.cform input,.cform textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;
  padding:13px 15px;font-family:'Karla',sans-serif;font-size:16px;line-height:1.5;
  color:var(--ink);background:var(--white);outline:none;
  transition:border-color .2s ease,box-shadow .2s ease}
.cform textarea{border-radius:14px;min-height:132px;resize:vertical}
.cform input:focus,.cform textarea:focus{border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(159,220,169,.45)}
.cform input[aria-invalid="true"],.cform textarea[aria-invalid="true"]{border-color:#A32F2F}
/* The enquiry widget's stages carry an inline display:flex, which outranks the
   hidden attribute — without this, opening the widget shows the form and the
   confirmation together. */
[data-help-stage][hidden]{display:none !important}

.cform__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform__foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:4px}
.cform__foot .btn{flex:0 0 auto}
.cform__note{font-family:'Karla',sans-serif;font-size:13.5px;line-height:1.5;color:var(--muted)}
.cform__msg{font-family:'Karla',sans-serif;font-size:15.5px;line-height:1.6;margin:0;
  border-radius:var(--r-sm);padding:14px 16px}
.cform__msg--error{color:#7E2222;background:#FBEAEA;border:1px solid #E9C4C4}
.cform__msg--ok{color:var(--ink);background:var(--tint);border:1px solid var(--line-2)}
.cform button[disabled]{opacity:.65;cursor:default}

/* ---- hairline before the footer ------------------------------------------ */
.pre-ftr{background:var(--ink);padding:0 var(--pad)}
.pre-ftr hr{border:0;border-top:1px solid rgba(242,246,238,.18);margin:0}

/* ---- responsive ---------------------------------------------------------- */
@media (max-width:1024px){
  .chero__grid,.cwhy__grid,.cbox{grid-template-columns:minmax(0,1fr);gap:40px}
  .chero--mirror .chero__grid{direction:ltr}
  /* the photograph leads on the mirrored page, follows on the other */
  .chero--mirror .chero__figure{order:-1}
  .chero h1{max-width:18ch}
  .cdo{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:768px){
  .chero{padding:128px var(--pad) 72px}
  .cdo{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:40px}
  .cbox{margin-top:40px}
  .cform{padding:30px 26px 28px}
  .cform__row{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .chero{padding:116px var(--pad) 60px}
  .chero h1{font-size:34px;line-height:1.04;letter-spacing:-.035em;max-width:none}
  .chero__lede{margin-top:20px}
  .chero__figure img{aspect-ratio:4/3}
  .cwhy__grid,.cbox,.chero__grid{gap:30px}
  .cdo a{padding:26px 22px 28px}
  .cdetails .val,.cdetails a{font-size:17px}
  .cform{padding:26px 20px 24px;border-radius:var(--r-md)}
  .cform__title{font-size:21px}
  .cform__foot{gap:12px}
  .cform__foot .btn{width:100%}
}
@media (max-width:390px){
  .chero h1{font-size:30px}
}
