@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500 600;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin-ext.woff2") format("woff2");unicode-range:U+0100-02FF,U+1E00-1EFF,U+20A0-20CF}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500 600;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400 600;font-display:swap;src:url("assets/fonts/montserrat-latin-ext.woff2") format("woff2");unicode-range:U+0100-02FF,U+1E00-1EFF,U+20A0-20CF}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400 600;font-display:swap;src:url("assets/fonts/montserrat-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}

/* =========================================================
   DendroPark — landing page
   Design width 1399px · content column 1303px (48px gutters)

   Palette per the brand deck (slide 13):
     Pine Dark  #1E2A1A  bază / text / contururi
     Warm Sand  #C0AE91  fundaluri / accente soft
     Cream      #FBFBF0  spațiu / lumină / premium
     Wood Clay  #BB8755  lemn / căldură / activitate
     Olive      #6B7A4F  natură / zone secundare
   ========================================================= */

:root{
  --pine:       #1E2A1A;
  --sand:       #C0AE91;
  --cream:      #FBFBF0;
  --clay:       #BB8755;
  --olive:      #6B7A4F;

  --green:      var(--olive);
  --green-dark: #5B6942;
  --ink:        var(--pine);
  --body:       #4C5546;
  --muted:      #8E9487;
  --paper:      var(--cream);
  --line:       rgba(30,42,26,.55);

  --serif: "Cormorant Garamond", "Didot", "Bodoni MT", Georgia, serif;
  --sans: "Montserrat", "Segoe UI", Helvetica, Arial, sans-serif;

  --content: 1303px;
  --gutter: 48px;

  --h1:   65px;
  --h2:   63px;
  --h2-s: 64px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--sans);
  font-size:13px;
  line-height:1.42;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

.wrap{
  width:100%;
  max-width:calc(var(--content) + var(--gutter) * 2);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.ic{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6;
     stroke-linecap:round; stroke-linejoin:round; }

/* ---------- shared type ---------- */
.h2{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:var(--h2);
  line-height:1.18;
  letter-spacing:.005em;
  color:var(--ink);
  text-transform:uppercase;
  white-space:nowrap;
}
.h2--about{ font-size:var(--h2-s); line-height:1.14; }
.h2--center{ text-align:center; }
.h2 .accent{ color:var(--green); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:46px; padding:0 32px;
  border-radius:999px;
  font-size:13px; font-weight:500; letter-spacing:.005em;
  white-space:nowrap;
  transition:background .3s var(--ease), color .3s var(--ease),
             border-color .3s var(--ease), transform .3s var(--ease);
}
.btn--glass{
  padding:0 28px;
  background:rgba(255,255,255,.16);
  color:#fff;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.btn--glass:hover{ background:rgba(255,255,255,.3); }

.btn--ghost{
  height:46px; padding:0 18px;
  border:1px solid rgba(255,255,255,.5);
  color:#fff; gap:14px;
  font-family:var(--sans); font-size:15px; text-transform:none;
}
.btn--ghost:hover{ background:rgba(255,255,255,.14); }
.btn--ghost .ic{ width:16px; height:16px; }

.btn--light{ padding:0 30px; background:#fff; color:var(--ink); font-weight:700; }
.btn--light:hover{ background:#eef0ec; }

.btn--green{ background:var(--green); color:#fff; font-weight:500; }
.btn--green:hover{ background:var(--green-dark); }

.btn-circle{
  display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; flex:0 0 46px;
  border-radius:50%;
  transition:background .3s var(--ease), color .3s var(--ease),
             border-color .3s var(--ease), transform .3s var(--ease);
}
.btn-circle--light{ background:#fff; color:var(--ink); }
.btn-circle--light:hover{ transform:translateX(3px); }
.btn-circle--green{ background:var(--green); color:#fff; }
.btn-circle--green:hover{ background:var(--green-dark); transform:translateX(3px); }
.btn-circle--line{
  width:64px; height:64px; flex-basis:64px;
  border:1px solid var(--sand); color:var(--ink);
}
.btn-circle--line:hover{ border-color:var(--ink); }

.btn-pair{ display:flex; align-items:center; gap:4px; }
.btn-pair--end{ justify-content:flex-end; }

/* corner tick marks */
.mark{ display:block; width:17px; height:15px; }
.mark--tr{ border-top:1px solid var(--line); border-right:1px solid var(--line); }
.mark--bl{ border-bottom:1px solid var(--line); border-left:1px solid var(--line); }

/* pagination dots */
.dots{ display:flex; align-items:center; gap:8px; }
.dot{
  width:8px; height:8px; border-radius:50%;
  background:rgba(255,255,255,.45);
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.dot.is-active{ background:#fff; transform:scale(1.12); }

/* ---------- logo ---------- */
/* mark + wordmark are separate files so each can be sized on its own optics;
   the wordmark's cap height is set against the mark rather than matched to it */
.logo{
  display:inline-flex; align-items:center; gap:13px;
  transition:opacity .3s var(--ease);
}
.logo:hover{ opacity:.82; }
.logo__mark{ height:42px; width:auto; }
.logo__word{ height:15px; width:auto; }

/* =========================================================
   HEADER
   ========================================================= */
.header{
  position:fixed; inset:0 0 auto; z-index:60;
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease),
             box-shadow .4s var(--ease), transform .4s var(--ease);
}
.header__inner{
  max-width:calc(var(--content) + var(--gutter) * 2);
  margin-inline:auto;
  padding:24px var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.nav{ display:flex; gap:30px; }
.nav a{
  color:#fff; font-size:14px; position:relative; padding-bottom:3px;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:currentColor; transition:width .35s var(--ease);
}
.nav a:hover::after{ width:100%; }
.nav__booking{ display:none; }
.nav__contact{ display:none; }
.header__phone{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-end;
  flex:0 0 auto;
  padding:9px 15px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:999px;
  color:#fff;
  background:rgba(22,31,20,.28);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 28px rgba(12,18,11,.16);
  transition:background .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.header__phone span{
  align-self:stretch;
  text-align:center;
  font-size:8px;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.72;
}
.header__phone strong{ margin-top:4px; font-size:15px; line-height:1; letter-spacing:.035em; }
.header__phone:hover{ background:rgba(255,255,255,.16); border-color:#fff; transform:translateY(-2px); }

.header.is-stuck{
  background:rgba(30,35,33,.86);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(255,255,255,.07);
}
.header.is-hidden{ transform:translateY(-100%); }

.burger{ display:none; width:34px; height:34px; flex-direction:column;
         justify-content:center; align-items:flex-end; gap:6px; }
.burger span{ display:block; height:1.5px; background:#fff; border-radius:2px;
              transition:transform .3s var(--ease), width .3s var(--ease); }
.burger span:nth-child(1){ width:24px; }
.burger span:nth-child(2){ width:16px; }
.burger[aria-expanded="true"] span:nth-child(1){ width:24px; transform:translateY(3.75px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ width:24px; transform:translateY(-3.75px) rotate(-45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height:820px;
  height:100vh;
  max-height:1080px;
  overflow:hidden;
  isolation:isolate;
  background:#273229 url('assets/hero.webp') center/cover no-repeat;
}
.hero__bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:50% 50%;
  z-index:-2;
  animation:heroIn 1.6s var(--ease) both;
}
.hero__video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  background:transparent;
  filter:saturate(.94) contrast(1.03);
}
@keyframes heroIn{ from{ transform:scale(1.06); opacity:.4; } to{ transform:none; opacity:1; } }

.hero__scrim{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(20,24,22,.42) 0%, rgba(20,24,22,0) 22%),
    linear-gradient(0deg,  rgba(18,22,20,.55) 0%, rgba(18,22,20,0) 34%);
}

/* bottom content */
.hero__content{
  position:absolute; left:0; right:0; bottom:43px;
  max-width:calc(var(--content) + var(--gutter) * 2);
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:flex; align-items:flex-end; justify-content:space-between; gap:60px;
  z-index:2;
}
.hero__title{
  margin:0;
  font-family:var(--serif); font-weight:400;
  font-size:var(--h1); line-height:1.154;
  letter-spacing:.004em;
  color:#fff; text-transform:uppercase;
  animation:up 1s .35s var(--ease) both;
}
.hero__inline{
  display:inline-block; vertical-align:middle;
  width:1.615em; height:.8em; margin:0 .05em;
  border-radius:999px; overflow:hidden;
  transform:translateY(-.07em);
}
.hero__inline img{ width:100%; height:100%; object-fit:cover; }
.hero__lastline{ display:inline-flex; align-items:center; gap:26px; white-space:nowrap; }

.hero__aside{
  flex:0 0 361px; width:361px;
  margin-right:70px; margin-bottom:17px;
  display:flex; flex-direction:column; gap:34px;
  animation:up 1s .5s var(--ease) both;
}
.hero__aside p{
  margin:0; color:#fff; font-size:16px; line-height:1.44;
  letter-spacing:.002em;
}
@keyframes up{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }

/* =========================================================
   ABOUT
   ========================================================= */
.about{ padding:123px 0 0; }
.about__grid{
  display:grid;
  grid-template-columns:41.21% 34.31% 24.48%;
}
.about__c1{ display:flex; flex-direction:column; }
.about__img-a{ margin:136px 0 0; aspect-ratio:537 / 307; }
.about__img-a img{ width:100%; height:100%; object-fit:cover; }

.about__c2{ padding-top:180px; }
.about__lead{ margin:0; max-width:348px; font-size:13px; line-height:1.42; }
.about__marks{ margin:38px 0 0; padding-left:67px; }
.about__list{ margin:44px 0 0 14px; display:grid; gap:13px; }
.about__list li{ position:relative; margin:0; padding-left:24px; font-size:13px; color:var(--body); }
.about__list li::before{ content:""; position:absolute; left:0; top:.42em; width:9px; height:9px; border:1px solid var(--green); border-radius:50%; box-shadow:inset 0 0 0 2px var(--paper); background:var(--green); }
.about__marks .mark--bl{ margin:79px 0 0 14px; }
.about__tail{ margin:60px 0 0; padding-left:81px; max-width:349px; font-size:13px; line-height:1.42;
  box-sizing:content-box; width:268px; }

.about__c3{ display:flex; flex-direction:column; }
.about__img-b{ margin:0; aspect-ratio:319 / 489; }
.about__img-b img{ width:100%; height:100%; object-fit:cover; }
.about__c3 .btn-pair{ margin-top:126px; }

/* =========================================================
   FEATURED SUITES
   ========================================================= */
.suites{ padding:120px 0 0; }
.suites .h2--center{ margin-bottom:50px; }

.stage{ position:relative; }
.stage__frame{ position:relative; aspect-ratio:1303 / 652; }
.stage__bg{ position:absolute; inset:0; overflow:hidden; }
.stage__bg img{
  width:100%; height:100%; object-fit:cover;
  transition:opacity .5s var(--ease), transform .75s var(--ease);
}
.stage__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(24,32,28,.30) 0%, rgba(24,32,28,.12) 45%, rgba(24,32,28,.22) 100%);
}
.stage__head{
  position:absolute; left:0; right:0; top:0;
  padding-top:3.91%;
  display:flex; flex-direction:column; align-items:center;
  text-align:center; z-index:3;
}
.stage__head .dots{ margin-bottom:2.46%; }
.stage__title{
  margin:0;
  font-family:var(--serif); font-weight:400;
  font-size:82px; line-height:1; letter-spacing:.01em;
  color:#fff; text-transform:uppercase;
  text-shadow:0 2px 26px rgba(0,0,0,.22);
}
.stage__sub{
  margin:40px 0 0; color:#fff; font-size:19px; letter-spacing:.002em;
  text-shadow:0 1px 14px rgba(0,0,0,.28);
}
.stage__cta{
  margin-top:24px;
  padding-bottom:4px;
  border-bottom:1px solid rgba(255,255,255,.72);
  color:#fff;
  font-size:13px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.06em;
  transition:opacity .38s var(--ease), transform .5s var(--ease), border-color .3s var(--ease);
}
.stage__cta:hover{ border-color:transparent; }
.stage__title,
.stage__sub{ transition:opacity .38s var(--ease), transform .5s var(--ease); }
.stage__next{
  position:absolute; left:50%; top:57%; translate:-50% -50%;
  width:7.45%; aspect-ratio:1; border-radius:50%;
  background:#fff; color:var(--green);
  display:grid; place-items:center; z-index:5;
  transform:scale(1);
  transition:transform .35s var(--ease);
}
.stage__next .ic{
  width:22px; height:22px; stroke-width:1.5;
  transition:transform .35s var(--ease);
}
.stage__next:hover,
.stage__next:focus-visible{ transform:scale(1.12); }
.stage__next:hover .ic,
.stage__next:focus-visible .ic{ transform:scale(1.08); }
.stage__next:active{ transform:scale(1.05); }

@media (min-width:1025px){
  .stage__next{ top:64.5%; }
}

.stage__ph{ position:absolute; margin:0; z-index:4; overflow:hidden; }
.stage__ph img{
  width:100%; height:100%; object-fit:cover;
  transition:opacity .5s var(--ease), transform .7s var(--ease);
}
.stage.is-changing .stage__title,
.stage.is-changing .stage__sub,
.stage.is-changing .stage__cta{ opacity:0; transform:translateY(12px); }
.stage.is-changing .stage__bg img{ opacity:0; transform:scale(1.025); }
.stage.is-changing .stage__ph img{ opacity:0; transform:scale(.96); }
.stage__ph--l{ left:8.98%;  top:50.0%;  width:14.97%; aspect-ratio:195 / 246; }
.stage__ph--c{ left:34.92%; top:50.77%; width:30.01%; aspect-ratio:391 / 483; z-index:3; }
.stage__ph--r{ left:76.13%; top:50.77%; width:14.97%; aspect-ratio:195 / 240; }

/* =========================================================
   SERVICES & PRODUCTS
   ========================================================= */
/* top padding clears the suite stage's centre photo, which overflows its frame */
.services{ padding:277px 0 72px; }
.services .h2--center{ margin-bottom:64px; }

.services__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  column-gap:40px;
}
.service{ display:flex; flex-direction:column; align-items:flex-start; }
.service__media{
  margin:0 0 26px; width:100%;
  aspect-ratio:4 / 3; overflow:hidden;
}
.service__media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--ease);
}
.service:hover .service__media img{ transform:scale(1.05); }

.service__no{
  font-size:12px; color:var(--clay); letter-spacing:.01em;
  margin-bottom:12px;
}
.service__title{
  margin:0 0 16px;
  font-family:var(--serif); font-weight:400;
  font-size:21px; line-height:1.24; letter-spacing:.008em;
  text-transform:uppercase; color:var(--ink);
}
.service__copy{
  margin:0 0 24px; font-size:13px; line-height:1.42; color:var(--body);
}
.service__link{
  margin-top:auto;
  min-height:52px;
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  padding:0 24px;
  border:1px solid var(--green);
  border-radius:999px;
  background:transparent;
  font-size:13px; font-weight:500; color:var(--green);
  text-align:center;
  transition:background-color .35s var(--ease), color .35s var(--ease),
             transform .35s var(--ease), box-shadow .35s var(--ease);
}
.service__link .ic{
  width:16px; height:16px;
  transition:transform .35s var(--ease);
}
.service__link:hover,
.service__link:focus-visible{
  background:var(--green);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(75,91,51,.18);
}
.service__link:hover .ic,
.service__link:focus-visible .ic{ transform:translateX(4px); }
.service__link:active{ transform:translateY(0); box-shadow:none; }

/* =========================================================
   REVIEWS
   ========================================================= */
.reviews{ padding:150px 0 0; }
.reviews__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.reviews__body{ display:grid; grid-template-columns:28.9% 1fr; margin-top:36px; }
.reviews__label{ font-size:12px; color:var(--clay); letter-spacing:.01em; }
.reviews__quote{ display:flex; gap:46px; }
.reviews__quote blockquote{
  margin:0; max-width:690px;
  font-size:32px; line-height:1.406; color:var(--ink); letter-spacing:-.002em;
  /* Recenziile reale au lungimi foarte diferite. Înălțimea rezervată este a
     celei mai lungi (o fixează script.js), iar textele scurte se centrează în
     ea, ca rândul de sub citat să nu mai salte la fiecare rotire. */
  display:flex; align-items:center;
}
.reviews__quote .mark{ flex:0 0 13px; width:13px; height:15px; margin-top:2px; }

.reviews__foot{
  display:grid; align-items:center;
  grid-template-columns:28.9% 8.9% 1fr auto;
  margin-top:60px;
}
.stack{ display:flex; }
.stack img{
  width:62px; height:62px; border-radius:50%; object-fit:cover;
  border:2px solid var(--cream); margin-right:-4px;
}
.rating{ display:flex; align-items:center; gap:9px; font-size:13px; color:var(--ink); }
.star{ width:15px; height:15px; fill:var(--clay); }
.author{ display:flex; align-items:center; gap:14px; font-size:13px; color:var(--ink); }
.author img{ width:64px; height:64px; border-radius:50%; object-fit:cover; }
/* Monogram in locul fotografiei de profil: recenziile sunt reale, dar nu
   preluăm imaginile autorilor de pe serverele Google. */
.author__mono{
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  width:64px; height:64px; border-radius:50%;
  border:1px solid var(--sand);
  background:rgba(192,174,145,.18);
  font-family:var(--serif); font-size:20px; line-height:1; letter-spacing:.02em;
  color:var(--olive);
}
.author__id{ display:flex; flex-direction:column; gap:3px; }
.author__when{ color:var(--clay); }
.reviews__meta{ display:flex; flex-direction:column; gap:14px; align-self:start; padding-right:24px; }
.reviews__aggregate{ margin:0; max-width:22ch; font-size:13px; line-height:1.55; color:var(--ink); }
.reviews__aggregate a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
.reviews__aggregate-score{ font-family:var(--serif); font-size:20px; color:var(--olive); }
.reviews__quote blockquote,
.rating,
.author{
  opacity:1;
  transform:translateY(0);
  transition:opacity .38s var(--ease), transform .48s var(--ease);
}
.author img,
.author__mono{
  transform:scale(1);
  transition:opacity .38s var(--ease), transform .48s var(--ease);
}
.reviews.is-changing .reviews__quote blockquote,
.reviews.is-changing .rating,
.reviews.is-changing .author{
  opacity:0;
  transform:translateY(10px);
}
.reviews.is-changing .author img,
.reviews.is-changing .author__mono{
  opacity:0;
  transform:scale(.9);
}
.reviews__nav{ display:flex; align-items:center; gap:33px; }
.reviews__nav .dot{ background:var(--sand); }
.reviews__nav .dot.is-active{ background:var(--ink); }

/* =========================================================
   GALLERY
   ========================================================= */
.gallery{ padding:129px 0 30px; overflow:hidden; }
.gallery .h2--center{ margin-bottom:28px; }
.gallery__wrap{ position:relative; max-width:1440px; }
.gallery__strip{
  position:relative;
  height:700px;
  margin-top:0;
  perspective:1400px;
  touch-action:pan-y;
  user-select:none;
}
.gallery__strip.is-dragging{ cursor:grabbing; }
.gallery__it{
  --gallery-x:0;
  --gallery-r:0deg;
  --gallery-s:1;
  --gallery-y:0px;
  position:absolute;
  left:50%; top:34px;
  width:min(31vw, 390px);
  aspect-ratio:4 / 5;
  margin:0;
  overflow:hidden;
  opacity:1;
  border-radius:16px;
  box-shadow:0 22px 55px rgba(24,32,28,.16);
  transform:translateX(calc(-50% + var(--gallery-x))) translateY(var(--gallery-y)) rotate(var(--gallery-r)) scale(var(--gallery-s));
  transform-origin:50% 110%;
  transition:box-shadow .35s ease;
  will-change:transform;
  cursor:pointer;
}
.gallery__it img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--ease);
}
.gallery__it:hover{ box-shadow:0 30px 70px rgba(24,32,28,.24); }
.gallery__it:hover img{ transform:scale(1.045); }

.gallery__arrow{ position:absolute; top:50%; z-index:20; background:#fff; }
.gallery__arrow--prev{ left:var(--gutter); }
.gallery__arrow--next{ right:var(--gutter); }
.gallery__dots{
  position:absolute;
  left:50%; bottom:8px;
  z-index:20;
  display:flex;
  gap:8px;
  transform:translateX(-50%);
}
.gallery__dot{
  width:7px; height:7px;
  padding:0;
  border-radius:50%;
  background:rgba(30,42,26,.2);
  transition:transform .25s var(--ease), background .25s var(--ease);
}
.gallery__dot.is-active{ background:var(--ink); transform:scale(1.35); }

/* =========================================================
   FAQ
   native <details> so it works, and stays keyboard accessible,
   without JS; the script only adds exclusive opening
   ========================================================= */
.faq{ padding:150px 0 0; }
.faq__grid{
  display:grid;
  /* the heading is nowrap and vw-scaled, so it needs roughly 29% of the
     content width at every size - the column is set wider than that, with
     an explicit gap, so the two never touch */
  grid-template-columns:32.5% 1fr;
  column-gap:56px;
  align-items:start;
}
.faq__note{
  margin:34px 0 30px; max-width:300px;
  font-size:13px; line-height:1.42; color:var(--body);
}

.faq__item{
  border-top:1px solid var(--sand);
}
.faq__item:last-child{ border-bottom:1px solid var(--sand); }

.faq__q{
  display:flex; align-items:center; justify-content:space-between; gap:30px;
  padding:26px 0;
  font-family:var(--serif); font-weight:400;
  font-size:22px; line-height:1.3; letter-spacing:.008em;
  color:var(--ink); cursor:pointer;
  list-style:none;
  transition:color .3s var(--ease);
}
.faq__q::-webkit-details-marker{ display:none; }
.faq__q:hover{ color:var(--green); }
.faq__item[open] .faq__q{ color:var(--green); }
.faq__q:focus-visible{ outline:2px solid var(--green); outline-offset:4px; }

/* plus that becomes a minus when the row is open */
.faq__ico{ position:relative; flex:0 0 14px; width:14px; height:14px; }
.faq__ico::before,
.faq__ico::after{
  content:""; position:absolute; left:0; top:50%; width:100%; height:1.5px;
  background:currentColor; transform-origin:center;
  transition:transform .35s var(--ease);
}
.faq__ico::after{ transform:rotate(90deg); }
.faq__item[open] .faq__ico::after{ transform:rotate(0deg); }

.faq__a{
  padding:0 60px 28px 0;
  opacity:1;
  transform:translateY(0);
  transition:opacity .32s var(--ease), transform .4s var(--ease);
}
.faq__a p{ margin:0; font-size:13px; line-height:1.55; color:var(--body); max-width:640px; }
.faq__a a{ color:var(--green); border-bottom:1px solid currentColor; }
.faq__item.is-closing .faq__a{
  opacity:0;
  transform:translateY(-8px);
}

/* =========================================================
   ESCAPE
   ========================================================= */
.escape{ padding:131px 0 0; }
.escape__grid{
  display:grid;
  grid-template-columns:41.21% 9.14% 49.65%;
  align-items:start;
}
.escape__c1{ grid-column:1; }
.escape__copy{
  margin:67px 0 0; margin-left:159px; max-width:322px;
  font-size:13px; line-height:1.42;
}
.escape__c1 .btn-pair{ margin-top:73px; }
.escape__img-a{ margin:93px 0 0; aspect-ratio:537 / 323; overflow:hidden; }
.escape__img-a img{ width:100%; height:100%; object-fit:cover; }
.escape__img-b{
  grid-column:3; margin:15px 0 0; aspect-ratio:647 / 811; overflow:hidden;
}
.escape__img-b img{ width:100%; height:100%; object-fit:cover; }

/* =========================================================
   LOCATION
   ========================================================= */
.location{
  margin-top:145px;
  padding:110px 0;
  background:#eef0e7;
}
.location__grid{
  display:grid;
  grid-template-columns:minmax(280px, .72fr) minmax(480px, 1.28fr);
  gap:clamp(48px, 7vw, 112px);
  align-items:center;
}
.location__intro{ max-width:470px; }
.location__intro .section-title{ margin-top:28px; }
.location__intro > p{
  max-width:420px;
  margin:32px 0 0;
  font-size:14px;
  line-height:1.7;
}
.location__details{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin:42px 0 36px;
  padding-top:24px;
  border-top:1px solid rgba(30,42,26,.2);
}
.location__details dt{
  margin-bottom:8px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--olive);
}
.location__details dd{ margin:0; font-size:13px; line-height:1.55; }
.location__map{
  min-height:520px;
  overflow:hidden;
  background:#d9ddcf;
}
.location__map iframe{ display:block; width:100%; height:520px; filter:saturate(.72) contrast(.94); }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{
  margin-top:0;
  background:var(--ink);
  color:#fff;
  padding-top:54px;
  overflow:hidden;
  position:relative;
  isolation:isolate;
}
.footer::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  background-image:url("assets/footer-spruces.svg");
  background-repeat:repeat-x;
  background-size:920px auto;
  background-position:center bottom;
  opacity:.1;
  pointer-events:none;
}
.footer > *{
  position:relative;
  z-index:1;
}
.footer__grid{
  display:grid;
  /* last column widened vs. the comp: the Romanian legal labels are longer
     than the English ones and were wrapping awkwardly */
  grid-template-columns:34% 20% 14% 16% 16%;
  padding-bottom:20px;
}
.logo--light{ margin-bottom:18px; }
.footer__tagline{
  margin:0 0 26px; font-size:13px; color:rgba(251,251,240,.6);
  letter-spacing:.01em;
}
.footer__social li{ margin-bottom:14px; }
.footer__social a{ font-size:13px; color:rgba(251,251,240,.78); transition:color .3s var(--ease); }
.footer__social a:hover{ color:var(--cream); }

.footer__col h4{
  margin:8px 0 25px;
  font-size:13px; font-weight:700; letter-spacing:.02em;
  text-transform:uppercase; color:var(--cream);
}
.footer__col li{ margin-bottom:14px; }
.footer__col a{ font-size:13px; color:rgba(251,251,240,.72); transition:color .3s var(--ease); }
.footer__col a:hover{ color:var(--cream); }
.footer__legal button{ padding:0; color:rgba(251,251,240,.72); font:inherit; font-size:13px; text-align:left; }
.footer__legal button:hover{ color:var(--cream); }
.field--check a{ color:var(--green); text-decoration:underline; text-underline-offset:2px; }
.footer__col .footer__phone{
  display:inline-block;
  font-family:"Cormorant Garamond", serif;
  font-size:27px;
  line-height:1;
  letter-spacing:.025em;
  color:var(--cream);
}
.footer__addr{ font-size:13px; line-height:1.32; color:rgba(251,251,240,.72); margin-top:18px; }
.footer__addr a{ line-height:1.32; }
.footer__sound{ width:100%; max-width:220px; min-width:0; padding-right:clamp(0px,2vw,20px); }
.footer__sound p{ margin:13px 0 0; font-size:11px; line-height:1.5; color:rgba(251,251,240,.52); }
.sound-toggle{ display:flex; align-items:center; gap:10px; color:rgba(251,251,240,.82); font-size:13px; cursor:pointer; }
.sound-toggle input{ width:17px; height:17px; accent-color:var(--clay); }
.sound-volume{ display:grid; gap:8px; margin-top:18px; color:rgba(251,251,240,.72); font-size:12px; }
.sound-volume span{ display:flex; justify-content:space-between; gap:14px; }
.sound-volume input{ display:block; width:100%; min-width:0; margin:0; accent-color:var(--clay); cursor:pointer; }
.sound-volume input:disabled{ opacity:.4; cursor:not-allowed; }

/* oversized wordmark, cropped by the page edge as in the comp */
.footer__mark{
  overflow:hidden;
  padding-inline:var(--gutter);
  max-width:calc(var(--content) + var(--gutter) * 2);
  margin-inline:auto;
  height:188px;
}
.footer__mark img{ width:100%; height:auto; display:block; }

/* =========================================================
   BOOKING MODAL
   ========================================================= */
.modal{
  border:0; padding:0; background:transparent;
  width:min(760px, calc(100vw - 40px));
  max-width:none; max-height:calc(100vh - 40px);
  overflow:visible;
  color:var(--ink);
}
.modal::backdrop{
  background:rgba(20,28,17,.62);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
.modal[open]{ animation:modalIn .34s var(--ease) both; }
.modal[open]::backdrop{ animation:fadeIn .34s var(--ease) both; }
@keyframes modalIn{ from{ opacity:0; transform:translateY(18px) scale(.985); } to{ opacity:1; transform:none; } }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }

.modal__panel{
  position:relative;
  background:var(--cream);
  padding:52px 56px 46px;
  max-height:calc(100vh - 40px);
  overflow-y:auto;
}
.modal__close{
  position:absolute; top:22px; right:22px;
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center; color:var(--ink);
  transition:background .3s var(--ease);
}
.modal__close svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; }
.modal__close:hover{ background:rgba(30,42,26,.07); }

.modal__eyebrow{ display:block; font-size:12px; color:var(--clay); margin-bottom:14px; }
.modal__title{
  margin:0 0 12px;
  font-family:var(--serif); font-weight:400;
  font-size:40px; line-height:1.1; letter-spacing:.005em;
  text-transform:uppercase; color:var(--ink);
}
.modal__lead{ margin:0 0 34px; font-size:13px; line-height:1.5; color:var(--body); max-width:420px; }

.field-grid{
  display:grid; grid-template-columns:1fr 1fr;
  column-gap:28px; row-gap:22px;
}
.field{ margin:0; display:flex; flex-direction:column; gap:7px; }
.field--wide{ grid-column:1 / -1; }
.field label{ font-size:12px; color:var(--body); letter-spacing:.01em; }
.field__opt{ color:var(--muted); }
.field input,
.field select,
.field textarea{
  font:inherit; font-size:14px; color:var(--ink);
  background:transparent;
  border:0; border-bottom:1px solid var(--sand);
  border-radius:0;
  padding:8px 0;
  transition:border-color .3s var(--ease);
}
.field textarea{ resize:vertical; min-height:64px; }
.field select{ appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),
                   linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 10px) 17px, calc(100% - 5px) 17px;
  background-size:5px 5px, 5px 5px; background-repeat:no-repeat;
  padding-right:26px;
}
.field input:focus,
.field select:focus,
.field textarea:focus{ outline:none; border-bottom-color:var(--green); }
.field input::placeholder,
.field textarea::placeholder{ color:var(--muted); }
.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea{ border-bottom-color:#B4472F; }

.field--check{ flex-direction:row; align-items:flex-start; gap:12px; margin-top:4px; }
.field--check input{ width:17px; height:17px; flex:0 0 17px; margin-top:1px;
  accent-color:var(--green); border-bottom:0; cursor:pointer; }
.field--check label{ font-size:12px; line-height:1.45; cursor:pointer; }
.field--check.is-invalid label{ color:#B4472F; }

.modal__error{
  margin:20px 0 0; font-size:13px; color:#B4472F;
}
.modal__error a{ color:inherit; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.field--trap{ position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.modal__actions{
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  margin-top:32px;
}
.modal__actions .btn:disabled{ cursor:wait; opacity:.68; transform:none; }
.modal__actions .btn.is-loading::after{
  content:"";
  width:14px;
  height:14px;
  margin-left:10px;
  border:1.5px solid rgba(255,255,255,.42);
  border-top-color:#fff;
  border-radius:50%;
  animation:bookingSpin .7s linear infinite;
}
@keyframes bookingSpin{ to{ transform:rotate(360deg); } }
.modal__call{ font-size:13px; color:var(--body); border-bottom:1px solid var(--sand); }
.modal__call:hover{ color:var(--ink); border-bottom-color:var(--ink); }

/* confirmation state, swapped in after a successful hand-off */
.modal__done{ text-align:left; }
.modal__done .modal__title{ margin-bottom:14px; }
body.modal-open{ overflow:hidden; }

@media (max-width:640px){
  .modal__panel{ padding:44px 22px 34px; }
  .modal__title{ font-size:30px; }
  .field-grid{ grid-template-columns:1fr; row-gap:20px; }
  .modal__close{ top:12px; right:12px; }
}

/* ---------- scroll reveal ---------- */
.reveal{ opacity:0; transform:translateY(34px); }
.reveal.is-in{ opacity:1; transform:none; transition:opacity 1s var(--ease), transform 1s var(--ease); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1360px){
  :root{ --h1:4.72vw; --h2:4.5vw; --h2-s:4.58vw; }
  .stage__title{ font-size:5.86vw; }
  .footer__mark{ font-size:25.9vw; }
  .hero__inline{ width:7.6vw; height:3.75vw; }
  .reviews__quote blockquote{ font-size:2.2vw; }
}

@media (max-width:1024px){
  :root{ --gutter:32px; --h1:7vw; --h2:6.4vw; --h2-s:6vw; }
  .nav{
    position:fixed;
    inset:0;
    z-index:-1;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:10px;
    padding:120px max(var(--gutter), calc((100vw - 760px) / 2)) 48px;
    background:
      linear-gradient(180deg, rgba(16,25,14,.88), rgba(20,31,17,.97)),
      url("assets/hero.webp") center / cover;
    visibility:hidden;
    opacity:0;
    transform:translateY(-20px);
    pointer-events:none;
    transition:opacity .48s var(--ease), transform .58s var(--ease), visibility 0s linear .58s;
  }
  .nav::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, rgba(30,42,26,.25), transparent 65%);
    pointer-events:none;
  }
  .nav a{
    position:relative;
    z-index:1;
    font-family:var(--serif);
    font-size:clamp(38px, 7vw, 68px);
    line-height:1.04;
    font-weight:400;
    opacity:0;
    transform:translateY(24px);
    transition:opacity .38s var(--ease), transform .48s var(--ease), color .3s var(--ease);
  }
  .nav a::before{
    content:"";
    position:absolute;
    left:-26px;
    top:50%;
    width:14px;
    height:1px;
    background:var(--cream);
    opacity:0;
    transform:translate(-10px,-50%);
    transition:opacity .3s var(--ease), transform .38s var(--ease), width .38s var(--ease);
  }
  .nav a::after{
    display:block;
    width:100%;
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .4s var(--ease);
  }
  .nav.is-open a:hover,
  .nav.is-open a:focus-visible{
    color:var(--cream);
    transform:translateX(14px);
  }
  .nav a:hover::before,
  .nav a:focus-visible::before{
    width:20px;
    opacity:1;
    transform:translate(0,-50%);
  }
  .nav a:hover::after,
  .nav a:focus-visible::after{
    transform:scaleX(1);
    transform-origin:left;
  }
  .nav a:focus-visible{ outline:none; }
  .nav.is-open a:active{ transform:translateX(8px) scale(.98); }
  .nav.is-open{
    visibility:visible;
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
    transition-delay:0s;
  }
  .nav.is-open a{ opacity:1; transform:translateY(0); }
  .nav.is-open a:nth-child(1){ transition-delay:.10s; }
  .nav.is-open a:nth-child(2){ transition-delay:.14s; }
  .nav.is-open a:nth-child(3){ transition-delay:.18s; }
  .nav.is-open a:nth-child(4){ transition-delay:.22s; }
  .nav.is-open a:nth-child(5){ transition-delay:.26s; }
  .nav.is-open a:nth-child(6){ transition-delay:.30s; }
  .nav.is-open .nav__booking{
    transition-delay:0s;
    transition-duration:.16s;
  }
  .nav__contact{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:22px;
    padding-top:18px;
    width:min(420px, 100%);
    border-top:1px solid rgba(251,251,240,.2);
    opacity:0;
    transform:translateY(16px);
    transition:opacity .3s var(--ease), transform .38s var(--ease);
  }
  .nav.is-open .nav__contact{
    opacity:1;
    transform:translateY(0);
    transition-delay:.18s;
  }
  .nav .nav__contact a{
    padding:0;
    font-family:var(--sans);
    font-size:13px;
    line-height:1.4;
    letter-spacing:.02em;
    color:rgba(251,251,240,.72);
    transform:none;
    transition:color .16s var(--ease);
  }
  .nav .nav__contact a::before,
  .nav .nav__contact a::after{ display:none; }
  .nav .nav__contact-link{ color:var(--cream); }
  .nav__social{ display:flex; align-items:center; gap:22px; }
  .nav.is-open .nav__contact a:hover,
  .nav.is-open .nav__contact a:focus-visible{
    color:var(--cream);
    transform:none;
  }
  .nav .nav__booking{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:54px;
    margin-top:28px;
    padding:0 30px;
    border:1px solid rgba(251,251,240,.72);
    border-radius:999px;
    font-family:var(--sans);
    font-size:14px;
    text-transform:uppercase;
    letter-spacing:.06em;
  }
  .nav .nav__booking::before,
  .nav .nav__booking::after{ display:none; }
  .nav.is-open .nav__booking:hover,
  .nav.is-open .nav__booking:focus-visible{
    background:var(--cream);
    color:var(--ink);
    border-color:var(--cream);
    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(0,0,0,.18);
  }
  .nav.is-open .nav__booking:active{ transform:translateY(0) scale(.98); }

  @media (hover:none){
    .nav.is-open a:hover{ transform:translateY(0); }
    .nav a:hover::before{ opacity:0; }
    .nav a:hover::after{ transform:scaleX(0); }
    .nav.is-open a:active{ color:var(--cream); transform:translateX(8px) scale(.98); }
    .nav.is-open .nav__booking:hover{ background:transparent; color:#fff; box-shadow:none; }
    .nav.is-open .nav__booking:active{ background:var(--cream); color:var(--ink); }
  }
  .burger{ display:flex; position:relative; z-index:2; }
  body.menu-open{ overflow:hidden; }
  body.menu-open .header{
    inset:0;
    height:100dvh;
    transform:none;
    transition:none;
  }
  body.menu-open .header__inner{ transform:none !important; }
  body.menu-open .nav{ height:100dvh; min-height:100dvh; }
  .header .btn--glass{ display:none; }
  .header__phone{ display:none; }

  .hero{ min-height:700px; }
  /* the column flips align-items to the horizontal axis - keep copy flush left */
  .hero__content{ flex-direction:column; align-items:flex-start; gap:34px; bottom:40px; }
  .hero__aside{ flex:0 0 auto; width:100%; max-width:480px; gap:26px;
                margin-right:0; margin-bottom:0; }
  .hero__lastline{ flex-wrap:wrap; white-space:normal; gap:18px; }

  .about{ padding-top:80px; }
  .about__grid{ grid-template-columns:1fr 1fr; gap:0 40px; }
  .about__c1{ grid-column:1 / -1; }
  .about__img-a{ margin-top:56px; }
  .about__c2{ padding-top:56px; }
  .about__marks{ padding-left:0; }
  .about__tail{ padding-left:0; width:auto; max-width:100%; }
  .about__list{ margin-left:0; }
  .about__marks .mark--bl{ margin-left:0; }
  .about__c3{ padding-top:56px; }
  .about__c3 .btn-pair{ margin-top:40px; justify-content:flex-start; }

  .suites{ padding-top:90px; }
  .suites .h2--center{ margin-bottom:60px; }
  /* the stage keeps its design geometry at every width so the composition
     of overlapping plates stays intact; the copy moves out of the image */
  .stage{ display:flex; flex-direction:column; }
  .stage__head{ position:static; padding:0 0 26px; order:-1; }
  .stage__title{ color:var(--ink); text-shadow:none; font-size:7vw; }
  .stage__sub{ color:var(--body); text-shadow:none; font-size:14px; margin-top:14px; }
  .stage__cta{ color:var(--green); border-color:currentColor; }
  .stage__head .dot{ background:#DCDEDB; }
  .stage__head .dot.is-active{ background:var(--ink); }
  .stage__next .ic{ width:14px; height:14px; }

  .services{ padding-top:180px; }
  .services .h2--center{ margin-bottom:44px; }
  .services__grid{ column-gap:26px; }
  .service__title{ font-size:18px; }
  .service__media{ margin-bottom:20px; }

  .reviews{ padding-top:120px; }
  .reviews__top{ flex-direction:column; gap:28px; }
  .reviews__body{ grid-template-columns:1fr; gap:20px; margin-top:36px; }
  .reviews__meta{ padding-right:0; }
  .reviews__aggregate{ max-width:none; }
  .reviews__quote{ gap:20px; }
  .reviews__quote blockquote{ font-size:22px; }
  .reviews__foot{ grid-template-columns:1fr 1fr; gap:26px; margin-top:44px; }
  .reviews__nav{ justify-content:flex-end; }

  .faq{ padding-top:100px; }
  .faq__grid{ grid-template-columns:1fr; }
  .faq__note{ margin-top:24px; max-width:460px; }
  .faq__list{ margin-top:44px; }
  .faq__q{ font-size:19px; padding:22px 0; }
  .faq__a{ padding-right:0; }

  .gallery{ padding-top:100px; }
  .gallery__strip{ height:590px; }
  .gallery__it{ width:min(42vw, 330px); }
  .gallery__arrow{ display:grid; }

  .escape{ padding-top:100px; }
  .escape__grid{ grid-template-columns:1fr; gap:40px; }
  .escape__img-b{ grid-column:1; order:2; }
  .escape__copy{ margin:36px 0 0; }
  .escape__c1 .btn-pair{ margin-top:36px; }
  .escape__img-a{ margin-top:40px; }

  .location{ margin-top:90px; padding:80px 0; }
  .location__grid{ grid-template-columns:1fr; gap:48px; }
  .location__intro{ max-width:600px; }
  .location__map, .location__map iframe{ min-height:460px; height:460px; }

  .footer{ margin-top:0; }
  .footer::before{
    background-size:780px auto;
    background-position:center bottom;
  }
  .footer__grid{ grid-template-columns:1fr 1fr; gap:44px 24px; }
}

/* ---------- phone: follows mobile-version.png (430px reference) ---------- */
@media (max-width:768px){
  :root{ --gutter:20px; --h1:7.45vw; --h2:7.7vw; --h2-s:7.7vw; }

  .wide-only{ display:none; }

  .btn{ height:50px; padding:0 34px; font-size:16px; }
  .btn--light{ padding:0 30px; }
  .btn-circle{ width:47px; height:47px; flex-basis:47px; }
  .btn-circle--line{ width:52px; height:52px; flex-basis:52px; }
  .ic{ width:20px; height:20px; }

  /* header */
  .header__inner{ padding:30px var(--gutter); }
  .logo{ gap:11px; }
  .logo__mark{ height:38px; }
  .logo__word{ height:13.5px; }
  .burger{
    width:54px; height:54px; border-radius:50%;
    background:rgba(255,255,255,.16);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    align-items:center; gap:7px;
  }
  .burger span:nth-child(1),
  .burger span:nth-child(2){ width:24px; }
  .nav{
    justify-content:flex-start;
    gap:6px;
    padding-top:112px;
    padding-bottom:32px;
    overflow-y:auto;
  }
  .nav a{ font-size:clamp(34px, 10vw, 46px); }
  .nav .nav__booking{ flex:0 0 52px; margin-top:20px; font-size:13px; }

  /* hero — no video card, no ghost button */
  .hero{ min-height:640px; }
  .hero__bg{ object-position:61% 50%; }
  .hero__scrim{
    background:
      linear-gradient(180deg, rgba(20,24,22,.34) 0%, rgba(20,24,22,0) 26%),
      linear-gradient(0deg,  rgba(18,22,20,.60) 0%, rgba(18,22,20,0) 46%);
  }
  .hero__content{ bottom:32px; gap:22px; }
  .hero__title{ line-height:1.15; }
  .hero__lastline .btn--ghost{ display:none; }
  .hero__aside{ gap:24px; max-width:none; }
  .hero__aside p{ font-size:15px; line-height:1.45; }

  .about__grid{ grid-template-columns:1fr; }

  .location{ margin-top:72px; padding:64px 0; }
  .location__intro .section-title{ margin-top:20px; }
  .location__intro > p{ margin-top:24px; }
  .location__details{ grid-template-columns:1fr; margin:32px 0; }
  .location__map, .location__map iframe{ min-height:390px; height:390px; }

  .faq{ padding-top:90px; }
  .faq__q{ font-size:17px; gap:20px; }

  .services{ padding-top:130px; }
  .services__grid{ grid-template-columns:1fr; row-gap:56px; }
  .service__title{ font-size:20px; }
  .service__media{ aspect-ratio:3 / 2; }

  .stage__title{ font-size:8.4vw; }
  .stage__sub{ font-size:13px; }
  .stage__next .ic{ width:10px; height:10px; }

  .reviews{ padding-top:190px; }
  .reviews__quote blockquote{ font-size:18px; line-height:1.45; }
  .reviews__foot{ grid-template-columns:1fr; }
  .stack img{ width:48px; height:48px; }
  .author img{ width:48px; height:48px; }
  .author__mono{ width:48px; height:48px; font-size:16px; }

  /* gallery — compact fan carousel with peeking neighbours */
  .gallery .h2--center{ margin-bottom:41px; }
  .gallery__strip{
    height:480px;
    margin:-20px calc(var(--gutter) * -1) 0;
  }
  .gallery__it{
    width:58vw;
    max-width:270px;
    top:28px;
  }
  .gallery__arrow{ top:auto; bottom:0; }
  .gallery__dots{ bottom:18px; }

  /* escape — copy and button indented from the heading */
  .escape{ padding-top:76px; }
  .escape__copy{ margin:36px 0 0 33px; font-size:13.5px; line-height:1.5; max-width:none; }
  .escape__c1 .btn-pair{ margin-top:44px; margin-left:33px; }

  .footer__grid{ grid-template-columns:1fr; gap:34px; }
  .footer::before{
    background-size:620px auto;
    background-position:center bottom;
  }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important;
                        transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
  .hero__video{ display:none; }
}

/* Tariffs and ATV routes */
.tariffs{padding:72px 0 150px;background:#eef0e7;color:var(--ink)}
.tariffs__head{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:72px}
.tariffs__head .section-label{grid-column:1/-1;margin-bottom:20px;font-size:12px;color:var(--olive)}
.tariffs__head p{max-width:380px;justify-self:end;font-size:13px;line-height:1.65;color:var(--body)}
.gazebo-price{display:grid;grid-template-columns:1.1fr .85fr 1fr 1fr;gap:42px;padding:48px 0;border-top:1px solid rgba(30,42,26,.25);border-bottom:1px solid rgba(30,42,26,.25)}
.gazebo-price h3,.route-card h3{font-family:var(--display);font-weight:500;letter-spacing:-.035em}
.gazebo-price h3{font-size:54px;margin:16px 0}.gazebo-price p{font-size:13px;line-height:1.6}
.tariff-no{font-size:12px;color:var(--olive)}
.price-pair strong{display:block;font-family:var(--display);font-size:36px;font-weight:500;line-height:1}
.price-pair strong small{font-family:var(--sans);font-size:11px;text-transform:uppercase}
.price-pair p > span{display:block;margin-top:7px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.gazebo-price h4{margin:0 0 16px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.gazebo-price ul{list-style:none;margin:0;padding:0;font-size:12px;line-height:2}
.gazebo-price__media{position:relative;grid-column:1/-1;margin:4px 0 0;overflow:hidden;aspect-ratio:16/6;background:var(--pine)}
.gazebo-price__media img{width:100%;height:100%;object-fit:cover;object-position:center 58%;transition:transform 1s var(--ease),filter 1s var(--ease)}
.gazebo-price__media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(20,28,17,.58));pointer-events:none}
.gazebo-price__media figcaption{position:absolute;z-index:1;left:28px;bottom:27px;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.gazebo-price__media>.btn{position:absolute;z-index:2;right:24px;bottom:20px;min-width:176px}
.gazebo-price:hover .gazebo-price__media img{transform:scale(1.025);filter:saturate(1.04)}
.routes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:70px;background:rgba(30,42,26,.2)}
.route-card{min-height:680px;padding:30px;background:var(--cream);display:flex;flex-direction:column}
.route-card h3{font-size:39px;line-height:.95;margin:18px 0}
.route-card>p{margin:0;font-size:12px;line-height:1.58;color:var(--body)}
.route-card--dark{position:relative;isolation:isolate;background:var(--pine);color:var(--cream)}
.route-card--dark>p{color:rgba(251,251,240,.72)}.route-card--dark .tariff-no{color:var(--sand)}
.route-card--dust{position:relative;isolation:isolate;overflow:hidden}
.route-card--dust::after{content:"";position:absolute;z-index:1;left:-15%;right:-15%;bottom:-16%;height:46%;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 48% 100%,rgba(177,145,98,.2),rgba(203,180,139,.08) 42%,transparent 72%);transform:translate3d(-8%,18%,0) scale(.86);transition:opacity .5s ease,transform 1.25s cubic-bezier(.22,1,.36,1)}
.route-card--dust.is-dust-active::after{opacity:1;transform:translate3d(7%,0,0) scale(1.08)}
.route-card--dust>*{position:relative;z-index:2}
.route-card--water{position:relative;isolation:isolate;overflow:hidden}
.route-card--water::after{content:"";position:absolute;z-index:1;inset:-20%;pointer-events:none;opacity:0;background:linear-gradient(112deg,transparent 32%,rgba(156,196,197,.16) 44%,rgba(255,255,255,.34) 49%,rgba(156,196,197,.12) 55%,transparent 68%);transform:translate3d(-35%,12%,0) rotate(-4deg);transition:opacity .55s ease,transform 1.25s cubic-bezier(.22,1,.36,1)}
.route-card--water.is-water-active::after{opacity:1;transform:translate3d(34%,-9%,0) rotate(-4deg)}
.route-card--water>*{position:relative;z-index:2}
.route-fx-canvas{position:absolute!important;z-index:4!important;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .42s ease;will-change:opacity}
.route-card.is-fx-active .route-fx-canvas{opacity:1}
.route-map figcaption{z-index:2}
.route-butterfly{position:absolute;z-index:6;left:0;top:0;width:17px;height:14px;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(10,16,8,.26));will-change:transform,opacity}
.route-butterfly svg{display:block;width:100%;height:100%;overflow:visible;will-change:transform}
.route-butterfly .wing{fill:#d8c49e;stroke:#fbfbf0;stroke-width:.8}
.route-butterfly .body{fill:#fbfbf0}
.route-map{position:relative;margin:18px 0 0;overflow:hidden;background:var(--pine)}
.route-map img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .9s var(--ease),filter .9s var(--ease)}
.route-map::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(17,25,14,.68));pointer-events:none}
.route-map figcaption{position:absolute;z-index:1;left:14px;right:14px;bottom:11px;color:#fff;font-size:8px;line-height:1.35;text-transform:uppercase;letter-spacing:.055em}
.route-card:hover .route-map img{transform:scale(1.035);filter:saturate(1.06)}
.route-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.route-prices strong{font-family:var(--display);font-size:22px;font-weight:500;line-height:1.05}
.route-prices small{display:block;font-family:var(--sans);font-size:10px;text-transform:uppercase}
.route-prices--request{grid-template-columns:1fr}
.route-prices--request strong{font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.07em}
.route-card__foot{margin-top:auto;padding-top:18px;border-top:1px solid currentColor;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:10px;text-transform:uppercase}
.route-card__foot a{min-height:44px;display:inline-flex;align-items:center;font-weight:600}
@media(max-width:900px){.tariffs{padding:64px 0 110px}.tariffs__head{display:block}.tariffs__head p{margin-top:24px}.gazebo-price{grid-template-columns:1fr 1fr}.gazebo-price__media{grid-column:1/-1;aspect-ratio:16/7}.routes-grid{grid-template-columns:1fr}.route-card{min-height:0}.route-map img{aspect-ratio:16/7}}
@media(max-width:560px){.tariffs{padding:52px 0 80px}.gazebo-price{grid-template-columns:1fr;gap:28px}.gazebo-price__media{grid-column:1;aspect-ratio:4/5}.gazebo-price__media img{object-position:58% center}.gazebo-price__media figcaption{left:18px;right:18px;bottom:82px}.gazebo-price__media>.btn{left:18px;right:18px;bottom:18px;width:auto}.routes-grid{margin-top:48px}.route-card{padding:28px 22px}.route-card h3{font-size:34px}.route-map img{aspect-ratio:16/9}}
@media(max-width:900px){.services{padding-bottom:64px}}
@media(max-width:560px){.services{padding-bottom:52px}}

/* Marketing conversion layer */
.trust-strip{background:var(--pine);color:var(--cream);border-top:1px solid rgba(251,251,240,.16)}
.trust-strip__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-strip__grid>div{position:relative;min-height:122px;padding:28px 30px 26px;border-left:1px solid rgba(251,251,240,.14);display:flex;flex-direction:column;justify-content:center}
.trust-strip__grid>div:last-child{border-right:1px solid rgba(251,251,240,.14)}
.trust-strip__no{position:absolute;right:18px;top:15px;font-size:9px;letter-spacing:.12em;color:var(--sand)}
.trust-strip strong{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.05}
.trust-strip small{margin-top:8px;font-size:10px;line-height:1.4;color:rgba(251,251,240,.64)}

.route-flow{list-style:none;margin:18px 0 0;padding:15px 0 0;border-top:1px solid rgba(30,42,26,.18);display:grid;grid-template-columns:repeat(4,1fr);gap:5px;counter-reset:route-step}
.route-flow li{position:relative;padding-top:18px;font-size:9px;line-height:1.25;text-transform:uppercase;letter-spacing:.055em;counter-increment:route-step}
.route-flow li::before{content:'';position:absolute;left:0;top:2px;width:7px;height:7px;border:1px solid currentColor;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px var(--cream)}
.route-flow li:not(:last-child)::after{content:'';position:absolute;left:7px;right:-5px;top:5px;border-top:1px solid currentColor;opacity:.35}
.route-card--dark .route-flow{border-top-color:rgba(251,251,240,.22)}
.route-card--dark .route-flow li::before{box-shadow:0 0 0 4px var(--pine)}

.mobile-booking{position:fixed;z-index:85;right:24px;bottom:24px;width:58px;height:58px;padding:5px;display:grid;grid-template-columns:1fr;gap:0;border:1px solid rgba(255,255,255,.4);border-radius:19px;background:rgba(30,42,26,.9);box-shadow:0 20px 54px rgba(20,28,17,.26);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px);transition:width .42s var(--ease),opacity .35s var(--ease),transform .42s var(--ease),visibility 0s linear .42s}
.mobile-booking.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
.mobile-booking.is-expanded{width:178px;grid-template-columns:1fr;gap:0}
.mobile-booking__toggle{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--cream);color:var(--pine)}
.mobile-booking__toggle .ic{width:19px;height:19px}
.mobile-booking.is-expanded .mobile-booking__toggle{display:none}
.mobile-booking a{min-width:0;min-height:52px;border-radius:13px;display:flex;align-items:center;justify-content:center;text-align:center;transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.mobile-booking:not(.is-expanded) a{display:none}
.mobile-booking__call{flex-direction:column;color:var(--cream);font-size:8px;text-transform:uppercase;letter-spacing:.08em}
.mobile-booking__call strong{margin-top:3px;font-size:13px;letter-spacing:.02em}
.mobile-booking__cta{padding:0 14px;background:var(--cream);color:var(--pine);font-size:10px;font-weight:600;line-height:1.25}
.mobile-booking a:hover,.mobile-booking a:focus-visible{transform:translateY(-2px)}
.mobile-booking__call:hover,.mobile-booking__call:focus-visible{background:rgba(255,255,255,.1)}
.mobile-booking__cta:hover,.mobile-booking__cta:focus-visible{background:#fff}

@media(max-width:900px){
  .trust-strip__grid{grid-template-columns:repeat(2,1fr)}
  .trust-strip__grid>div:nth-child(3){border-top:1px solid rgba(251,251,240,.14)}
  .trust-strip__grid>div:nth-child(4){border-top:1px solid rgba(251,251,240,.14)}
}

@media(max-width:768px){
  body{padding-bottom:76px}
  .trust-strip__grid{padding-inline:0}
  .trust-strip__grid>div{min-height:104px;padding:22px 20px}
  .trust-strip strong{font-size:20px}
  .trust-strip small{font-size:9px}
  .mobile-booking,.mobile-booking.is-expanded{left:10px;right:10px;bottom:10px;width:auto;height:58px;padding:5px;grid-template-columns:1fr;gap:0;border-radius:18px;box-shadow:0 16px 44px rgba(20,28,17,.32)}
  .mobile-booking__toggle{display:none}
  .mobile-booking:not(.is-expanded) a{display:flex}
  .mobile-booking a{min-height:48px}
  .mobile-booking__cta{padding:0 12px;font-size:11px;line-height:1.2}
}

@media(max-width:430px){
  .trust-strip__grid{grid-template-columns:1fr 1fr}
  .trust-strip__no{right:12px;top:12px}
  .route-flow{gap:3px}
  .route-flow li{font-size:8px;letter-spacing:0}
}

/* =========================================================
   MASKED LINE REVEALS  ·  COUNT-UP  ·  GALLERY LIGHTBOX
   ========================================================= */

/* ---------- shared utility ---------- */
.sr-only{
  position:absolute; width:1px; height:1px;
  margin:-1px; padding:0; border:0;
  clip-path:inset(50%); overflow:hidden; white-space:nowrap;
}

/* ---------- masked line reveals on the display headings ----------
   script.js splits every .h2 on its <br> into .line / .line__i pairs and
   animates the inner span up from behind the mask. The hidden start state
   is set by script, never here, so the headings stay readable when the
   split never runs. The mask is grown .16em past the line box and pulled
   back by the same amount, otherwise it would shear the descenders off
   the comma-below diacritics in Ș, Ț and ț. */
.h2 .line{
  display:block;
  overflow:hidden;
  padding-bottom:.16em;
  margin-bottom:-.16em;
}
.h2 .line__i{ display:block; }
/* The hidden state hangs off .h2--split, which only script adds. A heading
   that was never split therefore never starts out invisible. */
.h2--split .line__i{
  transform:translateY(112%);
  opacity:0;
  transition:transform .95s var(--ease), opacity .62s var(--ease);
  transition-delay:calc(var(--i, 0) * 90ms);
}
.h2--split.is-revealed .line__i{ transform:none; opacity:1; }
@media (prefers-reduced-motion:reduce){
  .h2--split .line__i{ transform:none; opacity:1; }
}

/* ---------- count-up figures ----------
   The final value is already in the markup; script counts toward it. The
   width is pinned from the finished figure so the surrounding copy cannot
   reflow as the digits change. Deliberately not tabular-nums: Cormorant's
   tabular figures pad a narrow 1 by six pixels at display size, which reads
   as a gap in "12". The pinned width does the same job without touching the
   letterfit. */
.countup{
  display:inline-block;
  white-space:nowrap;
}

/* ---------- gallery: the card is a control ----------
   The button is generated in script and stretched over the card, so the
   fan geometry stays on the <figure> that GSAP drives. */
.gallery__it{ isolation:isolate; }
.gallery__open{
  position:absolute; inset:0;
  z-index:2;
  width:100%; height:100%;
  padding:0;
  background:none;
  border:0;
  border-radius:inherit;
  cursor:zoom-in;
}
.gallery__open:focus-visible{
  outline:2px solid var(--cream);
  outline-offset:-6px;
  box-shadow:0 0 0 4px rgba(30,42,26,.45);
}
/* The zoom affordance rides only on the card that a click would open. */
.gallery__badge{
  position:absolute; right:14px; bottom:14px;
  z-index:3;
  display:grid; place-items:center;
  width:38px; height:38px;
  border-radius:50%;
  color:var(--ink);
  background:rgba(251,251,240,.9);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; transform:scale(.82);
  transition:opacity .35s var(--ease), transform .35s var(--ease);
  pointer-events:none;
}
.gallery__it.is-center .gallery__badge{ opacity:1; transform:none; }
.gallery__it.is-center:hover .gallery__badge{ transform:scale(1.08); }
.gallery__badge svg{ width:16px; height:16px; fill:none; stroke:currentColor;
                     stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- lightbox ---------- */
.lightbox{
  /* inset rather than 100vw/100dvh: the viewport units include the classic
     scrollbar, which would push the close button underneath it. */
  inset:0;
  width:auto; max-width:none;
  height:auto; max-height:none;
  margin:0; padding:0;
  border:0;
  background:transparent;
  overflow:hidden;
}
.lightbox::backdrop{
  background:rgba(16,23,14,.88);
  backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
}
.lightbox[open]{
  display:grid;
  place-items:center;
}
/* Where there is no view transition to morph the card into the frame, the
   panel needs an entrance of its own. It is scoped to browsers without the
   API on purpose: an animation running while the new snapshot is captured
   would be photographed mid-fade and the morph would land on empty air. */
@supports not (view-transition-name:none){
  .lightbox[open] .lightbox__figure{ animation:lightboxIn .4s var(--ease) both; }
}
@keyframes lightboxIn{ from{ opacity:0; transform:scale(.965); } to{ opacity:1; transform:none; } }

.lightbox__figure{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  margin:0;
  max-width:min(1120px, 90vw);
}
.lightbox__img{
  display:block;
  max-width:min(1120px, 90vw);
  max-height:76dvh;
  width:auto; height:auto;
  object-fit:contain;
  border-radius:14px;
  box-shadow:0 40px 110px rgba(0,0,0,.55);
  background:rgba(251,251,240,.06);
}
.lightbox__cap{
  display:flex;
  align-items:baseline;
  gap:16px;
  max-width:min(760px, 86vw);
  font-size:13px;
  line-height:1.55;
  color:rgba(251,251,240,.82);
  text-align:center;
}
.lightbox__count{
  flex:0 0 auto;
  font-size:11px;
  letter-spacing:.12em;
  color:var(--sand);
  font-variant-numeric:tabular-nums;
}
.lightbox__close{
  position:absolute; top:26px; right:26px;
  z-index:4;
  display:grid; place-items:center;
  width:46px; height:46px;
  border-radius:50%;
  color:var(--cream);
  background:rgba(251,251,240,.1);
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.lightbox__close svg{ width:19px; height:19px; fill:none; stroke:currentColor;
                      stroke-width:1.6; stroke-linecap:round; }
.lightbox__close:hover{ background:rgba(251,251,240,.2); transform:rotate(90deg); }
.lightbox__nav{
  position:absolute; top:50%;
  z-index:4;
  transform:translateY(-50%);
  color:var(--cream);
  background:rgba(251,251,240,.1);
}
.lightbox__nav:hover{ background:rgba(251,251,240,.2); }
.lightbox__nav--prev{ left:max(24px, 3vw); }
.lightbox__nav--next{ right:max(24px, 3vw); }
.lightbox__close:focus-visible,
.lightbox__nav:focus-visible{ outline:2px solid var(--cream); outline-offset:3px; }

@media (max-width:1024px){
  .lightbox__img{ max-height:66dvh; }
  .lightbox__nav{ top:auto; bottom:24px; transform:none; }
  .lightbox__nav--prev{ left:auto; right:calc(50% + 12px); }
  .lightbox__nav--next{ right:calc(50% - 58px); }
  .lightbox__figure{ padding-bottom:86px; }
  .lightbox__close{ top:18px; right:18px; }
}

/* ---------- view transition ----------
   The gallery card and the lightbox image trade a single shared name, so
   only ever one element carries it in a given state. */
.gallery__it.is-vt-source{ view-transition-name:gallery-hero; }
.lightbox[open] .lightbox__img{ view-transition-name:gallery-hero; }

::view-transition-group(gallery-hero){ animation-duration:.46s; }
::view-transition-old(gallery-hero),
::view-transition-new(gallery-hero){
  height:100%;
  object-fit:cover;
  animation-duration:.46s;
}
@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*){ animation:none !important; }
  .lightbox__close:hover{ transform:none; }
}

/* ---------- privacy controls ---------- */
.map-consent{ min-height:inherit; height:100%; position:relative; }
.map-consent__panel{ min-height:520px; height:100%; padding:54px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; background:linear-gradient(145deg,#e4e7db,#cfd6c5); }
.map-consent__panel[hidden]{ display:none; }
.map-consent__panel h3{ margin:14px 0 12px; max-width:430px; font:500 34px/1.08 var(--serif); text-transform:uppercase; }
.map-consent__panel p{ max-width:480px; margin:0 0 24px; color:var(--body); font-size:13px; line-height:1.65; }
.map-consent__panel > a{ margin-top:18px; color:var(--ink); font-size:12px; border-bottom:1px solid currentColor; }
.map-consent iframe[hidden]{ display:none; }

.privacy-banner{ position:fixed; z-index:140; left:24px; right:24px; bottom:24px; max-width:1180px; margin-inline:auto; padding:22px 24px; display:grid; grid-template-columns:minmax(260px,1fr) auto auto; align-items:center; gap:22px; color:var(--cream); background:rgba(30,42,26,.97); border:1px solid rgba(251,251,240,.24); box-shadow:0 24px 70px rgba(20,28,17,.34); }
.privacy-banner[hidden]{ display:none; }
.privacy-banner strong{ display:block; margin-bottom:6px; font-size:14px; }
.privacy-banner p{ margin:0; max-width:620px; color:rgba(251,251,240,.72); font-size:12px; line-height:1.55; }
.privacy-banner > a{ color:var(--cream); font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.privacy-banner__actions{ display:flex; gap:10px; }
.btn--line{ color:inherit; border:1px solid currentColor; background:transparent; }

.privacy-dialog{ width:min(680px,calc(100vw - 32px)); max-width:none; padding:0; border:0; color:var(--ink); background:transparent; }
.privacy-dialog::backdrop{ background:rgba(20,28,17,.62); backdrop-filter:blur(4px); }
.privacy-dialog__panel{ position:relative; padding:48px; background:var(--cream); }
.privacy-dialog h2{ margin:0 0 28px; font:500 38px/1.08 var(--serif); text-transform:uppercase; }
.privacy-choice{ padding:20px 0; display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px; border-top:1px solid rgba(30,42,26,.16); }
.privacy-choice strong{ font-size:14px; }
.privacy-choice p{ margin:6px 0 0; color:var(--body); font-size:12px; line-height:1.55; }
.privacy-choice > span{ color:var(--olive); font-size:11px; font-weight:600; }
.privacy-choice input{ width:20px; height:20px; accent-color:var(--green); }
.privacy-dialog__actions{ margin-top:28px; display:flex; justify-content:flex-end; gap:12px; }

/* ---------- privacy policy ---------- */
.legal-page{ background:#f1f2e8; color:var(--ink); }
.legal-header{ min-height:88px; padding:18px max(24px,5vw); display:flex; align-items:center; justify-content:space-between; background:var(--ink); }
.legal-header .logo{ display:flex; }
.legal-main{ width:min(1080px,calc(100% - 40px)); margin:0 auto; padding:76px 0 100px; }
.legal-hero{ max-width:820px; margin-bottom:48px; }
.legal-hero h1{ margin:18px 0 12px; font:500 clamp(48px,8vw,88px)/.92 var(--serif); text-transform:uppercase; }
.legal-hero p{ color:var(--body); font-size:13px; }
.legal-toc{ padding:22px 0; display:flex; flex-wrap:wrap; gap:12px 24px; border-block:1px solid rgba(30,42,26,.18); }
.legal-toc a{ color:var(--olive); font-size:12px; font-weight:600; }
.legal-content{ width:min(780px,100%); margin:62px auto 0; }
.legal-content section{ padding-top:28px; margin-bottom:52px; scroll-margin-top:24px; }
.legal-content h2{ margin:0 0 18px; font:500 32px/1.12 var(--serif); text-transform:uppercase; }
.legal-content p{ margin:0 0 15px; color:var(--body); font-size:15px; line-height:1.78; }
.legal-content a{ color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.legal-content ul{ margin:0 0 15px; padding-left:20px; color:var(--body); font-size:15px; line-height:1.78; }
.legal-content li{ margin-bottom:8px; }
.legal-content li::marker{ color:var(--olive); }
/* Wide tables scroll inside their own box so the page body never scrolls sideways. */
.legal-table-wrap{ margin:0 0 20px; overflow-x:auto; border:1px solid rgba(30,42,26,.16); border-radius:12px; background:#fbfbf0; }
.legal-table{ width:100%; min-width:520px; border-collapse:collapse; font-size:13.5px; line-height:1.6; color:var(--body); }
.legal-table th,.legal-table td{ padding:12px 14px; text-align:left; vertical-align:top; border-bottom:1px solid rgba(30,42,26,.12); }
.legal-table thead th{ background:var(--olive); color:var(--cream); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; border-bottom:none; }
.legal-table tbody tr:last-child th,.legal-table tbody tr:last-child td{ border-bottom:none; }
.legal-table tbody tr:nth-child(even){ background:rgba(113,128,78,.06); }
.legal-footer{ padding:30px max(24px,5vw); color:rgba(251,251,240,.75); background:var(--ink); font-size:13px; }
.legal-footer a{ color:var(--cream); }

@media (max-width:760px){
  .privacy-banner{ left:10px; right:10px; bottom:10px; padding:20px; grid-template-columns:1fr; gap:16px; }
  .privacy-banner__actions{ flex-direction:column-reverse; }
  .privacy-banner__actions .btn{ width:100%; }
  .privacy-dialog__panel{ padding:44px 22px 28px; }
  .privacy-dialog h2{ font-size:30px; }
  .privacy-dialog__actions{ flex-direction:column-reverse; }
  .privacy-dialog__actions .btn{ width:100%; }
  .map-consent__panel{ min-height:390px; padding:30px 24px; }
  .map-consent__panel h3{ font-size:28px; }
  .legal-header{ min-height:74px; }
  .legal-header .btn{ padding:12px 16px; }
  .legal-main{ padding-top:54px; }
  .legal-content{ margin-top:40px; }
  .legal-table{ font-size:12.5px; }
  .legal-table th,.legal-table td{ padding:10px 11px; }
}
