/* Pura Vida — páginas internas. Mesmo sistema da Home (tokens de index.css + pv.css). */
.pg main{background:var(--areia)}
.h1{font-family:var(--font-display);font-weight:300;font-size:var(--t-big);line-height:.98;letter-spacing:-.025em;margin:0;text-wrap:balance}
.h2{font-family:var(--font-display);font-weight:300;font-size:var(--t-mid);line-height:1.04;letter-spacing:-.015em;margin:0;text-wrap:balance}
.sec{padding-block:clamp(5rem,11vw,10rem)}
.sec--top{padding-top:calc(var(--hd-h) + clamp(4rem,9vw,8rem))}
.split{display:grid;gap:clamp(2.5rem,6vw,5rem)}
@media (width>=1000px){.split{grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:calc(var(--gutter) * 3);align-items:start}}
.spec--lt{border-top-color:var(--rule)}
.spec--lt div{border-bottom-color:var(--rule);grid-template-columns:minmax(8rem,10rem) 1fr}
.spec--lt dt{color:var(--ink-muted)}
.spec--lt dd a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}
.dk .spec--lt{border-top-color:var(--rule-d)}

/* page hero */
.ph{position:relative;min-height:min(86svh,58rem);display:flex;align-items:flex-end;color:var(--areia);overflow:hidden;background:var(--mata)}
.ph__im{position:absolute;inset:0}
.ph__im img{width:100%;height:100%;object-fit:cover;display:block;animation:phIn 2.4s var(--ease-out) both}
@keyframes phIn{from{transform:scale(1.08)}to{transform:scale(1)}}
.ph__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,24,17,.5) 0%,rgba(20,24,17,.05) 38%,rgba(20,24,17,.72) 100%)}
.ph__in{position:relative;z-index:2;padding-block:calc(var(--hd-h) + 3rem) clamp(3rem,7vw,5.5rem);display:grid;gap:var(--s-3)}
.ph__in .kick{margin:0}
.ph__title{font-family:var(--font-display);font-weight:300;font-size:var(--t-big);line-height:.98;letter-spacing:-.025em;margin:0;max-width:13em;text-wrap:balance}
.ph__lead{font-size:var(--fs-read);line-height:1.7;max-width:32em;margin:0;color:color-mix(in srgb,var(--areia) 88%,transparent)}
.ph__cta{justify-self:start;margin-top:var(--s-3)}
.bt--inv{background:var(--areia);color:var(--mata);border-color:var(--areia)}
.bt--inv:hover{background:transparent;color:var(--areia);border-color:var(--areia)}
.lt .bt--inv{background:var(--mata);color:var(--areia);border-color:var(--mata)}
.lt .bt--inv:hover{background:var(--palmeira);border-color:var(--palmeira)}

/* chalés: parte por parte */
.rms{padding-block:0 clamp(6rem,12vw,11rem)}
.rm{display:grid;gap:var(--s-4);padding-block:clamp(3rem,7vw,6rem);border-top:1px solid var(--rule)}
.rm__im{margin:0;overflow:hidden;background:var(--maresia)}
.rm__im img{display:block;width:100%;height:100%;object-fit:cover}
.rm--p .rm__im{aspect-ratio:4/5}.rm--l .rm__im{aspect-ratio:3/2}.rm--s .rm__im{aspect-ratio:1/1}
.rm__txt{display:grid;gap:var(--s-3);align-content:end}
.rm__n{margin:0;color:var(--ink-muted)}
.rm__t{font-family:var(--font-display);font-weight:300;font-size:clamp(1.8rem,1.3rem + 1.6vw,2.9rem);line-height:1.1;margin:0;text-wrap:balance}
@media (width>=900px){
  .rm{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:end}
  .rm--p .rm__im{grid-column:1/6}.rm--p .rm__txt{grid-column:7/12}
  .rm--l .rm__im{grid-column:1/9}.rm--l .rm__txt{grid-column:9/13}
  .rm--s .rm__im{grid-column:6/12;grid-row:1}.rm--s .rm__txt{grid-column:1/5;grid-row:1}
  .rm:nth-child(4) .rm__im{grid-column:5/13;grid-row:1}.rm:nth-child(4) .rm__txt{grid-column:1/5;grid-row:1}
}

/* band CTA */
.band{padding-block:clamp(6rem,12vw,10rem)}
.band__in{display:grid;justify-items:center;text-align:center;gap:var(--s-4)}
.band__mark{width:40px;line-height:0;opacity:.85}.band__mark svg{width:100%;height:auto}
.band__t{font-family:var(--font-display);font-weight:300;font-size:var(--t-mid);line-height:1.08;margin:0;max-width:16em;text-wrap:balance}
.band__t em{font-style:italic}
.dk.band{background:linear-gradient(180deg,var(--mata) 0%,var(--mata-deep) 100%)}

/* viver */
.mos{display:grid;gap:clamp(3rem,6vw,5rem) var(--gutter)}
@media (width>=700px){.mos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (width>=1100px){.mos{grid-template-columns:repeat(3,minmax(0,1fr))}.mo:nth-child(3n+2){margin-top:5rem}}
.mo{display:grid;gap:var(--s-2);align-content:start}
.mo__im{margin:0 0 var(--s-2);aspect-ratio:4/5;overflow:hidden;background:var(--maresia)}
.mo__im img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.6s var(--ease-out)}
.mo:hover .mo__im img{transform:scale(1.04)}
.mo__t{font-family:var(--font-display);font-weight:300;font-size:clamp(1.6rem,1.3rem + .9vw,2.2rem);line-height:1.1;margin:0}
.mo__p{margin:0;font-size:var(--fs-read);line-height:1.7;color:var(--ink-soft);max-width:26em}
.dl{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-d)}
.dl li{display:grid;grid-template-columns:minmax(5.5rem,8rem) 1fr;align-items:baseline;gap:var(--s-3);padding-block:1.1rem;border-bottom:1px solid var(--rule-d)}
.dl__h{font-family:var(--font-display);font-size:clamp(1.8rem,1.4rem + 1.2vw,2.6rem);font-weight:300;font-variant-numeric:tabular-nums lining-nums}
.dl__p{font-family:var(--font-display);font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem);font-style:italic;color:var(--areia-soft)}

/* chegar */
.duo{display:grid;gap:var(--gutter)}
.duo figure{margin:0;display:grid;gap:var(--s-2)}
.duo img{display:block;width:100%;object-fit:cover;background:var(--maresia)}
.duo__a img{aspect-ratio:3/2}.duo__b img{aspect-ratio:4/5}
@media (width>=900px){.duo{grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:end}}

/* reservar */
.pl--page{padding-top:calc(var(--hd-h) + clamp(4rem,9vw,8rem))}
.pl--page .pl__side .spec{margin-top:var(--s-3)}
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:1.2rem 0;font-family:var(--font-display);font-size:1.45rem;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-ui);font-weight:300;transition:transform .5s var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 1.2rem}

/* galeria */
.gal{padding-block:calc(var(--hd-h) + clamp(4rem,9vw,7rem)) clamp(5rem,10vw,8rem)}
.gal__head{display:grid;gap:var(--s-4);margin-bottom:clamp(3rem,6vw,5rem)}
@media (width>=900px){.gal__head{grid-template-columns:1fr auto;align-items:end}}
.gal__f{display:flex;flex-wrap:wrap;gap:.5rem}
.gal__f button{font:inherit;font-family:var(--font-display);font-size:1.15rem;color:var(--palmeira);background:none;border:1px solid var(--rule);border-radius:99px;padding:.35em 1.1em;cursor:pointer;transition:background .5s var(--ease-out),color .5s,border-color .5s}
.gal__f button:hover{border-color:var(--mata);color:var(--mata)}
.gal__f button.is-on{background:var(--mata);border-color:var(--mata);color:var(--areia);font-style:italic}
.gal__grid{columns:1;column-gap:var(--gutter)}
@media (width>=640px){.gal__grid{columns:2}}
@media (width>=1100px){.gal__grid{columns:3}}
.gi{margin:0 0 var(--gutter);break-inside:avoid;display:grid;gap:.6rem}
.gi[hidden]{display:none!important}
.gi__b{padding:0;border:0;background:var(--maresia);cursor:zoom-in;display:block;width:100%;overflow:hidden}
.gi__b img{display:block;width:100%;height:auto;transition:transform 1.6s var(--ease-out)}
.gi__b:hover img{transform:scale(1.03)}
.gi figcaption{font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--ink-muted)}
.lb{position:fixed;inset:0;z-index:120;background:rgba(20,24,17,.94);display:grid;place-items:center;padding:4rem max(16px,env(safe-area-inset-right,0px)) 3rem max(16px,env(safe-area-inset-left,0px))}
.lb img{max-width:100%;max-height:80svh;object-fit:contain}
.lb__c{color:var(--areia);font-family:var(--font-display);font-style:italic;font-size:1.2rem;margin:1rem 0 0;text-align:center}
.lb__x{position:absolute;top:calc(1rem + env(safe-area-inset-top,0px));right:max(1rem,env(safe-area-inset-right,0px));background:none;border:1px solid var(--rule-d);color:var(--areia);font:inherit;font-size:.6875rem;letter-spacing:.24em;text-transform:uppercase;padding:.8em 1.4em;cursor:pointer}

/* políticas */
.pol h2{font-family:var(--font-display);font-weight:300;font-size:1.8rem;margin:0 0 1rem}
.pol .body+h2{margin-top:3rem}
.pol a{color:inherit}

/* bloco de contato (Reservar/Book): no celular, rótulo em cima e valor embaixo, tudo alinhado à esquerda */
.spec--contact div{grid-template-columns:1fr;gap:.35em}
@media (width>=640px){.spec--contact div{grid-template-columns:minmax(8rem,10rem) 1fr;gap:var(--s-2)}}

/* espaçamento que antes era style inline (CSP sem unsafe-inline) */
.mt-2r{margin-top:2rem}
