/* Cantos de Aconchego — editorial de viagem. Instrument Serif + Hanken Grotesk. */
@font-face{font-family:"Instrument Serif";src:url(/assets/fonts/instrument.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(/assets/fonts/instrument-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(/assets/fonts/hanken.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}

:root{
  --areia:#f3ede3; --papel:#faf7f1; --tinta:#13262c; --tinta2:#3d5258; --suave:#56666a;
  --linha:rgba(19,38,44,.14); --terracota:#a8481f; --terracota2:#8a3a17;
  --entardecer:#94501f; --mar:#236a70; --mata:#4a6a3f; --noite:#0e1f25;
  --serif:"Instrument Serif", "Iowan Old Style", Georgia, serif;
  --sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gut:clamp(16px, 4vw, 56px); --max:1320px; --raio:4px;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--areia);color:var(--tinta);font:400 18px/1.62 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.01em;margin:0}
p{margin:0 0 1em}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
.ic{width:1.15em;height:1.15em;flex:none}
.pular{position:absolute;left:-9999px;top:8px;background:var(--tinta);color:var(--papel);padding:10px 16px;z-index:200}
.pular:focus{left:8px}
:focus-visible{outline:2px solid var(--terracota);outline-offset:3px}

.kicker{font:600 .74rem/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--suave);margin:0 0 1.1rem}
.kicker.claro{color:rgba(250,247,241,.82)}
.kicker a{text-decoration:none}
.tom-entardecer .kicker:not(.claro),.kicker.tom-entardecer{color:var(--entardecer)}
.tom-mar .kicker:not(.claro),.kicker.tom-mar{color:var(--mar)}
.tom-mata .kicker:not(.claro),.kicker.tom-mata{color:var(--mata)}
.sec-tit{font-size:clamp(2.3rem,5.2vw,4.4rem);margin-bottom:.4em}
.sec-lead{color:var(--tinta2);max-width:36em}

.btn{display:inline-flex;align-items:center;gap:.6em;font:600 1rem/1 var(--sans);letter-spacing:.01em;text-decoration:none;padding:1.05em 1.5em;border-radius:999px;transition:transform .35s var(--ease),background .3s,color .3s,box-shadow .3s}
.btn:hover{transform:translateY(-2px)}
.btn-claro{background:var(--papel);color:var(--tinta)}
.btn-claro:hover{background:#fff}
.btn-airbnb{background:var(--terracota);color:#fff;box-shadow:0 10px 30px -12px rgba(168,72,31,.7)}
.btn-airbnb:hover{background:var(--terracota2)}
.btn-grande{font-size:1.1rem;padding:1.2em 1.8em}
.link-seta{display:inline-flex;gap:.5em;align-items:center;font-weight:600;font-size:.95rem;border-bottom:1px solid currentColor;padding-bottom:2px}

/* ---------- topo ---------- */
.topo{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:28px;padding:18px var(--gut);color:var(--papel);transition:background .4s,color .4s,padding .4s,box-shadow .4s}
.topo.solido,.topo.claro{background:rgba(243,237,227,.94);color:var(--tinta);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:12px;padding-bottom:12px;box-shadow:0 1px 0 var(--linha)}
.marca{display:flex;align-items:baseline;gap:.35em;text-decoration:none;white-space:nowrap}
.marca-a{font:italic 400 1.75rem/1 var(--serif)}
.marca-b{font:500 .78rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.menu{display:flex;align-items:center;gap:26px;margin-left:auto;font-size:.95rem}
.menu>a{text-decoration:none;opacity:.9}
.menu>a:hover{opacity:1;text-decoration:underline;text-underline-offset:5px}
.menu-cantos{display:flex;gap:18px;align-items:center;padding-right:22px;border-right:1px solid currentColor;border-color:rgba(127,127,127,.35)}
.menu-cantos a{text-decoration:none;display:flex;flex-direction:column;line-height:1.1}
.menu-cantos a span{font:italic 1.2rem/1 var(--serif)}
.menu-cantos a small{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.menu-rot{display:none}
.langs{display:flex;gap:2px;font:600 .75rem/1 var(--sans);letter-spacing:.08em}
.langs a{text-decoration:none;padding:7px 8px;border-radius:999px;opacity:.65}
.langs a[aria-current]{opacity:1;background:rgba(127,127,127,.22)}
.menu-btn{display:none}

/* ---------- hero (tríptico) ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;background:var(--noite);color:var(--papel);overflow:hidden}
.paineis{position:absolute;inset:0;display:flex}
.painel{position:relative;flex:1;overflow:hidden;text-decoration:none;transition:flex-grow .9s var(--ease);border-right:1px solid rgba(250,247,241,.18)}
.painel:last-child{border-right:0}
.painel-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12);animation:kb 22s ease-out forwards;opacity:0;animation-name:entra,kb;animation-duration:1.4s,24s;animation-delay:calc(var(--i)*.18s),0s;animation-fill-mode:forwards,forwards}
.painel-centro .painel-img{object-position:50% 60%}
.painel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,31,37,.35) 0%,rgba(14,31,37,.05) 40%,rgba(14,31,37,.75) 100%)}
@keyframes entra{to{opacity:1}}
@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1)}}
.painel-rot{position:absolute;left:clamp(18px,2.4vw,34px);bottom:clamp(22px,4vh,44px);z-index:2;display:flex;flex-direction:column;gap:4px}
.painel-rot small{font:600 .72rem/1 var(--sans);letter-spacing:.2em;opacity:.8}
.painel-rot b{font:italic 400 clamp(1.8rem,2.6vw,2.6rem)/1 var(--serif)}
.painel-rot em{font:normal 500 .74rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;opacity:.85}
@media (hover:hover) and (min-width:801px){
  .paineis:hover .painel{flex-grow:.8}
  .paineis .painel:hover{flex-grow:1.6}
}
.hero::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(10,22,27,.72) 0%,rgba(10,22,27,.45) 38%,rgba(10,22,27,0) 70%)}
.hero-txt{position:absolute;z-index:3;left:var(--gut);top:50%;transform:translateY(-58%);max-width:min(820px,70vw);pointer-events:none}
.hero-txt a{pointer-events:auto}
.hero h1{font-size:clamp(3.6rem,11vw,10.5rem);line-height:.88;margin-bottom:.28em;text-shadow:0 2px 40px rgba(0,0,0,.25)}
.hero h1 .l1{font-style:italic;padding-left:.55em}
.hero-lead{font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:30em;color:rgba(250,247,241,.92);text-shadow:0 1px 18px rgba(0,0,0,.35)}
.hero-txt>*{opacity:0;animation:sobe 1.1s var(--ease) forwards}
.hero-txt>*:nth-child(2){animation-delay:.25s}.hero-txt>*:nth-child(3){animation-delay:.5s}.hero-txt>*:nth-child(4){animation-delay:.7s}
@keyframes sobe{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ---------- números ---------- */
.numeros{background:var(--noite);color:var(--papel);padding:0 var(--gut)}
.numeros ul{list-style:none;margin:0 auto;padding:clamp(28px,4vw,48px) 0;max-width:var(--max);display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:1px solid rgba(250,247,241,.14)}
.numeros li{display:flex;flex-direction:column;gap:6px}
.numeros b{font:400 clamp(2.6rem,5vw,4.2rem)/1 var(--serif)}
.numeros span{font-size:.9rem;color:rgba(250,247,241,.7);max-width:12em}

/* ---------- manifesto ---------- */
.manifesto{padding:clamp(80px,12vw,170px) var(--gut) clamp(40px,6vw,90px);max-width:var(--max);margin:0 auto}
.manifesto-txt{font:400 clamp(1.9rem,4.2vw,3.7rem)/1.12 var(--serif);max-width:22em;text-wrap:balance}
.manifesto-txt::first-letter{font-style:italic;color:var(--terracota)}

/* ---------- cantos + mapa ---------- */
.cantos{display:grid;grid-template-columns:minmax(260px,.8fr) 1.2fr;gap:clamp(24px,5vw,80px);padding:0 var(--gut) clamp(60px,8vw,120px);max-width:var(--max);margin:0 auto}
.mapa-sticky{position:sticky;top:90px}
.mapa{width:100%;height:auto;color:var(--mar);overflow:visible}
.mapa .mar-bg{opacity:.55}
.mapa .ilha{fill:#e6dbc8;stroke:var(--tinta);stroke-width:1.6;stroke-linejoin:round}
.mapa .lagoa{fill:var(--areia);stroke:var(--mar);stroke-width:1}
.mapa-rot{font:600 15px var(--sans);letter-spacing:.3em;text-transform:uppercase;fill:var(--suave)}
.mapa-extra{fill:var(--suave);font:500 17px var(--sans)}
.pin{cursor:pointer;text-decoration:none}
.pin text{font:italic 400 38px var(--serif);fill:var(--tinta);transition:fill .3s}
.pin-pt{fill:var(--terracota);stroke:var(--papel);stroke-width:3}
.pin-onda{fill:var(--terracota);opacity:.22;transform-box:fill-box;transform-origin:center;animation:pulsa 2.6s ease-out infinite}
.pin-norte .pin-onda{animation-delay:.8s}.pin-sul .pin-onda{animation-delay:1.6s}
.pin.off{opacity:.35}.pin.off .pin-onda{animation:none;opacity:0}
.pin.ativo text,.pin:hover text{fill:var(--terracota)}
@keyframes pulsa{0%{transform:scale(.5);opacity:.4}100%{transform:scale(2.2);opacity:0}}
.mapa-dica{font-size:.85rem;color:var(--suave);margin-top:10px;text-align:center}
.cantos-lista{display:flex;flex-direction:column;gap:clamp(36px,5vw,64px)}
.canto-card{position:relative;display:grid;grid-template-columns:1fr;text-decoration:none;gap:22px}
.canto-num{position:absolute;right:0;top:-.3em;font:italic 400 clamp(4rem,8vw,7rem)/1 var(--serif);color:transparent;-webkit-text-stroke:1px var(--linha);z-index:0}
.canto-foto{overflow:hidden;border-radius:var(--raio);aspect-ratio:16/10}
.canto-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.canto-card:hover .canto-foto img{transform:scale(1.05)}
.canto-txt h3{font-size:clamp(2.4rem,4.5vw,3.6rem);margin-bottom:.2em}
.canto-txt p{color:var(--tinta2);max-width:32em}
.canto-para{font-size:.9rem;letter-spacing:.02em}
.canto-card.ativo .canto-foto{outline:2px solid var(--terracota);outline-offset:6px}

/* ---------- apartamentos ---------- */
.aptos{padding:clamp(70px,9vw,130px) var(--gut);max-width:var(--max);margin:0 auto}
#apartamentos:not(.aptos-canto){background:var(--papel);max-width:none}
#apartamentos:not(.aptos-canto)>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.sec-cab{margin-bottom:28px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}
.chip{border:1px solid var(--linha);border-radius:999px;padding:.7em 1.2em;font-size:.95rem;font-weight:500;background:transparent;transition:all .25s}
.chip:hover{border-color:var(--tinta)}
.chip.on{background:var(--tinta);color:var(--papel);border-color:var(--tinta)}
.grade-aptos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px) clamp(18px,2.4vw,32px)}
.card-apto{display:flex;flex-direction:column;gap:16px;transition:opacity .4s,transform .4s}
.card-apto.escondido{display:none}
.card-foto{position:relative;display:block;overflow:hidden;border-radius:var(--raio);aspect-ratio:4/3.1}
.card-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.card-apto:hover .card-foto img{transform:scale(1.06)}
.selo{position:absolute;left:12px;top:12px;background:rgba(250,247,241,.94);color:var(--tinta);font:600 .72rem/1 var(--sans);letter-spacing:.06em;padding:8px 10px;border-radius:999px}
.selo-alt{background:var(--tinta);color:var(--papel)}
.apto-meta .selo{position:static}
.card-txt .kicker{margin-bottom:.5rem;font-size:.68rem}
.card-txt h3{font-size:clamp(1.7rem,2.3vw,2.1rem);margin-bottom:.3em}
.card-txt h3 a{text-decoration:none}
.card-txt h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.card-fatos{color:var(--tinta2);font-size:.95rem;margin:0 0 .3em}
.card-nota{font-size:.92rem;display:flex;align-items:center;gap:4px;margin:0}
.estrela{width:14px;height:14px;fill:var(--terracota);flex:none}

/* ---------- anfitriã ---------- */
.anfitria{background:var(--tinta);color:var(--papel);display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);padding:clamp(70px,9vw,130px) var(--gut) 0;position:relative;overflow:hidden}
.anfitria-foto{overflow:hidden;border-radius:var(--raio);align-self:start}
.anfitria-foto img{width:100%;aspect-ratio:4/5;object-fit:cover}
.anfitria-txt h2{font-size:clamp(2.3rem,4.4vw,3.9rem);margin-bottom:.6em}
.anfitria-txt p{color:rgba(250,247,241,.82);max-width:32em}
.selos{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.selos span{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(250,247,241,.25);border-radius:999px;padding:9px 16px;font-size:.9rem;color:var(--papel)}
.selos .estrela{fill:#e39a6f}
.deps{grid-column:1/-1;overflow:hidden;margin:clamp(40px,6vw,80px) calc(var(--gut)*-1) 0;padding:0 0 clamp(60px,7vw,100px);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.deps-trilho{display:flex;gap:22px;width:max-content;animation:rola 120s linear infinite}
.deps:hover .deps-trilho{animation-play-state:paused}
@keyframes rola{to{transform:translateX(-50%)}}
.dep{width:min(380px,78vw);margin:0;padding:28px;border:1px solid rgba(250,247,241,.16);border-radius:var(--raio);background:rgba(250,247,241,.04);display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.dep blockquote{margin:0;font:italic 400 1.35rem/1.3 var(--serif)}
.dep blockquote::before{content:"“";color:#e39a6f}
.dep blockquote::after{content:"”";color:#e39a6f}
.dep figcaption{font-size:.84rem;color:rgba(250,247,241,.65)}
.dep figcaption b{color:var(--papel);font-weight:600;margin-right:2px}

/* ---------- postais ---------- */
.postais{padding:clamp(60px,8vw,110px) 0;overflow:hidden}
.postais-trilho{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--gut) 12px;scrollbar-width:none}
.postais-trilho::-webkit-scrollbar{display:none}
.postal{flex:none;width:min(340px,70vw);margin:0;scroll-snap-align:start;background:var(--papel);padding:10px 10px 14px;box-shadow:0 12px 30px -18px rgba(19,38,44,.5);transform:rotate(var(--r,0deg));transition:transform .5s var(--ease)}
.postal:nth-child(odd){--r:-1.2deg}.postal:nth-child(3n){--r:1.4deg}
.postal:hover{transform:rotate(0) translateY(-6px)}
.postal img{aspect-ratio:4/5;object-fit:cover;width:100%}
.postal figcaption{font:italic 1.2rem/1.2 var(--serif);padding-top:10px}

/* ---------- como / faq ---------- */
.como,.faq{padding:clamp(60px,8vw,110px) var(--gut);max-width:var(--max);margin:0 auto}
.como ol{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px)}
.como li{border-top:1px solid var(--tinta);padding-top:22px}
.passo{font:italic 400 3rem/1 var(--serif);color:var(--terracota)}
.como h3{font-size:1.9rem;margin:.4em 0 .3em}
.como p{color:var(--tinta2)}
.nota-airbnb{display:flex;align-items:center;gap:10px;margin-top:40px;color:var(--tinta2);font-size:.95rem}
.faq{padding-top:0}
.faq-lista{border-top:1px solid var(--linha)}
.faq-item{border-bottom:1px solid var(--linha)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 0;font:400 clamp(1.35rem,2.2vw,1.7rem)/1.2 var(--serif)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-ic{transition:transform .35s var(--ease)}
.faq-item[open] .faq-ic{transform:rotate(45deg)}
.faq-item p{max-width:46em;color:var(--tinta2);padding-bottom:22px}

/* ---------- fecho ---------- */
.fecho{position:relative;height:min(88vh,820px);min-height:480px;overflow:hidden;color:var(--papel);display:flex;align-items:flex-end}
.fecho-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fecho::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,31,37,.1),rgba(14,31,37,.65))}
.fecho-txt{position:relative;z-index:2;padding:0 var(--gut) clamp(40px,7vw,90px)}
.fecho h2{font-size:clamp(3rem,9vw,8rem);line-height:.9;margin-bottom:.4em}
.fecho h2 .l1{font-style:italic}

/* ---------- rodapé ---------- */
.rodape{background:var(--noite);color:rgba(250,247,241,.78);padding:clamp(60px,8vw,100px) var(--gut) 28px;font-size:.95rem}
.rodape-in{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.rodape .marca{color:var(--papel);margin-bottom:18px}
.rodape h3{font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--papel);margin-bottom:16px}
.rodape ul{list-style:none;margin:0;padding:0}
.rodape li{margin-bottom:8px}
.rodape a{text-decoration:none}.rodape a:hover{text-decoration:underline}
.rodape-fim{max-width:var(--max);margin:50px auto 0;padding-top:22px;border-top:1px solid rgba(250,247,241,.12);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;font-size:.82rem}
.rodape .langs a{color:var(--papel)}

/* ---------- canto (região) ---------- */
.canto-hero{position:relative;height:88vh;height:88svh;min-height:540px;color:var(--papel);overflow:hidden;display:flex;align-items:flex-end}
.canto-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 20s ease-out forwards}
.canto-hero::after{content:"";position:absolute;inset:0}
.tom-entardecer.canto-hero::after{background:linear-gradient(180deg,rgba(14,31,37,.35),rgba(60,28,12,.2) 45%,rgba(14,20,24,.8))}
.tom-mar.canto-hero::after{background:linear-gradient(180deg,rgba(14,31,37,.35),rgba(14,50,56,.1) 45%,rgba(10,32,38,.78))}
.tom-mata.canto-hero::after{background:linear-gradient(180deg,rgba(14,31,37,.35),rgba(30,45,24,.12) 45%,rgba(18,28,16,.8))}
.canto-hero-txt{position:relative;z-index:2;padding:0 var(--gut) clamp(40px,7vw,90px);max-width:1100px}
.canto-hero h1{font-size:clamp(3.6rem,11vw,9.5rem);line-height:.9;font-style:italic}
.canto-hero-tit{font:400 clamp(1.4rem,2.8vw,2.3rem)/1.15 var(--serif);max-width:22em;margin-top:.4em}
.canto-intro{padding:clamp(60px,9vw,130px) var(--gut) 0;max-width:var(--max);margin:0 auto}
.canto-lead{font:400 clamp(1.6rem,3.2vw,2.7rem)/1.18 var(--serif);max-width:26em;margin-bottom:clamp(40px,6vw,80px)}
.canto-cols{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(30px,6vw,100px);align-items:start}
.canto-texto p{color:var(--tinta2);max-width:36em}
.mapa-mini{max-width:320px;margin:0 auto}
.mapa-mini .pin text{font-size:44px}
.aptos-canto .grade-aptos{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.nota-anfitriao{border-left:2px solid var(--mata);padding:6px 0 6px 16px;color:var(--tinta2);font-size:.98rem;margin:0 0 36px;max-width:40em}
.condominio{padding:0 var(--gut) clamp(60px,8vw,110px);max-width:var(--max);margin:0 auto}
.mosaico-cond{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mosaico-cond figure{margin:0;overflow:hidden;border-radius:var(--raio);position:relative}
.mosaico-cond figure:first-child{grid-column:span 2;grid-row:span 2}
.mosaico-cond img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.mosaico-cond figcaption,.guia-fotos figcaption{position:absolute;left:12px;bottom:10px;color:#fff;font:italic 1.15rem var(--serif);text-shadow:0 1px 10px rgba(0,0,0,.6)}
.guia{background:var(--tinta);color:var(--papel);padding:clamp(70px,9vw,130px) var(--gut)}
.guia.tom-entardecer{background:#2a1a12}.guia.tom-mar{background:#0f2f33}.guia.tom-mata{background:#1b2617}
.guia-cab,.guia-lista,.guia-fotos{max-width:var(--max);margin-left:auto;margin-right:auto}
.guia h2{font-size:clamp(2.4rem,5vw,4.4rem);max-width:14em;margin-bottom:.8em}
.guia-lista{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(30px,5vw,80px)}
.guia-lista li{display:flex;gap:20px;padding:22px 0;border-top:1px solid rgba(250,247,241,.15)}
.guia-n{font:italic 1.6rem/1 var(--serif);color:#e39a6f;min-width:2ch}
.guia-lista h3{font-size:1.6rem;margin-bottom:.25em}
.guia-lista p{color:rgba(250,247,241,.75);margin:0;font-size:.98rem}
.guia-fotos{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:50px}
.guia-fotos figure{margin:0;position:relative;overflow:hidden;border-radius:var(--raio)}
.guia-fotos img{aspect-ratio:3/4;object-fit:cover;width:100%}
.outros{padding:clamp(70px,9vw,120px) var(--gut);max-width:var(--max);margin:0 auto}
.outros-grade{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.outro-canto{position:relative;display:block;overflow:hidden;border-radius:var(--raio);color:#fff;text-decoration:none;aspect-ratio:16/10}
.outro-canto img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.outro-canto:hover img{transform:scale(1.05)}
.outro-canto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,20,24,.75))}
.outro-canto span{position:absolute;left:22px;bottom:18px;z-index:2;font:italic 2.6rem/1 var(--serif);display:flex;flex-direction:column}
.outro-canto small{font:600 .7rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;font-style:normal;margin-bottom:8px;opacity:.85}

/* ---------- apartamento ---------- */
.migalha{padding:96px var(--gut) 0;max-width:var(--max);margin:0 auto;font-size:.85rem;color:var(--suave)}
.migalha a{text-decoration:none}.migalha a:hover{text-decoration:underline}
.apto-cab{padding:22px var(--gut) 26px;max-width:var(--max);margin:0 auto}
.apto-cab h1{font-size:clamp(3rem,7.6vw,6.8rem);line-height:.92}
.apto-tit{font:italic 400 clamp(1.35rem,2.4vw,2rem)/1.2 var(--serif);color:var(--tinta2);max-width:28em;margin:.4em 0 .8em}
.apto-meta{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;font-size:.95rem}
.apto-meta>span{display:inline-flex;align-items:center;gap:5px}
.mosaico{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;padding:0 var(--gut);max-width:var(--max);margin:0 auto;height:min(64vh,620px)}
.mos{overflow:hidden;border-radius:2px;position:relative}
.mos img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .4s}
.mos:hover img{transform:scale(1.04);filter:brightness(1.05)}
.mos-0{grid-row:span 2;border-radius:var(--raio) 2px 2px var(--raio)}
.mos-2{border-top-right-radius:var(--raio)}.mos-4{border-bottom-right-radius:var(--raio)}
.btn-foto{position:absolute;right:calc(var(--gut) + 16px);bottom:16px;background:var(--papel);color:var(--tinta);padding:.8em 1.2em;font-size:.9rem;box-shadow:0 6px 20px -8px rgba(0,0,0,.4)}
.apto-corpo{display:grid;grid-template-columns:1fr 380px;gap:clamp(30px,6vw,90px);padding:clamp(40px,6vw,80px) var(--gut);max-width:var(--max);margin:0 auto}
.apto-info h2{font-size:clamp(1.9rem,3vw,2.5rem);margin:1.8em 0 .7em}
.apto-lead{font:400 clamp(1.3rem,2vw,1.6rem)/1.35 var(--serif)}
.destaques{list-style:none;padding:0;margin:26px 0;display:grid;gap:12px}
.destaques li{display:flex;gap:12px;align-items:flex-start}
.destaques .ic{color:var(--terracota);margin-top:.25em}
.ideal{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.tag{font-size:.8rem;font-weight:600;letter-spacing:.04em;padding:6px 12px;border-radius:999px;background:rgba(19,38,44,.07)}
.comod{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 28px}
.comod li{display:flex;gap:12px;align-items:center;font-size:.98rem}
.comod .ic{width:26px;height:26px;color:var(--tinta2)}
.camas{display:flex;gap:12px;align-items:center}
.camas .ic{width:26px;height:26px}
.regras{padding-left:1.1em;color:var(--tinta2)}
.regras li{margin-bottom:6px}
.barras{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 34px}
.barras li{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;font-size:.95rem}
.barras i{grid-column:1/-1;grid-row:2;height:3px;background:var(--linha);position:relative;border-radius:2px;overflow:hidden}
.barras i::after{content:"";position:absolute;inset:0;width:calc((var(--v) - 4) * 100%);background:var(--tinta);min-width:4%}
.reserva{position:relative}
.reserva-card{position:sticky;top:96px;background:var(--papel);border:1px solid var(--linha);border-radius:8px;padding:28px;box-shadow:0 30px 60px -40px rgba(19,38,44,.5)}
.reserva-nota{display:flex;align-items:center;gap:6px;font-size:1.05rem}
.reserva-nota b{font:400 2rem/1 var(--serif)}
.reserva-nota .estrela{width:18px;height:18px}
.reserva-fatos{color:var(--tinta2);font-size:.95rem;margin:.6em 0 1em}
.reserva-horas{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--linha);border-radius:6px;margin:0 0 20px}
.reserva-horas div{padding:10px 14px}.reserva-horas div+div{border-left:1px solid var(--linha)}
.reserva-horas dt{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--suave)}
.reserva-horas dd{margin:0;font-weight:600}
.reserva .btn-airbnb{width:100%;justify-content:center;text-align:center}
.reserva-preco{font-size:.85rem;color:var(--suave);margin:14px 0 0;text-align:center}
.reserva-mapa{margin-top:26px;text-align:center;font-size:.9rem}
.reserva-mapa .mapa-mini{max-width:200px}
.reserva-mapa a{display:inline-flex;gap:6px;align-items:center;text-decoration:none;font-weight:600}
.apto-deps{padding:clamp(40px,6vw,90px) var(--gut);max-width:var(--max);margin:0 auto;border-top:1px solid var(--linha)}
.deps-grade{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,4vw,56px)}
.dep-apto{margin:0}
.dep-apto blockquote{margin:0 0 14px;font:italic 400 clamp(1.3rem,2vw,1.6rem)/1.3 var(--serif)}
.dep-apto figcaption{font-size:.88rem;color:var(--tinta2)}
.dep-apto figcaption span{display:block;color:var(--suave)}
.dep-fonte{margin-top:34px;font-size:.9rem;color:var(--suave)}
.dep-fonte a{display:inline-flex;gap:6px;align-items:center;color:var(--tinta);font-weight:600}
.apto-cta{margin:0 var(--gut);border-radius:8px;padding:clamp(50px,8vw,100px) var(--gut);text-align:center;color:var(--papel);background:var(--tinta)}
.apto-cta.tom-entardecer{background:linear-gradient(135deg,#2a1a12,#5b2c14)}
.apto-cta.tom-mar{background:linear-gradient(135deg,#0f2f33,#1f5a5f)}
.apto-cta.tom-mata{background:linear-gradient(135deg,#1b2617,#3b5231)}
.apto-cta h2{font-size:clamp(2.6rem,6vw,5rem);font-style:italic;margin-bottom:.3em}
.apto-cta p{color:rgba(250,247,241,.8);max-width:34em;margin:0 auto 28px}
.barra-reserva{display:none}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:300;background:rgba(10,18,21,.96);display:none;align-items:center;justify-content:center;color:var(--papel)}
.lb.on{display:flex}
.lb figure{margin:0;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center}
.lb img{max-width:92vw;max-height:80vh;object-fit:contain}
.lb figcaption{margin-top:12px;font:italic 1.2rem var(--serif)}
.lb button{position:absolute;width:52px;height:52px;border-radius:50%;background:rgba(250,247,241,.1);display:grid;place-items:center}
.lb button:hover{background:rgba(250,247,241,.2)}
.lb-x{top:18px;right:18px}.lb-p{left:18px;top:50%}.lb-n{right:18px;top:50%}

/* ---------- simples ---------- */
.simples{padding:140px var(--gut) 90px;max-width:820px;margin:0 auto}
.simples h1{font-size:clamp(2.8rem,6vw,4.4rem);margin-bottom:.6em}
.simples p,.creditos{color:var(--tinta2)}
.creditos li{margin-bottom:10px;font-size:.95rem}

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

/* ---------- responsivo ---------- */
@media (max-width:1100px){
  .menu-cantos{display:none}
  .grade-aptos{grid-template-columns:repeat(2,1fr)}
  .apto-corpo{grid-template-columns:1fr 320px}
}
@media (max-width:900px){
  .cantos{grid-template-columns:1fr}
  .mapa-sticky{position:relative;top:0;max-width:340px;margin:0 auto}
  .anfitria{grid-template-columns:1fr}
  .canto-cols{grid-template-columns:1fr}
  .guia-lista{grid-template-columns:1fr}
  .guia-fotos{grid-template-columns:repeat(2,1fr)}
  .apto-corpo{grid-template-columns:1fr}
  .reserva-card{position:static}
  .rodape-in{grid-template-columns:1fr 1fr}
  .rodape-marca{grid-column:1/-1}
}
@media (max-width:800px){
  body{font-size:17px}
  .topo{gap:10px}
  .topo .langs a{padding:7px 6px}
  .menu-btn{font-size:.78rem!important;letter-spacing:.06em!important}
  .marca-b{font-size:.7rem;letter-spacing:.12em}
  .topo.solido,.topo.claro{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(243,237,227,.98)}
  .topo>.langs{margin-left:auto}
  .menu-btn{display:flex;align-items:center;gap:8px;position:relative;z-index:60;font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
  .menu-btn span{display:none}
  .menu{position:fixed;inset:0;background:var(--noite);color:var(--papel);flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding:90px var(--gut) 40px;transform:translateY(-100%);transition:transform .6s var(--ease);margin:0;font-size:1.2rem}
  .menu.aberto{transform:none}
  .menu-cantos{display:flex;flex-direction:column;align-items:flex-start;border:0;padding:0 0 20px;gap:16px;border-bottom:1px solid rgba(250,247,241,.15);width:100%}
  .menu-rot{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
  .menu-cantos a span{font-size:2.4rem}
  body.menu-on .topo{color:var(--papel);background:transparent;box-shadow:none;backdrop-filter:none}
  .topo .marca,.topo>.langs{position:relative;z-index:60}
  .paineis{flex-direction:column}
  .painel{border-right:0;border-bottom:1px solid rgba(250,247,241,.2)}
  .painel:first-child{flex:1.6}
  .painel-rot{flex-direction:row;align-items:baseline;gap:10px;bottom:14px;right:18px}
  .painel-rot b{font-size:1.7rem}
  .painel-rot em{margin-left:auto}
  .hero-txt{top:100px;transform:none;max-width:none;right:var(--gut)}
  .hero h1{font-size:clamp(3.3rem,15vw,5rem)}
  .hero-lead{font-size:1rem;max-width:22em}
  .hero-txt .btn{display:none}
  .numeros ul{grid-template-columns:repeat(2,1fr);gap:26px 16px}
  .grade-aptos{grid-template-columns:1fr}
  .como ol{grid-template-columns:1fr}
  .mosaico{grid-template-columns:1fr 1fr;grid-template-rows:auto;height:auto;padding:0}
  .mos{aspect-ratio:4/3;border-radius:0!important}
  .mos-0{grid-column:1/-1;grid-row:auto;aspect-ratio:4/3.2}
  .mos-3,.mos-4{display:none}
  .btn-foto{right:16px;bottom:16px}
  .comod,.barras,.deps-grade{grid-template-columns:1fr}
  .mosaico-cond{grid-template-columns:1fr 1fr}
  .outros-grade{grid-template-columns:1fr}
  .barra-reserva{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(250,247,241,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:12px 16px calc(12px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -1px 0 var(--linha),0 -10px 30px -20px rgba(0,0,0,.4);transform:translateY(110%);transition:transform .4s var(--ease)}
  .barra-reserva.on{transform:none}
  .barra-reserva div{display:flex;flex-direction:column;line-height:1.25;min-width:0}
  .barra-reserva b{font:400 1.25rem/1.1 var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .barra-reserva span{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--tinta2)}
  .barra-reserva .btn{padding:.9em 1.2em;font-size:.92rem;flex:none}
  .apto-cta{margin:0}
  .rodape{padding-bottom:100px}
  .rodape-in{grid-template-columns:1fr}
  .lb-p,.lb-n{top:auto;bottom:20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .painel-img{opacity:1}
}
