/*
  Vila Gaheri — Home
  Linguagem: pousada boutique (referência Pousada Tatuá) — fotos em tela cheia, títulos finos em caixa alta
  com espaçamento largo (Tenor Sans), texto corrido em Raleway, blocos de cor sobrepostos às fotos, cantos retos.
  Motion: reveal no scroll (y 48px, 0.9s, power3.out) + parallax suave nas fotos.

  FOTOS: cada imagem é um elemento com a classe "photo". Para trocar pela foto real, adicione
  style="background-image:url('caminho/da-foto.jpg')" no elemento e apague o <span class="ph-tag">.
*/
:root{
  --primary:#2c4c58;
  --primary-deep:#1d3640;
  --night:#14262d;
  --white:#f2f9fb;          /* substitui o branco em todo o site */
  --mist:#e4eef1;           /* fundo de seções alternadas */
  --ink:#1f3239;
  --muted:#5a6f77;
  --line:rgba(44,76,88,.18);
  --display:'Tenor Sans','Optima','Gill Sans','Trebuchet MS',sans-serif;
  --text:'Raleway','Helvetica Neue',Arial,sans-serif;
  --ease:cubic-bezier(.215,.61,.355,1); /* power3.out */
  --wrap:1180px;
  --gap:clamp(14px,2vw,22px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--white);color:var(--ink);font-family:var(--text);font-weight:300;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:1px solid currentColor;outline-offset:4px}
::selection{background:var(--primary);color:var(--white)}

.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}

/* ---------- Tipografia ---------- */
.t-xl,.t-lg,.t-md{font-family:var(--display);font-weight:300;text-transform:uppercase;text-wrap:balance}
.t-xl{font-size:clamp(2.2rem,5.2vw,4rem);letter-spacing:.08em;line-height:1.12}
.t-lg{font-size:clamp(1.55rem,3vw,2.3rem);letter-spacing:.14em;line-height:1.3}
.t-md{font-size:clamp(1.15rem,1.8vw,1.4rem);letter-spacing:.22em;line-height:1.75;font-weight:400}
.tag{font-family:var(--text);font-size:.68rem;font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--muted)}
.body{font-size:.98rem;line-height:1.8;color:#3a4e55;max-width:58ch}
.center{text-align:center;margin-inline:auto}

/* ---------- Botões (cantos retos, como na referência) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font-family:var(--text);font-size:.7rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;padding:1rem 1.9rem;border:1px solid transparent;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);white-space:nowrap}
.btn-solid{background:var(--primary);color:var(--white);box-shadow:0 8px 20px -10px rgba(29,54,64,.55)}
.btn-solid:hover{background:var(--primary-deep);box-shadow:0 14px 28px -12px rgba(29,54,64,.6)}
.btn-line{border-color:var(--primary);color:var(--primary)}
.btn-line:hover{background:var(--primary);color:var(--white)}
.btn-ghost{border-color:rgba(242,249,251,.8);color:var(--white)}
.btn-ghost:hover{background:var(--white);color:var(--primary)}

/* ---------- "Fotos" de exemplo ---------- */
.photo{position:relative;display:block;overflow:hidden;background-color:var(--primary);background-size:cover;background-position:center}
.photo .ph-tag{position:absolute;right:.8rem;top:.8rem;z-index:3;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--white);background:rgba(20,38,45,.4);padding:.3rem .6rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.p-sea{background-image:radial-gradient(55% 30% at 70% 18%,rgba(255,250,238,.75),transparent 70%),linear-gradient(180deg,#bcd9e4 0%,#9cc7d6 28%,#4fb0b8 29%,#3a9aa3 42%,#7cc9c6 55%,#e9e1cc 56%,#d8cdb2 62%,#5d8a60 63%,#3f6b4a 100%)}
.p-aerial{background-image:radial-gradient(18% 6% at 30% 60%,rgba(242,249,251,.55),transparent 70%),radial-gradient(24% 8% at 64% 40%,rgba(242,249,251,.4),transparent 70%),linear-gradient(162deg,#9ad3cf 0%,#56b1b0 30%,#2f8f97 52%,#e7dcc3 53%,#d6c8a6 57%,#4f7f52 58%,#355e3d 100%)}
.p-pool{background-image:repeating-linear-gradient(108deg,rgba(242,249,251,.12) 0 12px,transparent 12px 40px),radial-gradient(45% 35% at 25% 25%,rgba(242,249,251,.55),transparent 70%),linear-gradient(160deg,#7dc4cb 0%,#3f99a5 48%,#2c4c58 100%)}
.p-deck{background-image:linear-gradient(180deg,#a8d4e6 0%,#cfe6ee 30%,#3f9aa5 31%,#4fb1ba 52%,#8a5a3c 53%,#a06e4a 62%,#7d5034 100%)}
.p-room{background-image:radial-gradient(60% 50% at 30% 30%,rgba(255,248,236,.9),transparent 70%),linear-gradient(90deg,transparent 0 64%,rgba(60,40,25,.15) 64% 65%,transparent 65%),linear-gradient(180deg,#efe5d6 0%,#e2d4bd 55%,#f5f1ea 56%,#ece4d8 72%,#b89a78 73%,#9c7c5a 100%)}
.p-garden{background-image:radial-gradient(40% 30% at 80% 10%,rgba(242,249,251,.6),transparent 70%),radial-gradient(30% 25% at 20% 75%,rgba(44,90,60,.6),transparent 70%),linear-gradient(170deg,#a9d0b8 0%,#5f9474 45%,#2f5b45 100%)}
.p-food{background-image:radial-gradient(26% 26% at 50% 52%,#f6f1e8 0 62%,rgba(0,0,0,.1) 64%,transparent 66%),radial-gradient(13% 13% at 26% 28%,#eadbc0 0 60%,transparent 64%),radial-gradient(11% 11% at 76% 76%,#c88a5d 0 56%,transparent 60%),radial-gradient(9% 9% at 78% 24%,#7aa36b 0 56%,transparent 60%),linear-gradient(135deg,#a88d6c,#7a6247)}
.p-dusk{background-image:radial-gradient(28% 18% at 50% 58%,rgba(255,206,160,.9),transparent 70%),linear-gradient(180deg,#2e4d5f 0%,#7b8ea0 38%,#e8b994 57%,#2c4c58 58%,#1d3640 100%)}
.p-boat{background-image:linear-gradient(174deg,transparent 0 58%,#f4efe4 58.3% 59.2%,transparent 59.5%),linear-gradient(180deg,#cfe8ef 0%,#a5d6dc 40%,#5fc0c2 41%,#3aa3a9 68%,#e4d8bd 69%,#efe6d1 100%)}
.p-palm{background-image:radial-gradient(22% 30% at 78% 22%,rgba(46,92,55,.85),transparent 70%),radial-gradient(18% 24% at 86% 10%,rgba(46,92,55,.8),transparent 70%),linear-gradient(180deg,#9fd0ea 0%,#c9e6f2 34%,#58c1c3 35%,#33a2a8 50%,#f0e9d8 51%,#e6dbc2 62%,#6fa060 63%,#4c7d45 100%)}
.photo::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.18;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.photo[style*="background-image"]::after{display:none}
/* camada que recebe o parallax (herda a foto do pai) */
.plx{position:absolute;inset:-12% 0;background:inherit;background-size:cover;background-position:center;will-change:translate}

/* ---------- Motion (do design system: reveal y 48px, 0.9s power3.out) ---------- */
.js .rv{opacity:0;transform:translateY(48px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.d1{transition-delay:.12s!important}.d2{transition-delay:.24s!important}.d3{transition-delay:.36s!important}

/* ---------- Header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:50;padding-top:env(safe-area-inset-top,0px);color:var(--white);transition:background .5s var(--ease),color .5s var(--ease),box-shadow .5s var(--ease)}
.hdr.solid{background:var(--white);color:var(--primary);box-shadow:0 1px 0 var(--line)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:84px;transition:height .5s var(--ease)}
.hdr.solid .hdr-in{height:68px}
.logo{display:flex;align-items:center;gap:.7rem;line-height:1}
.logo svg{width:38px;height:38px;flex:none}
.logo b{display:block;font-family:var(--display);font-weight:300;font-size:1.45rem;letter-spacing:.2em}
.logo small{display:block;font-size:.5rem;letter-spacing:.42em;text-transform:uppercase;margin-top:.3rem;opacity:.85}
.menu{display:flex;gap:2rem}
.menu a{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;font-weight:400;position:relative;padding-block:.4rem}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .5s var(--ease)}
.menu a:hover::after{transform:scaleX(1)}
.hdr-cta{display:flex;align-items:center;gap:1.25rem}
.hdr .btn{padding:.75rem 1.4rem;border-color:currentColor;color:inherit}
.hdr .btn:hover{background:var(--white);color:var(--primary)}
.hdr.solid .btn{background:var(--primary);color:var(--white);border-color:var(--primary)}
.hdr.solid .btn:hover{background:var(--primary-deep)}
.burger{width:40px;height:40px;display:none;flex-direction:column;justify-content:center;gap:7px}
.burger i{display:block;height:1px;background:currentColor;width:30px;margin-left:auto;transition:width .4s var(--ease)}
.burger i:nth-child(2){width:22px}
.burger:hover i:nth-child(2){width:30px}

.overlay{position:fixed;inset:0;z-index:60;background:var(--primary);color:var(--white);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.overlay[hidden]{display:none}
.overlay nav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.4rem}
.overlay nav a{font-family:var(--display);font-weight:300;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(1.7rem,6vw,2.6rem);line-height:1.5;opacity:.9;transition:opacity .3s,letter-spacing .5s var(--ease)}
.overlay nav a:hover{opacity:1;letter-spacing:.18em}
.overlay .close{width:40px;height:40px;position:relative}
.overlay .close::before,.overlay .close::after{content:"";position:absolute;left:5px;right:5px;top:50%;height:1px;background:currentColor;transform:rotate(45deg)}
.overlay .close::after{transform:rotate(-45deg)}
.overlay .ov-foot{padding-block:2rem;font-size:.75rem;letter-spacing:.12em;opacity:.75}

/* ---------- 1 · Hero ---------- */
.hero{position:relative;min-height:clamp(560px,94svh,920px);display:grid;place-items:center;color:var(--white);overflow:hidden;background:var(--primary)}
.hero .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.hero .slide.on{opacity:1}
.hero .slide .photo{position:absolute;inset:0}
.hero .slide .plx{transform:scale(1.02);transition:transform 9s ease-out}
.hero .slide.on .plx{transform:scale(1.1)}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(20,38,45,.45) 0%,rgba(20,38,45,.12) 35%,rgba(20,38,45,.18) 65%,rgba(20,38,45,.55) 100%);pointer-events:none}
.hero-copy{position:relative;z-index:2;text-align:center;padding:7rem 20px 6rem}
.hero h1{font-family:var(--display);font-weight:200;text-transform:uppercase;font-size:clamp(1.25rem,2.3vw,2rem);letter-spacing:.16em;line-height:1.15;text-wrap:balance}
.hero h1 .ln{display:block}
.hero h1 .ln:last-child{display:flex;align-items:center;justify-content:center;gap:.5em}
.hero h1 .ln:last-child::before,.hero h1 .ln:last-child::after{content:"";width:.7em;height:1px;background:currentColor;opacity:.85;flex:none}
.hero .rule{width:1px;height:56px;background:rgba(242,249,251,.7);margin:2.2rem auto 0;transform-origin:top;animation:drop 2.4s var(--ease) infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.1%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-video{position:absolute;inset:0;z-index:0}
.hero-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.hero-video video.off{display:none}
.hero-video.is-video{background:var(--night)}
.hero-video.is-video.failed{background-size:cover;background-position:center}
.hero-dots{position:absolute;z-index:2;left:0;right:0;bottom:2rem;display:flex;justify-content:center;gap:.6rem}
.dot{width:8px;height:8px;border-radius:50%;background:rgba(242,249,251,.45);transition:background .4s,transform .4s}
.dot.on{background:var(--white);transform:scale(1.25)}
.js .hero h1,.js .hero .rule-w{opacity:0;transform:translateY(48px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .hero.ready h1{opacity:1;transform:none;transition-delay:.2s}
.js .hero.ready .rule-w{opacity:1;transform:none;transition-delay:.45s}

/* ---------- Seções ---------- */
.sec{padding-block:clamp(4.5rem,9vw,7.5rem)}
.head-c{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.2rem;margin-bottom:clamp(2.5rem,5vw,3.75rem)}

/* 2 · Reconhecimento */
.intro{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.intro .body{max-width:none}
.ratings{margin-top:clamp(3rem,6vw,4.5rem);display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rating{display:flex;align-items:center;justify-content:center;gap:1.6rem;padding:2.2rem 1rem}
.rating+.rating{border-left:1px solid var(--line)}
.rating .num{font-family:var(--display);font-weight:200;font-size:clamp(3rem,6vw,4.4rem);line-height:1;color:var(--primary);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.rating .num{white-space:nowrap}
.rating .num small{font-size:.42em;letter-spacing:.14em;text-transform:uppercase;margin-left:.2em}
.rating .src{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);display:block}
.rating .cnt{font-size:.9rem;color:var(--ink);display:block;margin-top:.2rem}
.stars{display:flex;gap:3px;color:var(--primary);margin-bottom:.35rem}
.stars svg{width:12px;height:12px}

/* carrosséis */
.car{position:relative}
.car-track{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.car-track::-webkit-scrollbar{display:none}
.car-track>*{scroll-snap-align:start}
.car-arrow{position:absolute;top:var(--arrow-top,45%);z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid currentColor;color:var(--primary);background:rgba(242,249,251,.92);display:grid;place-items:center;transform:translateY(-50%);transition:background .4s var(--ease),color .4s var(--ease),opacity .3s}
.car-arrow:hover{background:var(--primary);color:var(--white)}
.car-arrow svg{width:18px;height:18px}
.car-arrow.prev{left:-23px}.car-arrow.next{right:-23px}
.car-arrow[disabled]{opacity:0;pointer-events:none}
.car-dots{display:flex;gap:.55rem;margin-top:1.6rem}
.car-dots button{width:7px;height:7px;border-radius:50%;background:rgba(44,76,88,.22);transition:background .4s,transform .4s}
.car-dots button.on{background:var(--primary);transform:scale(1.25)}
.car-dots[hidden]{display:none}

.quote{flex:0 0 calc((100% - 2*var(--gap))/3);background:var(--mist);padding:2.2rem 2rem;display:flex;flex-direction:column;gap:1.2rem;min-height:260px}
.quote .stars{margin:0}
.quote p{font-style:italic;color:var(--muted);font-size:1rem}
.quote footer{margin-top:auto;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase}
.quote footer span{display:block;color:var(--muted);letter-spacing:.14em;margin-top:.2rem}
.todo{outline:1px dashed rgba(90,111,119,.55);outline-offset:4px}

/* 3 · Suítes */
.suite{flex:0 0 calc((100% - 3*var(--gap))/4);display:flex;flex-direction:column}
.suite .photo{aspect-ratio:5/8;max-width:100%}
.suite .photo::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,transparent 45%,rgba(20,38,45,.72) 100%)}
.suite .plx,.pack .plx,.exp-img .plx{transition:transform 1.2s var(--ease)}
.suite:hover .plx,.pack:hover .plx,.exp-img:hover .plx{transform:scale(1.06)}
.suite .cap-in{position:absolute;z-index:3;left:1.2rem;right:1.2rem;bottom:1.3rem;color:var(--white)}
.suite .cap-in small{display:block;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;opacity:.85;margin-bottom:.35rem}
.suite .cap-in b{display:block;font-family:var(--display);font-weight:300;text-transform:uppercase;font-size:1.3rem;letter-spacing:.06em;line-height:1.2}
.badge{position:absolute;z-index:3;left:0;top:1.2rem;background:var(--white);color:var(--primary);font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;padding:.45rem .8rem;font-weight:500}
.suite-txt{padding-top:1.3rem;display:flex;flex-direction:column;gap:1rem;flex:1}
.suite-txt p{font-size:.92rem;line-height:1.8;color:#3a4e55}
.guests{display:flex;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);font-weight:400;padding-top:.9rem;border-top:1px solid var(--line);margin-top:auto}
.guests svg{width:16px;height:16px}
.suite-txt .btn{align-self:flex-start;padding:.85rem 1.4rem}

/* 4 · Pacotes (faixa com foto e véu de cor) */
.band{position:relative;color:var(--white);overflow:hidden}
.band>.photo{position:absolute;inset:0}
.band>.photo::before{content:"";position:absolute;inset:0;z-index:2;background:rgba(44,76,88,.86)}
.band .wrap{position:relative;z-index:3}
.band .tag{color:rgba(242,249,251,.75)}
.band .body{color:rgba(242,249,251,.85)}
.pack{flex:0 0 calc((100% - 3*var(--gap))/4);background:var(--white);color:var(--ink);display:flex;flex-direction:column}
.pack .photo{aspect-ratio:4/3;max-width:100%}
.pack-in{padding:1.5rem 1.4rem 1.6rem;display:flex;flex-direction:column;gap:.8rem;flex:1}
.pack-in small{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.pack-in h3{font-family:var(--display);font-weight:300;text-transform:uppercase;letter-spacing:.08em;font-size:1.3rem}
.pack-in p{font-size:.82rem;color:#3a4e55;margin-bottom:.6rem}
.pack-in .btn{margin-top:auto;align-self:flex-start;padding:.85rem 1.4rem}
.band .car-arrow{color:var(--white);background:rgba(29,54,64,.6)}
.band .car-arrow:hover{background:var(--white);color:var(--primary)}
.band .car-dots button{background:rgba(242,249,251,.3)}
.band .car-dots button.on{background:var(--white)}

/* 5 · Experiências */
.exp-row{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(1.75rem,4vw,3.5rem);align-items:center}
.exp-row+.exp-row{margin-top:clamp(3.5rem,7vw,5.5rem)}
.exp-row.flip{grid-template-columns:1fr 1.45fr}
.exp-row.flip .exp-img{order:2}
.exp-img .photo{aspect-ratio:3/2;max-width:100%}
.exp-txt{display:flex;flex-direction:column;gap:1.4rem;min-width:0}
.exp-cta{display:flex;justify-content:center;margin-top:clamp(3rem,6vw,4.5rem)}

/* 6 · Gastronomia (bloco de cor sobre a foto) */
.gastro{position:relative;display:grid;grid-template-columns:repeat(12,1fr);align-items:start}
.gastro-img{grid-column:6/13;grid-row:1}
.gastro-img .photo{aspect-ratio:4/5;max-height:720px;width:100%;max-width:100%}
.gastro-img .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.gastro-img .slide.on{opacity:1}
.gastro-img .slide .photo{position:absolute;inset:0;aspect-ratio:auto;max-height:none}
.gastro-img .gdots{position:absolute;z-index:4;bottom:1.2rem;left:0;right:0;display:flex;justify-content:center;gap:.55rem}
.gastro-box{grid-column:1/7;grid-row:1;align-self:center;position:relative;z-index:3;background:var(--primary);color:var(--white);padding:clamp(2.25rem,5vw,4rem);display:flex;flex-direction:column;gap:1.4rem}
.gastro-box .tag{color:rgba(242,249,251,.72)}
.gastro-box .body{color:rgba(242,249,251,.88);max-width:none}

/* 7 · Localização (faixa com foto + quadro sobreposto) */
.loc{position:relative;color:var(--white)}
.loc-band{position:absolute;inset:clamp(4rem,9vw,7rem) 0 0;overflow:hidden}
.loc-band .photo{position:absolute;inset:0}
.loc-band .photo::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(20,38,45,.88) 0%,rgba(20,38,45,.62) 50%,rgba(20,38,45,.25) 100%)}
.loc .wrap{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:end;padding-bottom:clamp(3.5rem,7vw,5.5rem)}
.loc-txt{display:flex;flex-direction:column;gap:1.3rem;padding-top:clamp(6.5rem,13vw,10rem);min-width:0}
.loc-txt .body{color:rgba(242,249,251,.88)}
.loc-txt .body b{font-weight:500;color:var(--white)}
.loc-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid rgba(242,249,251,.5);padding-bottom:.3rem;align-self:flex-start;transition:border-color .3s}
.loc-link:hover{border-color:var(--white)}
.loc-link svg{width:14px;height:14px}
.loc-map{background:var(--white);box-shadow:0 30px 60px -30px rgba(20,38,45,.6);aspect-ratio:1/1.05;max-width:100%;position:relative;overflow:hidden}
.loc-map svg{position:absolute;inset:0;width:100%;height:100%}
.pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.6s var(--ease) infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.7}100%{transform:scale(2.8);opacity:0}}

/* 8 · CTA */
.cta{padding-block:clamp(6rem,12vw,9.5rem);text-align:center}
.cta .wrap{display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.cta .t-xl{max-width:16ch}
.cta .btn{margin-top:1.4rem}

/* Rodapé */
.foot{background:var(--night);color:var(--white);padding-top:clamp(3.5rem,7vw,5rem)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1fr;gap:2.5rem}
.foot h4{font-family:var(--text);font-weight:400;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:#9fbac3;margin-bottom:1.2rem}
.foot ul{list-style:none;display:grid;gap:.55rem}
.foot li a,.foot p{font-size:.82rem;opacity:.82;transition:opacity .3s}
.foot li a:hover{opacity:1}
.foot .logo{margin-bottom:1.6rem}
.foot-base{margin-top:clamp(3rem,6vw,4.5rem);border-top:1px solid rgba(242,249,251,.12);padding-block:1.5rem calc(1.5rem + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.68rem;letter-spacing:.08em;opacity:.55}

/* ---------- Responsivo ---------- */
@media (max-width:1120px){
  .menu{display:none}
  .burger{display:flex}
  .suite,.pack{flex-basis:calc((100% - 2*var(--gap))/2.6)}
  .car-arrow.prev{left:-12px}.car-arrow.next{right:-12px}
}
@media (max-width:900px){
  .intro{grid-template-columns:1fr}
  .quote{flex-basis:calc((100% - var(--gap))/1.6)}
  .exp-row,.exp-row.flip{grid-template-columns:1fr}
  .exp-row.flip .exp-img{order:0}
  .gastro{grid-template-columns:1fr}
  .gastro-img,.gastro-box{grid-column:1;grid-row:auto}
  .gastro-box{margin:-16% 6% 0}
  .loc .wrap{grid-template-columns:1fr}
  .loc-band{inset:0}
  .loc-txt{padding-top:clamp(4rem,10vw,6rem)}
  .loc-map{width:100%;max-width:520px}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  body{font-size:14px}
  .hdr .btn{display:none}
  .hdr-in{height:72px}
  .ratings{grid-template-columns:1fr}
  .rating+.rating{border-left:0;border-top:1px solid var(--line)}
  .rating{justify-content:flex-start;gap:1.2rem;padding-inline:0}
  .quote{flex-basis:86%}
  .suite{flex-basis:78%}
  .pack{flex-basis:84%}
  .car-arrow{display:none}
  .gastro-box{margin:-10% 0 0}
  .foot-grid{grid-template-columns:1fr}
  .hero h1 .ln:last-child::before,.hero h1 .ln:last-child::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv,.js .hero h1,.js .hero .rule-w{opacity:1;transform:none}
}

/* ===== Variação v3 (referência Aldeia do Madeiro) ===== */
.btn{border-radius:999px}
.badge{border-radius:0}

/* barra de reserva */
.bookbar{background:var(--night);color:var(--white)}
.bb-in{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:stretch}
.bb-f{display:flex;flex-direction:column;justify-content:center;gap:.25rem;padding:1.1rem 1.5rem;border-right:1px solid rgba(242,249,251,.12);min-width:0}
.bb-f:first-child{padding-left:0}
.bb-f label{font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:#9fbac3}
.bb-f input,.bb-f select{background:transparent;border:0;color:var(--white);font:inherit;font-size:.9rem;font-weight:400;width:100%;min-width:0;color-scheme:dark;appearance:none;-webkit-appearance:none}
.bb-f input:focus,.bb-f select:focus{outline:none}
.bb-f select option{color:var(--ink)}
.bb-btn{background:var(--primary);color:var(--white);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;padding:0 2.4rem;transition:background .4s var(--ease)}
.bb-btn:hover{background:#3a6371}
.bb-note{font-size:.75rem;color:#9fbac3}
.bb-note:empty{display:none}
.bb-note:not(:empty){padding-bottom:.9rem}

/* seção 2 */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5.5rem);align-items:center}
.about-txt{display:flex;flex-direction:column;gap:1.3rem;min-width:0}
.about-txt .t-lg{text-wrap:balance}
.short-rule{display:block;width:44px;height:1px;background:var(--primary);opacity:.6}
.about-img .photo{aspect-ratio:4/5;border-radius:3px;max-width:100%}
.scores{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:1rem}
.score{display:flex;align-items:center;gap:1rem;padding-top:1.4rem}
.score+.score{border-left:1px solid var(--line);padding-left:1.4rem}
.score .num{font-family:var(--display);font-weight:200;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1;color:var(--primary);white-space:nowrap}
.score .num small{font-size:.38em;letter-spacing:.14em;text-transform:uppercase;margin-left:.15em}
.score .src{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);display:block}
.score .cnt{font-size:.82rem;display:block}

/* seção 3 · slider de suítes */
.suites{padding-bottom:0}
.ss-stage{position:relative;height:clamp(560px,84vh,800px);overflow:hidden;background:var(--night);color:var(--white)}
.ss-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.1s var(--ease),visibility 0s 1.1s}
.ss-slide.on{opacity:1;visibility:visible;transition:opacity 1.1s var(--ease),visibility 0s}
.ss-slide>.photo{position:absolute;inset:0}
.ss-slide>.photo::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(20,38,45,.15) 0%,rgba(20,38,45,0) 35%,rgba(20,38,45,.78) 100%),linear-gradient(90deg,rgba(20,38,45,.45),transparent 60%)}
.ss-slide .plx{transform:scale(1.08);transition:transform 6s ease-out}
.ss-slide.on .plx{transform:scale(1)}
.ss-slide .ph-tag{top:1.2rem;right:1.2rem}
.ss-copy{position:absolute;z-index:3;left:0;right:0;bottom:clamp(5.5rem,10vw,7rem);display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}
.ss-txt{max-width:34rem;display:flex;flex-direction:column;gap:.9rem}
.ss-txt>*{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.ss-slide.on .ss-txt>*{opacity:1;transform:none}
.ss-slide.on .ss-txt>:nth-child(2){transition-delay:.12s}
.ss-slide.on .ss-txt>:nth-child(3){transition-delay:.22s}
.ss-slide.on .ss-txt>:nth-child(4){transition-delay:.32s}
.ss-slide.on .ss-txt>:nth-child(5){transition-delay:.42s}
.ss-txt small{font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;opacity:.85}
.ss-txt h3{font-family:var(--display);font-weight:200;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.05;letter-spacing:.02em;text-wrap:balance}
.ss-txt p{font-size:.98rem;line-height:1.8;color:rgba(242,249,251,.88);max-width:46ch}
.ss-guests{display:inline-flex;align-items:center;gap:.5rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}
.ss-guests svg{width:16px;height:16px}
.ss-badge{align-self:flex-start;font-size:.58rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;background:var(--white);color:var(--primary);padding:.4rem .85rem;border-radius:999px}
.ss-copy .btn{flex:none;opacity:0;transition:opacity .9s var(--ease) .3s}
.ss-slide.on .ss-copy .btn{opacity:1}
.ss-ctrl{position:absolute;z-index:4;left:0;right:0;bottom:clamp(1.5rem,3vw,2.2rem);display:flex;align-items:center;gap:.7rem;pointer-events:none}
.ss-ctrl>*{pointer-events:auto}
.ss-arrow{width:42px;height:42px;border-radius:50%;border:1px solid rgba(242,249,251,.7);display:grid;place-items:center;color:var(--white);transition:background .4s var(--ease),color .4s var(--ease)}
.ss-arrow:hover{background:var(--white);color:var(--primary)}
.ss-arrow svg{width:16px;height:16px}
.ss-count{font-size:.7rem;letter-spacing:.16em;margin-left:.6rem;opacity:.85;font-variant-numeric:tabular-nums}
.ss-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.ss-tab{position:relative;text-align:left;padding:1.4rem 1.2rem 1.6rem 0;display:flex;flex-direction:column;gap:.25rem;opacity:.5;transition:opacity .4s}
.ss-tab:hover,.ss-tab.on{opacity:1}
.ss-tab i{position:absolute;left:0;right:1.2rem;top:0;height:2px;background:var(--line);overflow:hidden}
.ss-tab i::after{content:"";position:absolute;inset:0;background:var(--primary);transform:scaleX(0);transform-origin:left}
.ss-tab.on i::after{animation:sslide var(--ss-dur,7s) linear forwards}
.ss.paused .ss-tab.on i::after{animation-play-state:paused}
@keyframes sslide{to{transform:scaleX(1)}}
.ss-tab small{font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.ss-tab span{font-family:var(--display);font-weight:300;text-transform:uppercase;letter-spacing:.08em;font-size:1rem;line-height:1.3;color:var(--ink)}
#acomodacoes + section{margin-top:0}

/* seção 4 · pacotes com texto sobre a foto */
.pk{flex:0 0 calc((100% - 2*var(--gap))/3);position:relative;aspect-ratio:3/4;max-width:100%;border-radius:3px;overflow:hidden;color:var(--white)}
.pk>.photo{position:absolute;inset:0}
.pk>.photo::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(20,38,45,0) 35%,rgba(20,38,45,.82) 100%)}
.pk .plx{transition:transform 1.2s var(--ease)}
.pk:hover .plx{transform:scale(1.06)}
.pk-in{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:1.6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}
.pk-in small{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;opacity:.85}
.pk-in h3{font-family:var(--display);font-weight:300;font-size:1.6rem;letter-spacing:.02em;line-height:1.15}
.pk-in p{font-size:.92rem;color:rgba(242,249,251,.85)}
.pk-in .btn{margin-top:.6rem;padding:.75rem 1.4rem}
.pk .todo{outline-color:rgba(242,249,251,.5)}
#pacotes .car-dots{justify-content:center}

@media (max-width:900px){
  .about{grid-template-columns:1fr}
  .about-img .photo{aspect-ratio:4/3}
  .pk{flex-basis:calc((100% - var(--gap))/1.7)}
  .ss-copy{flex-direction:column;align-items:flex-start;gap:1.4rem}
  .ss-tabs{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .bb-in{grid-template-columns:1fr 1fr}
  .bb-f{padding:.9rem 0;border-right:0;border-bottom:1px solid rgba(242,249,251,.12)}
  .bb-f:nth-child(2){padding-left:1rem;border-left:1px solid rgba(242,249,251,.12)}
  .bb-f:nth-child(3){grid-column:1/-1}
  .bb-btn{grid-column:1/-1;margin-inline:calc(-1*max(20px,env(safe-area-inset-left,0px)));padding:1.1rem}
  .scores{grid-template-columns:1fr}
  .score+.score{border-left:0;padding-left:0}
  .ss-stage{height:clamp(600px,92svh,760px)}
  .ss-txt p{font-size:.82rem}
  .ss-tabs{display:none}
  .pk{flex-basis:84%}
}
@media (prefers-reduced-motion:reduce){.ss-txt>*,.ss-copy .btn{opacity:1;transform:none}}

/* ajustes v6 */
.score .stars-lbl{display:block;font-family:var(--display);font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);line-height:1.3;margin:.15rem 0}
.quote{align-self:flex-start}
.q-body{position:relative}
.q-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.quote.open .q-text{display:block;-webkit-line-clamp:unset;overflow:visible}
.q-more{align-self:flex-start;font-family:var(--text);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--primary);border-bottom:1px solid currentColor;padding-bottom:2px;margin-top:-.4rem}
.q-more[hidden]{display:none}

/* ajustes v7 */
br.dk{display:inline}
.body.wide{max-width:none}
.sec-line{position:relative}
.sec-line::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(var(--wrap) - 40px,calc(100% - 40px));height:1px;background:var(--line)}
.ss-tabs{display:none}

/* localização no padrão das experiências */
.loc-row{grid-template-columns:1fr 1.45fr}
#localizacao .body b{font-weight:500;color:var(--ink)}
#localizacao .loc-link{color:var(--primary);border-bottom-color:rgba(44,76,88,.4)}
#localizacao .loc-link:hover{border-color:var(--primary)}

/* gastronomia: moldura + texto no scroll */
.gs{position:relative;height:170vh;background:var(--white)}
.gs-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(80px,10vh,110px) max(20px,4vw) clamp(24px,5vh,48px)}
/* moldura fixa 16:10: largura da imagem final e 20% menos altura; sem zoom nem abertura */
.gs-frame{position:relative;width:min(1180px,100%,calc((100vh - clamp(80px,10vh,110px) - clamp(24px,5vh,48px))*.8*1.6));aspect-ratio:16/10;overflow:hidden}
.gs-frame>.photo{position:absolute;inset:0}
.gs .plx{inset:0;transform:none!important;translate:none!important}
.gs-veil{position:absolute;inset:0;z-index:4;background:rgba(20,38,45,.5);opacity:var(--gs-t,0)}
.gs-txt{position:absolute;z-index:5;left:50%;top:50%;width:min(560px,82%);transform:translate(-50%,calc(-50% + (1 - var(--gs-t,0))*40px));opacity:var(--gs-t,0);color:var(--white);text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.2rem}
.gs-txt .tag{color:rgba(242,249,251,.75)}
.gs-txt .body{color:rgba(242,249,251,.92);max-width:none}

/* CTA com degradê no topo (referência Aldeia) */
.cta-fade{padding-top:clamp(14rem,26vw,22rem)}
.cta-fade>.photo::before{background:linear-gradient(180deg,var(--white) 0%,rgba(242,249,251,.7) 10%,rgba(242,249,251,0) 28%,rgba(20,38,45,.45) 48%,rgba(20,38,45,.78) 100%)}

@media (max-width:900px){
  br.dk{display:none}
  .loc-row{grid-template-columns:1fr}
  .gs{height:auto}
  .gs-sticky{position:relative;height:auto;padding:0 0 clamp(4rem,9vw,6rem)}
  .gs-frame{aspect-ratio:auto;overflow:visible;display:flex;flex-direction:column;width:100%}
  .gs-frame>.photo{position:relative;aspect-ratio:16/10;margin-inline:max(20px,4vw)}
  .gs-veil{display:none}
  .gs-txt{position:relative;left:auto;top:auto;transform:none;opacity:1;width:auto;margin:-7% max(20px,4vw) 0 calc(max(20px,4vw) + 6%);padding:2.2rem 1.8rem;background:var(--primary);text-align:left;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce) and (min-width:901px){.gs{height:auto}.gs-sticky{position:relative;height:auto}.gs-frame{margin-block:4rem}.gs-veil,.gs-txt{opacity:1}.gs-txt{transform:translate(-50%,-50%)}}

/* ===== WordPress ===== */
.admin-bar .hdr{top:32px}
@media (max-width:782px){.admin-bar .hdr{top:46px}}
@media (max-width:600px){.admin-bar .hdr{top:0}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.vg-admin-note{max-width:var(--wrap);margin:0 auto 1.5rem;padding:1rem 1.25rem;border:1px dashed var(--primary);color:var(--primary);font-size:.85rem;text-align:center}
.band .vg-admin-note{color:var(--white);border-color:rgba(242,249,251,.6)}
/* páginas internas (até os layouts próprios de cada página) */
.page-hero{background:var(--primary);color:var(--white);padding:calc(84px + clamp(4rem,9vw,7rem)) 0 clamp(3rem,7vw,5rem);text-align:center}
.page-hero .t-lg{color:var(--white)}
.page-body{padding-block:clamp(3.5rem,8vw,6rem)}
.page-body .entry{max-width:760px;margin:0 auto;font-size:1rem;line-height:1.85;color:#3a4e55}
.page-body .entry>*+*{margin-top:1.2em}
.page-body .entry h2,.page-body .entry h3{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);margin-top:2em}
.page-body .entry a{color:var(--primary);text-decoration:underline}
.page-body .entry img{height:auto}
.bookbar{scroll-margin-top:90px}
/* logo clara/escura */
.logo-custom{position:relative;display:inline-flex;align-items:center}
.logo-custom img{display:block;height:52px;width:auto;max-width:200px;object-fit:contain;transition:opacity .4s var(--ease),height .5s var(--ease)}
.hdr .logo-custom .logo-dark{position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0}
.hdr.solid .logo-custom img{height:44px}
.hdr.solid .logo-custom .logo-dark{opacity:1}
.hdr.solid .logo-custom .logo-light:not(:only-child){opacity:0}
.foot .logo-custom{margin-bottom:1.6rem}
/* rodapé: redes e contato */
.foot-social{display:flex;gap:.6rem;margin:-.4rem 0 1.6rem}
.foot-social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(242,249,251,.35);display:grid;place-items:center;transition:background .4s var(--ease),color .4s var(--ease)}
.foot-social a:hover{background:var(--white);color:var(--primary)}
.foot-social svg{width:17px;height:17px}
.foot-contact{margin-top:1rem}
/* WhatsApp flutuante */
.wa-float{position:fixed;z-index:45;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--white);display:grid;place-items:center;box-shadow:0 12px 26px -10px rgba(20,38,45,.6);transition:transform .4s var(--ease),background .4s var(--ease)}
.wa-float:hover{transform:translateY(-3px);background:var(--primary-deep)}
.wa-float svg{width:26px;height:26px}
/* preço nos cards de oferta */
.pk-price{font-family:var(--display);font-size:1.05rem;letter-spacing:.06em;color:var(--white)}
