/* ===== header: current page ===== */
  .primary-nav a[aria-current="page"]::after{ transform:scaleX(1); }

.mobile-nav-links a[aria-current="page"]{ color:var(--c-600); }

/* ===================================================================
     CONTACT US
     Form first (for questions), booking second (for people who are
     ready). Email, phone and response time are bracketed placeholders.
     =================================================================== */
  /* ---- hero ---- */
  .ct-hero{ background:var(--c-100); padding-top:clamp(56px,8vw,112px); padding-bottom:clamp(40px,5vw,64px); }

.ct-eyebrow{ margin-bottom:26px; }

.ct-hero h1{ font-size:clamp(2.1rem, 2vw + 1.3rem, 3.25rem); line-height:1.15; letter-spacing:-.01em; text-wrap:balance; }

.ct-lead{ margin-top:24px; max-width:none; font-size:1.125rem; line-height:1.8; color:var(--c-600); }

/* ---- form section ---- */
  .ct-sec{ background:var(--c-100); padding-bottom:clamp(72px,9vw,128px); }

.ct-flow{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(40px,7vw,128px); align-items:start; }

.ct-info{ position:sticky; top:112px; }

.ct-info h2{ font-size:clamp(1.5rem,1vw + 1.2rem,1.9rem); line-height:1.25; }

.ct-details{ margin-top:28px; }

.ct-details > div{ padding:18px 0; border-top:1px solid var(--c-300); }

.ct-details > div:last-child{ border-bottom:1px solid var(--c-300); }

.ct-details dt{ font-size:.75rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--c-600); }

.ct-details dd{ margin:8px 0 0; font-size:1.0625rem; line-height:1.6; color:var(--c-950); }

.ct-private{ margin-top:24px; font-size:1rem; line-height:1.75; color:var(--c-600); }

.ct-private em{ font-family:var(--font-display); font-style:italic; font-weight:500; color:var(--c-950); }

/* the form card */
  .contact-card{ background:var(--c-200); border:1px solid var(--c-300); border-radius:var(--radius-lg); padding:clamp(24px,4vw,48px); }

.contact-form{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 20px; }

.field{ display:flex; flex-direction:column; gap:8px; min-width:0; }

.field--full{ grid-column:1 / -1; }

.field label{ font-size:.75rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--c-600); }

.field label .opt{ font-weight:500; letter-spacing:.06em; text-transform:none; opacity:.8; }

.field input, .field textarea, .select-btn{ width:100%; font:inherit; font-size:1rem; color:var(--c-950); background:var(--c-100); border:1px solid var(--c-300); border-radius:14px; padding:14px 16px; line-height:1.5; transition:border-color .3s var(--ease), box-shadow .3s var(--ease); -webkit-appearance:none; appearance:none; }

.field textarea{ min-height:160px; resize:vertical; }

.field input::placeholder, .field textarea::placeholder{ color:rgba(74,86,80,.6); }

.field input:hover, .field textarea:hover, .select-btn:hover{ border-color:var(--c-600); }

.field input:focus-visible, .field textarea:focus-visible, .select-btn:focus-visible, .select.is-open .select-btn{ outline:none; border-color:var(--c-950); box-shadow:0 0 0 3px rgba(37,48,40,.14); }

/* custom dropdown (replaces the browser's own select menu) */
  .select{ position:relative; }

.select-btn{ display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:left; cursor:pointer; }

.select-value.is-placeholder{ color:rgba(74,86,80,.6); }

.select-chev{ width:16px; height:16px; flex:none; color:var(--c-600); transition:transform .4s var(--ease); }

.select.is-open .select-chev{ transform:rotate(180deg); }

.select-list{ position:absolute; z-index:30; left:0; right:0; top:calc(100% + 8px); margin:0; padding:6px; list-style:none; background:var(--c-100); border:1px solid var(--c-300); border-radius:16px; box-shadow:0 24px 44px -24px rgba(37,48,40,.35); opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .25s var(--ease), transform .35s var(--ease), visibility 0s linear .25s; outline:none; }

.select.is-open .select-list{ opacity:1; visibility:visible; transform:none; transition-delay:0s; }

.select-list li{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:10px; font-size:1rem; line-height:1.4; color:var(--c-950); cursor:pointer; transition:background-color .2s var(--ease); }

.select-list li.is-active{ background:var(--c-200); }

.select-list li[aria-selected="true"]{ font-weight:600; }

.select-list li[aria-selected="true"]::after{ content:''; width:14px; height:14px; flex:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23253028' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E") center / contain no-repeat; }

.field .req{ color:var(--c-600); }

/* agreement line (before Send) */
  .contact-agree{ grid-column:1 / -1; margin-top:2px; font-size:.9375rem; line-height:1.6; color:var(--c-600); }

.contact-agree a{ color:var(--c-950); font-weight:500; }

.field-error{ display:none; font-size:.875rem; line-height:1.4; color:#8A3B2E; }

.field.has-error .field-error{ display:block; }

.field.has-error .select-btn{ border-color:#8A3B2E; }

.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.contact-actions{ grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:6px; }

.contact-actions .btn{ border:1px solid transparent; }

.contact-note{ font-size:.875rem; line-height:1.6; color:var(--c-600); }

/* send-failed notice (shown when the server could not deliver the message) */
  .contact-alert{ grid-column:1 / -1; display:none; align-items:flex-start; gap:14px; padding:16px 18px; background:var(--c-100); border:1px solid #B9776A; border-radius:14px; }

.contact-alert svg{ width:20px; height:20px; flex:none; margin-top:2px; color:#8A3B2E; }

.contact-alert p{ font-size:1rem; line-height:1.65; color:var(--c-600); }

.contact-alert strong{ color:var(--c-950); font-weight:600; }

.contact-alert .ph{ color:var(--c-950); }

.contact-card.is-failed .contact-alert{ display:flex; }

/* thank-you state */
  .contact-thanks{ display:none; text-align:left; outline:none; }

.contact-thanks h2{ font-size:clamp(1.5rem,1vw + 1.2rem,1.9rem); line-height:1.25; }

.contact-thanks p{ margin-top:14px; font-size:1.0625rem; line-height:1.75; color:var(--c-600); }

.contact-card.is-sent .contact-form{ display:none; }

.contact-card.is-sent .contact-thanks{ display:block; }

/* ---- booking band: dark, patterned (same as Home) ---- */
  .cta-band{ position:relative; overflow:hidden; background:var(--c-950); padding-block:clamp(88px,11vw,140px); text-align:center; }

.cta-band::before{ content:''; position:absolute; inset:0; background:url(../img/pattern-tile.png) center top / 640px auto repeat; opacity:.6; pointer-events:none; }

.cta-band .container{ position:relative; max-width:none; margin-inline:auto; display:flex; flex-direction:column; align-items:center; }

.cta-band .eyebrow{ margin-bottom:22px; }

.cta-band h2{ color:var(--c-100); font-size:clamp(1.9rem,1.6vw + 1.4rem,2.625rem); line-height:1.2; text-wrap:balance; }

.cta-band h2 em{ font-style:italic; font-weight:500; }

.cta-band p{ margin-top:20px; color:rgba(246,244,241,.68); font-size:1.0625rem; line-height:1.7; max-width:none; }

.cta-band .btn{ margin-top:38px; }

@media (max-width:960px){
    .ct-flow{ grid-template-columns:1fr; gap:36px; }
    .ct-info{ position:static; }
  }

@media (max-width:640px){
    .contact-form{ grid-template-columns:1fr; }
  }

/* ===== responsive ===== */
  @media (max-width:960px){
    .primary-nav{ display:none; }
    .header-actions .btn{ display:none; }
    .nav-toggle{ display:inline-flex; }

    .mobile-nav{ position:fixed; inset:0; z-index:200; display:flex; align-items:flex-start; justify-content:center; padding:104px 20px 32px; opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility 0s linear .4s; }
    .mobile-nav.is-open{ opacity:1; visibility:visible; transition:opacity .4s var(--ease), visibility 0s; }
    .mobile-nav-backdrop{ position:absolute; inset:0; background:rgba(37,48,40,.45); }
    .mobile-nav-panel{ position:relative; z-index:1; width:100%; max-width:420px; max-height:100%; overflow-y:auto; display:flex; flex-direction:column; background:var(--c-100); border-radius:var(--radius-lg); box-shadow:0 32px 64px -24px rgba(37,48,40,.5); padding:26px 26px 30px; transform:translateY(14px) scale(.98); transition:transform .45s var(--ease); }
    .mobile-nav.is-open .mobile-nav-panel{ transform:translateY(0) scale(1); }
    .mobile-nav-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; }
    .mobile-nav-label{ margin:0; }
    .mobile-nav-close{ display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; flex:none; border:1px solid var(--c-300); background:none; color:var(--c-950); cursor:pointer; transition:background-color .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease), transform .35s var(--ease); }
    .mobile-nav-close svg{ width:14px; height:14px; }
    .mobile-nav-close:hover{ background:var(--c-950); border-color:var(--c-950); color:var(--c-100); }
    .mobile-nav-close:active{ transform:scale(.92); }
    .mobile-nav-links{ display:flex; flex-direction:column; }
    .mobile-nav-links a{ padding:15px 2px; font-family:var(--font-body); font-size:1.3125rem; font-weight:500; color:var(--c-950); border-bottom:1px solid var(--c-300); }
    .mobile-nav-links a:first-child{ padding-top:2px; }
    .mobile-nav-links a:last-child{ border-bottom:none; }
    .mobile-nav-cta{ margin-top:26px; width:100%; }
    body.nav-open{ overflow:hidden; }

    .footer-top{ grid-template-columns:1fr 1fr; row-gap:40px; }
  }

@media (max-width:640px){
    .site-header .container{ height:76px; }
    .site-header .logo-img{ height:32px; }
    .mobile-nav{ padding-top:92px; }
    /* buttons hug their labels (both as wide as the longer one, centred) instead of stretching across the screen */
    .footer-top{ grid-template-columns:1fr; }
    .footer-bottom{ flex-direction:column; align-items:flex-start; }
  }

.field.has-error input, .field.has-error textarea{ border-color:#8A3B2E; }
