/* ================================================================
   CHÁCARA ORMELEZ — sistema de design
   Paleta: noite de pinheiral, âmbar de fogueira, terracota de pôr-do-sol,
   pergaminho. Motivo assinatura: a "estrada" tracejada dentro da
   ferradura da logo — usada como trilha de progresso, sublinhado e
   conector do calendário. Tipografia: Fraunces (display) + Manrope
   (texto) + Caveat (anotações à mão, como as placas de madeira da
   chácara).
   ================================================================ */

:root{
  --noite:        #0B1B12;
  --pinheiral:    #12281B;
  --pinheiral-2:  #1B3826;
  --ambar:        #E8B23D;
  --ambar-forte:  #D99A1C;
  --terracota:    #D9673B;
  --pergaminho:   #F7F1E3;
  --pergaminho-2: #EEE4CC;
  --tinta:        #201509;
  --tinta-suave:  rgba(32,21,9,.72);
  --luz:          rgba(247,241,227,.82);

  --serif: "Fraunces", "Iowan Old Style", serif;
  --sans: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mao: "Caveat", cursive;

  --radius-lg: 26px;
  --radius: 16px;
  --radius-sm: 10px;
  --maxw: 1220px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --ease: cubic-bezier(.16,.84,.44,1);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}

body{
  font-family:var(--sans);
  background:var(--pergaminho);
  color:var(--tinta);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.no-scroll{ overflow:hidden; }

img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3{font-family:var(--serif); font-weight:600; letter-spacing:-.01em;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
@media (max-width:640px){ .wrap{ padding:0 18px; } }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-weight:800; font-size:.72rem;
  letter-spacing:.18em; text-transform:uppercase;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:currentColor; display:inline-block; }

section{ padding:min(11vw,120px) 0; position:relative; }
@media (max-width:720px){ section{ padding:64px 0; } }

:focus-visible{ outline:3px solid var(--ambar); outline-offset:3px; }

::selection{ background:var(--ambar); color:var(--tinta); }

/* ---------------------------------------------------------------
   ESTRADA — o motivo assinatura: linha tracejada horizontal usada
   como barra de progresso, sublinhado animado e conector do
   calendário. Nasce do padrão de "trilha" dentro da ferradura da logo.
--------------------------------------------------------------- */
.estrada-underline{
  position:relative; background-image:none;
}
.estrada-underline::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:3px;
  background-image:repeating-linear-gradient(90deg, currentColor 0 10px, transparent 10px 18px);
  transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease);
}
.estrada-underline:hover::after,
.estrada-underline:focus-visible::after{ transform:scaleX(1); }

#progresso-estrada{
  position:fixed; top:0; left:0; height:4px; width:100%; z-index:300;
  background-image:repeating-linear-gradient(90deg, var(--ambar) 0 12px, transparent 12px 22px);
  transform-origin:left; transform:scaleX(0);
  pointer-events:none;
}

/* ---------------------------------------------------------------
   PRELOADER
--------------------------------------------------------------- */
#preloader{
  position:fixed; inset:0; z-index:1000; background:var(--noite);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:18px;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
#preloader.hide{ opacity:0; visibility:hidden; pointer-events:none; }
#preloader .ferradura{
  width:64px; height:64px; animation:girar-ferradura 1.1s linear infinite;
  filter:drop-shadow(0 0 16px rgba(232,178,61,.5));
}
@keyframes girar-ferradura{ to{ transform:rotate(360deg); } }
#preloader span{ font-family:var(--mao); font-size:1.4rem; color:var(--ambar); letter-spacing:.02em; }

/* ---------------------------------------------------------------
   CURSOR PERSONALIZADO (somente desktop com mouse)
--------------------------------------------------------------- */
.cursor-glow{
  position:fixed; width:26px; height:26px; border-radius:50%;
  border:1.5px solid var(--ambar); pointer-events:none; z-index:400;
  transform:translate(-50%,-50%); transition:width .25s var(--ease), height .25s var(--ease), opacity .25s;
  mix-blend-mode:difference; opacity:0;
}
.cursor-glow.active{ opacity:1; }
.cursor-glow.big{ width:56px; height:56px; background:rgba(232,178,61,.15); }

/* ---------------------------------------------------------------
   TOPO / NAVEGAÇÃO
--------------------------------------------------------------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px; transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.topbar.scrolled{
  background:rgba(11,27,18,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:12px 24px; box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:38px; width:auto; filter:brightness(0) invert(1); transition:height .3s ease; }
.topbar.scrolled .brand img{ height:32px; }
.brand-txt{ font-family:var(--serif); font-weight:600; color:#fff; font-size:1.05rem; line-height:1.1; }
.brand-txt small{ display:block; font-family:var(--sans); font-weight:600; font-size:.62rem; letter-spacing:.12em; color:var(--ambar); text-transform:uppercase; }

.nav-links{ display:none; gap:30px; font-weight:700; font-size:.9rem; color:#fff; }
@media (min-width:920px){ .nav-links{ display:flex; align-items:center; } }
.nav-links a{ opacity:.82; padding-bottom:4px; }
.nav-links a:hover{ opacity:1; }

.btn{
  display:inline-flex; align-items:center; gap:9px; position:relative;
  font-family:var(--sans); font-weight:800; font-size:.9rem;
  padding:13px 24px; border-radius:100px; border:none; cursor:pointer;
  text-decoration:none; transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s ease;
  white-space:nowrap;
}
.btn:active{ transform:scale(.95); }
.btn-whats{ background:#25D366; color:#062b12; box-shadow:0 10px 24px rgba(37,211,102,.35); }
.btn-whats:hover{ box-shadow:0 14px 30px rgba(37,211,102,.5); transform:translateY(-2px); }
.btn-ambar{ background:var(--ambar); color:var(--tinta); box-shadow:0 10px 24px rgba(232,178,61,.35); }
.btn-ambar:hover{ box-shadow:0 14px 30px rgba(232,178,61,.5); transform:translateY(-2px); }
.btn-outline{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.5); }
.btn-outline:hover{ background:rgba(255,255,255,.12); }
.btn-outline-dark{ background:transparent; color:var(--tinta); border:1.5px solid rgba(32,21,9,.3); }
.btn-outline-dark:hover{ background:rgba(32,21,9,.06); }
.btn-sm{ padding:9px 16px; font-size:.8rem; }

/* ---------------------------------------------------------------
   MARQUEE / FAIXA TRACEJADA
--------------------------------------------------------------- */
.marquee{
  background:var(--terracota); color:var(--pergaminho); overflow:hidden;
  padding:14px 0; transform:rotate(-1deg) scale(1.02); position:relative; z-index:5;
  box-shadow:0 6px 24px rgba(0,0,0,.15);
}
.marquee-track{ display:flex; width:max-content; animation:marquee-scroll 32s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee span{
  font-family:var(--serif); font-style:italic; font-weight:500; font-size:1.15rem;
  padding:0 28px; white-space:nowrap; display:flex; align-items:center; gap:14px;
}
.marquee span::after{ content:"🐴"; font-style:normal; font-size:.9rem; opacity:.8; }
@keyframes marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------------------------------------------------------------
   HERO
--------------------------------------------------------------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  overflow:hidden; background:var(--noite);
}
.hero-bg{
  position:absolute; inset:-6%; z-index:0;
  background:
    radial-gradient(ellipse 60% 50% at 20% 15%, rgba(232,178,61,.16), transparent 60%),
    radial-gradient(ellipse 70% 60% at 85% 80%, rgba(217,103,59,.14), transparent 55%),
    linear-gradient(160deg,#1b3826 0%, #12281b 45%, #0b1b12 100%);
  will-change:transform;
}
.hero-particles{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.particula{
  position:absolute; width:3px; height:3px; border-radius:50%; background:var(--ambar);
  opacity:0; box-shadow:0 0 8px 2px rgba(232,178,61,.6);
  animation:flutuar 9s ease-in-out infinite;
}
@keyframes flutuar{
  0%{ opacity:0; transform:translateY(0) translateX(0); }
  15%{ opacity:.85; }
  50%{ transform:translateY(-70px) translateX(18px); }
  85%{ opacity:.5; }
  100%{ opacity:0; transform:translateY(-140px) translateX(-8px); }
}
.hero-inner{ position:relative; z-index:3; width:100%; padding:150px 24px 64px; max-width:var(--maxw); margin:0 auto; }
.hero-badge{
  display:inline-flex; align-items:center; gap:9px; color:var(--ambar);
  font-weight:800; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase;
  background:rgba(232,178,61,.1); border:1px solid rgba(232,178,61,.4);
  padding:8px 16px 8px 12px; border-radius:100px; margin-bottom:26px;
}
.hero-badge .pulso{ width:8px; height:8px; border-radius:50%; background:var(--ambar); animation:pulso 1.8s ease-in-out infinite; }
@keyframes pulso{ 0%,100%{ box-shadow:0 0 0 0 rgba(232,178,61,.6);} 50%{ box-shadow:0 0 0 6px rgba(232,178,61,0);} }

.hero h1{
  color:#fff; font-size:clamp(2.5rem, 8vw, 5.6rem); line-height:1; max-width:17ch;
  text-wrap:balance;
}
.hero h1 .linha{ display:block; overflow:hidden; }
.hero h1 .linha span{ display:inline-block; transform:translateY(110%); animation:subir-palavra .9s var(--ease) forwards; }
@keyframes subir-palavra{ to{ transform:translateY(0); } }
.hero h1 em{ font-style:italic; color:var(--ambar); }

.hero p.lead{
  color:var(--luz); font-size:clamp(1.02rem,2.2vw,1.28rem); max-width:48ch; margin-top:22px;
  opacity:0; animation:surgir .9s var(--ease) .5s forwards;
}
.hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; opacity:0; animation:surgir .9s var(--ease) .68s forwards; }
@keyframes surgir{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }

.hero-meta{
  display:grid; grid-template-columns:repeat(4,auto); gap:20px 40px; margin-top:60px;
  border-top:1px solid rgba(255,255,255,.16); padding-top:24px;
  opacity:0; animation:surgir .9s var(--ease) .85s forwards;
}
@media (max-width:640px){ .hero-meta{ grid-template-columns:repeat(2,1fr); } }
.hero-meta div{ color:#fff; }
.hero-meta strong{ display:block; font-family:var(--serif); font-size:1.6rem; color:var(--ambar); font-variant-numeric:tabular-nums; }
.hero-meta span{ font-size:.72rem; color:var(--luz); text-transform:uppercase; letter-spacing:.08em; }

.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--luz);
  font-family:var(--mao); font-size:1rem;
}
.scroll-cue .trilho{ width:1px; height:38px; background:linear-gradient(var(--ambar), transparent); position:relative; overflow:hidden; }
.scroll-cue .trilho::after{
  content:""; position:absolute; top:-38px; left:0; width:100%; height:38px; background:var(--ambar);
  animation:trilho-desce 1.8s ease-in-out infinite;
}
@keyframes trilho-desce{ to{ top:100%; } }

/* ---------------------------------------------------------------
   REVEAL ao rolar
--------------------------------------------------------------- */
.reveal{ opacity:0; transform:translateY(36px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.on{ opacity:1; transform:translateY(0); }
.reveal-stagger > *{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-stagger.on > *{ opacity:1; transform:translateY(0); }
.reveal-stagger.on > *:nth-child(1){ transition-delay:.03s; }
.reveal-stagger.on > *:nth-child(2){ transition-delay:.09s; }
.reveal-stagger.on > *:nth-child(3){ transition-delay:.15s; }
.reveal-stagger.on > *:nth-child(4){ transition-delay:.21s; }
.reveal-stagger.on > *:nth-child(5){ transition-delay:.27s; }
.reveal-stagger.on > *:nth-child(6){ transition-delay:.33s; }
.reveal-stagger.on > *:nth-child(7){ transition-delay:.39s; }
.reveal-stagger.on > *:nth-child(8){ transition-delay:.45s; }
.reveal-stagger.on > *:nth-child(9){ transition-delay:.51s; }
.reveal-stagger.on > *:nth-child(10){ transition-delay:.57s; }
.reveal-stagger.on > *:nth-child(11){ transition-delay:.63s; }
.reveal-stagger.on > *:nth-child(12){ transition-delay:.69s; }

/* ---------------------------------------------------------------
   QUEM SOMOS
--------------------------------------------------------------- */
.quem{ background:var(--pergaminho); }
.quem .eyebrow{ color:var(--terracota); }
.quem-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:900px){ .quem-grid{ grid-template-columns:1fr; gap:36px; } }
.quem h2{ font-size:clamp(1.9rem,4.2vw,2.8rem); margin:12px 0 22px; color:var(--pinheiral); }
.quem p{ color:var(--tinta-suave); font-size:1.04rem; margin-bottom:16px; max-width:56ch; }
.quem-tag{ font-family:var(--mao); font-size:1.5rem; color:var(--terracota); transform:rotate(-2deg); display:inline-block; margin-top:8px; }

.foto-moldura{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:0 30px 60px -20px rgba(11,27,18,.4);
}
.foto-moldura img{ width:100%; height:100%; object-fit:cover; display:block; }
.foto-moldura::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(11,27,18,.5), transparent 45%);
}
.selo-anos{
  position:absolute; bottom:-26px; right:-18px; z-index:4;
  width:130px; height:130px; border-radius:50%; background:var(--ambar); color:var(--tinta);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow:0 16px 34px rgba(0,0,0,.25); animation:balanco 6s ease-in-out infinite;
}
@keyframes balanco{ 0%,100%{ transform:rotate(-4deg); } 50%{ transform:rotate(4deg); } }
.selo-anos strong{ font-family:var(--serif); font-size:2.1rem; line-height:1; }
.selo-anos span{ font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; font-weight:800; text-align:center; }

/* ---------------------------------------------------------------
   FAIXA CITAÇÃO (foto full-bleed com frase)
--------------------------------------------------------------- */
.faixa-cita{
  position:relative; min-height:56vh; display:flex; align-items:center; justify-content:center;
  background-size:cover; background-position:center; background-attachment:fixed;
}
@media (max-width:900px){ .faixa-cita{ background-attachment:scroll; } }
.faixa-cita::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,27,18,.55), rgba(11,27,18,.82)); }
.faixa-cita blockquote{
  position:relative; z-index:2; max-width:820px; text-align:center; padding:0 24px;
  color:#fff; font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:clamp(1.4rem,3.6vw,2.4rem); line-height:1.35;
}
.faixa-cita cite{ display:block; margin-top:22px; font-family:var(--sans); font-style:normal; font-weight:700; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ambar); }

/* ---------------------------------------------------------------
   ESTRUTURA
--------------------------------------------------------------- */
.estrutura{ background:var(--pinheiral); color:var(--pergaminho); position:relative; overflow:hidden; }
.estrutura::before{
  content:""; position:absolute; inset:0; opacity:.7; pointer-events:none;
  background:radial-gradient(circle at 88% 10%, rgba(232,178,61,.14), transparent 45%),
             radial-gradient(circle at 5% 90%, rgba(217,103,59,.12), transparent 45%);
}
.estrutura .wrap{ position:relative; }
.estrutura .eyebrow{ color:var(--ambar); }
.estrutura h2{ color:#fff; font-size:clamp(1.9rem,4.2vw,2.8rem); max-width:18ch; margin:12px 0 16px; }
.estrutura .sub{ color:var(--luz); max-width:58ch; margin-bottom:48px; }

.amenities{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }
.amenity{
  background:rgba(247,241,227,.05); border:1px solid rgba(247,241,227,.1); border-radius:var(--radius);
  padding:26px 22px; display:flex; gap:14px; align-items:flex-start;
  transition:transform .25s var(--ease), background .25s ease, border-color .25s ease;
}
.amenity:hover{ transform:translateY(-6px); background:rgba(247,241,227,.09); border-color:rgba(232,178,61,.35); }
.amenity .ico{ font-size:1.5rem; line-height:1; }
.amenity strong{ display:block; font-family:var(--serif); font-size:1.05rem; margin-bottom:3px; }
.amenity span{ font-size:.86rem; color:var(--luz); }

/* ---------------------------------------------------------------
   GALERIA
--------------------------------------------------------------- */
.galeria{ background:var(--pergaminho-2); }
.galeria .eyebrow{ color:var(--terracota); }
.galeria-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:38px; }
.galeria h2{ color:var(--pinheiral); font-size:clamp(1.9rem,4.2vw,2.8rem); margin-top:10px; }
.social-row{ display:flex; gap:10px; }
.social-chip{
  display:flex; align-items:center; gap:8px; padding:10px 18px; border-radius:100px;
  background:#fff; border:1px solid rgba(32,21,9,.14); font-weight:800; font-size:.85rem;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.social-chip:hover{ transform:translateY(-3px); box-shadow:0 10px 22px rgba(32,21,9,.15); }

.grid-galeria{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:170px; gap:12px; }
.grid-galeria .tile.big{ grid-column:span 2; grid-row:span 2; }
@media (max-width:860px){
  .grid-galeria{ grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; }
  .grid-galeria .tile.big{ grid-column:span 2; grid-row:span 1; }
}
.tile{
  position:relative; border-radius:14px; overflow:hidden; cursor:pointer;
  background:linear-gradient(150deg,var(--pinheiral-2),var(--noite));
}
.tile img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.tile:hover img{ transform:scale(1.09) rotate(.5deg); }
.tile .cap{
  position:absolute; left:0; right:0; bottom:0; padding:14px;
  background:linear-gradient(0deg, rgba(0,0,0,.68), transparent 70%);
  color:#fff; font-size:.82rem; font-weight:800; letter-spacing:.01em;
  transform:translateY(6px); opacity:.92; transition:transform .3s var(--ease);
}
.tile:hover .cap{ transform:translateY(0); }
.tile .lupa{
  position:absolute; top:12px; right:12px; width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,.16); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:.9rem; opacity:0; transform:scale(.7); transition:all .3s var(--ease);
}
.tile:hover .lupa{ opacity:1; transform:scale(1); }

.lightbox{
  position:fixed; inset:0; background:rgba(11,15,12,.96); z-index:250;
  display:none; align-items:center; justify-content:center; padding:30px;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:min(90vw,940px); max-height:85vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lightbox-close{
  position:absolute; top:20px; right:24px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff;
  font-size:1.4rem; cursor:pointer; width:44px; height:44px; border-radius:50%;
}
.lightbox-nav{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff; width:48px; height:48px; border-radius:50%; font-size:1.3rem; cursor:pointer; }
.lightbox-prev{ left:18px; } .lightbox-next{ right:18px; }

/* ---------------------------------------------------------------
   PROPÓSITO
--------------------------------------------------------------- */
.proposito{ background:var(--pergaminho); }
.prop-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media (max-width:820px){ .prop-grid{ grid-template-columns:1fr; } }
.prop-card{
  border-radius:var(--radius-lg); padding:42px 34px; position:relative; overflow:hidden;
  color:#fff; min-height:280px; display:flex; flex-direction:column; justify-content:flex-end;
  transition:transform .35s var(--ease);
}
.prop-card:hover{ transform:translateY(-8px); }
.prop-card::before{ content:""; position:absolute; inset:0; opacity:.94; }
.prop-card.c1::before{ background:linear-gradient(160deg,#B85630,#5E2712); }
.prop-card.c2::before{ background:linear-gradient(160deg,var(--pinheiral),#0a170f); }
.prop-card .eyebrow{ position:relative; color:var(--ambar); margin-bottom:12px; }
.prop-card h3{ position:relative; font-size:1.55rem; margin-bottom:12px; }
.prop-card p{ position:relative; color:rgba(255,255,255,.85); font-size:.97rem; max-width:44ch; }

/* ---------------------------------------------------------------
   CTA CALENDÁRIO (teaser na home)
--------------------------------------------------------------- */
.cta-calendario{ background:var(--noite); color:var(--pergaminho); position:relative; overflow:hidden; }
.cta-calendario::before{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(-35deg, rgba(232,178,61,.06) 0 2px, transparent 2px 34px);
}
.cta-box{
  position:relative; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  border:1px dashed rgba(232,178,61,.4); border-radius:var(--radius-lg); padding:46px 40px;
}
.cta-box h2{ color:#fff; font-size:clamp(1.6rem,3.6vw,2.3rem); max-width:16ch; }
.cta-box p{ color:var(--luz); margin-top:10px; max-width:44ch; }
.cta-stat{
  display:flex; align-items:baseline; gap:10px; font-family:var(--serif); color:var(--ambar);
  font-size:2.6rem; margin-top:6px;
}
.cta-stat span{ font-family:var(--sans); font-size:.78rem; color:var(--luz); text-transform:uppercase; letter-spacing:.08em; }

/* ---------------------------------------------------------------
   CONTATO
--------------------------------------------------------------- */
.contato{ background:var(--pergaminho); }
.contato .eyebrow{ color:var(--terracota); }
.contato-grid{ display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:start; }
@media (max-width:900px){ .contato-grid{ grid-template-columns:1fr; gap:32px; } }
.contato h2{ color:var(--pinheiral); font-size:clamp(1.9rem,4.2vw,2.5rem); margin:12px 0 22px; }
.contact-list{ display:flex; flex-direction:column; gap:14px; }
.contact-item{
  display:flex; align-items:center; gap:15px; padding:16px 20px; background:#fff;
  border-radius:var(--radius); border:1px solid rgba(32,21,9,.1); font-weight:800;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.contact-item:hover{ transform:translateX(6px); box-shadow:0 10px 24px rgba(32,21,9,.1); }
.contact-item .ico{
  width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--pinheiral); color:#fff; font-size:1.15rem; flex-shrink:0;
}
.contact-item small{ display:block; font-weight:600; color:#8a7869; font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; }
.map-frame{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid rgba(32,21,9,.15); aspect-ratio:4/3; box-shadow:0 24px 50px -18px rgba(11,27,18,.3); }
.map-frame iframe{ width:100%; height:100%; border:0; }

footer{ background:var(--noite); color:var(--luz); padding:44px 0 calc(44px + 70px); text-align:center; font-size:.86rem; }
footer .brand{ justify-content:center; margin-bottom:14px; }
footer strong{ color:#fff; }
@media (min-width:920px){ footer{ padding-bottom:44px; } }

/* ---------------------------------------------------------------
   WIDGET ÚNICO DE WHATSAPP (mini-chat) — sem bolha flutuante extra;
   aberto pelo botão do topo (desktop) ou da barra fixa (celular).
--------------------------------------------------------------- */
.wa-widget{ position:fixed; right:20px; bottom:20px; z-index:200; }
@media (max-width:919px){ .wa-widget{ right:12px; bottom:calc(76px + var(--safe-bottom)); left:12px; } }

.wa-card{
  width:min(340px,100%); margin-left:auto; background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,.32);
  transform:translateY(16px) scale(.96); opacity:0; pointer-events:none;
  transition:all .3s var(--ease); max-height:min(72vh,560px); display:flex; flex-direction:column;
}
.wa-card.open{ transform:translateY(0) scale(1); opacity:1; pointer-events:auto; }
.wa-card-head{ background:var(--pinheiral); color:#fff; padding:18px 18px 22px; display:flex; gap:12px; align-items:flex-start; position:relative; flex-shrink:0; }
.wa-card-head img{ width:42px; height:42px; border-radius:50%; background:var(--ambar); padding:8px; flex-shrink:0; }
.wa-card-head strong{ display:block; font-family:var(--serif); font-size:1rem; }
.wa-card-head p{ font-size:.82rem; color:var(--luz); margin-top:2px; }
.wa-card-close{ position:absolute; top:10px; right:10px; background:none; border:none; color:var(--luz); font-size:1.1rem; cursor:pointer; }
.wa-card-body{ padding:16px; background:#F0F2F0; display:flex; flex-direction:column; gap:8px; overflow-y:auto; }
.wa-msg{
  background:#fff; padding:10px 13px; border-radius:12px 12px 12px 3px; font-size:.85rem; color:var(--tinta);
  box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.wa-quick{
  text-align:left; background:#fff; border:1px solid rgba(32,21,9,.12); border-radius:100px;
  padding:10px 16px; font-size:.82rem; font-weight:700; cursor:pointer; transition:background .2s;
}
.wa-quick:hover{ background:#e9fbf0; border-color:#25D366; }
.wa-quick-primaria{ background:#25D366; border-color:#25D366; color:#062b12; text-align:center; }
.wa-quick-primaria:hover{ background:#1fb955; }
.wa-voltar{
  align-self:flex-start; background:none; border:none; color:var(--tinta-suave); font-size:.78rem;
  font-weight:700; cursor:pointer; padding:4px 2px;
}
.wa-input{
  width:100%; border:1px solid rgba(32,21,9,.15); border-radius:10px; padding:10px 12px;
  font-family:var(--sans); font-size:.85rem; resize:vertical; background:#fff;
}

/* ---------------------------------------------------------------
   CHIPS DE FILTRO DA GALERIA
--------------------------------------------------------------- */
.filtro-chips{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; }
.filtro-chip{
  background:#fff; border:1px solid rgba(32,21,9,.15); border-radius:100px; padding:9px 18px;
  font-weight:700; font-size:.82rem; cursor:pointer; transition:all .2s var(--ease); color:var(--tinta-suave);
}
.filtro-chip:hover{ border-color:var(--terracota); color:var(--tinta); }
.filtro-chip.ativo{ background:var(--pinheiral); border-color:var(--pinheiral); color:#fff; }

.amenity-hint{ margin-top:18px; font-family:var(--mao); font-size:1.1rem; color:var(--ambar); text-align:center; }

/* ---------------------------------------------------------------
   AVALIAÇÕES DO GOOGLE
--------------------------------------------------------------- */
.avaliacoes{
  margin-top:18px; background:#fff; border:1px solid rgba(32,21,9,.1); border-radius:var(--radius);
  padding:20px; text-align:center;
}
.avaliacoes-estrelas{ color:var(--ambar-forte); font-size:1.3rem; letter-spacing:2px; }
.avaliacoes-texto{ font-size:.9rem; color:var(--tinta-suave); margin:6px 0 14px; }
.avaliacoes-texto strong{ color:var(--tinta); font-family:var(--serif); font-size:1.1rem; }
.avaliacoes-ctas{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* ---------------------------------------------------------------
   UTILITÁRIOS DE PÁGINA (calendário)
--------------------------------------------------------------- */
.pagina-topo{ background:var(--noite); padding:150px 0 60px; position:relative; overflow:hidden; }
.pagina-topo::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 60% at 80% 0%, rgba(232,178,61,.14), transparent 60%);
}
.pagina-topo .wrap{ position:relative; }
.pagina-topo .eyebrow{ color:var(--ambar); }
.pagina-topo h1{ color:#fff; font-size:clamp(2rem,5vw,3.2rem); margin:14px 0 14px; max-width:20ch; }
.pagina-topo p{ color:var(--luz); max-width:60ch; font-size:1.05rem; }
.voltar-link{ display:inline-flex; align-items:center; gap:8px; color:var(--luz); font-weight:700; font-size:.85rem; margin-bottom:20px; }

.legenda{ display:flex; gap:22px; flex-wrap:wrap; margin-top:26px; }
.legenda span{ display:flex; align-items:center; gap:8px; font-size:.84rem; color:var(--luz); font-weight:600; }
.dot{ width:11px; height:11px; border-radius:50%; flex-shrink:0; }
.dot.livre{ background:#25D366; }
.dot.reservado{ background:var(--terracota); }
.dot.pre{ background:var(--ambar); }
.dot.bloqueado{ background:#7a7367; }
.dot.hoje{ background:transparent; border:2px solid var(--ambar); }

.ano-nav{ display:flex; align-items:center; gap:16px; margin:8px 0 4px; }
.ano-nav button{
  width:40px; height:40px; border-radius:50%; border:1px solid rgba(247,241,227,.3); background:transparent;
  color:#fff; font-size:1.1rem; cursor:pointer; transition:background .2s, opacity .2s; flex-shrink:0;
}
.ano-nav button:hover{ background:rgba(247,241,227,.1); }
.ano-nav button:disabled{ opacity:.3; cursor:not-allowed; }
.ano-nav button:disabled:hover{ background:transparent; }
.ano-nav strong{ font-family:var(--serif); font-size:1.15rem; font-weight:500; color:var(--ambar); text-align:center; text-transform:capitalize; }
@media (max-width:640px){ .ano-nav strong{ font-size:.95rem; } }

.ano-nav-central{
  justify-content:center; gap:28px; margin:0 0 34px;
}
.ano-nav-central button{
  width:46px; height:46px; border:1px solid rgba(32,21,9,.18); color:var(--pinheiral); font-size:1.3rem;
}
.ano-nav-central button:hover{ background:rgba(31,51,36,.08); }
.ano-nav-central strong{ color:var(--terracota); font-size:1.3rem; }
@media (max-width:640px){
  .ano-nav-central{ gap:14px; }
  .ano-nav-central strong{ font-size:1rem; }
}

.meses-grid{ background:var(--pergaminho); padding:56px 0 100px; }
.meses-container{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:980px){ .meses-container{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .meses-container{ grid-template-columns:1fr; } }

.mes-card{ background:#fff; border-radius:var(--radius); padding:22px; border:1px solid rgba(32,21,9,.08); }
.mes-titulo{ font-family:var(--serif); font-size:1.15rem; text-transform:capitalize; color:var(--pinheiral); margin-bottom:14px; text-align:center; }
.mes-weekdays, .mes-dias{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.mes-weekdays span{ text-align:center; font-size:.62rem; font-weight:800; color:#a99a83; padding-bottom:4px; }
.dia{
  position:relative; aspect-ratio:1; border-radius:7px; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:.78rem; cursor:pointer; border:none; background:rgba(37,211,102,.12); color:var(--tinta);
  transition:transform .15s ease, background .2s ease;
}
.dia:hover:not(.off):not(.indisponivel){ background:rgba(37,211,102,.32); transform:scale(1.08); }
.dia.off{ visibility:hidden; }
.dia.past{ opacity:.28; cursor:not-allowed; background:transparent; }
.dia.reservado{ background:rgba(217,103,59,.22); color:#8a4a2e; cursor:not-allowed; }
.dia.pre-reservado{ background:rgba(232,178,61,.28); color:#8a6a12; cursor:not-allowed; }
.dia.bloqueado{ background:rgba(122,115,103,.22); color:#6b6459; cursor:not-allowed; }
.dia.hoje{ box-shadow:inset 0 0 0 2px var(--ambar-forte); }
.dia.pop{ animation:pop-ferradura .45s ease; }
@keyframes pop-ferradura{
  0%{ transform:scale(1) rotate(0deg); }
  35%{ transform:scale(1.3) rotate(-16deg); background:var(--ambar); color:var(--tinta); }
  70%{ transform:scale(1.12) rotate(6deg); background:var(--ambar); color:var(--tinta); }
  100%{ transform:scale(1) rotate(0deg); }
}

/* ---------------------------------------------------------------
   MODAL DE CONFIRMAÇÃO (pré-reserva)
--------------------------------------------------------------- */
.modal-overlay{
  position:fixed; inset:0; z-index:260; background:rgba(11,27,18,.6); backdrop-filter:blur(4px);
  display:none; align-items:center; justify-content:center; padding:20px;
}
.modal-overlay.open{ display:flex; }
.modal-card{
  width:min(420px,92vw); background:var(--pergaminho); border-radius:var(--radius-lg);
  padding:30px 28px; text-align:center; box-shadow:0 40px 90px rgba(0,0,0,.4);
  transform:scale(.92) translateY(10px); opacity:0; transition:all .3s var(--ease);
}
.modal-overlay.open .modal-card{ transform:scale(1) translateY(0); opacity:1; }
.modal-card .ico-ferradura{ font-size:2.2rem; margin-bottom:10px; }
.modal-card h3{ font-size:1.35rem; color:var(--pinheiral); margin-bottom:10px; }
.modal-card p{ color:var(--tinta-suave); font-size:.92rem; margin-bottom:22px; line-height:1.5; }
.modal-card .data-alvo{ font-family:var(--serif); font-weight:600; color:var(--terracota); }
.modal-actions{ display:flex; flex-direction:column; gap:10px; }
.modal-actions .btn{ width:100%; justify-content:center; }
.modal-erro{ margin-top:14px; color:#a83a1f; font-size:.85rem; font-weight:700; display:none; }
.modal-erro.show{ display:block; }
.modal-carregando{ opacity:.6; pointer-events:none; }

/* mobile sticky whatsapp bar */
.mobile-bar{
  position:fixed; bottom:0; left:0; right:0; z-index:150;
  background:rgba(11,27,18,.94); backdrop-filter:blur(12px);
  padding:10px 16px calc(10px + var(--safe-bottom));
  display:flex; gap:10px; box-shadow:0 -8px 26px rgba(0,0,0,.22);
}
.mobile-bar .btn{ flex:1; justify-content:center; }
@media (min-width:920px){ .mobile-bar{ display:none; } }
@media (max-width:919px){ body{ padding-bottom:calc(64px + var(--safe-bottom)); } }
