/* ============================================================
   ANACARDIER PRIVÉ HOTEL — Atins, Lençóis Maranhenses
   Direção: luxo orgânico-rústico · areia + terracota-caju +
   celadon-turquesa + âmbar de vela. Movimento-assinatura: "maré de luz".
   Impero Solutions · build v1
   ============================================================ */

/* ---------- Fonts (self-hosted variable woff2) ---------- */
@font-face{font-family:"Fraunces";src:url("fonts/fraunces.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Fraunces";src:url("fonts/fraunces-italic.woff2") format("woff2");
  font-weight:100 900;font-style:italic;font-display:swap;}
@font-face{font-family:"InterV";src:url("fonts/inter.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;}

/* ---------- Tokens ---------- */
:root{
  --sand:#F3EAD9;        /* page light bg */
  --sand-2:#EADCC4;
  --bone:#FBF6EC;
  --clay:#C0673A;        /* primary accent — caju terracotta */
  --clay-deep:#9C4E27;
  --ember:#E0A35A;       /* candle amber */
  --lagoon:#3E8C82;      /* celadon turquoise secondary */
  --lagoon-2:#6FB3A8;
  --espresso:#241812;    /* dark sections */
  --espresso-2:#2F2118;
  --ink:#160E08;
  --cream:#F4E8D6;       /* text on dark */
  --cream-dim:#CDBBA3;
  --muted:#6A5947;       /* body text on light (AA on sand) */
  --line:rgba(36,24,18,.14);
  --line-d:rgba(244,232,214,.16);

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"InterV",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;

  --maxw:1240px;
  --pad:clamp(1.2rem,5vw,4.5rem);
  --ease-cine:cubic-bezier(.76,0,.24,1);
  --ease-soft:cubic-bezier(.2,.7,.2,1);
  /* signature curve for "maré de luz" */
  --ease-tide:cubic-bezier(.45,.05,.2,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--sans);background:var(--sand);color:var(--espresso);
  line-height:1.62;font-size:clamp(1rem,.62rem + .55vw,1.125rem);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
::selection{background:var(--clay);color:var(--bone)}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px;border-radius:2px}

/* ---------- Typo helpers ---------- */
.serif{font-family:var(--serif)}
.eyebrow{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--clay)}
.eyebrow.on-dark{color:var(--ember)}
h1,h2,h3{font-family:var(--serif);font-weight:430;line-height:1.02;letter-spacing:-.015em}
.display{font-weight:380;line-height:.96}
em,.it{font-style:italic}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
section{position:relative}
.sec-num{font-family:var(--sans);font-size:.7rem;letter-spacing:.25em;color:var(--muted);
  font-weight:600}
.lead{font-size:clamp(1.15rem,.8rem + 1.3vw,1.7rem);line-height:1.4;font-family:var(--serif);
  font-weight:360;color:var(--espresso)}

/* ============================================================
   LOADER — curtain
   ============================================================ */
.loader{position:fixed;inset:0;z-index:1000;background:var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;
  transition:transform 1.05s var(--ease-cine);will-change:transform}
.loader.done{transform:translateY(-101%)}
.loader__mark{width:74px;height:74px;opacity:.92;animation:floaty 3s ease-in-out infinite}
.loader__word{font-family:var(--serif);font-weight:330;letter-spacing:.42em;
  font-size:clamp(1.1rem,4.5vw,1.7rem);color:var(--cream);padding-left:.42em}
.loader__bar{width:min(190px,42vw);height:1.5px;background:rgba(244,232,214,.18);overflow:hidden}
.loader__bar i{display:block;height:100%;width:0;background:var(--ember);
  animation:ld 1s var(--ease-soft) forwards}
@keyframes ld{to{width:100%}}
@keyframes floaty{50%{transform:translateY(-7px)}}
.no-js .loader{display:none}

/* ============================================================
   HEADER
   ============================================================ */
.hdr{position:fixed;top:0;left:0;right:0;z-index:90;
  display:flex;align-items:center;justify-content:space-between;
  padding:clamp(.8rem,2vw,1.3rem) var(--pad);
  background:linear-gradient(180deg,rgba(11,7,4,.4),rgba(11,7,4,0));
  transition:background .5s var(--ease-soft),padding .5s var(--ease-soft),
    box-shadow .5s var(--ease-soft)}
.hdr.scrolled{background:rgba(22,14,8,.82);backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);padding-top:.6rem;padding-bottom:.6rem;
  box-shadow:0 1px 0 rgba(244,232,214,.08)}
.hdr__logo{height:clamp(26px,3.2vw,34px);width:auto;filter:drop-shadow(0 1px 8px rgba(0,0,0,.35))}
.hdr__nav{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.3rem)}
.hdr__nav a{font-size:.82rem;letter-spacing:.04em;color:var(--cream);opacity:.9;
  transition:opacity .3s}
.hdr__nav a:hover{opacity:1}
.hdr__links{display:flex;gap:clamp(1rem,2.4vw,2.3rem)}
@media(max-width:860px){.hdr__links{display:none}}
.btn-book{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink);background:var(--ember);
  padding:.62em 1.25em;border-radius:999px;transition:transform .3s var(--ease-soft),
    background .3s,box-shadow .3s;white-space:nowrap}
.btn-book:hover{background:var(--cream);transform:translateY(-2px);
  box-shadow:0 8px 26px rgba(224,163,90,.35)}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;
  background:var(--espresso);display:flex;align-items:flex-end}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{width:100%;height:100%;object-fit:cover;
  animation:kenburns 30s ease-in-out infinite alternate;will-change:transform}
@keyframes kenburns{from{transform:scale(1.06) translateY(0)}to{transform:scale(1.2) translateY(-1.5%)}}
.hero__scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(22,14,8,.5) 0%,rgba(22,14,8,.05) 26%,
    rgba(22,14,8,.12) 55%,rgba(22,14,8,.7) 100%)}
.hero__vig{position:absolute;inset:0;z-index:1;pointer-events:none;
  box-shadow:inset 0 0 220px 40px rgba(11,7,4,.55)}
/* signature "maré de luz" — warm raking light sweep */
.tide{position:absolute;z-index:1;top:-30%;left:0;width:60%;height:160%;pointer-events:none;
  background:radial-gradient(60% 50% at 50% 50%,rgba(224,163,90,.4),rgba(224,163,90,.12) 45%,transparent 70%);
  mix-blend-mode:screen;filter:blur(8px);opacity:.0;will-change:transform,opacity}
.hero__inner{position:relative;z-index:2;width:100%;padding:0 var(--pad)
  clamp(3.2rem,8vh,6rem)}
.hero__inner .wrap{padding-inline:0}
.hero h1{color:var(--cream);font-weight:360;
  font-size:clamp(2.7rem,2rem + 7vw,7.6rem);line-height:.94;letter-spacing:-.02em;
  text-shadow:0 2px 30px rgba(11,7,4,.4)}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln>span{display:block;transform:translateY(112%);
  transition:transform 1.15s var(--ease-cine)}
.ready .hero h1 .ln>span{transform:translateY(0)}
.ready .hero h1 .ln:nth-child(2)>span{transition-delay:.12s}
.hero h1 em{color:var(--ember);font-weight:340}
.hero__sub{margin-top:1.5rem;max-width:36ch;color:var(--cream);opacity:0;
  font-size:clamp(1rem,.85rem + .4vw,1.18rem);line-height:1.5;
  transform:translateY(16px);transition:opacity 1s ease .55s,transform 1s var(--ease-soft) .55s}
.ready .hero__sub{opacity:.94;transform:none}
.hero__cue{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--cream);
  opacity:0;transition:opacity 1s ease 1.1s}
.ready .hero__cue{opacity:.7}
.hero__cue span{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase}
.hero__cue i{display:block;width:1px;height:42px;background:linear-gradient(var(--ember),transparent);
  animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top}50%{transform:scaleY(1)}}

/* film grain (shared) */
.grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:140px 140px}

/* ============================================================
   PROOF STRIP
   ============================================================ */
.proof{background:var(--espresso);color:var(--cream);border-bottom:1px solid var(--line-d);
  overflow:hidden}
.proof__row{display:flex;align-items:center;gap:2.4rem;padding:1.05rem var(--pad);
  flex-wrap:wrap;justify-content:center;text-align:center}
.proof__item{display:flex;align-items:center;gap:.55rem;font-size:.92rem;letter-spacing:.01em}
.proof__item b{font-family:var(--serif);font-weight:500}
.proof__item .stars{color:var(--ember);letter-spacing:.05em}
.proof__sep{width:5px;height:5px;border-radius:50%;background:var(--lagoon-2);opacity:.8}
@media(max-width:680px){.proof__sep{display:none}.proof__row{gap:.6rem 1.6rem}}

/* ============================================================
   GENERIC SECTION SHELL
   ============================================================ */
.band{padding:clamp(4.5rem,11vh,9rem) 0}
.band--sand{background:var(--sand)}
.band--bone{background:var(--bone)}
.band--dark{background:var(--espresso);color:var(--cream)}
.band--dark .lead,.band--dark h2{color:var(--cream)}
/* signature "maré de luz" recurring across dark bands */
.band--dark,.book{position:relative;overflow:hidden}
.band--dark>*,.book>*{position:relative;z-index:1}
.band--dark::before,.book::before{content:"";position:absolute;top:-25%;left:0;width:55%;height:150%;
  z-index:0;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(50% 50% at 50% 50%,rgba(224,163,90,.13),transparent 70%);
  animation:tideband 24s var(--ease-tide) infinite alternate}
@keyframes tideband{from{transform:translate3d(-18%,0,0)}to{transform:translate3d(132%,0,0)}}
.band--dark .sec-num{color:var(--cream-dim)}
.sec-head{display:flex;align-items:baseline;gap:1.2rem;margin-bottom:2.6rem;flex-wrap:wrap}
.sec-head .eyebrow{margin-bottom:0}
.sec-title{font-size:clamp(2rem,1.3rem + 3.4vw,4.2rem);font-weight:360;line-height:1}
.band--dark .sec-title{color:var(--cream)}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);filter:blur(5px);
  transition:opacity .9s ease,transform .9s var(--ease-soft),filter .9s ease}
.reveal.in{opacity:1;transform:none;filter:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
.reveal[data-d="4"]{transition-delay:.32s}

/* ============================================================
   INTRO / EXPERIENCE
   ============================================================ */
.intro__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,5rem);
  align-items:center}
@media(max-width:880px){.intro__grid{grid-template-columns:1fr}}
.intro__lead em{color:var(--clay)}
.intro__p{margin-top:1.4rem;color:var(--muted);max-width:52ch}
.intro__p+.intro__p{margin-top:1rem}
.intro__media{position:relative;border-radius:3px;overflow:hidden;aspect-ratio:3/4}
.intro__media img{width:100%;height:100%;object-fit:cover}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:3.4rem;
  border-top:1px solid var(--line);padding-top:2rem}
@media(max-width:680px){.stats{grid-template-columns:repeat(2,1fr);gap:1.8rem 1.2rem}}
.stat__n{font-family:var(--serif);font-weight:420;font-size:clamp(2rem,5vw,3.3rem);
  line-height:1;color:var(--clay)}
.stat__l{font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin-top:.45rem;
  text-transform:uppercase}

/* ============================================================
   JOURNEY — "Um dia em Atins" (scroll-scrub anchor)
   ============================================================ */
.journey{height:560vh;background:var(--ink)}
.journey__pin{position:sticky;top:0;height:100svh;overflow:hidden}
.journey__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  will-change:opacity;transform:scale(1.03)}
.journey__scrim{position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(11,7,4,.45),rgba(11,7,4,.05) 30%,rgba(11,7,4,.62))}
.journey__head{position:absolute;z-index:3;top:clamp(4.5rem,12vh,7rem);left:var(--pad);
  color:var(--cream)}
.journey__head .eyebrow{color:var(--ember)}
.journey__head h2{font-size:clamp(1.7rem,1.2rem + 2.4vw,3rem);font-weight:360;
  color:var(--cream);margin-top:.5rem}
.journey__cap{position:absolute;z-index:3;left:var(--pad);bottom:clamp(4rem,12vh,7rem);
  max-width:18ch;color:var(--cream);font-family:var(--serif);font-style:italic;font-weight:340;
  font-size:clamp(1.5rem,1rem + 2.6vw,3.2rem);line-height:1.08;
  will-change:transform,opacity,filter;text-shadow:0 2px 24px rgba(0,0,0,.5)}
.journey__time{display:block;font-family:var(--sans);font-style:normal;font-weight:600;
  font-size:.7rem;letter-spacing:.3em;color:var(--ember);margin-bottom:.7rem;text-transform:uppercase}
.journey__bar{position:absolute;z-index:3;left:var(--pad);right:var(--pad);bottom:1.8rem;
  height:1.5px;background:rgba(244,232,214,.18)}
.journey__bar i{display:block;height:100%;width:0;background:var(--ember)}
@media(prefers-reduced-motion:reduce){
  .journey{height:auto}.journey__pin{position:static;height:auto}
  .journey__img{position:relative;opacity:1!important;height:78svh;transform:none}
  .journey__cap{position:relative;bottom:auto;left:auto;margin:-4rem var(--pad) 3rem;
    opacity:1!important;filter:none!important;transform:none!important}
  .journey__head,.journey__bar{position:relative;left:auto}
  .journey__head{margin:2rem var(--pad)}.journey__bar{display:none}
}

/* ============================================================
   GASTRONOMY — Le Cajou
   ============================================================ */
.gastro__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,2rem)}
@media(max-width:880px){.gastro__grid{grid-template-columns:1fr}}
.gastro__text{align-self:center;padding:clamp(0,2vw,2rem) 0}
.gastro__text .lead em{color:var(--ember)}
.gastro__sig{font-family:var(--serif);font-style:italic;color:var(--ember);margin-top:1.4rem;
  font-size:1.1rem}
.gastro__sig small{display:block;font-family:var(--sans);font-style:normal;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-dim);margin-top:.3rem}
.gastro__pics{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;
  gap:clamp(.6rem,1.4vw,1rem)}
.gastro__pics figure{position:relative;overflow:hidden;border-radius:3px}
.gastro__pics img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-soft)}
.gastro__pics figure:hover img{transform:scale(1.06)}
.gastro__pics .tall{grid-row:span 2;aspect-ratio:3/4.4}
.gastro__pics .wide{aspect-ratio:4/3}

/* ============================================================
   AMENITIES
   ============================================================ */
.amen__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line)}
@media(max-width:760px){.amen__grid{grid-template-columns:repeat(2,1fr)}}
.amen__cell{background:var(--bone);padding:clamp(1.6rem,3vw,2.4rem);display:flex;
  flex-direction:column;gap:.9rem;min-height:170px;transition:background .4s}
.amen__cell:hover{background:var(--sand)}
.amen__cell svg{width:34px;height:34px;stroke:var(--clay);stroke-width:1.3;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.amen__cell h3{font-size:1.15rem;font-weight:480}
.amen__cell p{font-size:.86rem;color:var(--muted);line-height:1.5}

/* ============================================================
   GALLERY — strip + lightbox
   ============================================================ */
.gal{overflow:hidden}
.gal__scroll{display:flex;gap:clamp(.7rem,1.4vw,1.1rem);overflow-x:auto;
  scroll-snap-type:x mandatory;padding:.4rem var(--pad) 1.6rem;
  scrollbar-width:thin;scrollbar-color:var(--lagoon) transparent}
.gal__scroll::-webkit-scrollbar{height:6px}
.gal__scroll::-webkit-scrollbar-thumb{background:var(--lagoon);border-radius:3px}
.gal__item{flex:0 0 auto;width:clamp(230px,32vw,400px);aspect-ratio:3/4;scroll-snap-align:center;
  position:relative;overflow:hidden;border-radius:3px;cursor:zoom-in;background:var(--espresso-2)}
.gal__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-soft)}
.gal__item:hover img{transform:scale(1.05)}
.gal__cap{position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.1rem .9rem;
  background:linear-gradient(transparent,rgba(11,7,4,.72));color:var(--cream);
  font-size:.82rem;letter-spacing:.02em;opacity:0;transform:translateY(8px);
  transition:opacity .4s,transform .4s}
.gal__item:hover .gal__cap,.gal__item:focus-visible .gal__cap{opacity:1;transform:none}
.gal__hint{padding:0 var(--pad);color:var(--cream-dim);font-size:.78rem;letter-spacing:.16em;
  text-transform:uppercase}
/* lightbox */
.lb{position:fixed;inset:0;z-index:300;background:rgba(11,7,4,.94);display:none;
  align-items:center;justify-content:center;padding:3vw;opacity:0;transition:opacity .35s}
.lb.open{display:flex}.lb.show{opacity:1}
.lb img{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:3px;
  box-shadow:0 30px 90px rgba(0,0,0,.6)}
.lb__x,.lb__nav{position:absolute;background:rgba(244,232,214,.1);color:var(--cream);
  width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;transition:background .3s;backdrop-filter:blur(6px)}
.lb__x:hover,.lb__nav:hover{background:var(--clay)}
.lb__x{top:3vw;right:3vw}.lb__nav{top:50%;transform:translateY(-50%)}
.lb__nav.prev{left:2vw}.lb__nav.next{right:2vw}
.lb__cap{position:absolute;bottom:3vh;left:0;right:0;text-align:center;color:var(--cream-dim);
  font-size:.85rem;letter-spacing:.06em}
@media(max-width:680px){.lb__nav{width:40px;height:40px}}

/* ============================================================
   ACCOMMODATIONS
   ============================================================ */
.rooms__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem)}
@media(max-width:900px){.rooms__grid{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}
.room{background:var(--bone);border:1px solid var(--line);border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .5s var(--ease-soft),box-shadow .5s}
.room:hover{transform:translateY(-6px);box-shadow:0 24px 50px -24px rgba(36,24,18,.4)}
.room__img{aspect-ratio:4/3.2;overflow:hidden;position:relative}
.room__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-soft)}
.room:hover .room__img img{transform:scale(1.07)}
.room__tag{position:absolute;top:1rem;left:1rem;background:rgba(22,14,8,.7);color:var(--cream);
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;padding:.4em .8em;border-radius:999px;
  backdrop-filter:blur(6px)}
.room__body{padding:1.5rem 1.5rem 1.7rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.room__body h3{font-size:1.55rem;font-weight:440}
.room__meta{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);
  font-weight:600}
.room__body p{font-size:.9rem;color:var(--muted);line-height:1.55;flex:1}
.room__feat{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}
.room__feat li{font-size:.72rem;color:var(--espresso);border:1px solid var(--line);
  padding:.28em .7em;border-radius:999px;background:var(--sand)}
.rooms__note{text-align:center;margin-top:2.4rem;color:var(--muted);font-size:.86rem}

/* ============================================================
   REVIEWS
   ============================================================ */
.rev__top{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;
  flex-wrap:wrap;margin-bottom:3rem}
.rev__score{display:flex;align-items:center;gap:1.3rem}
.rev__score .big{font-family:var(--serif);font-size:clamp(3rem,8vw,5rem);line-height:.9;
  color:var(--ember)}
.rev__score .meta{font-size:.86rem;color:var(--cream-dim);line-height:1.5}
.rev__score .meta b{color:var(--cream);font-family:var(--serif);font-weight:500}
.rev__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem)}
@media(max-width:900px){.rev__grid{grid-template-columns:1fr;max-width:600px;margin-inline:auto}}
.rev{background:var(--espresso-2);border:1px solid var(--line-d);border-radius:4px;
  padding:1.7rem 1.6rem;display:flex;flex-direction:column;gap:1rem}
.rev .stars{color:var(--ember);letter-spacing:.1em;font-size:.95rem}
.rev p{font-family:var(--serif);font-style:italic;font-weight:340;color:var(--cream);
  font-size:1.02rem;line-height:1.5}
.rev__by{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:var(--cream-dim);
  margin-top:auto}
.rev__by b{color:var(--cream);font-weight:600;font-style:normal}
.rev__src{margin-left:auto;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--lagoon-2)}
.rev__disc{text-align:center;margin-top:2rem;font-size:.78rem;color:var(--cream-dim);
  letter-spacing:.02em}
.rev__disc a{color:var(--ember);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;transition:opacity .3s}
.rev__disc a:hover{opacity:.8}
.ftr__base a{text-decoration:underline;text-underline-offset:3px}

/* ============================================================
   INSTAGRAM
   ============================================================ */
.ig__head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  flex-wrap:wrap;margin-bottom:2rem}
.ig__handle{display:flex;flex-direction:column;gap:.2rem}
.ig__handle b{font-family:var(--serif);font-size:1.5rem;font-weight:480}
.ig__handle span{font-size:.82rem;color:var(--muted)}
.ig__follow{display:inline-flex;align-items:center;gap:.5rem;background:var(--clay);
  color:var(--bone);padding:.62em 1.2em;border-radius:999px;font-weight:600;font-size:.84rem;
  transition:transform .3s var(--ease-soft),background .3s}
.ig__follow:hover{background:var(--clay-deep);transform:translateY(-2px)}
.ig__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.4rem,1vw,.7rem)}
@media(max-width:760px){.ig__grid{grid-template-columns:repeat(3,1fr)}}
.ig__cell{aspect-ratio:1;overflow:hidden;border-radius:3px;position:relative;background:var(--sand-2)}
.ig__cell img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-soft),
  filter .5s}
.ig__cell:hover img{transform:scale(1.08)}
.ig__cell::after{content:"";position:absolute;inset:0;background:rgba(192,103,58,0);
  transition:background .4s}
.ig__cell:hover::after{background:rgba(192,103,58,.12)}

/* ============================================================
   BOOKING
   ============================================================ */
.book{background:var(--espresso);color:var(--cream)}
.book__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media(max-width:900px){.book__grid{grid-template-columns:1fr;gap:2.4rem}}
.book__why{list-style:none;display:flex;flex-direction:column;gap:1.1rem;margin-top:2rem}
.book__why li{display:flex;gap:.9rem;align-items:flex-start;font-size:.96rem;color:var(--cream)}
.book__why svg{flex:0 0 auto;width:22px;height:22px;stroke:var(--ember);stroke-width:1.4;fill:none;
  margin-top:2px}
.book__why b{font-family:var(--serif);font-weight:500}
.book__why span{color:var(--cream-dim);font-size:.86rem;display:block}
.bookcard{background:var(--bone);color:var(--espresso);border-radius:6px;padding:clamp(1.6rem,3vw,2.4rem);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.6)}
.bookcard h3{font-size:1.5rem;font-weight:460;margin-bottom:.3rem}
.bookcard .sub{font-size:.86rem;color:var(--muted);margin-bottom:1.6rem}
.field{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:.9rem}
.field--g{grid-template-columns:1fr}
.field label{display:flex;flex-direction:column;gap:.35rem;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);font-weight:600}
.field input,.field select{font-family:var(--sans);font-size:1rem;color:var(--espresso);
  background:var(--sand);border:1px solid var(--line);border-radius:4px;padding:.7em .8em;
  width:100%;transition:border .3s,box-shadow .3s}
.field input:focus,.field select:focus{border-color:var(--clay);
  box-shadow:0 0 0 3px rgba(192,103,58,.14);outline:none}
.btn-primary{width:100%;background:var(--clay);color:var(--bone);font-weight:700;
  font-size:.92rem;letter-spacing:.04em;padding:.9em 1em;border-radius:4px;margin-top:.6rem;
  transition:transform .3s var(--ease-soft),background .3s,box-shadow .3s;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;text-align:center}
.btn-primary:hover{background:var(--clay-deep);transform:translateY(-2px);
  box-shadow:0 14px 34px -10px rgba(156,78,39,.6)}
.btn-primary small{display:block;font-weight:500;font-size:.7rem;opacity:.85;letter-spacing:.02em}
.btn-row{display:flex;gap:.8rem;margin-top:.8rem}
@media(max-width:420px){.btn-row{flex-direction:column}}
.btn-ghost{flex:1;border:1px solid var(--line);color:var(--espresso);background:transparent;
  font-weight:600;font-size:.82rem;padding:.75em;border-radius:4px;text-align:center;
  transition:background .3s,border-color .3s;display:flex;align-items:center;justify-content:center;gap:.45rem}
.btn-ghost:hover{background:var(--sand);border-color:var(--clay)}
.bookcard__fine{font-size:.74rem;color:var(--muted);margin-top:1rem;text-align:center;line-height:1.5}

/* ============================================================
   FAQ
   ============================================================ */
.faq__grid{max-width:820px;margin-inline:auto}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.35rem 0;text-align:left;font-family:var(--serif);font-size:clamp(1.1rem,2.4vw,1.4rem);
  font-weight:440;color:var(--espresso)}
.faq__q i{flex:0 0 auto;width:22px;height:22px;position:relative;transition:transform .4s var(--ease-soft)}
.faq__q i::before,.faq__q i::after{content:"";position:absolute;background:var(--clay);
  top:50%;left:50%;transform:translate(-50%,-50%)}
.faq__q i::before{width:16px;height:1.5px}.faq__q i::after{width:1.5px;height:16px;transition:transform .4s}
.faq__item.open .faq__q i::after{transform:translate(-50%,-50%) scaleY(0)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease-soft)}
.faq__a p{padding:0 0 1.4rem;color:var(--muted);max-width:64ch;font-size:.95rem}

/* ============================================================
   FOOTER
   ============================================================ */
.ftr{background:var(--ink);color:var(--cream);padding:clamp(3.5rem,8vh,6rem) 0 2rem;
  overflow:hidden}
.ftr__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;margin-bottom:3rem}
@media(max-width:760px){.ftr__top{grid-template-columns:1fr;gap:2rem}}
.ftr__brand img{height:36px;margin-bottom:1.2rem}
.ftr__brand p{color:var(--cream-dim);font-size:.9rem;max-width:34ch;line-height:1.6}
.ftr__col h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ember);margin-bottom:1rem;font-weight:600}
.ftr__col a,.ftr__col p{display:block;color:var(--cream-dim);font-size:.9rem;margin-bottom:.55rem;
  transition:color .3s}
.ftr__col a:hover{color:var(--cream)}
.ftr__word{font-family:var(--serif);font-weight:300;letter-spacing:.04em;color:var(--espresso-2);
  font-size:clamp(3rem,17vw,13rem);line-height:.8;text-align:center;
  -webkit-text-stroke:1px rgba(224,163,90,.18);color:transparent;user-select:none;
  margin:1rem 0 .5rem}
.ftr__base{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  border-top:1px solid var(--line-d);padding-top:1.6rem;font-size:.8rem;color:var(--cream-dim)}
.ftr__base a{color:var(--ember)}

/* ============================================================
   STICKY BOOK BAR (mobile)
   ============================================================ */
.bookbar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;align-items:center;
  justify-content:space-between;gap:.8rem;padding:.7rem 1rem;
  background:rgba(22,14,8,.9);backdrop-filter:blur(12px);
  border-top:1px solid var(--line-d);transform:translateY(110%);
  transition:transform .45s var(--ease-soft)}
.bookbar.show{transform:none}
.bookbar__t{color:var(--cream);font-size:.82rem;line-height:1.25}
.bookbar__t b{font-family:var(--serif);color:var(--ember);font-weight:500}
.bookbar a{background:var(--clay);color:var(--bone);font-weight:700;font-size:.82rem;
  padding:.7em 1.2em;border-radius:999px;white-space:nowrap}
@media(min-width:900px){.bookbar{display:none}}
@media(prefers-reduced-motion:reduce){.bookbar{transition:none}}

/* scroll progress */
.progress{position:fixed;top:0;left:0;height:2px;background:var(--ember);z-index:95;width:0;
  transition:width .1s linear}

/* reduced motion master switch */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero__media img{animation:none}
  .reveal{opacity:1!important;transform:none!important;filter:none!important}
  .tide{display:none}
}
