/* ===================================================================
   CABANA SOL DO NORTE — Folha de estilos principal
   Tipografia mantida do site original: Fraunces (títulos) + Work Sans (corpo)
   =================================================================== */

:root{
  --dusk-deep:#0E1B26;
  --dusk-mid:#1E3444;
  --dusk-light:#3C5C6C;
  --parchment:#F4EEDF;
  --parchment-dim:#E9DFC7;
  --ember:#E8A34C;
  --ember-deep:#B9762A;
  --clay:#A65B3D;
  --clay-tint:#EDDAC9;
  --sage:#748764;
  --ink:#1A2018;
  --ink-soft: rgba(26,32,24,0.68);
  --paper-soft: rgba(244,238,223,0.72);
  --maxw: 1160px;
  --gap: clamp(1.25rem, 3vw, 2.5rem);
  --section-pad: clamp(4rem, 9vw, 7.5rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--parchment);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  line-height:1.1;
  margin:0;
  letter-spacing:-0.01em;
}

p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
ul{ margin:0; padding:0; }

.container{
  max-width:var(--maxw);
  margin:0 auto;
  padding-left:clamp(1.25rem, 5vw, 3rem);
  padding-right:clamp(1.25rem, 5vw, 3rem);
}

.eyebrow{
  display:flex;
  align-items:center;
  gap:0.6em;
  font-family:'Work Sans', sans-serif;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ember-deep);
  margin-bottom:1.1rem;
}
.eyebrow--onDark{ color:var(--ember); }
.eyebrow--badge{
  display:inline-flex;
  background:rgba(0,0,0,0.55);
  padding:0.55em 1.1em;
  border-radius:999px;
}
.motif{ width:14px; height:14px; flex:none; opacity:0.9; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.55em;
  padding:0.95em 1.8em;
  border-radius:999px;
  font-family:'Work Sans', sans-serif;
  font-size:0.92rem;
  font-weight:600;
  letter-spacing:0.01em;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform 0.35s cubic-bezier(.22,1,.36,1), background 0.3s ease, color 0.3s ease, border-color .3s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn:focus-visible{ outline:2px solid var(--ember); outline-offset:3px; }
.btn svg{ width:1.05em; height:1.05em; flex:none; }

.btn--primary{ background:var(--ember); color:var(--dusk-deep); }
.btn--primary:hover{ background:var(--parchment); }

.btn--ghost{ background:transparent; color:var(--parchment); border-color:rgba(244,238,223,0.4); }
.btn--ghost:hover{ border-color:var(--ember); color:var(--ember); }

.btn--ink{ background:var(--ink); color:var(--parchment); }
.btn--ink:hover{ background:var(--ember-deep); color:var(--parchment); }

.btn--outline-ink{ background:transparent; color:var(--ink); border-color:rgba(26,32,24,0.3); }
.btn--outline-ink:hover{ border-color:var(--clay); color:var(--clay); }

.btn--sm{ padding:0.7em 1.3em; font-size:0.82rem; }
.btn--block{ width:100%; justify-content:center; }

/* WhatsApp icon button gets a consistent look */
.btn--whatsapp{ background:var(--ember); color:var(--dusk-deep); }
.btn--whatsapp:hover{ background:var(--parchment); }

/* ---------- Nav ---------- */
.nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.3rem clamp(1.25rem, 5vw, 3rem);
  transition:background 0.4s ease, padding 0.4s ease, box-shadow .4s ease;
}
.nav.is-scrolled,
.nav.is-solid{
  background:rgba(14,27,38,0.92);
  backdrop-filter:blur(10px);
  padding-top:0.85rem;
  padding-bottom:0.85rem;
  box-shadow:0 1px 0 rgba(244,238,223,0.08);
}
.nav__mark{
  display:flex;
  align-items:center;
}
.nav__mark img{
  display:block;
  height:90px;
  width:auto;
}

.nav__right{ display:flex; align-items:center; gap:clamp(1rem, 3vw, 2.6rem); }

.nav__links{
  display:flex;
  align-items:center;
  gap:clamp(1.1rem, 2.6vw, 2.1rem);
  list-style:none;
}
.nav__links a{
  font-size:0.88rem;
  font-weight:500;
  color:rgba(244,238,223,0.82);
  padding:0.3em 0;
  position:relative;
  transition:color .25s ease;
}
.nav__links a::after{
  content:"";
  position:absolute;
  left:0; right:100%;
  bottom:-3px;
  height:1px;
  background:var(--ember);
  transition:right .3s cubic-bezier(.22,1,.36,1);
}
.nav__links a:hover{ color:var(--parchment); }
.nav__links a:hover::after{ right:0; }
.nav__links a.is-active{ color:var(--ember); }
.nav__links a.is-active::after{ right:0; }

.nav__toggle{
  display:none;
  background:none;
  border:none;
  color:var(--parchment);
  cursor:pointer;
  padding:0.4rem;
}
.nav__toggle svg{ width:26px; height:26px; }

@media (max-width: 860px){
  .nav__links{
    position:fixed;
    inset:0 0 auto 0;
    top:0;
    flex-direction:column;
    align-items:flex-start;
    background:var(--dusk-deep);
    padding:6.5rem clamp(1.25rem,6vw,3rem) 2.5rem;
    gap:1.4rem;
    transform:translateY(-104%);
    transition:transform .45s cubic-bezier(.22,1,.36,1);
    z-index:150;
  }
  .nav__links.is-open{ transform:translateY(0); }
  .nav__links a{ font-size:1.3rem; }
  .nav__toggle{ display:inline-flex; z-index:220; }
  .nav__right .btn--whatsapp span.btn-label-full{ display:inline; }
}

/* ---------- Page header (non-hero pages) ---------- */
.page-header{
  position:relative;
  min-height:56vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--dusk-deep);
  isolation:isolate;
}
.page-header__img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.page-header__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,27,38,0.55) 0%, rgba(14,27,38,0.35) 40%, rgba(14,27,38,0.92) 100%);
  z-index:1;
}
.page-header__content{
  position:relative;
  z-index:2;
  width:100%;
  padding:9rem clamp(1.25rem, 5vw, 3rem) 3.5rem;
  color:var(--parchment);
}
.page-header__content h1{
  font-size:clamp(2.1rem, 4.6vw, 3.4rem);
  max-width:18ch;
}
.page-header__content p{
  margin-top:1rem;
  max-width:44ch;
  color:rgba(244,238,223,0.82);
  font-size:1.02rem;
  font-weight:300;
}
.breadcrumb{
  font-size:0.75rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:rgba(244,238,223,0.6);
  margin-bottom:0.9rem;
}
.breadcrumb a{ color:rgba(244,238,223,0.85); }
.breadcrumb a:hover{ color:var(--ember); }

/* ---------- Hero (home) ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--dusk-deep);
  isolation:isolate;
}
.hero__img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,27,38,0.35) 0%, rgba(14,27,38,0.25) 45%, rgba(14,27,38,0.96) 100%);
  z-index:1;
}
.hero__content{
  position:relative;
  z-index:2;
  width:100%;
  /* padding-top reserva espaço para o menu fixo (.nav) nunca sobrepor o texto,
     mesmo em telas mais baixas (ex.: notebooks 1366x768 em zoom 100%) */
  padding:clamp(10rem, 15vh, 9.5rem) clamp(1.25rem, 5vw, 3rem) clamp(4.5rem, 12vh, 7rem);
  color:var(--parchment);
  opacity:0;
  transform:translateY(18px);
  animation: rise-in 1.1s 0.15s cubic-bezier(.22,1,.36,1) forwards;
}
@media (prefers-reduced-motion: reduce){ .hero__content{ opacity:1; transform:none; animation:none; } }
@keyframes rise-in{ to{ opacity:1; transform:translateY(0); } }

/* Em telas com pouca altura (comum em notebooks no zoom padrão 100%),
   comprime um pouco os espaçamentos verticais do Hero para tudo caber
   sem encostar no menu nem no rodapé da seção */
@media (max-height: 800px){
  .hero__content{ padding-top:8.25rem; }
  .hero__sub{ margin-top:1.1rem; }
  .hero__actions{ margin-top:1.6rem; }
  .hero__trust{ margin-top:1.6rem; }
}
@media (max-height: 680px){
  .hero__headline{ font-size:clamp(2.1rem, 5.4vw, 3.6rem); }
  .hero__content{ padding-top:7.5rem; }
}

.hero__headline{
  font-size:clamp(2.6rem, 6.6vw, 5.4rem);
  max-width:15ch;
  color:var(--parchment);
}
.hero__headline em{ font-style:italic; font-weight:400; color:var(--ember); }

.hero__sub{
  margin-top:1.6rem;
  max-width:38ch;
  font-size:clamp(1rem, 1.6vw, 1.18rem);
  color:rgba(244,238,223,0.86);
  font-weight:300;
}

.hero__actions{ margin-top:2.4rem; display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }

.hero__trust{
  margin-top:2.6rem;
  display:flex;
  flex-wrap:wrap;
  gap:1.6rem 2.2rem;
  color:rgba(244,238,223,0.72);
  font-size:0.82rem;
  align-items:center;
}
.hero__trust span{ display:flex; align-items:center; gap:0.5em; }
.hero__trust svg{ width:16px; height:16px; flex:none; color:var(--ember); }

.scroll-cue{
  position:absolute;
  right:clamp(1.25rem, 5vw, 3rem);
  bottom:2.2rem;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.6rem;
  color:rgba(244,238,223,0.6);
  font-size:0.68rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
}
.scroll-cue__line{
  width:1px; height:38px;
  background:linear-gradient(180deg, rgba(244,238,223,0.75), transparent);
  animation: cue-move 2.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){ .scroll-cue__line{ animation:none; } }
@keyframes cue-move{
  0%{ transform:scaleY(0.4); transform-origin:top; opacity:0.4; }
  50%{ transform:scaleY(1); transform-origin:top; opacity:1; }
  100%{ transform:scaleY(0.4); transform-origin:top; opacity:0.4; }
}
@media (max-width: 640px){ .scroll-cue{ display:none; } }

/* ---------- Reveal on scroll ---------- */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.9s cubic-bezier(.22,1,.36,1), transform 0.9s cubic-bezier(.22,1,.36,1);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal--delay1.is-visible{ transition-delay:0.1s; }
.reveal--delay2.is-visible{ transition-delay:0.2s; }
.reveal--delay3.is-visible{ transition-delay:0.3s; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- Sections generic ---------- */
.section{ padding:var(--section-pad) 0; position:relative; }
.section--parchment{ background:var(--parchment); }
.section--dim{ background:var(--parchment-dim); }
.section--dusk{ background:linear-gradient(180deg, var(--dusk-light) 0%, var(--dusk-mid) 55%, var(--dusk-deep) 100%); color:var(--parchment); }
.section--clay{ background:var(--clay-tint); }
.section--tight{ padding-top:calc(var(--section-pad) * 0.55); padding-bottom:calc(var(--section-pad) * 0.55); }

.kicker-heading{ font-size:clamp(1.9rem, 4vw, 3rem); max-width:18ch; }
.section-head{ max-width:60ch; margin-bottom:clamp(2.5rem,5vw,3.5rem); }
.section-head--center{ margin-left:auto; margin-right:auto; text-align:center; }

/* ---------- Trust bar ---------- */
.trust-bar{
  background:var(--dusk-deep);
  color:var(--parchment);
  padding:1.6rem 0;
}
.trust-bar__row{
  display:flex;
  flex-wrap:wrap;
  gap:1.4rem 2.6rem;
  justify-content:center;
  align-items:center;
  font-size:0.82rem;
  letter-spacing:0.02em;
  color:rgba(244,238,223,0.82);
}
.trust-bar__row span{ display:flex; align-items:center; gap:0.55em; white-space:nowrap; }
.trust-bar__row svg{ width:17px; height:17px; color:var(--ember); flex:none; }

/* ---------- Intro strip ---------- */
.intro{ display:grid; grid-template-columns: 1.1fr 1fr; gap:var(--gap); align-items:end; }
.intro__lead{
  font-family:'Fraunces', serif;
  font-weight:400;
  font-size:clamp(1.5rem, 2.6vw, 2.15rem);
  line-height:1.35;
  color:var(--ink);
  max-width:23ch;
}
.intro__lead em{ font-style:italic; color:var(--clay); }
.intro__note{ font-size:0.98rem; color:var(--ink-soft); max-width:34ch; padding-bottom:0.3rem; }
@media (max-width: 820px){ .intro{ grid-template-columns:1fr; } }

/* ---------- Scroll-driven video intro ---------- */
.video-scroll{
  position:relative;
  /* altura define a duração do "scroll scrubbing": quanto maior, mais devagar
     o vídeo avança por pixel rolado (sensação de "mais longo" e controlado).
     380vh ≈ quase 4 telas de rolagem para percorrer o vídeo inteiro. */
  height: 380vh;
  background:var(--dusk-deep);
  /* mobile: permite scroll vertical mesmo com JS interceptando wheel */
  touch-action: pan-y;
}
.video-scroll::before,
.video-scroll::after{
  content:"";
  position:absolute;
  left:0; right:0;
  pointer-events:none;
  z-index:3;
}
/* fade de cima: cor do hero (dusk-deep) descendo para transparente,
   faz a transição do hero escuro para o início da seção de vídeo */
.video-scroll::before{
  top:0;
  height:14vh;
  background:linear-gradient(180deg,
    var(--dusk-deep) 0%,
    rgba(14,27,38,0.85) 35%,
    rgba(14,27,38,0.00) 100%);
}
/* fade de baixo: cor da próxima seção (parchment) subindo para transparente,
   faz a transição do final do vídeo para a próxima seção */
.video-scroll::after{
  bottom:0;
  height:14vh;
  background:linear-gradient(0deg,
    var(--parchment) 0%,
    rgba(244,238,223,0.85) 35%,
    rgba(244,238,223,0.00) 100%);
}
.video-scroll__sticky{
  position:sticky;
  top:0;
  height:100vh;
  width:100%;
  overflow:hidden;
}
.video-scroll__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  display:block;
  background:#0E1B26; /* cor de fallback enquanto o vídeo carrega */
  /* sem transform/will-change: vídeo já é tratado como camada pelo navegador;
     forçar camada extra só atrapalha a decodificação */
}
.video-scroll__scrim{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,
    rgba(14,27,38,0.45) 0%,
    rgba(14,27,38,0.30) 45%,
    rgba(14,27,38,0.78) 100%);
  pointer-events:none;
}
.video-scroll__content{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1.6rem;
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 clamp(1.25rem, 5vw, 3rem);
  color:var(--parchment);
  text-align:center;
}
.video-scroll__lead{
  font-family:'Fraunces', serif;
  font-weight:400;
  font-size:clamp(1.6rem, 3.2vw, 2.6rem);
  line-height:1.3;
  color:var(--parchment);
  max-width:24ch;
  margin:0;
  text-shadow:0 2px 24px rgba(14,27,38,0.55);
}
.video-scroll__lead em{ font-style:italic; color:var(--ember); }
.video-scroll__note{
  font-family:'Work Sans', sans-serif;
  font-size:clamp(0.98rem, 1.4vw, 1.08rem);
  line-height:1.6;
  color:rgba(244,238,223,0.88);
  max-width:48ch;
  margin:0;
  font-weight:300;
  text-shadow:0 2px 18px rgba(14,27,38,0.6);
}
.video-scroll__progress{
  position:absolute;
  left:50%;
  bottom:clamp(2rem, 6vh, 3.4rem);
  transform:translateX(-50%) translateZ(0);
  width:min(320px, 60vw);
  height:1px;
  background:rgba(244,238,223,0.18);
  overflow:hidden;
  border-radius:2px;
}
.video-scroll__progress-bar{
  display:block;
  width:0%;
  height:100%;
  background:var(--ember);
  /* sem transition: a posição é atualizada por JS, então animar criaria lag visual */
}
@media (prefers-reduced-motion: reduce){
  .video-scroll{ height:auto; -webkit-mask-image:none; mask-image:none; }
  .video-scroll::before, .video-scroll::after{ display:none; }
  .video-scroll__sticky{ position:relative; height:auto; min-height:80vh; }
  .video-scroll__video{ position:absolute; }
  .video-scroll__progress{ display:none; }
}
@media (max-width: 640px){
  .video-scroll__progress{ bottom:1.4rem; }
}

/* ---------- Split media + text (arrival / story blocks) ---------- */
.split{
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap:clamp(2rem, 6vw, 4.5rem);
  align-items:center;
}
.split--reverse{ grid-template-columns: 1.1fr 0.9fr; }
.split--reverse .split__media{ order:2; }
.split__media{
  aspect-ratio:4/5;
  border-radius:6px;
  overflow:hidden;
  position:relative;
  box-shadow:0 30px 70px -35px rgba(14,27,38,0.45);
}
.split__media img{ width:100%; height:100%; object-fit:cover; }
.split__media--wide{ aspect-ratio:16/11; }
.split__text p{
  font-size:clamp(1.02rem, 1.5vw, 1.18rem);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  line-height:1.65;
  color:var(--ink-soft);
  max-width:42ch;
}
.split__text p + p{ margin-top:1.1rem; }
.split__text h2{ margin-bottom:1.1rem; }
.split__caption{
  margin-top:1.8rem;
  font-size:0.85rem;
  color:var(--ink-soft);
  font-style:italic;
  font-family:'Fraunces', serif;
}
@media (max-width: 820px){
  .split,.split--reverse{ grid-template-columns:1fr; }
  .split__media{ aspect-ratio:16/10; order:-1 !important; }
}

/* ---------- Amenities / feature list ---------- */
.feature-list{ margin-top:clamp(2.5rem, 5vw, 3.5rem); border-top:1px solid rgba(26,32,24,0.14); }
.feature-row{
  display:grid;
  grid-template-columns: 44px 1fr 1.4fr;
  gap:clamp(1rem, 3vw, 2.5rem);
  align-items:center;
  padding:2rem 0;
  border-bottom:1px solid rgba(26,32,24,0.14);
}
.feature-row__icon{ width:42px; height:42px; display:flex; align-items:center; justify-content:center; color:var(--clay); }
.feature-row__icon svg{ width:100%; height:100%; }
.feature-row h3{ font-size:clamp(1.15rem, 1.8vw, 1.4rem); font-weight:500; }
.feature-row p{ color:var(--ink-soft); font-size:0.98rem; max-width:46ch; }
@media (max-width: 700px){
  .feature-row{ grid-template-columns: 36px 1fr; }
  .feature-row p{ grid-column:2; }
}

/* ---------- Card grid (used for values / room list) ---------- */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); margin-top:clamp(2.5rem,5vw,3.5rem); }
.info-card{
  background:var(--parchment);
  border-radius:6px;
  padding:clamp(1.8rem,3vw,2.4rem);
  box-shadow:0 20px 50px -30px rgba(26,32,24,0.3);
}
.info-card__icon{ width:36px; height:36px; color:var(--clay); margin-bottom:1.1rem; }
.info-card h3{ font-size:1.15rem; font-weight:500; margin-bottom:0.6rem; }
.info-card p{ color:var(--ink-soft); font-size:0.94rem; }
@media (max-width: 900px){ .card-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 620px){ .card-grid{ grid-template-columns:1fr; } }

/* ---------- Photo grid (rooms on cabana page) ---------- */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0.9rem;
  margin-top:clamp(2.5rem,5vw,3.5rem);
}
.photo-grid a{ display:block; position:relative; overflow:hidden; border-radius:4px; aspect-ratio:4/5; }
.photo-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.photo-grid a:hover img{ transform:scale(1.06); }
.photo-grid figcaption,
.photo-grid .cap{
  position:absolute; left:0; right:0; bottom:0;
  padding:0.8rem 0.9rem;
  font-size:0.8rem;
  color:var(--parchment);
  background:linear-gradient(180deg, transparent, rgba(14,27,38,0.82));
}
.photo-grid a.span-2{ grid-column:span 2; }
@media (max-width: 900px){ .photo-grid{ grid-template-columns:repeat(2,1fr); } .photo-grid a.span-2{ grid-column:span 2; } }
@media (max-width: 560px){ .photo-grid{ grid-template-columns:1fr; } .photo-grid a.span-2{ grid-column:span 1; } }

/* ---------- Kitchen card style block (reused for "mimos") ---------- */
.feature-panel{ display:grid; grid-template-columns: 1fr 1fr; gap:clamp(2rem, 6vw, 5rem); align-items:center; }
.feature-panel__card{ background:var(--parchment); border-radius:4px; padding:clamp(2rem, 4vw, 3.2rem); box-shadow:0 24px 60px -30px rgba(26,32,24,0.35); }
.feature-panel__card p{ color:var(--ink-soft); font-size:1.02rem; margin-top:1.1rem; }
.feature-panel__tags{ margin-top:1.8rem; display:flex; flex-wrap:wrap; gap:0.6rem; }
.feature-panel__tags span{ font-size:0.78rem; letter-spacing:0.04em; padding:0.45em 0.9em; border:1px solid rgba(26,32,24,0.18); border-radius:999px; color:var(--ink-soft); font-family:'Work Sans', sans-serif; }
.feature-panel__media{ aspect-ratio:1/1; border-radius:6px; overflow:hidden; position:relative; }
.feature-panel__media img{ width:100%; height:100%; object-fit:cover; }
@media (max-width: 820px){
  .feature-panel{ grid-template-columns:1fr; }
  .feature-panel__media{ order:-1; max-width:420px; margin:0 auto; }
}

/* ---------- Reviews ---------- */
.reviews{ text-align:center; }
.reviews__stat{ font-family:'Fraunces', serif; font-weight:500; font-size:clamp(3.2rem, 8vw, 5.5rem); color:var(--ink); position:relative; display:inline-block; }
.reviews__stat sup{ font-size:0.35em; top:-1.6em; color:var(--ink-soft); }
.reviews__meta{ margin-top:0.6rem; font-size:1rem; color:var(--ink-soft); }
.reviews__tags{ margin-top:2.6rem; display:flex; justify-content:center; flex-wrap:wrap; gap:0.7rem; }
.reviews__tags span{ font-family:'Fraunces', serif; font-style:italic; font-size:1rem; padding:0.5em 1.1em; border-radius:999px; background:var(--parchment-dim); color:var(--ink); }
.reviews__note{ margin-top:2rem; font-size:0.9rem; color:var(--ink-soft); max-width:40ch; margin-left:auto; margin-right:auto; }

.testimonial-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); margin-top:clamp(2.5rem,5vw,3.5rem); text-align:left; }
.testimonial{ background:var(--parchment); border-radius:6px; padding:clamp(1.6rem,3vw,2.1rem); box-shadow:0 20px 50px -30px rgba(26,32,24,0.28); }
.testimonial__stars{ display:flex; gap:0.2em; color:var(--ember); margin-bottom:0.9rem; }
.testimonial__stars svg{ width:15px; height:15px; }
.testimonial p{ font-family:'Fraunces', serif; font-style:italic; font-size:1.02rem; color:var(--ink); line-height:1.5; }
.testimonial__by{ margin-top:1rem; font-size:0.82rem; color:var(--ink-soft); font-family:'Work Sans', sans-serif; font-style:normal; }
@media (max-width: 900px){ .testimonial-grid{ grid-template-columns:1fr; } }

/* ---------- Location ---------- */
.location{ display:grid; grid-template-columns: 1fr 1fr; gap:clamp(2rem, 6vw, 4.5rem); }
.location__text p{ color:var(--ink-soft); font-size:1.02rem; max-width:42ch; margin-top:1.1rem; }
.distances{ margin-top:2rem; border-top:1px solid rgba(26,32,24,0.16); }
.distances li{ list-style:none; display:flex; justify-content:space-between; padding:1rem 0; border-bottom:1px solid rgba(26,32,24,0.16); font-size:0.95rem; }
.distances li span:first-child{ color:var(--ink); font-weight:500; }
.distances li span:last-child{ color:var(--ink-soft); font-family:'Fraunces', serif; font-style:italic; }
.badge-line{ margin-top:1.6rem; display:inline-flex; align-items:center; gap:0.6em; font-size:0.85rem; color:var(--sage); font-weight:500; }
@media (max-width: 820px){ .location{ grid-template-columns:1fr; } }

/* ---------- Values (quem somos) ---------- */
.values-band{ position:relative; overflow:hidden; }
.values-band__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.values-band__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,27,38,0.88), rgba(14,27,38,0.82)); z-index:1; }
.values-band__content{ position:relative; z-index:2; }

/* ---------- Security / confidence section ---------- */
.security-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap); margin-top:clamp(2.5rem,5vw,3.5rem); }
.security-item{ text-align:left; }
.security-item svg{ width:32px; height:32px; color:var(--ember); margin-bottom:1rem; }
.security-item h3{ color:#E8A34C; font-size:1.05rem; font-weight:500; margin-bottom:0.5rem; }
.security-item p{ color:rgba(244,238,223,0.75); font-size:0.92rem; }
@media (max-width: 900px){ .security-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){ .security-grid{ grid-template-columns:1fr; } }

/* ---------- Gallery page ---------- */
.gallery-intro{ max-width:60ch; }
.gallery-masonry{
  columns:4 260px;
  column-gap:0.9rem;
  margin-top:clamp(2.5rem,5vw,3.5rem);
}
.gallery-masonry .g-item{
  break-inside:avoid;
  margin-bottom:0.9rem;
  border-radius:4px;
  overflow:hidden;
  position:relative;
  cursor:zoom-in;
  background:var(--dusk-mid);
}
.gallery-masonry .g-item img{ width:100%; display:block; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.gallery-masonry .g-item:hover img{ transform:scale(1.045); }
.gallery-masonry .g-item .g-tag{
  position:absolute; left:0; right:0; bottom:0;
  padding:0.7rem 0.85rem;
  font-size:0.76rem;
  color:var(--parchment);
  background:linear-gradient(180deg, transparent, rgba(14,27,38,0.85));
  opacity:0;
  transition:opacity .3s ease;
}
.gallery-masonry .g-item:hover .g-tag{ opacity:1; }

.gallery-note{
  margin-top:2.5rem;
  font-size:0.85rem;
  color:var(--ink-soft);
  max-width:52ch;
}

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:400;
  background:rgba(14,27,38,0.94);
  display:flex; align-items:center; justify-content:center;
  padding:2rem;
  opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.lightbox.is-open{ opacity:1; pointer-events:auto; }
.lightbox img{ max-width:min(92vw,1100px); max-height:86vh; object-fit:contain; border-radius:4px; }
.lightbox__close{
  position:absolute; top:1.5rem; right:1.5rem;
  width:42px; height:42px; border-radius:50%;
  background:rgba(244,238,223,0.12); border:1px solid rgba(244,238,223,0.25);
  color:var(--parchment); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.lightbox__close svg{ width:18px; height:18px; }
.lightbox__cap{ position:absolute; bottom:2rem; left:0; right:0; text-align:center; color:rgba(244,238,223,0.75); font-size:0.85rem; }

/* ---------- CTA final ---------- */
.cta-final{ position:relative; overflow:hidden; text-align:center; padding-top:calc(var(--section-pad) * 1.15); padding-bottom:calc(var(--section-pad) * 1.15); }
.cta-final__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.cta-final__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,27,38,0.55), rgba(14,27,38,0.94)); z-index:1; }
.cta-final__content{ position:relative; z-index:2; }
.cta-final h2{ font-size:clamp(2.2rem, 5vw, 3.8rem); color:var(--parchment); }
.cta-final h2 em{ font-style:italic; color:var(--ember); font-weight:400; }
.cta-final p{ margin-top:1rem; color:rgba(244,238,223,0.75); font-family:'Fraunces', serif; font-style:italic; font-size:1.15rem; }
.cta-final .btn-row{ margin-top:2.4rem; display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* ---------- Footer ---------- */
.footer{ background:var(--dusk-deep); color:rgba(244,238,223,0.75); padding:4rem 0 2rem; font-size:0.88rem; }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(244,238,223,0.12); }
.footer__brand{ margin-bottom:0.9rem; }
.footer__brand img{ display:block; height:120px; width:auto; }
.footer p{ color:rgba(244,238,223,0.62); max-width:32ch; }
.footer h4{ font-family:'Work Sans',sans-serif; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(244,238,223,0.55); font-weight:600; margin-bottom:1rem; }
.footer ul{ list-style:none; display:flex; flex-direction:column; gap:0.7rem; }
.footer a:hover{ color:var(--ember); }
.footer__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.8rem; align-items:center; padding-top:1.6rem; font-size:0.78rem; color:rgba(244,238,223,0.5); }
@media (max-width: 760px){ .footer__grid{ grid-template-columns:1fr; } }

/* ---------- WhatsApp floating button ---------- */
.wa-float{
  position:fixed;
  right:1.4rem;
  bottom:1.4rem;
  z-index:300;
  width:58px; height:58px;
  border-radius:50%;
  background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px -8px rgba(14,27,38,0.55);
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.wa-float:hover{ transform:translateY(-3px) scale(1.04); }
.wa-float svg{ width:28px; height:28px; color:#fff; }

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); }

/* Utility */
.mt-lg{ margin-top:clamp(2.5rem,5vw,3.5rem); }
.text-center{ text-align:center; }
.max-center{ margin-left:auto; margin-right:auto; }
