/* ============================================================
   VERDE DA MATA HOTEL — FOLHA DE ESTILO SITEWIDE (vdm.css)
   Carregada em todas as páginas. Prefixo "vdm-" = componente global.
   Cada página tem seu próprio bloco <style> para seções exclusivas,
   com prefixo próprio (hotel-, acom-, evt-, dest-, ofertas-) — mesmo
   padrão de organização usado no tema do Gungaporanga.
   ============================================================ */

:root{
  --c-bg:        #F5F1E6;
  --c-bg-alt:    #ECE5D2;
  --c-card:      #FFFFFF;
  --c-ink:       #10210E;
  --c-forest:    #1C2E15;
  --c-moss:      #3F5C29;
  --c-moss-dark: #2C4119;
  --c-lime:      #A9C93E;
  --c-line:      rgba(16,33,14,0.12);
  --c-mid:       rgba(16,33,14,0.62);
  --c-soft:      rgba(245,241,230,0.72);
  --font-display:'Fraunces', serif;
  --font-body:   'Sora', sans-serif;
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--c-bg);
  color:var(--c-ink);
  font-family:var(--font-body);
  overflow-x:hidden;
  opacity:0;
}
body.is-ready{opacity:1; transition:opacity .6s ease;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3{margin:0; font-weight:400; font-family:var(--font-display);}
p{margin:0;}

.vdm-eyebrow{
  font-family:var(--font-body); font-size:.68rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--c-moss);
}
.vdm-eyebrow.on-dark{ color:var(--c-lime); }

.vdm-h2{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.5rem,2.5vw,2.1rem); line-height:1.36; letter-spacing:-0.005em;
  color:var(--c-forest);
}
.vdm-h2 em{ font-style:italic; font-weight:500; color:var(--c-moss); }
.vdm-h2.on-dark{ color:var(--c-bg); }
.vdm-h2.on-dark em{ color:var(--c-lime); }

.vdm-body{ font-size:.98rem; line-height:1.85; color:var(--c-mid); }
.vdm-body.on-dark{ color:var(--c-soft); }

.vdm-section{ padding:6.5rem 6vw; position:relative; }
.vdm-section.is-tight{ padding:4.5rem 6vw; }
@media(max-width:768px){ .vdm-section{ padding:4rem 6vw; } }
.vdm-container{ max-width:1240px; margin:0 auto; }
.vdm-container.is-narrow{ max-width:820px; }

.vdm-section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:3rem; flex-wrap:wrap; }
.vdm-section-head h2{ max-width:640px; }
.vdm-section-head.is-center{ flex-direction:column; align-items:center; text-align:center; margin:0 auto 3rem; max-width:640px; }

.vdm-btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--font-body); font-size:.72rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase;
  padding:1rem 1.7rem; border-radius:2px; border:none;
  transition:transform .35s cubic-bezier(.16,1,.3,1), background .3s ease, color .3s ease, border-color .3s ease;
}
.vdm-btn-solid{ background:var(--c-moss); color:#fff; }
.vdm-btn-solid:hover{ background:var(--c-moss-dark); transform:translateY(-2px); }
.vdm-btn-outline{ border:1px solid var(--c-line); color:var(--c-ink); background:transparent; }
.vdm-btn-outline:hover{ border-color:var(--c-moss); color:var(--c-moss); transform:translateY(-2px); }
.vdm-btn-outline.on-dark{ border-color:rgba(245,241,230,0.3); color:var(--c-bg); }
.vdm-btn-outline.on-dark:hover{ border-color:var(--c-lime); color:var(--c-lime); }
.vdm-btn-lime{ background:var(--c-lime); color:var(--c-forest); }
.vdm-btn-lime:hover{ background:#bcdb52; transform:translateY(-2px); }
.vdm-btn-row{ display:flex; flex-wrap:wrap; gap:1rem; }

.vdm-link-arrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-body); font-size:.74rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; color:var(--c-moss);
  border-bottom:1px solid transparent; padding-bottom:.2rem;
  transition:border-color .3s ease, gap .3s ease;
}
.vdm-link-arrow:hover{ border-color:var(--c-moss); gap:.75rem; }
.vdm-link-arrow svg{ width:14px; height:14px; }
.vdm-link-arrow.on-dark{ color:var(--c-lime); }

/* --- LEAF MOTIF (Costela de Adão) --- */
.vdm-leaf{ display:block; }
.vdm-leaf path{ fill:none; stroke:currentColor; stroke-width:1.1; }

/* --- ÍCONES TEMÁTICOS (piscina, restaurante, wifi, etc.) --- */
.vdm-icon{ display:block; }
.vdm-icon path, .vdm-icon circle, .vdm-icon rect{ fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }

/* --- NOISE OVERLAY --- */
.vdm-noise{
  position:fixed; inset:0; z-index:9998; pointer-events:none;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* --- PRELOADER --- */
.vdm-loader{
  position:fixed; inset:0; z-index:10000; background:var(--c-forest);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1.2rem;
}
.vdm-loader-text{ font-family:var(--font-body); color:var(--c-bg); font-size:clamp(1rem,2.6vw,1.3rem); letter-spacing:.32em; font-weight:600; }
.vdm-loader-bar-track{ width:220px; max-width:60vw; height:2px; background:rgba(245,241,230,0.18); }
.vdm-loader-bar{ height:100%; width:0%; background:var(--c-lime); }

/* --- NAV --- */
.vdm-nav{
  position:fixed; top:0; left:0; right:0; z-index:900; padding:1.3rem 6vw;
  display:flex; align-items:center; justify-content:space-between;
  transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
}
.vdm-nav.is-solid, .vdm-nav.is-scrolled{
  background:rgba(245,241,230,0.94); backdrop-filter:blur(10px);
  padding:.85rem 6vw; box-shadow:0 1px 0 var(--c-line);
}
.vdm-logo{
  font-family:var(--font-body); font-weight:600; font-size:.88rem; letter-spacing:.06em;
  color:var(--c-bg); display:flex; flex-direction:column; line-height:1.15;
}
.vdm-nav.is-solid .vdm-logo, .vdm-nav.is-scrolled .vdm-logo{ color:var(--c-ink); }
.vdm-logo span{ color:var(--c-lime); font-size:.7em; }
.vdm-nav-links{ display:flex; gap:2.1rem; }
.vdm-nav-links a{
  font-family:var(--font-body); font-size:.72rem; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:rgba(245,241,230,0.85); position:relative; padding-bottom:.3rem;
}
.vdm-nav.is-solid .vdm-nav-links a, .vdm-nav.is-scrolled .vdm-nav-links a{ color:var(--c-ink); }
.vdm-nav-links a::after{ content:''; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--c-lime); transition:width .3s ease; }
.vdm-nav-links a:hover::after, .vdm-nav-links a.is-current::after{ width:100%; }
.vdm-nav-cta{
  font-family:var(--font-body); font-size:.7rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  background:var(--c-lime); color:var(--c-forest); padding:.75rem 1.35rem; border-radius:2px; border:none;
  transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.vdm-nav-cta:hover{ transform:translateY(-2px); }
.vdm-nav-burger{ display:none; background:none; border:none; width:26px; height:18px; position:relative; }
.vdm-nav-burger span{ position:absolute; left:0; right:0; height:2px; background:var(--c-bg); transition:all .3s ease; }
.vdm-nav.is-solid .vdm-nav-burger span, .vdm-nav.is-scrolled .vdm-nav-burger span{ background:var(--c-ink); }
.vdm-nav-burger span:nth-child(1){ top:0; }
.vdm-nav-burger span:nth-child(2){ top:8px; }
.vdm-nav-burger span:nth-child(3){ top:16px; }
.vdm-nav-mobile{
  position:fixed; inset:0; z-index:895; background:var(--c-forest);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2.1rem;
  transform:translateY(-100%); transition:transform .5s cubic-bezier(.7,0,.3,1);
}
.vdm-nav-mobile.is-open{ transform:translateY(0); }
.vdm-nav-mobile a{ font-family:var(--font-display); font-size:1.5rem; color:var(--c-bg); font-weight:500; font-style:italic; }
.vdm-nav-mobile a.is-current{ color:var(--c-lime); }
@media(max-width:920px){ .vdm-nav-links{ display:none; } .vdm-nav-burger{ display:block; } }

/* --- INTERIOR HERO (todas as páginas, exceto Home) --- */
.vdm-hero{
  position:relative; min-height:56vh; display:flex; align-items:flex-end;
  background:var(--c-forest); overflow:hidden; padding-bottom:5.5rem;
}
.vdm-hero-media{ position:absolute; inset:0; }
.vdm-hero-media img{ width:100%; height:100%; object-fit:cover; opacity:.5; }
.vdm-hero-gradient{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(16,33,14,0.3) 0%, rgba(16,33,14,0.55) 55%, rgba(16,33,14,0.95) 100%);
}
.vdm-hero-leaf{ position:absolute; right:-8vw; top:-10vw; width:32vw; max-width:420px; color:rgba(169,201,62,0.12); z-index:1; }
.vdm-hero-content{ position:relative; z-index:2; padding:0 6vw; max-width:800px; }
.vdm-hero-crumb{ display:block; margin-bottom:1rem; color:var(--c-soft); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
.vdm-hero-title{
  font-family:var(--font-display); font-weight:500; color:var(--c-bg);
  font-size:clamp(1.7rem,3.4vw,2.5rem); line-height:1.3; letter-spacing:-0.005em;
}
.vdm-hero-title em{ font-style:italic; color:var(--c-lime); font-weight:500; }
.vdm-hero-sub{ font-size:.96rem; line-height:1.75; color:var(--c-soft); max-width:560px; margin-top:1.1rem; }
.word-wrap{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.12em; }
.word-inner{ display:inline-block; transform:translateY(115%); }

/* --- MOTOR DE RESERVAS (padrão único em todas as páginas) --- */
.vdm-booking-wrap{ position:relative; z-index:3; margin-top:-4rem; padding:0 6vw; }
.vdm-booking{
  max-width:1240px; margin:0 auto; background:var(--c-card); border-radius:6px;
  box-shadow:0 30px 60px -20px rgba(16,33,14,0.35); padding:1.6rem 1.8rem;
}
.vdm-booking-form{ display:grid; grid-template-columns:repeat(4,1fr) 1.3fr auto; gap:1.1rem; align-items:end; }
.vdm-booking-field{ display:flex; flex-direction:column; gap:.45rem; }
.vdm-booking-field label{ font-family:var(--font-body); font-size:.64rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--c-mid); }
.vdm-booking-field input, .vdm-booking-field select{
  border:1px solid var(--c-line); border-radius:3px; padding:.7rem .75rem;
  font-family:var(--font-body); font-size:.86rem; color:var(--c-ink); background:#fff;
}
.vdm-booking-field input:focus, .vdm-booking-field select:focus{ outline:2px solid var(--c-lime); outline-offset:1px; border-color:var(--c-moss); }
.vdm-booking-submit{
  font-family:var(--font-body); font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  background:var(--c-moss); color:#fff; border:none; border-radius:3px; padding:.85rem 1.5rem; white-space:nowrap;
  transition:background .3s ease, transform .3s ease;
}
.vdm-booking-submit:hover{ background:var(--c-moss-dark); transform:translateY(-2px); }
@media(max-width:1080px){
  .vdm-booking-form{ grid-template-columns:1fr 1fr; }
  .vdm-booking-field.is-code{ grid-column:span 2; }
  .vdm-booking-submit{ grid-column:span 2; }
}

/* --- ROW (mídia + texto alternado — usado em O Hotel, Acomodações, Destino) --- */
.vdm-rows{ display:flex; flex-direction:column; gap:1.4rem; }
.vdm-row{
  display:grid; grid-template-columns:0.85fr 1.15fr; border-radius:6px; overflow:hidden;
  background:var(--c-card); border:1px solid var(--c-line);
}
.vdm-row:nth-child(even){ direction:rtl; }
.vdm-row:nth-child(even) > *{ direction:ltr; }
.vdm-row-media{ position:relative; min-height:320px; background:var(--c-bg-alt); }
.vdm-row-media img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.vdm-row-body{ padding:2.6rem 2.8rem; display:flex; flex-direction:column; }
.vdm-row-tag{ font-size:.9rem; color:var(--c-moss); margin-bottom:1rem; font-weight:600; }
.vdm-row-title{ font-family:var(--font-display); font-weight:500; font-style:italic; font-size:1.6rem; color:var(--c-forest); margin-bottom:.4rem; }
.vdm-row-desc{ font-size:.92rem; line-height:1.75; color:var(--c-mid); margin-bottom:1.2rem; }
.vdm-row-meta{ font-size:.82rem; color:var(--c-moss); font-weight:600; margin-bottom:1.4rem; }
.vdm-row-note{ font-size:.78rem; color:var(--c-mid); font-style:italic; margin-bottom:1.2rem; }
.vdm-row-footer{ margin-top:auto; display:flex; gap:1rem; flex-wrap:wrap; }
@media(max-width:900px){
  .vdm-row, .vdm-row:nth-child(even){ grid-template-columns:1fr; direction:ltr; }
  .vdm-row-media{ min-height:220px; }
  .vdm-row-body{ padding:2rem; }
}

/* --- CHECKLIST (grid com bullet-folha) --- */
.vdm-checklist{ display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem 1.6rem; }
.vdm-checklist.cols-4{ grid-template-columns:repeat(4,1fr); }
.vdm-checklist li{ display:flex; align-items:center; gap:.6rem; font-size:.88rem; color:var(--c-ink); }
.vdm-checklist .vdm-leaf{ width:13px; height:13px; color:var(--c-moss); flex-shrink:0; }
.vdm-checklist .vdm-icon{ width:19px; height:19px; color:var(--c-moss); flex-shrink:0; }
.vdm-checklist.on-dark li{ color:var(--c-soft); }
.vdm-checklist.on-dark .vdm-leaf{ color:var(--c-lime); }
.vdm-checklist.on-dark .vdm-icon{ color:var(--c-lime); }
@media(max-width:760px){ .vdm-checklist, .vdm-checklist.cols-4{ grid-template-columns:1fr 1fr; } }

/* --- CHECKLIST BOX (agrupa uma checklist numa caixa com fundo/borda) --- */
.vdm-checklist-box{
  display:inline-block; margin:0 auto 2rem; padding:1.6rem 2.2rem; border-radius:8px;
  background:rgba(245,241,230,0.06); border:1px solid rgba(245,241,230,0.14);
}
.vdm-checklist-box.on-light{ background:var(--c-card); border-color:var(--c-line); }

/* --- CARDS GRID (salas, motivos, ofertas) --- */
.vdm-cards-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.vdm-cards-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.vdm-card{ background:var(--c-card); border:1px solid var(--c-line); border-radius:6px; padding:2.2rem; display:flex; flex-direction:column; gap:1rem; }
.vdm-card-tag{
  font-family:var(--font-body); font-size:.64rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--c-forest); background:rgba(169,201,62,0.35); display:inline-block; padding:.35rem .7rem; border-radius:2px; align-self:flex-start;
}
.vdm-card h3{ font-family:var(--font-display); font-weight:500; font-style:italic; font-size:1.25rem; color:var(--c-forest); }
.vdm-card p{ font-size:.88rem; line-height:1.7; color:var(--c-mid); flex-grow:1; }
.vdm-card-meta{ font-size:.8rem; color:var(--c-moss); font-weight:600; border-top:1px solid var(--c-line); padding-top:1rem; }
@media(max-width:900px){ .vdm-cards-grid, .vdm-cards-grid.cols-2{ grid-template-columns:1fr; } }

/* --- CTA BAND (bloco de chamada centralizado) --- */
.vdm-cta-band{ text-align:center; }
.vdm-cta-band.on-forest{ background:var(--c-forest); color:var(--c-bg); }
.vdm-cta-band.on-ink{ background:var(--c-ink); color:var(--c-bg); }
.vdm-cta-band.on-alt{ background:var(--c-bg-alt); }
.vdm-cta-band .vdm-container{ max-width:720px; margin:0 auto; display:flex; flex-direction:column; align-items:center; }
.vdm-cta-band h2{ margin:1rem 0 1.1rem; }
.vdm-cta-band p{ margin-bottom:2rem; }

/* --- TABLE (comparativos) --- */
.vdm-table-wrap{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.vdm-table{ width:100%; min-width:480px; border-collapse:collapse; }
.vdm-table th{
  font-family:var(--font-body); font-size:.66rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--c-forest); text-align:left; padding:.9rem 1rem; border-bottom:1px solid var(--c-line);
}
.vdm-table td{ font-size:.9rem; color:var(--c-ink); padding:1rem; border-bottom:1px solid var(--c-line); }
.vdm-table tr:last-child td{ border-bottom:none; }

/* --- CONTACT GRID (central de reservas) --- */
.vdm-contact-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem; }
.vdm-contact-item{ background:var(--c-card); border:1px solid var(--c-line); border-radius:6px; padding:1.8rem; display:flex; flex-direction:column; gap:.6rem; }
.vdm-contact-item .vdm-leaf{ width:20px; height:20px; color:var(--c-moss); }
.vdm-contact-item span{ font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--c-mid); }
.vdm-contact-item strong{ font-family:var(--font-display); font-style:italic; font-weight:500; font-size:1.05rem; color:var(--c-forest); }
@media(max-width:900px){ .vdm-contact-grid{ grid-template-columns:1fr 1fr; } }

/* --- FOOTER --- */
.vdm-footer{ background:var(--c-forest); color:var(--c-bg); padding:5rem 6vw 2rem; }
.vdm-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(245,241,230,0.12); }
.vdm-footer-logo{ font-family:var(--font-body); font-weight:600; font-size:1rem; letter-spacing:.06em; margin-bottom:1.2rem; }
.vdm-footer-logo span{ color:var(--c-lime); }
.vdm-footer p{ font-size:.84rem; line-height:1.7; color:rgba(245,241,230,0.6); }
.vdm-footer h4{ font-family:var(--font-body); font-size:.66rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--c-lime); margin-bottom:1.3rem; }
.vdm-footer-links{ display:flex; flex-direction:column; gap:.75rem; }
.vdm-footer-links a{ font-size:.85rem; color:rgba(245,241,230,0.75); }
.vdm-footer-links a:hover{ color:var(--c-lime); }
.vdm-footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:1.8rem; flex-wrap:wrap; gap:1rem; }
.vdm-footer-bottom p{ font-size:.75rem; color:rgba(245,241,230,0.45); }
.vdm-footer-legal{ display:flex; gap:1.6rem; }
.vdm-footer-legal a{ font-size:.75rem; color:rgba(245,241,230,0.55); }
.vdm-footer-legal a:hover{ color:var(--c-lime); }
@media(max-width:900px){ .vdm-footer-grid{ grid-template-columns:1fr 1fr; row-gap:2.4rem; } }

/* --- WHATSAPP FLOAT --- */
.vdm-whatsapp{
  position:fixed; right:1.6rem; bottom:1.6rem; z-index:850; width:56px; height:56px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 25px rgba(0,0,0,0.25); transition:transform .3s ease;
}
.vdm-whatsapp:hover{ transform:scale(1.08); }
.vdm-whatsapp svg{ width:28px; height:28px; }

/* --- COOKIE BANNER (LGPD) --- */
.vdm-cookie{
  position:fixed; left:1.2rem; right:1.2rem; bottom:1.2rem; z-index:950; max-width:560px; margin:0 auto;
  background:var(--c-ink); color:var(--c-bg); border-radius:8px; padding:1.4rem 1.6rem;
  display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.4rem;
  box-shadow:0 20px 45px rgba(0,0,0,0.35);
  transform:translateY(140%); transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.vdm-cookie.is-visible{ transform:translateY(0); }
.vdm-cookie p{ font-size:.8rem; line-height:1.6; color:rgba(245,241,230,0.85); flex:1 1 260px; }
.vdm-cookie p a{ color:var(--c-lime); text-decoration:underline; }
.vdm-cookie-actions{ display:flex; gap:.7rem; }
.vdm-cookie-actions button{
  font-family:var(--font-body); font-size:.66rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  padding:.65rem 1.1rem; border-radius:3px; border:1px solid rgba(245,241,230,0.3); background:transparent; color:var(--c-bg);
}
.vdm-cookie-actions button.is-accept{ background:var(--c-lime); border-color:var(--c-lime); color:var(--c-forest); }

/* --- REVEAL UTILITY --- */
.reveal-up{ opacity:0; transform:translateY(36px); }

/* --- ACCESSIBILITY --- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{ outline:2px solid var(--c-lime); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
  .word-inner{ transform:none !important; }
  .reveal-up{ opacity:1 !important; transform:none !important; }
}
