:root{
    --ivory:#F8F3EA;
    --cream:#F1E8D8;
    --champagne:#D9B89C;
    --champagne-soft:#E9D5BF;
    --mocha:#B08F75;
    --brown:#5F3D27;
    --espresso:#2B1A0E;
    --sienna:#873800;
    --amber:#D98324;
    --serif:'Cormorant Garamond', Georgia, serif;
    --body:'EB Garamond', Georgia, serif;
    --sans:'Jost', 'Helvetica Neue', sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    background:var(--ivory);
    color:var(--espresso);
    font-family:var(--body);
    font-size:1.125rem;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{background:var(--champagne);color:var(--espresso)}
  img{max-width:100%;display:block}

  .label{
    font-family:var(--sans);
    font-size:.72rem;
    font-weight:500;
    letter-spacing:.32em;
    text-transform:uppercase;
  }
  .section-head{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.5rem}
  .section-head .rule{flex:0 0 3.5rem;height:1px;background:var(--sienna)}
  .section-head .label{color:var(--sienna)}
  h2.display{
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(2.4rem, 5.2vw, 4.2rem);
    line-height:1.05;
    letter-spacing:-.01em;
  }
  h2.display em{font-style:italic;font-weight:400;color:var(--sienna)}
  .wrap{max-width:1200px;margin:0 auto;padding:0 clamp(1.25rem, 4vw, 3rem)}

  /* ---------- NAV ---------- */
  nav{
    position:fixed;inset:0 0 auto 0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:1.1rem clamp(1.25rem, 4vw, 3rem);
    transition:background .4s ease, box-shadow .4s ease, padding .4s ease;
  }
  nav.scrolled{
    background:rgba(43,26,14,.92);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    padding-top:.7rem;padding-bottom:.7rem;
    box-shadow:0 1px 0 rgba(217,184,156,.25);
  }
  .nav-logo{display:flex;align-items:center;gap:.8rem;text-decoration:none}
  .nav-logo img{height:44px;width:auto}
  .nav-logo span{
    font-family:var(--serif);font-size:1.35rem;color:var(--ivory);
    letter-spacing:.04em;
  }
  .nav-links{display:flex;align-items:center;gap:2.2rem;list-style:none}
  .nav-links a{
    font-family:var(--sans);font-size:.78rem;font-weight:400;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--ivory);text-decoration:none;position:relative;padding:.3rem 0;
  }
  .nav-links a::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
    background:var(--champagne);transition:width .3s ease;
  }
  .nav-links a:hover::after{width:100%}
  .nav-cta{
    font-family:var(--sans);font-size:.78rem;font-weight:500;
    letter-spacing:.22em;text-transform:uppercase;text-decoration:none;
    color:var(--espresso)!important;background:var(--champagne);
    padding:.75rem 1.6rem!important;
    transition:background .3s ease;
  }
  .nav-cta::after{display:none}
  .nav-cta:hover{background:var(--champagne-soft)}
  .menu-btn{display:none;background:none;border:none;cursor:pointer;z-index:110}
  .menu-btn span{display:block;width:26px;height:2px;background:var(--ivory);margin:6px 0;transition:.3s}

  /* ---------- HERO ---------- */
  .hero{position:relative;height:100svh;min-height:640px;overflow:hidden;display:flex;align-items:flex-end}
  .hero-bg{position:absolute;inset:0;background:url('images/hero-sunset.jpg') center/cover no-repeat;animation:heroZoom 18s ease-out forwards}
  @keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
  .hero::after{
    content:"";position:absolute;inset:0;
    background:
      linear-gradient(90deg, rgba(43,26,14,.34) 0%, rgba(43,26,14,.1) 55%, rgba(43,26,14,0) 100%),
      linear-gradient(180deg, rgba(43,26,14,.32) 0%, rgba(43,26,14,.06) 35%, rgba(43,26,14,.38) 68%, rgba(43,26,14,.72) 100%);
  }
  .hero-content h1, .hero-content p, .hero-eyebrow{
    text-shadow:0 1px 4px rgba(20,10,4,.65), 0 8px 34px rgba(20,10,4,.5);
  }
  .hero-content{position:relative;z-index:2;width:100%;padding:0 clamp(1.25rem,4vw,3rem) clamp(3rem,7vh,5.5rem)}
  .hero-eyebrow{color:var(--champagne);margin-bottom:1.4rem;display:flex;align-items:center;gap:1.1rem}
  .hero p.hero-eyebrow{max-width:none;font-size:clamp(.8rem,1.1vw,1rem)}
  .hero-eyebrow::before{content:"";width:3.5rem;height:1px;background:var(--champagne);flex:0 0 auto}
  .hero h1{
    font-family:var(--serif);font-weight:500;color:var(--ivory);
    font-size:clamp(3rem, 7vw, 6.1rem);line-height:1;letter-spacing:-.015em;
    max-width:22ch;
  }
  .hero h1 em{font-style:italic;font-weight:400;color:var(--champagne)}
  .hero p{color:rgba(248,243,234,.85);max-width:44ch;margin:1.6rem 0 2.4rem;font-size:clamp(1.05rem,1.4vw,1.25rem)}
  .hero-ctas{display:flex;gap:1rem;flex-wrap:wrap}
  .btn{
    font-family:var(--sans);font-size:.8rem;font-weight:500;
    letter-spacing:.24em;text-transform:uppercase;text-decoration:none;
    padding:1.05rem 2.3rem;display:inline-block;transition:all .3s ease;
  }
  .btn-solid{background:var(--champagne);color:var(--espresso)}
  .btn-solid:hover{background:var(--ivory)}
  .btn-ghost{border:1px solid rgba(248,243,234,.6);color:var(--ivory)}
  .btn-ghost:hover{border-color:var(--champagne);color:var(--champagne)}
  .hero-scroll{
    position:absolute;right:clamp(1.25rem,4vw,3rem);bottom:clamp(3rem,7vh,5.5rem);z-index:2;
    color:rgba(248,243,234,.7);font-family:var(--sans);font-size:.68rem;
    letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl;
    display:flex;align-items:center;gap:.8rem;text-decoration:none;
  }
  .hero-scroll::after{content:"";width:1px;height:3.2rem;background:linear-gradient(var(--champagne),transparent);animation:drip 2.2s ease-in-out infinite}
  @keyframes drip{0%,100%{opacity:.4}50%{opacity:1}}

  /* ---------- MARQUEE ---------- */
  .marquee{
    background:var(--espresso);color:var(--champagne);
    overflow:hidden;white-space:nowrap;padding:1.05rem 0;
    border-top:1px solid rgba(217,184,156,.3);
  }
  .marquee-track{display:inline-block;animation:marquee 36s linear infinite}
  .marquee span{
    font-family:var(--sans);font-size:.75rem;font-weight:400;
    letter-spacing:.34em;text-transform:uppercase;margin:0 2.6rem;
  }
  .marquee i{font-style:normal;color:var(--mocha);margin:0 0.2rem}
  @keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* ---------- WELCOME ---------- */
  .welcome{padding:clamp(5rem,11vw,9rem) 0}
  .welcome-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:center}
  .welcome p.lede{
    font-family:var(--serif);font-size:clamp(1.4rem,2.1vw,1.8rem);
    line-height:1.5;font-weight:400;margin-top:2rem;
  }
  .welcome p.body-copy{margin-top:1.4rem;color:#4a382a;max-width:56ch}
  .welcome .sig{margin-top:2.2rem}
  .welcome .sig img{height:88px;width:auto;filter:sepia(1) saturate(2) hue-rotate(-15deg) brightness(.55)}
  .welcome-photo{position:relative}
  .welcome-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
  .welcome-photo::before{
    content:"";position:absolute;inset:1.4rem -1.4rem -1.4rem 1.4rem;
    border:1px solid var(--champagne);z-index:-1;
  }
  .welcome-photo figcaption{
    position:absolute;bottom:1.2rem;left:1.2rem;color:var(--ivory);
    font-family:var(--sans);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;
    background:rgba(43,26,14,.55);padding:.5rem .9rem;backdrop-filter:blur(4px);
  }

  /* ---------- STATS ---------- */
  .stats{
    position:relative;background:var(--espresso);color:var(--ivory);
    padding:clamp(4rem,8vw,6.5rem) 0;overflow:hidden;
    border-top:1px solid rgba(217,184,156,.35);
    border-bottom:1px solid rgba(217,184,156,.35);
  }
  .stats::before{
    content:"";position:absolute;inset:0;
    background:url("images/patio-lights.jpg") center 35%/cover no-repeat;
    opacity:.2;filter:saturate(.9);
  }
  .stats::after{
    content:"";position:absolute;inset:0;
    background:
      radial-gradient(ellipse at center, rgba(43,26,14,.05) 0%, rgba(43,26,14,.55) 100%),
      linear-gradient(180deg, rgba(43,26,14,.5), rgba(43,26,14,.2) 50%, rgba(43,26,14,.5));
  }
  .stats .wrap{position:relative;z-index:1}
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
  .stat .num{
    font-family:var(--serif);font-size:clamp(2.6rem,4.5vw,4rem);
    font-weight:500;color:var(--champagne);line-height:1;
  }
  .stat .num sup{font-size:.45em;color:var(--mocha)}
  .stat .cap{margin-top:.7rem;font-family:var(--sans);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(248,243,234,.75)}
  .stat + .stat{border-left:1px solid rgba(217,184,156,.25)}

  /* ---------- SERVICES ---------- */
  .services{padding:clamp(5rem,11vw,9rem) 0;background:var(--cream)}
  .services-intro{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4rem)}
  .services-intro p{color:#4a382a;max-width:48ch;justify-self:end}
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
  .card{
    background:var(--ivory);position:relative;overflow:hidden;
    display:flex;flex-direction:column;
    border:1px solid rgba(95,61,39,.14);
    transition:transform .4s ease, box-shadow .4s ease;
  }
  .card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -18px rgba(43,26,14,.28)}
  .card-img{overflow:hidden;aspect-ratio:4/3}
  .card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
  .card:hover .card-img img{transform:scale(1.05)}
  .card-body{padding:1.8rem 1.7rem 2rem;display:flex;flex-direction:column;flex:1}
  .card-body .num{font-family:var(--sans);font-size:.68rem;letter-spacing:.3em;color:var(--sienna);margin-bottom:.8rem}
  .card-body h3{font-family:var(--serif);font-weight:500;font-size:1.7rem;line-height:1.15;margin-bottom:.7rem}
  .card-body p{font-size:1rem;color:#4a382a;flex:1}
  .card-link{
    margin-top:1.4rem;font-family:var(--sans);font-size:.72rem;font-weight:500;
    letter-spacing:.26em;text-transform:uppercase;color:var(--sienna);text-decoration:none;
    display:inline-flex;align-items:center;gap:.6rem;
  }
  .card-link::after{content:"→";transition:transform .3s ease}
  .card-link:hover::after{transform:translateX(5px)}

  /* ---------- GALLERY ---------- */
  .gallery{padding:clamp(5rem,11vw,9rem) 0}
  .gallery-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(2.5rem,5vw,4rem);flex-wrap:wrap}
  .gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:110px;gap:1.1rem}
  .g-item{overflow:hidden;position:relative}
  .g-item a{display:block;width:100%;height:100%;cursor:zoom-in}
  .g-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
  .g-item:hover img{transform:scale(1.06)}
  .g-item .view{
    position:absolute;top:1rem;right:1rem;color:var(--ivory);
    font-family:var(--sans);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;
    background:rgba(43,26,14,.55);padding:.4rem .75rem;backdrop-filter:blur(4px);
    opacity:0;transition:opacity .35s ease;pointer-events:none;
  }
  .g-item:hover .view{opacity:1}
  .gallery-foot{margin-top:1.6rem;text-align:right}
  .gallery-foot a{
    font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.26em;
    text-transform:uppercase;color:var(--sienna);text-decoration:none;
    display:inline-flex;align-items:center;gap:.6rem;
  }
  .gallery-foot a::after{content:"→";transition:transform .3s ease}
  .gallery-foot a:hover::after{transform:translateX(5px)}
  .g-item .tag{
    position:absolute;bottom:1rem;left:1rem;color:var(--ivory);
    font-family:var(--sans);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
    background:rgba(43,26,14,.55);padding:.45rem .85rem;backdrop-filter:blur(4px);
  }
  .g1{grid-column:1/8;grid-row:span 4}
  .g2{grid-column:8/13;grid-row:span 2}
  .g3{grid-column:8/13;grid-row:span 2}
  .g4{grid-column:1/5;grid-row:span 3}
  .g5{grid-column:5/13;grid-row:span 3}

  /* ---------- QUOTE ---------- */
  .quote{background:var(--espresso);color:var(--ivory);padding:clamp(5rem,11vw,8.5rem) 0;position:relative;overflow:hidden}
  .quote::before{
    content:"“";position:absolute;top:-.15em;left:50%;transform:translateX(-50%);
    font-family:var(--serif);font-size:clamp(16rem,32vw,26rem);color:rgba(217,184,156,.12);line-height:1;
  }
  .quote-inner{position:relative;max-width:820px;margin:0 auto;text-align:center;padding:0 1.5rem}
  .quote blockquote{
    font-family:var(--serif);font-size:clamp(1.7rem,3.2vw,2.6rem);
    font-weight:400;font-style:italic;line-height:1.35;
    text-wrap:balance;
  }
  .quote cite{
    display:block;margin-top:2rem;font-style:normal;
    font-family:var(--sans);font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:var(--champagne);
  }

  /* ---------- TOUR CTA ---------- */
  .tour{background:var(--champagne);padding:clamp(4.5rem,9vw,7rem) 0}
  .tour-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center}
  .tour h2{color:var(--espresso)}
  .tour p{color:#4a2f1a;max-width:46ch;margin-top:1.2rem}
  .tour .btn-dark{background:var(--espresso);color:var(--ivory);justify-self:end}
  .tour .btn-dark:hover{background:var(--brown)}

  /* ---------- CONTACT ---------- */
  .contact{padding:clamp(5rem,11vw,9rem) 0;background:var(--ivory)}
  .contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(3rem,7vw,6rem)}
  .contact-info h2{margin-bottom:2.2rem}
  .info-row{display:flex;gap:1.3rem;padding:1.3rem 0;border-top:1px solid rgba(95,61,39,.18);align-items:baseline}
  .info-row:last-of-type{border-bottom:1px solid rgba(95,61,39,.18)}
  .info-row .k{font-family:var(--sans);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sienna);flex:0 0 6.5rem}
  .info-row .v{font-size:1.1rem}
  .info-row .v a{color:var(--espresso);text-decoration:none;border-bottom:1px solid var(--champagne)}
  .info-row .v a:hover{color:var(--sienna)}
  form{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem 1.6rem}
  .field{display:flex;flex-direction:column;gap:.5rem}
  .field.full{grid-column:1/-1}
  .field label{font-family:var(--sans);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sienna)}
  .field input,.field select,.field textarea{
    font-family:var(--body);font-size:1.1rem;color:var(--espresso);
    background:transparent;border:none;border-bottom:1px solid rgba(95,61,39,.35);
    padding:.6rem 0;outline:none;transition:border-color .3s;border-radius:0;
  }
  .field textarea{resize:vertical;min-height:96px}
  .field input:focus,.field select:focus,.field textarea:focus{border-color:var(--sienna)}
  form .btn-solid{border:none;cursor:pointer;grid-column:1/-1;justify-self:start;background:var(--espresso);color:var(--ivory)}
  form .btn-solid:hover{background:var(--brown)}

  /* ---------- FOOTER ---------- */
  footer{background:var(--espresso);color:rgba(248,243,234,.8);padding:clamp(3.5rem,7vw,5rem) 0 2rem}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(217,184,156,.2)}
  .foot-brand img{height:110px;width:auto;margin-bottom:1.2rem}
  .foot-brand p{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--champagne);max-width:30ch}
  footer h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--champagne);margin-bottom:1.2rem}
  footer ul{list-style:none}
  footer li{margin-bottom:.65rem}
  footer a{color:rgba(248,243,234,.8);text-decoration:none;font-size:1.02rem}
  footer a:hover{color:var(--champagne)}
  .foot-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.8rem;font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(248,243,234,.45)}

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease, transform .8s ease}
  .reveal.in{opacity:1;transform:none}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 900px){
    .welcome-grid,.services-intro,.tour-grid,.contact-grid,.foot-grid{grid-template-columns:1fr}
    .services-intro p,.tour .btn-dark{justify-self:start}
    .cards{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:repeat(2,1fr);gap:2.5rem 0}
    .stat + .stat{border-left:none}
    .stat:nth-child(even){border-left:1px solid rgba(217,184,156,.25)}
    .gallery-grid{grid-auto-rows:90px}
    .g1{grid-column:1/13;grid-row:span 3}
    .g2{grid-column:1/7;grid-row:span 2}
    .g3{grid-column:7/13;grid-row:span 2}
    .g4{grid-column:1/13;grid-row:span 3}
    .g5{grid-column:1/13;grid-row:span 3}
    .hero-scroll{display:none}
    .menu-btn{display:block}
    .nav-links{
      position:fixed;inset:0;background:rgba(43,26,14,.97);
      flex-direction:column;justify-content:center;gap:2.4rem;
      transform:translateX(100%);transition:transform .4s ease;
    }
    .nav-links.open{transform:none}
    .nav-links a{font-size:1rem}
  }

/* ---------- SUBPAGES ---------- */
nav.solid{
  background:rgba(43,26,14,.97);
  padding-top:.7rem;padding-bottom:.7rem;
  box-shadow:0 1px 0 rgba(217,184,156,.25);
}
.page-hero{background:var(--espresso);color:var(--ivory);padding:10rem 0 5rem;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--champagne)}
.page-hero .label{color:var(--champagne);display:flex;align-items:center;gap:1.1rem;margin-bottom:1.3rem}
.page-hero .label::before{content:"";width:3.5rem;height:1px;background:var(--champagne)}
.page-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.8rem,5.5vw,4.6rem);line-height:1.02;letter-spacing:-.01em}
.page-hero h1 em{font-style:italic;font-weight:400;color:var(--champagne)}
.page-hero .intro{color:rgba(248,243,234,.85);max-width:58ch;margin-top:1.5rem;font-size:1.15rem}

/* ---------- GALLERY PAGE (masonry) ---------- */
.masonry-wrap{padding:clamp(3.5rem,7vw,6rem) 0 clamp(4rem,8vw,7rem)}
.masonry{columns:3;column-gap:1.1rem}
.masonry .g-item{break-inside:avoid;margin:0 0 1.1rem;display:block}
.masonry .g-item img{width:100%;height:auto}
@media (max-width:1000px){.masonry{columns:2}}
@media (max-width:560px){.masonry{columns:1}}

/* ---------- FAQ PAGE ---------- */
.faq-section{padding:clamp(3.5rem,7vw,6rem) 0 clamp(4.5rem,9vw,7.5rem)}
.faq-list{max-width:880px}
details.faq{border-top:1px solid rgba(95,61,39,.22)}
details.faq:last-child{border-bottom:1px solid rgba(95,61,39,.22)}
details.faq summary{
  display:flex;align-items:baseline;gap:1.4rem;
  padding:1.7rem 0;cursor:pointer;list-style:none;
  font-family:var(--serif);font-weight:500;
  font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.3;
}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary .qnum{
  font-family:var(--sans);font-size:.68rem;letter-spacing:.24em;
  color:var(--sienna);flex:0 0 2.6rem;transform:translateY(-.2em);
}
details.faq summary .plus{
  margin-left:auto;flex:0 0 auto;color:var(--sienna);
  font-family:var(--sans);font-weight:300;font-size:1.6rem;line-height:1;
  transition:transform .3s ease;transform-origin:center;
}
details.faq[open] summary .plus{transform:rotate(45deg)}
details.faq summary:hover{color:var(--sienna)}
.faq-answer{padding:0 3rem 1.9rem 4rem;color:#4a382a;max-width:62ch}
@media (max-width:640px){
  details.faq summary{gap:.9rem}
  .faq-answer{padding-left:0;padding-right:0}
}

/* ---------- SERVICES PAGE ---------- */
.svc{padding:clamp(4rem,8vw,7rem) 0}
.svc + .svc{padding-top:0}
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.svc-grid.flip .svc-photo{order:2}
.svc-photo{position:relative}
.svc-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.svc-photo::before{content:"";position:absolute;inset:1.4rem -1.4rem -1.4rem 1.4rem;border:1px solid var(--champagne);z-index:-1}
.svc-grid.flip .svc-photo::before{inset:1.4rem 1.4rem -1.4rem -1.4rem}
.svc-body p{color:#4a382a;margin-top:1.2rem;max-width:52ch}
.amenities{list-style:none;margin-top:1.6rem;display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.5rem}
.amenities li{
  display:flex;gap:.7rem;align-items:baseline;
  font-size:1.02rem;
}
.amenities li::before{content:"◆";color:var(--sienna);font-size:.55rem;transform:translateY(-.15em)}
.callout{
  margin-top:1.8rem;border-left:3px solid var(--sienna);
  background:var(--cream);padding:1.2rem 1.5rem;max-width:52ch;
}
.callout strong{font-family:var(--sans);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sienna);display:block;margin-bottom:.4rem}
@media (max-width:900px){
  .svc-grid,.amenities{grid-template-columns:1fr}
  .svc-grid.flip .svc-photo{order:0}
}

/* ---------- DATES PAGE (availability calendar) ---------- */
.cal-section{padding:clamp(3.5rem,7vw,6rem) 0 clamp(4.5rem,9vw,7.5rem)}
.cal-shell{max-width:940px;background:#fff;border:1px solid rgba(95,61,39,.16);padding:clamp(1.25rem,3vw,2.5rem)}
.cal-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}
.cal-title{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.3rem);font-weight:500}
.cal-title em{font-style:italic;color:var(--sienna)}
.cal-nav-btns{display:flex;gap:.5rem}
.cal-nav-btns button{
  width:44px;height:44px;border:1px solid rgba(95,61,39,.35);background:transparent;
  font-size:1.15rem;color:var(--espresso);cursor:pointer;transition:all .25s ease;
}
.cal-nav-btns button:hover:not(:disabled){background:var(--espresso);color:var(--ivory);border-color:var(--espresso)}
.cal-nav-btns button:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.45rem}
.cal-dow{font-family:var(--sans);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sienna);text-align:center;padding:.5rem 0}
.cal-day{
  aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;
  font-family:var(--serif);font-size:clamp(.95rem,1.6vw,1.2rem);
  border:1px solid rgba(95,61,39,.16);background:var(--bone);position:relative;
}
.cal-day.blank{border:none;background:transparent}
.cal-day.past{opacity:.32}
.cal-day.open{cursor:pointer;transition:all .25s ease}
.cal-day.open .dot{width:5px;height:5px;border-radius:50%;background:var(--sienna)}
.cal-day.open:hover{background:var(--champagne);border-color:var(--champagne);transform:translateY(-2px)}
.cal-day.taken{background:transparent;color:rgba(43,26,14,.4)}
.cal-day.taken .dot{width:14px;height:1px;background:rgba(43,26,14,.35)}
.cal-legend{display:flex;gap:1.8rem;flex-wrap:wrap;margin-top:1.4rem;align-items:center}
.cal-legend span{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#4a382a}
.cal-legend .chip{width:14px;height:14px;border:1px solid rgba(95,61,39,.3)}
.cal-legend .chip.c-open{background:var(--bone)}
.cal-legend .chip.c-taken{background:transparent;position:relative}
.cal-legend .chip.c-taken::after{content:"";position:absolute;inset:6px 2px;border-top:1px solid rgba(43,26,14,.4)}
.cal-note{margin-top:1.6rem;color:#4a382a;max-width:60ch}
.cal-badge{
  display:none;font-family:var(--sans);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  background:var(--sunray,#F3C233);color:var(--espresso);padding:.4rem .8rem;
}
.cal-badge.show{display:inline-block}

/* ---------- DATES CALLOUT (contact section) ---------- */
.dates-callout{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  background:var(--champagne);color:var(--espresso);text-decoration:none;
  padding:1.5rem 1.7rem;margin:0 0 2rem;
  transition:all .3s ease;
}
.dates-callout:hover{background:var(--espresso);color:var(--ivory)}
.dates-callout strong{
  display:block;font-family:var(--sans);font-weight:500;font-size:.95rem;
  letter-spacing:.22em;text-transform:uppercase;margin-bottom:.3rem;
}
.dates-callout span.sub{font-size:1.02rem;opacity:.85}
.dates-callout .arrow{font-size:1.6rem;transition:transform .3s ease;flex:0 0 auto}
.dates-callout:hover .arrow{transform:translateX(6px)}

/* ---------- VIRTUAL TOUR ---------- */
.vtour{padding:clamp(5rem,11vw,9rem) 0;background:var(--cream)}
.vtour-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:clamp(2rem,4vw,3rem)}
.vtour-head p{color:#4a382a;max-width:46ch;justify-self:end}
.vtour-frame{position:relative}
.vtour-frame::before{content:"";position:absolute;inset:1.4rem -1.4rem -1.4rem 1.4rem;border:1px solid var(--champagne);z-index:0}
.vtour-frame iframe{position:relative;z-index:1;display:block;width:100%;aspect-ratio:16/9;border:0;background:var(--espresso)}
.vtour-hint{margin-top:1.2rem;font-family:var(--sans);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sienna)}
@media (max-width:900px){.vtour-head{grid-template-columns:1fr}.vtour-head p{justify-self:start}}

/* Contact: align the form's first row with the heading, not the eyebrow */
@media (min-width:901px){
  .contact form{margin-top:2.7rem}
}

/* ---------- VIRTUAL TOUR movement cue ---------- */
.vtour-cue{
  position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:2;
  pointer-events:none;display:flex;align-items:center;gap:.7rem;white-space:nowrap;
  background:rgba(43,26,14,.78);color:var(--ivory);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:.75rem 1.3rem;
  font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  transition:opacity .7s ease;
}
.vtour-cue .drag{color:var(--champagne);font-size:1.05rem;display:inline-block;animation:dragHint 2.2s ease-in-out infinite}
@keyframes dragHint{0%,100%{transform:translateX(-7px)}50%{transform:translateX(7px)}}
.vtour-cue.hide{opacity:0}
@media (max-width:640px){.vtour-cue{font-size:.6rem;padding:.6rem .9rem}}

/* Secondary (outline) callout, e.g. book-a-call */
.dates-callout.alt{background:transparent;border:1px solid rgba(95,61,39,.35)}
.dates-callout + .dates-callout{margin-top:-1rem}

/* ---------- INLINE BOOKING CALENDAR (contact section) ---------- */
.cal-inline-wrap{margin-top:clamp(2.5rem,5vw,4rem)}
.cal-inline-wrap .label{color:var(--sienna);margin-bottom:1rem}
.cal-inline{min-height:500px;background:#fff;border:1px solid rgba(95,61,39,.16)}
.cal-inline iframe{border:0}
@media (min-width:901px){.contact form{margin-top:2.7rem}}

/* ---------- NAV: secondary call CTA ---------- */
.nav-cta.alt{
  background:transparent;color:var(--champagne)!important;
  border:1px solid rgba(217,184,156,.6);padding:.68rem 1.3rem!important;
}
.nav-cta.alt:hover{border-color:var(--champagne);background:rgba(217,184,156,.14)}
@media (max-width:1280px) and (min-width:901px){
  .nav-links{gap:1.3rem}
  .nav-links a{font-size:.7rem;letter-spacing:.15em}
}

/* Dark (espresso) callout variant, e.g. request-a-tour */
.dates-callout.dark{background:var(--espresso);color:var(--ivory)}
.dates-callout.dark:hover{background:var(--sienna);color:var(--ivory)}

/* ---------- HERO VIDEO (fades in over the photo, back out when done) ---------- */
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.6s ease;pointer-events:none;
}
.hero-video.on{opacity:1}

/* ---------- MOBILE HERO POLISH ---------- */
@media (max-width:640px){
  .hero-ctas{flex-direction:column;align-items:stretch}
  .hero-ctas .btn{text-align:center}
  .hero p{font-size:1.02rem;line-height:1.6}
  .eb-ext{display:none}
}

/* ---------- INQUIRY FORM extras ---------- */
.contact-lede{color:#4a382a;max-width:44ch;margin-bottom:2rem}
.form-sect{grid-column:1/-1;color:var(--sienna);margin-top:.6rem}
form .form-sect:first-of-type{margin-top:0}
.radio-row{display:flex;gap:2rem;padding:.55rem 0}
.radio{display:inline-flex;align-items:center;gap:.55rem;font-size:1.05rem;cursor:pointer}
.radio input{accent-color:var(--sienna);width:1.05rem;height:1.05rem}
.field input[type="date"]{font-family:var(--body);color:var(--espresso)}
