/* ===========================================================
   POUSADA KON — sistema visual
   Azul profundo + areia/off-white, sans-serif minimalista
   =========================================================== */

:root{
  /* tons */
  --ink:        #0f2540;   /* azul profundo — cor principal */
  --ink-700:    #16314f;
  --ink-500:    #2c486a;
  --ink-300:    #5b738f;

  --sand:       #F4EEE3;   /* areia clara — fundo seções */
  --sand-deep:  #E9DECC;
  --cream:      #FBF8F2;   /* off-white quente */
  --line:       rgba(15,37,64,.14);
  --line-soft:  rgba(15,37,64,.08);

  /* acento opcional (varia via [data-accent]) */
  --accent:     #C9A24B;   /* dourado/champanhe por padrão fica desligado */
  --accent-ink: #0f2540;

  /* placeholders */
  --ph-a: #e7ddcb;
  --ph-b: #efe7d8;

  /* tipografia */
  --font-head: "Space Grotesk", system-ui, sans-serif;
  --font-body: "Albert Sans", system-ui, sans-serif;

  --maxw: 1240px;
  --pad: clamp(20px, 5vw, 72px);
}

/* acento desligado por padrão (neutro/areia) */
:root[data-accent="neutro"]{ --accent: var(--ink); }
:root[data-accent="dourado"]{ --accent: #C9A24B; }
:root[data-accent="terracota"]{ --accent: #B4633F; }
:root[data-accent="musgo"]{ --accent: #6E7B53; }
:root[data-accent="azul"]{ --accent: #0000ff; }

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--font-head); font-weight:500; margin:0; line-height:1.04; letter-spacing:-0.02em; }

/* ---------- utilidades ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }
.section{ padding-block:clamp(80px,11vw,160px); }
.eyebrow{
  font-size:12.5px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--ink-300); font-weight:600; margin:0 0 22px;
  display:flex; align-items:center; gap:12px;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent); display:inline-block; }
.lead{ font-size:clamp(28px,3.4vw,46px); font-weight:400; line-height:1.16; letter-spacing:-0.02em; max-width:18ch; }
.muted{ color:var(--ink-500); }
.center{ text-align:center; }
.center .eyebrow{ justify-content:center; }
.center .lead{ margin-inline:auto; }

/* ---------- placeholders de imagem ---------- */
.ph{
  position:relative;
  background:repeating-linear-gradient(45deg,var(--ph-a) 0 14px,var(--ph-b) 14px 28px);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; color:var(--ink);
}
.ph::after{
  content:attr(data-label);
  font-family:ui-monospace,"SF Mono",Menlo,monospace;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  background:var(--cream); color:var(--ink-500);
  padding:7px 12px; border-radius:2px; border:1px solid var(--line);
  max-width:80%; text-align:center; line-height:1.4;
}
.ph.dark{ --ph-a:#16314f; --ph-b:#1c3a5c; }
.ph.dark::after{ background:var(--ink); color:#cdd8e6; border-color:rgba(255,255,255,.14); }

/* ---------- botões ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-head); font-weight:600; font-size:14.5px; letter-spacing:.02em;
  padding:15px 26px; border-radius:999px; cursor:pointer; border:1px solid transparent;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn-solid{ background:var(--ink); color:var(--cream); }
.btn-solid:hover{ background:var(--ink-700); }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn-ghost:hover{ border-color:var(--ink); }
.btn-light{ background:var(--cream); color:var(--ink); }
.btn-outline-light{ background:transparent; color:var(--cream); border-color:rgba(255,255,255,.4); }
.btn-outline-light:hover{ border-color:var(--cream); background:rgba(255,255,255,.06); }
.btn svg{ width:16px;height:16px; }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px var(--pad);
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease, color .35s ease;
  color:var(--cream);
}
.nav:not(.scrolled)::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,18,32,.42) 0%, rgba(8,18,32,0) 100%);
}
.nav:not(.scrolled) .brand .logo-on-dark{ filter:drop-shadow(0 2px 10px rgba(8,18,32,.45)); }
.nav.scrolled{
  background:rgba(251,248,242,.92);
  backdrop-filter:saturate(140%) blur(14px);
  color:var(--ink); padding-block:14px;
  box-shadow:0 1px 0 var(--line-soft);
}
.brand{ font-family:var(--font-head); font-weight:600; font-size:23px; letter-spacing:.18em; text-transform:lowercase; display:flex; align-items:center; }
.brand img{ height:28px; width:auto; display:block; }
.brand .logo-on-light{ display:none; }
.nav.scrolled .brand .logo-on-dark{ display:none; }
.nav.scrolled .brand .logo-on-light{ display:block; }
.brand sup{ font-size:.5em; letter-spacing:0; opacity:.7; vertical-align:super; }
.nav-links{ display:flex; gap:30px; align-items:center; font-size:14.5px; font-weight:500; }
.nav-links a{ position:relative; opacity:.92; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-5px; height:1px; width:0; background:currentColor; transition:width .25s ease; }
.nav-links a:hover::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:16px; }
.nav .btn-nav{
  padding:11px 22px; border-radius:999px; font-family:var(--font-head); font-weight:600; font-size:14px;
  border:1px solid currentColor; transition:background .25s,color .25s;
}
.nav.scrolled .btn-nav{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.nav.scrolled .btn-nav:hover{ background:var(--ink-700); }
.nav:not(.scrolled) .btn-nav:hover{ background:var(--cream); color:var(--ink); }
.menu-toggle{ display:none; background:none; border:0; color:inherit; cursor:pointer; }

/* =========================================================
   HERO — 3 direções (a / b / c) controladas por [data-hero]
   ========================================================= */
.hero{ display:none; position:relative; }
:root[data-hero="a"] .hero-a{ display:block; }
:root[data-hero="b"] .hero-b{ display:grid; }

/* --- HERO A: imagem cheia, texto inferior à esquerda --- */
.hero-a{ position:relative; overflow:hidden; height:92vh; min-height:580px; }
.hero-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-a .ph{ position:absolute; inset:0; }
.hero-a .hero-slot{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.hero-a .scrim{ pointer-events:none; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,22,40,.22) 0%,rgba(8,22,40,.06) 26%,rgba(8,22,40,.76) 100%); }
.hero-a .inner{
  pointer-events:none;
  position:absolute; inset:0; z-index:2; color:var(--cream);
  display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; text-align:left;
  padding:0 var(--pad) clamp(40px,6vw,90px);
  text-shadow:0 1px 18px rgba(8,18,32,.45);
}
.hero-a .kicker{ font-size:13px; letter-spacing:.32em; text-transform:uppercase; opacity:1; margin-bottom:24px; text-indent:4px; }
.hero-a h1{ font-size:clamp(34px,6vw,92px); font-weight:300; letter-spacing:-0.04em; max-width:16ch; text-indent:-0.03em; }
.hero-a h1 em{ font-style:normal; display:block; font-weight:200; opacity:.92; }
.hero-a .acts{ pointer-events:auto; margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; justify-content:flex-start; }
.hero-a .scroll-cue{ position:absolute; bottom:26px; right:var(--pad); font-size:11px; letter-spacing:.24em; text-transform:uppercase; opacity:.75; z-index:2; color:var(--cream); }
/* mobile: foto inteira em cima, texto em faixa navy embaixo (sem cortar a foto) */
@media(max-width:680px){
  .hero-a{ background:var(--ink); height:auto; min-height:0; }
  .hero-a .hero-slot{ position:relative; inset:auto; height:62vh; }
  .hero-a .scrim{ display:none; }
  .hero-a .scroll-cue{ display:none; }
  .hero-a .inner{ position:relative; inset:auto; padding:30px var(--pad) 42px; }
}

/* --- HERO B: split navy / imagem --- */
.hero-b{ grid-template-columns:1.05fr 1fr; min-height:100vh; }
.hero-b .panel{ background:var(--ink); color:var(--cream); display:flex; flex-direction:column; justify-content:center; padding:clamp(40px,7vw,110px) var(--pad); }
.hero-b .panel .kicker{ font-size:12.5px; letter-spacing:.3em; text-transform:uppercase; opacity:.7; margin-bottom:30px; }
.hero-b h1{ font-size:clamp(44px,5.4vw,82px); font-weight:300; letter-spacing:-0.03em; }
.hero-b h1 em{ font-style:normal; opacity:.85; }
.hero-b .sub{ margin-top:28px; font-size:clamp(16px,1.4vw,19px); max-width:38ch; opacity:.9; font-weight:300; }
.hero-b .acts{ margin-top:42px; display:flex; gap:14px; flex-wrap:wrap; }
.hero-b .media{ position:relative; }
.hero-b .media .ph{ position:absolute; inset:0; }
@media(max-width:860px){ .hero-b{ grid-template-columns:1fr; } .hero-b .media{ min-height:46vh; } }

/* --- HERO C: editorial, imagem com tipografia sobreposta --- */
.hero-c{ min-height:100vh; position:relative; display:flex; flex-direction:column; justify-content:flex-end; }
.hero-c .ph{ position:absolute; inset:0; }
.hero-c .scrim{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,22,40,.15),rgba(8,22,40,.66)); }
.hero-c .inner{ position:relative; z-index:2; color:var(--cream); padding:0 var(--pad) clamp(56px,8vw,100px); width:100%; }
.hero-c .kicker{ font-size:13px; letter-spacing:.3em; text-transform:uppercase; opacity:.85; margin-bottom:22px; }
.hero-c h1{ font-size:clamp(46px,10vw,150px); font-weight:200; letter-spacing:-0.05em; line-height:.92; }
.hero-c .row{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; margin-top:30px; }
.hero-c .sub{ font-size:clamp(16px,1.5vw,20px); max-width:34ch; opacity:.92; font-weight:300; }
.hero-c .acts{ display:flex; gap:14px; flex-wrap:wrap; }

/* =========================================================
   INTRO / declaração
   ========================================================= */
.intro{ background:var(--sand); }
.intro .stmt{ font-size:clamp(30px,4.6vw,62px); font-weight:300; letter-spacing:-0.025em; line-height:1.1; max-width:20ch; }
.intro .stmt b{ font-weight:500; }
.intro .grid{ display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(40px,7vw,100px); align-items:center; }
.intro p{ font-size:18px; color:var(--ink-500); max-width:42ch; }
@media(max-width:820px){ .intro .grid{ grid-template-columns:1fr; } }

/* =========================================================
   ACOMODAÇÕES (containers) — linhas alternadas
   ========================================================= */
.feature{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,90px); align-items:center; }
.feature + .feature{ margin-top:clamp(64px,9vw,130px); }
.feature .media .ph{ aspect-ratio:4/3.2; border-radius:4px; }
.feature .media .feature-photo{ width:100%; aspect-ratio:4/3.2; object-fit:cover; border-radius:4px; display:block; }
.feature .media .feature-photo.tall{ aspect-ratio:1400/1750; max-height:640px; object-position:center 35%; }
.feature .media .feature-photo.crop-laranja{ object-position:center var(--crop-laranja,50%); }
.feature .media .feature-photo.tall.crop-azul{ object-position:center var(--crop-azul,35%); }
/* café: foto vertical aparece inteira */
.cafe .feature .media{ display:flex; justify-content:center; }
.cafe .feature .media .feature-photo{ width:100%; max-width:500px; aspect-ratio:1400/1875; object-fit:cover; margin-inline:auto; }
.feature.rev .media{ order:2; }
.feature h3{ font-size:clamp(28px,3.4vw,44px); font-weight:400; margin-bottom:18px; }
.feature p{ color:var(--ink-500); font-size:18px; max-width:46ch; }
.amenities{ list-style:none; padding:0; margin:30px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }
.amenities li{ display:flex; gap:10px; align-items:center; font-size:15px; color:var(--ink-700); }
.amenities li::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); flex:none; }
.feature .acts{ margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
@media(max-width:820px){ .feature{ grid-template-columns:1fr; } .feature.rev .media{ order:0; } }

/* =========================================================
   EXPERIÊNCIAS / área externa — navy, grid de 6
   ========================================================= */
.exp{ background:var(--ink); color:var(--cream); }
.exp .eyebrow{ color:rgba(255,255,255,.6); }
.exp .lead{ color:var(--cream); }
.exp .head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; margin-bottom:clamp(40px,6vw,72px); }
.exp .head p{ color:rgba(231,238,247,.72); max-width:34ch; font-weight:300; }
.exp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.12); border-radius:4px; overflow:hidden; }
.exp-card{ background:var(--ink); padding:34px 30px 30px; display:flex; flex-direction:column; gap:16px; min-height:300px; position:relative; transition:background .3s ease, transform .3s ease, box-shadow .3s ease; }
.exp-card:hover{ background:var(--ink-700); transform:translateY(-4px); box-shadow:0 24px 48px -28px rgba(0,0,0,.55); z-index:2; }
.exp-card .ph{ height:120px; border-radius:3px; }
.exp-card .exp-photo{ width:100%; height:120px; object-fit:cover; object-position:center 60%; display:block; }
.exp-card .exp-photo.crop-horta{ object-position:center var(--crop-horta,60%); }
.exp-card .exp-photo.crop-meditacao{ object-position:center var(--crop-meditacao,45%); }
.exp-card .exp-photo.crop-deck{ object-position:center var(--crop-deck,55%); }
.exp-card .exp-photo.crop-redario{ object-position:center var(--crop-redario,50%); }
.exp-card .exp-photo.crop-braseiro{ object-position:center var(--crop-braseiro,55%); }
.exp-card .n{ font-family:ui-monospace,monospace; font-size:12px; letter-spacing:.1em; color:rgba(255,255,255,.4); }
.exp-card h4{ font-size:23px; font-weight:500; }
.exp-card p{ color:rgba(231,238,247,.68); font-size:15px; font-weight:300; margin:0; }
@media(max-width:860px){ .exp-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .exp-grid{ grid-template-columns:1fr; } }

/* =========================================================
   CAFÉ DA MANHÃ
   ========================================================= */
.cafe{ background:var(--sand); }

/* =========================================================
   PACOTES
   ========================================================= */
.pacotes .cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:clamp(40px,6vw,64px); }
.pkg{ background:var(--cream); border:1px solid var(--line); border-radius:6px; padding:34px 30px; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease; }
.pkg:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -28px rgba(15,37,64,.35); }
.pkg.featured{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.pkg .ph{ height:160px; border-radius:4px; margin-bottom:26px; }
.pkg .tag{ font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-300); margin-bottom:14px; }
.pkg.featured .tag{ color:rgba(255,255,255,.6); }
.pkg h3{ font-size:27px; font-weight:500; margin-bottom:12px; }
.pkg .desc{ font-size:15px; color:var(--ink-500); margin-bottom:24px; }
.pkg.featured .desc{ color:rgba(231,238,247,.75); }
.pkg ul{ list-style:none; padding:0; margin:0 0 28px; display:flex; flex-direction:column; gap:11px; font-size:14.5px; }
.pkg li{ display:flex; gap:10px; align-items:flex-start; }
.pkg li svg{ width:15px; height:15px; flex:none; margin-top:3px; color:var(--accent); }
.pkg.featured li svg{ color:#cBA; }
.pkg .price{ margin-top:auto; font-size:14px; color:var(--ink-300); }
.pkg .price b{ font-size:30px; font-weight:500; color:var(--ink); letter-spacing:-0.02em; }
.pkg.featured .price, .pkg.featured .price b{ color:var(--cream); }
.pkg .btn{ margin-top:22px; width:100%; justify-content:center; }
@media(max-width:880px){ .pacotes .cards{ grid-template-columns:1fr; max-width:440px; margin-inline:auto; } }

/* =========================================================
   PARCEIROS
   ========================================================= */
.parceiros{ background:var(--cream); }
.parceiros .grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(40px,7vw,90px); align-items:center; }
.logos{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.logo{ aspect-ratio:1/1; border:1px solid var(--line); border-radius:6px; overflow:hidden; background:#fff; }
.logo img{ width:100%; height:100%; object-fit:cover; display:block; }
.parceiros .note{ display:flex; gap:14px; align-items:center; margin-top:30px; font-size:14.5px; color:var(--ink-500); }
.chip{ display:inline-flex; align-items:center; gap:8px; background:var(--sand); border:1px solid var(--line); border-radius:999px; padding:8px 16px; font-size:13px; font-weight:600; }
@media(max-width:820px){ .parceiros .grid{ grid-template-columns:1fr; } }

/* =========================================================
   REGIÃO
   ========================================================= */
.regiao .cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:clamp(40px,6vw,64px); }
.spot{ display:flex; flex-direction:column; }
.spot .ph{ aspect-ratio:4/4.5; border-radius:4px; margin-bottom:20px; }
.spot h4{ font-size:21px; font-weight:500; margin-bottom:8px; }
.spot .dist{ font-family:ui-monospace,monospace; font-size:12px; color:var(--ink-300); letter-spacing:.06em; margin-bottom:10px; }
.spot p{ font-size:15px; color:var(--ink-500); margin:0; }
@media(max-width:820px){ .regiao .cards{ grid-template-columns:1fr; } }

.wa-float{ position:fixed; right:36px; bottom:36px; z-index:80; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 24px -6px rgba(0,0,0,.4); transition:transform .2s ease; }
.wa-float svg, .wa-float .wa-float-text{ pointer-events:none; }
.wa-float-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.wa-float svg{ width:32px; height:32px; }
.wa-float:hover{ transform:scale(1.07); }
@media(max-width:640px){ .wa-float{ right:14px; bottom:28px; width:52px; height:52px; } .wa-float svg{ width:28px; height:28px; } }
.regiao-more{ margin-top:clamp(28px,4vw,44px); padding-top:26px; border-top:1px solid var(--line); font-size:clamp(17px,1.5vw,20px); font-weight:500; color:var(--ink-700); max-width:60ch; text-wrap:pretty; }
.regiao-more span{ display:block; margin-top:6px; font-size:15px; font-weight:400; color:var(--ink-500); }

/* =========================================================
   GALERIA
   ========================================================= */
.galeria{ background:var(--sand); }
.gal-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:12px; margin-top:clamp(36px,5vw,56px); }
.gal-grid .ph{ width:100%; height:100%; border-radius:3px; cursor:pointer; transition:filter .3s ease; }

/* ── slots de imagem (arrastar-e-soltar do usuário) ── */
.feature .media image-slot{ display:block; width:100%; height:auto; border-radius:4px; }
.feature .media image-slot.std{ aspect-ratio:4/3.2; }
.feature .media image-slot.tall{ aspect-ratio:1400/1750; max-height:640px; }
.cafe .feature .media image-slot{ width:100%; max-width:500px; height:auto; aspect-ratio:1400/1875; margin-inline:auto; }
.exp-card image-slot{ display:block; width:100%; height:auto; aspect-ratio:4/4.4; border-radius:3px; }
.pkg image-slot{ display:block; width:100%; height:auto; aspect-ratio:4/4.6; border-radius:4px; margin-bottom:26px; }
.spot image-slot{ display:block; width:100%; height:auto; aspect-ratio:4/4.5; border-radius:4px; margin-bottom:20px; }
.gal-grid image-slot{ display:block; width:100%; height:100%; border-radius:3px; }
.gal-grid .ph:hover{ filter:brightness(.95); }
.g-tall{ grid-row:span 2; }
.g-wide{ grid-column:span 2; }
@media(max-width:760px){ .gal-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; } .g-wide{ grid-column:span 2; } }

/* lightbox */
.lightbox{ position:fixed; inset:0; z-index:90; background:rgba(8,18,32,.9); display:none; align-items:center; justify-content:center; padding:40px; }
.lightbox.open{ display:flex; }
.lightbox .ph{ width:min(900px,90vw); height:min(620px,80vh); border-radius:5px; }
.lightbox .close{ position:absolute; top:24px; right:30px; color:var(--cream); background:none; border:0; font-size:30px; cursor:pointer; line-height:1; }

/* =========================================================
   DEPOIMENTOS
   ========================================================= */
.depo .quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:clamp(40px,6vw,64px); }
.quote{ border-top:1px solid var(--line); padding-top:26px; }
.quote .stars{ color:var(--accent); letter-spacing:3px; font-size:14px; margin-bottom:18px; }
.quote p{ font-size:18px; font-weight:300; line-height:1.5; letter-spacing:-0.01em; }
.quote .who{ margin-top:20px; font-size:13.5px; color:var(--ink-300); }
.quote .who b{ color:var(--ink); font-weight:600; }
@media(max-width:820px){ .depo .quotes{ grid-template-columns:1fr; } }

/* =========================================================
   RESERVAR (CTA)
   ========================================================= */
.reservar{ background:var(--ink); color:var(--cream); position:relative; overflow:hidden; }
.reservar .ph{ position:absolute; inset:0; opacity:.16; }
.reservar .bg-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.34; }
.reservar::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,37,64,.62), rgba(15,37,64,.78)); z-index:1; }
.reservar .inner{ position:relative; z-index:2; text-align:center; display:flex; flex-direction:column; align-items:center; }
.reservar .eyebrow{ color:rgba(255,255,255,.6); justify-content:center; }
.reservar h2{ font-size:clamp(36px,5.5vw,76px); font-weight:300; letter-spacing:-0.03em; max-width:16ch; }
.reservar p{ margin-top:22px; color:rgba(231,238,247,.78); font-size:18px; max-width:40ch; font-weight:300; }
.reservar .acts{ margin-top:40px; display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }

/* =========================================================
   CONTATO + FOOTER
   ========================================================= */
.contato .grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,7vw,90px); align-items:start; }
.contato .map .ph{ aspect-ratio:4/3.4; border-radius:5px; }
.contato .map .map-photo{ width:100%; aspect-ratio:4/4.6; object-fit:cover; border-radius:5px; display:block; }
.contato h2{ font-size:clamp(30px,4vw,52px); font-weight:300; letter-spacing:-0.02em; margin-bottom:30px; }
.info-row{ display:flex; gap:16px; padding:20px 0; border-top:1px solid var(--line); }
.info-row:last-of-type{ border-bottom:1px solid var(--line); }
.info-row .k{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-300); width:120px; flex:none; padding-top:3px; }
.info-row .v{ font-size:17px; }
.info-row .v a{ border-bottom:1px solid var(--line); }
.contato .acts{ margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
@media(max-width:820px){ .contato .grid{ grid-template-columns:1fr; } }

footer{ background:var(--ink); color:rgba(231,238,247,.7); }
footer .wrap{ padding-block:60px; }
footer .top{ display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap; border-bottom:1px solid rgba(255,255,255,.12); padding-bottom:40px; }
footer .brand{ color:var(--cream); font-size:30px; }
footer .brand img{ height:34px; width:auto; display:block; }
footer .tag{ margin-top:14px; font-size:14px; font-weight:300; max-width:30ch; }
footer .cols{ display:flex; gap:60px; flex-wrap:wrap; }
footer .col h5{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.45); margin:0 0 16px; font-weight:600; }
footer .col a{ display:block; font-size:14.5px; margin-bottom:10px; font-weight:300; transition:color .2s; }
footer .col a:hover{ color:var(--cream); }
footer .bottom{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-top:28px; font-size:13px; opacity:.7; }

/* =========================================================
   MOBILE NAV
   ========================================================= */
@media(max-width:980px){
  .nav-links{ display:none; }
  .menu-toggle{ display:flex; }
  .nav-links.open{
    display:flex; flex-direction:column; position:absolute; top:100%; right:var(--pad);
    background:var(--cream); color:var(--ink); padding:20px 26px; border-radius:8px; gap:18px;
    box-shadow:0 24px 60px -30px rgba(15,37,64,.5); border:1px solid var(--line);
  }
}

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } html{ scroll-behavior:auto; } }

/* tipografia serifada — ajusta pesos/tracking dos títulos */
:root[data-type="serif"] h1,
:root[data-type="serif"] h2,
:root[data-type="serif"] h3,
:root[data-type="serif"] .lead,
:root[data-type="serif"] .intro .stmt{ font-weight:400; letter-spacing:0; }
:root[data-type="serif"] .hero-a h1{ font-weight:400; letter-spacing:0; font-size:clamp(36px,4.6vw,94px); line-height:0.98; }
:root[data-type="serif"] .hero-c h1{ font-weight:400; letter-spacing:-0.01em; font-size:clamp(44px,8.5vw,128px); }
:root[data-type="serif"] .hero-b h1{ font-size:clamp(40px,4.8vw,72px); }
