/* ═══════════════════════════════════════════
   BELLA QUINTA — Shared stylesheet
   ═══════════════════════════════════════════ */

:root{
  --green: #1C3A2A;
  --green-hover: #2D5A3F;
  --green-soft: rgba(28,58,42,.08);
  --green-line: rgba(28,58,42,.16);
  --cream: #fafaf7;
  --cream-2: #f2f1ec;
  --black: #111;
  --muted: #777;
  --border: #e5e2da;
  --shadow-card: 0 12px 40px rgba(0,0,0,.04);
  --shadow-card-hover: 0 20px 60px rgba(0,0,0,.08);
  --max: 1400px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',system-ui,sans-serif;
  font-weight:400;
  color:var(--black);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none}

/* Custom scrollbar */
::-webkit-scrollbar{width:3px;height:3px}
::-webkit-scrollbar-track{background:var(--cream-2)}
::-webkit-scrollbar-thumb{background:var(--green);border-radius:0}

/* ─── Typography ─────────────────────────── */
h1,h2,h3,h4{
  font-family:'Playfair Display',serif;
  font-weight:500;
  letter-spacing:-0.5px;
  line-height:1.08;
  margin:0;
}
h1 em,h2 em,h3 em{font-style:italic;font-weight:500}
.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:12px;
  font-weight:500;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--green);
}
.eyebrow.on-dark{color:rgba(255,255,255,.7)}
.divider{
  width:40px;height:1px;background:rgba(255,255,255,.5);
  margin:28px auto;display:block;
}
.divider.dark{background:var(--green-line)}

/* ─── Progress bar ───────────────────────── */
.progress{
  position:fixed;top:0;left:0;right:0;
  height:3px;z-index:1000;
  background:transparent;
}
.progress::after{
  content:'';display:block;height:100%;
  background:var(--green);
  width:100%;
  transform:scaleX(var(--p,0));
  transform-origin:left;
  transition:transform .12s linear;
}

/* ─── Nav ────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  height:96px;padding:0 52px;
  display:flex;align-items:center;justify-content:space-between;
  transition:background .35s ease,box-shadow .35s ease,height .35s ease,border-color .35s ease;
  border-bottom:1px solid transparent;
}
.nav.transparent{background:transparent;color:#fff}
.nav.solid{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom-color:var(--border);
  color:var(--black);
  height:78px;
}
.nav-logo{
  display:flex;align-items:center;gap:10px;
  font-family:'Playfair Display',serif;font-weight:500;
  font-size:24px;letter-spacing:-.3px;
  transition:font-size .35s;
  flex-shrink:0;
}
.nav-logo-img{
  display:block;height:54px;width:auto;
  transition:height .35s ease, opacity .25s ease;
}
.nav.transparent .nav-logo-img.dark,
.nav.solid .nav-logo-img.light{
  position:absolute;opacity:0;pointer-events:none;
}
.nav.solid .nav-logo-img{height:46px}
.nav.solid .nav-logo-img.dark{position:static;opacity:1}
.nav.solid .nav-logo-img.light{position:absolute}
.nav-links{
  display:flex;align-items:center;gap:42px;
  font-size:14px;font-weight:400;
}
.nav-links a{position:relative;padding:6px 0;transition:opacity .2s}
.nav-links a:hover{opacity:.65}
.nav-link.has-drop{position:relative;display:inline-flex;align-items:center;gap:6px;padding:30px 0;cursor:pointer}
.nav-link.has-drop::after{
  content:'';width:6px;height:6px;display:inline-block;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .2s;
}
.nav-drop{
  position:absolute;top:100%;left:50%;
  transform:translateX(-50%) translateY(0);
  background:#fff;color:var(--black);
  border:1px solid var(--border);border-radius:14px;
  padding:10px 0;min-width:280px;margin-top:0;
  box-shadow:0 24px 60px rgba(0,0,0,.10);
  opacity:0;visibility:hidden;
  transition:opacity .2s,visibility .2s;
}
/* invisible bridge so hover doesn't break between trigger and dropdown */
.nav-drop::before{
  content:'';position:absolute;top:-12px;left:0;right:0;height:14px;
}
.nav-link.has-drop:hover .nav-drop,
.nav-link.has-drop.open .nav-drop,
.nav-link.has-drop:focus-within .nav-drop{
  opacity:1;visibility:visible;
}
.nav-drop a{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 22px;font-size:14px;color:var(--black);
}
.nav-drop a:hover{background:var(--green-soft);color:var(--green)}
.nav-drop a small{color:var(--muted);font-size:11px}

.nav-cta{
  background:var(--green);color:#fff;flex-shrink:0;white-space:nowrap;
  padding:12px 22px;border-radius:10px;
  font-size:14px;font-weight:500;letter-spacing:.2px;
  transition:background .2s,transform .2s;
}
.nav-cta:hover{background:var(--green-hover);transform:translateY(-1px)}

.nav-burger{display:none;width:36px;height:36px;position:relative}
.nav-burger span{
  position:absolute;left:6px;right:6px;height:1.5px;background:currentColor;
  transition:transform .25s,top .25s,opacity .2s;
}
.nav-burger span:nth-child(1){top:13px}
.nav-burger span:nth-child(2){top:18px}
.nav-burger span:nth-child(3){top:23px}
.nav-burger.open span:nth-child(1){top:18px;transform:rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){top:18px;transform:rotate(-45deg)}

.nav-mobile{
  position:fixed;inset:0;z-index:899;
  background:#fff;color:var(--black);
  padding:100px 32px 40px;
  display:flex;flex-direction:column;gap:8px;
  transform:translateY(-100%);transition:transform .35s ease;
}
.nav-mobile.open{transform:translateY(0)}
.nav-mobile a{
  font-family:'Playfair Display',serif;
  font-size:30px;font-weight:500;
  padding:14px 0;border-bottom:1px solid var(--border);
}
.nav-mobile .nav-cta{margin-top:24px;text-align:center;font-family:'Inter',sans-serif;font-size:15px}

/* ─── Hero ───────────────────────────────── */
.hero{
  position:relative;height:100vh;min-height:640px;
  overflow:hidden;color:#fff;
}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.5s ease;
}
.hero-slide.active{opacity:1}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.15) 35%,rgba(0,0,0,.55) 100%);
}
.hero-content{
  position:absolute;left:0;right:0;bottom:0;
  padding:0 52px 100px;
  max-width:1100px;
  z-index:2;
}
.hero h1{
  font-size:clamp(42px,7vw,80px);
  letter-spacing:-1.5px;
  margin:18px 0 22px;
  text-wrap:pretty;
}
.hero-sub{
  font-size:18px;line-height:1.55;font-weight:300;
  max-width:540px;margin-bottom:36px;
  color:rgba(255,255,255,.92);
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 28px;border-radius:10px;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:500;
  letter-spacing:.3px;
  transition:transform .2s,background .2s,color .2s,border-color .2s;
}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-hover);transform:translateY(-2px)}
.btn-outline-white{border:1.5px solid rgba(255,255,255,.65);color:#fff}
.btn-outline-white:hover{background:#fff;color:var(--green);border-color:#fff;transform:translateY(-2px)}
.btn-light{background:#fff;color:var(--green)}
.btn-light:hover{background:#fff;color:var(--green-hover);transform:translateY(-2px);box-shadow:0 16px 32px rgba(0,0,0,.12)}
.btn-outline{border:1.5px solid var(--green);color:var(--green)}
.btn-outline:hover{background:var(--green);color:#fff}

.hero-dots{
  position:absolute;right:52px;bottom:54px;
  display:flex;gap:14px;align-items:center;z-index:3;
}
.hero-dot{
  width:32px;height:1.5px;background:rgba(255,255,255,.4);
  cursor:pointer;transition:width .35s,background .35s;
}
.hero-dot.active{width:48px;background:#fff}

.scroll-line{
  position:absolute;left:52px;bottom:54px;z-index:3;
  display:none;
  flex-direction:column;align-items:center;gap:14px;
  font-size:11px;letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,.7);
}
.scroll-line::after{
  content:'';width:1px;height:48px;background:rgba(255,255,255,.4);
  position:relative;overflow:hidden;
  animation:scrollline 2.4s ease-in-out infinite;
}
@keyframes scrollline{
  0%{transform:scaleY(0);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  51%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(0);transform-origin:bottom}
}

/* ─── Sections / Containers ──────────────── */
.section{padding:110px 52px}
.section-sm{padding:80px 52px}
.section-green{
  background:var(--green);color:#fff;
  padding:110px 52px;
}
.section-cream2{background:var(--cream-2);padding:110px 52px}
.section-black{background:#000;color:#fff;padding:110px 52px}
.container{max-width:var(--max);margin:0 auto}
.container-narrow{max-width:920px;margin:0 auto}

.section-head{text-align:center;margin-bottom:72px}
.section-head h2{
  font-size:clamp(34px,4.4vw,52px);
  margin:18px auto 0;max-width:840px;text-wrap:balance;
}
.section-head .lead{
  margin-top:24px;color:var(--muted);max-width:620px;
  margin-left:auto;margin-right:auto;font-size:16px;line-height:1.6;
}
.section-green .section-head h2{color:#fff}
.section-green .section-head .lead{color:rgba(255,255,255,.8)}

/* ─── Intro green block ──────────────────── */
.intro-green{
  text-align:center;color:#fff;
}
.intro-green h2{
  font-size:clamp(32px,4vw,48px);
  max-width:880px;margin:18px auto 0;
}
.intro-green p{
  margin:32px auto 0;max-width:680px;
  color:rgba(255,255,255,.82);
  font-size:16px;line-height:1.7;font-weight:300;
}

/* ─── Full-width parallax image ──────────── */
.parallax{
  position:relative;height:70vh;min-height:520px;
  overflow:hidden;
}
.parallax-bg{
  position:absolute;inset:-10% 0;
  background-size:cover;background-position:center;
  will-change:transform;
}
.parallax::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.45) 100%);
}
.parallax-overlay{
  position:absolute;left:52px;bottom:48px;z-index:2;
  color:#fff;max-width:560px;
}
.parallax-overlay .eyebrow{color:rgba(255,255,255,.7)}
.parallax-overlay h3{
  font-size:clamp(26px,2.6vw,36px);
  margin-top:14px;text-wrap:pretty;
}
.parallax-overlay p{
  margin-top:10px;font-size:15px;font-weight:300;
  color:rgba(255,255,255,.82);
}

/* ─── Eventos cards ──────────────────────── */
.events-grid{display:flex;flex-direction:column;gap:24px;margin-top:48px}

/* Hero featured event */
.event-hero{
  position:relative;display:block;overflow:hidden;
  border-radius:18px;min-height:440px;
  color:#fff;text-decoration:none;
  box-shadow:var(--shadow-card);
  transition:transform .4s ease,box-shadow .4s ease;
}
.event-hero:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
.event-hero-photo{position:absolute;inset:0;z-index:0}
.event-hero-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.event-hero:hover .event-hero-photo img{transform:scale(1.04)}
.event-hero-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,28,18,.85) 0%,rgba(10,28,18,.5) 50%,rgba(10,28,18,.15) 100%);
}
.event-hero-body{
  position:relative;z-index:1;
  max-width:540px;padding:64px 56px;
  display:flex;flex-direction:column;
  min-height:440px;justify-content:center;
}
.event-hero-body h3{
  font-size:clamp(28px,3vw,40px);
  margin-top:14px;text-wrap:pretty;line-height:1.1;
}
.event-hero-body p{
  margin-top:18px;font-size:15px;line-height:1.65;
  color:rgba(255,255,255,.85);text-wrap:pretty;
}
.event-hero-body .link.on-dark{
  margin-top:28px;display:inline-flex;align-items:center;gap:10px;
  font-size:13px;font-weight:500;letter-spacing:1px;text-transform:uppercase;
  color:#fff;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.4);
  align-self:flex-start;transition:gap .2s,border-color .2s;
}
.event-hero:hover .event-hero-body .link.on-dark{gap:14px;border-color:#fff}
.badge-featured{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.16);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.25);
  padding:6px 14px;border-radius:99px;
  font-size:11px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;
  color:#fff;align-self:flex-start;margin-bottom:18px;
}
.badge-featured i{color:#FFD56B;font-size:10px}

/* 3x2 grid */
.events-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.event-card{
  display:block;background:#fff;border:1px solid var(--border);
  border-radius:14px;overflow:hidden;text-decoration:none;
  box-shadow:var(--shadow-card);
  transition:transform .35s ease,box-shadow .35s ease;
}
.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
.event-card-photo{aspect-ratio:4/3;overflow:hidden;background:var(--cream-2)}
.event-card-photo img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s ease;
}
.event-card:hover .event-card-photo img{transform:scale(1.06)}
.event-card-body{padding:24px 26px 26px}
.event-card-body .eyebrow{margin-bottom:10px}
.event-card-body h4{
  font-family:'Playfair Display',serif;font-weight:500;
  font-size:20px;line-height:1.2;letter-spacing:-.2px;
  color:var(--black);text-wrap:pretty;
  margin:0 0 18px;
}
.event-card-body .link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--green);padding-bottom:4px;
  border-bottom:1px solid transparent;
  transition:gap .2s,border-color .2s;
}
.event-card:hover .event-card-body .link{gap:12px;border-color:var(--green)}

/* ─── Stats ──────────────────────────────── */
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px;
  text-align:center;
}
.stat .num{
  font-family:'Playfair Display',serif;font-weight:500;
  font-size:clamp(44px,5.4vw,68px);line-height:1;
  letter-spacing:-2px;
}
.stat .lbl{
  margin-top:14px;font-size:11px;letter-spacing:3px;
  text-transform:uppercase;color:rgba(255,255,255,.7);
}

/* ─── Includes grid ──────────────────────── */
.includes{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.include-card{
  background:#fff;border:1px solid var(--border);
  border-radius:18px;padding:42px 36px;
  transition:transform .3s,box-shadow .3s;
}
.include-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.include-card .ico{
  width:52px;height:52px;border-radius:50%;
  background:var(--green-soft);color:var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;margin-bottom:24px;
}
.include-card h4{
  font-family:'Playfair Display',serif;font-size:22px;font-weight:500;
  margin-bottom:10px;
}
.include-card p{color:var(--muted);font-size:14px;line-height:1.6}

/* ─── Testimonios ────────────────────────── */
.testi-wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:80px;align-items:start}
.testi-left h2{
  font-size:clamp(34px,4vw,48px);
  margin-top:18px;text-wrap:pretty;
}
.testi-left p{margin-top:24px;color:var(--muted);font-size:16px;line-height:1.6;max-width:380px}
.gbadge{
  margin-top:32px;display:inline-flex;align-items:center;gap:14px;
  background:#fff;border:1px solid var(--border);
  padding:14px 22px;border-radius:14px;
}
.gbadge svg{width:22px;height:22px;flex-shrink:0}
.gbadge strong{font-family:'Playfair Display',serif;font-weight:500;font-size:18px}
.gbadge small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.testi-stack{display:flex;flex-direction:column;gap:18px}
.testi-card{
  background:#fff;border:1px solid var(--border);
  border-radius:18px;padding:32px;
  transition:transform .3s,box-shadow .3s;
}
.testi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}
.testi-stars{color:var(--green);font-size:14px;letter-spacing:3px}
.testi-quote{
  margin-top:14px;font-family:'Playfair Display',serif;
  font-size:19px;font-weight:400;font-style:italic;line-height:1.5;
  color:#222;text-wrap:pretty;
}
.testi-meta{margin-top:22px;display:flex;align-items:center;gap:14px}
.testi-avatar{
  width:42px;height:42px;border-radius:50%;background:var(--green);
  color:#fff;font-family:'Playfair Display',serif;font-size:18px;
  display:flex;align-items:center;justify-content:center;
}
.testi-meta .who strong{display:block;font-size:14px;font-weight:500}
.testi-meta .who small{color:var(--muted);font-size:12px}

/* ─── Form ───────────────────────────────── */
.reservar{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.reservar h2{font-size:clamp(34px,4vw,48px);margin-top:18px;text-wrap:pretty}
.reservar-info{margin-top:48px;display:flex;flex-direction:column;gap:24px}
.info-item{display:flex;gap:18px;align-items:flex-start}
.info-item .ico{
  width:42px;height:42px;border-radius:50%;background:#fff;
  border:1px solid var(--border);
  color:var(--green);display:flex;align-items:center;justify-content:center;
  font-size:15px;flex-shrink:0;
}
.info-item small{color:var(--muted);font-size:11px;letter-spacing:2px;text-transform:uppercase}
.info-item strong{display:block;margin-top:4px;font-weight:500;font-size:15px}
.form-card{
  background:#fff;border-radius:20px;padding:44px;
  border:1px solid var(--border);
  box-shadow:var(--shadow-card);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{
  font-size:11px;font-weight:500;letter-spacing:2px;
  text-transform:uppercase;color:var(--muted);
}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;border:1px solid var(--border);
  border-radius:10px;background:var(--cream);
  font:400 15px 'Inter',sans-serif;color:var(--black);
  transition:border-color .2s,background .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--green);background:#fff;
}
.field textarea{min-height:110px;resize:vertical}
.form-card .btn{width:100%;justify-content:center;margin-top:8px;font-size:15px;padding:18px}
.form-note{margin-top:14px;text-align:center;font-size:12px;color:var(--muted)}

/* ─── CTA parallax ───────────────────────── */
.cta-parallax{
  position:relative;padding:140px 52px;
  background-size:cover;background-position:center;
  background-attachment:fixed;
  text-align:center;color:#fff;overflow:hidden;
}
.cta-parallax::before{
  content:'';position:absolute;inset:0;background:rgba(28,58,42,.88);
}
.cta-parallax > *{position:relative;z-index:1}
.cta-parallax h2{
  font-size:clamp(38px,5vw,60px);max-width:800px;margin:18px auto 0;
}
.cta-parallax p{
  margin:28px auto 40px;max-width:600px;
  color:rgba(255,255,255,.85);font-size:16px;line-height:1.6;font-weight:300;
}

/* ─── Footer ─────────────────────────────── */
.footer{background:#000;color:#fff;padding:80px 52px 32px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:60px;max-width:var(--max);margin:0 auto}
.footer h5{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,.5);margin-bottom:20px;
}
.footer-brand{display:inline-flex;align-items:center}
.footer-brand img{height:80px;width:auto;display:block;filter:brightness(0) invert(1)}
.footer-desc{margin-top:18px;color:rgba(255,255,255,.6);font-size:14px;line-height:1.7;max-width:340px}
.footer-social{margin-top:24px;display:flex;gap:10px}
.footer-social a{
  width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:14px;transition:background .2s,border-color .2s;
}
.footer-social a:hover{background:#fff;color:#000}
.footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.footer ul a{font-size:14px;color:rgba(255,255,255,.7);transition:color .2s}
.footer ul a:hover{color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:60px;padding-top:24px;
  display:flex;justify-content:space-between;
  font-size:12px;color:rgba(255,255,255,.45);
  max-width:var(--max);margin-left:auto;margin-right:auto;
}
.footer-bottom a{color:rgba(255,255,255,.7);transition:color .2s}
.footer-bottom a:hover{color:#fff}

/* ─── WhatsApp Floating ──────────────────── */
.wa-float{position:fixed;right:24px;bottom:24px;z-index:990;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.wa-bubble{
  background:#fff;color:var(--black);border-radius:18px;
  padding:18px 20px;max-width:300px;
  box-shadow:0 16px 50px rgba(0,0,0,.15);
  position:relative;
  opacity:0;transform:translateY(12px);
  transition:opacity .35s,transform .35s;
}
.wa-bubble.show{opacity:1;transform:translateY(0)}
.wa-bubble .who{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.wa-bubble .av{
  width:32px;height:32px;border-radius:50%;background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;
}
.wa-bubble strong{font-size:13px;font-weight:600}
.wa-bubble .time{display:block;font-size:11px;color:var(--muted);margin-top:1px}
.wa-bubble .msg{font-size:13px;line-height:1.5;color:#333}
.wa-bubble .close{
  position:absolute;top:8px;right:10px;
  width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:14px;
}
.wa-bubble .close:hover{background:var(--cream-2)}
.wa-btn{
  width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:26px;
  box-shadow:0 12px 30px rgba(37,211,102,.4);
  position:relative;transition:transform .2s;
}
.wa-btn:hover{transform:scale(1.05)}
.wa-btn::before{
  content:'';position:absolute;inset:-6px;border-radius:50%;
  border:2px solid #25D366;opacity:.6;
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{transform:scale(1);opacity:.6}
  100%{transform:scale(1.5);opacity:0}
}

/* ─── Reveal ─────────────────────────────── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}
.reveal.d2{transition-delay:.2s}
.reveal.d3{transition-delay:.3s}
.reveal.d4{transition-delay:.4s}

/* ─── 5-min consultation popup ───────────── */
.bq-popup{
  position:fixed;inset:0;z-index:1100;
  display:none;align-items:center;justify-content:center;
  padding:20px;
}
.bq-popup.show{display:flex}
.bq-popup-overlay{position:absolute;inset:0;background:rgba(10,18,14,.74);backdrop-filter:blur(4px);animation:fadein .3s ease}
.bq-popup-card{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1.05fr;
  max-width:880px;width:100%;
  background:var(--cream);
  border-radius:22px;overflow:hidden;
  box-shadow:0 40px 100px rgba(0,0,0,.4);
  animation:popin .45s cubic-bezier(.2,.7,.3,1.2);
}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes popin{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
.bq-popup-img{
  background-size:cover;background-position:center;min-height:380px;
}
.bq-popup-body{padding:48px 44px}
.bq-popup-body .eyebrow{margin-bottom:14px;display:block}
.bq-popup-body h3{
  font-family:'Playfair Display',serif;font-weight:500;
  font-size:30px;line-height:1.15;letter-spacing:-.5px;
  text-wrap:pretty;
}
.bq-popup-body p{margin-top:14px;color:var(--muted);font-size:15px;line-height:1.6}
.bq-popup-body .actions{margin-top:28px;display:flex;flex-direction:column;gap:10px}
.bq-popup-body .actions .btn{justify-content:center}
.bq-popup-close{
  position:absolute;top:16px;right:16px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--black);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;z-index:2;
  transition:transform .2s;
}
.bq-popup-close:hover{transform:scale(1.06)}
@media (max-width:768px){
  .bq-popup-card{grid-template-columns:1fr}
  .bq-popup-img{min-height:200px;max-height:200px}
  .bq-popup-body{padding:32px 26px}
  .bq-popup-body h3{font-size:24px}
}

/* ─── Cookie / privacy banner ────────────── */
.bq-cookies{
  position:fixed;left:20px;right:20px;bottom:20px;z-index:980;
  max-width:760px;margin:0 auto;
  background:#fff;border:1px solid var(--border);
  border-radius:16px;padding:18px 22px;
  box-shadow:0 20px 60px rgba(0,0,0,.16);
  display:none;align-items:center;gap:18px;flex-wrap:wrap;
}
.bq-cookies.show{display:flex}
.bq-cookies p{margin:0;font-size:13px;color:var(--muted);line-height:1.55;flex:1;min-width:240px}
.bq-cookies p a{color:var(--green);text-decoration:underline}
.bq-cookies .btn{padding:10px 18px;font-size:13px}
@media (max-width:560px){.bq-cookies{left:12px;right:12px;bottom:80px;padding:16px}.bq-cookies .btn{width:100%}}

/* ─── Legal page ─────────────────────────── */
.legal{padding:140px 52px 80px;max-width:820px;margin:0 auto;color:var(--black)}
.legal .eyebrow{margin-bottom:16px}
.legal h1{font-family:'Playfair Display',serif;font-weight:500;font-size:48px;line-height:1.1;letter-spacing:-1px;margin-bottom:12px}
.legal .updated{color:var(--muted);font-size:13px;margin-bottom:48px}
.legal h2{font-family:'Playfair Display',serif;font-weight:500;font-size:26px;margin:48px 0 14px;letter-spacing:-.3px}
.legal p,.legal li{font-size:15px;line-height:1.7;color:#333}
.legal p{margin:0 0 14px}
.legal ul{padding-left:20px;margin:0 0 14px}
.legal li{margin-bottom:6px}
.legal strong{color:var(--black);font-weight:600}
.legal a{color:var(--green);border-bottom:1px solid var(--green-line)}
.legal a:hover{border-color:var(--green)}
@media (max-width:768px){.legal{padding:110px 22px 60px}.legal h1{font-size:34px}}

/* ─── Landing-specific ───────────────────── */
.breadcrumb{
  font-size:12px;letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,.7);margin-bottom:18px;
}
.breadcrumb a{color:rgba(255,255,255,.7)}
.breadcrumb a:hover{color:#fff}
.breadcrumb span{color:#fff;margin:0 8px}

.hero-landing{height:80vh;min-height:560px}
.hero-landing .hero-content{padding:0 52px 80px;max-width:980px}
.hero-landing h1{margin-top:14px}

.benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.benefit{
  text-align:center;padding:36px 28px;
  background:#fff;border:1px solid var(--border);
  border-radius:18px;
  transition:transform .3s,box-shadow .3s;
}
.benefit:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.benefit .ico{
  width:56px;height:56px;border-radius:50%;
  background:var(--green-soft);color:var(--green);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:22px;margin-bottom:20px;
}
.benefit h4{
  font-family:'Playfair Display',serif;font-size:22px;font-weight:500;
  margin-bottom:10px;
}
.benefit p{font-size:14px;color:var(--muted);line-height:1.6}

.includes2col{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start;
}
.includes2col h2{font-size:clamp(34px,4vw,48px);margin-top:18px;text-wrap:pretty}
.includes2col .lead{margin-top:24px;color:var(--muted);font-size:16px;line-height:1.65;max-width:420px}
.checks{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:18px 32px}
.checks li{
  display:flex;gap:14px;align-items:flex-start;
  font-size:15px;line-height:1.5;
  padding-bottom:18px;border-bottom:1px solid var(--border);
}
.checks li i{
  color:var(--green);background:var(--green-soft);
  width:28px;height:28px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;flex-shrink:0;
}

.gallery-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
}
.gallery-grid .gi{
  aspect-ratio:4/5;overflow:hidden;border-radius:14px;
  background:var(--cream-2);position:relative;cursor:pointer;
}
.gallery-grid .gi.tall{aspect-ratio:4/5}
.gallery-grid .gi.wide{aspect-ratio:1/1}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.gallery-grid .gi:hover img{transform:scale(1.05)}

/* ─── Responsive ─────────────────────────── */
@media (max-width:1024px){
  .nav{padding:0 28px;flex-wrap:nowrap}
  .nav-links{display:none}
  .nav>.nav-cta{display:none}
  .nav-burger{display:block}
  .section,.section-green,.section-cream2,.section-black{padding:80px 28px}
  .hero-content,.parallax-overlay,.scroll-line{padding-left:28px}
  .hero-content{padding-right:28px;padding-bottom:80px}
  .hero-dots{right:28px;bottom:40px}
  .scroll-line{left:28px;bottom:40px}
  .footer{padding:60px 28px 28px}
  .event-hero{min-height:380px}
  .event-hero-body{padding:48px 40px;min-height:380px;max-width:480px}
  .events-row{grid-template-columns:repeat(2,1fr);gap:16px}
  .stats{grid-template-columns:repeat(2,1fr);gap:40px}
  .includes{grid-template-columns:repeat(2,1fr)}
  .testi-wrap,.reservar,.includes2col{grid-template-columns:1fr;gap:48px}
  .benefits{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
  .cta-parallax{padding:90px 28px;background-attachment:scroll}
}
@media (max-width:768px){
  .nav{height:74px;padding:0 20px}
  .nav-logo-img{height:42px}
  .nav.solid .nav-logo-img{height:40px}
  .section,.section-green,.section-cream2,.section-black{padding:64px 20px}
  .hero{min-height:560px}
  .hero-content{padding:0 20px 60px}
  .hero h1{font-size:42px;letter-spacing:-1px}
  .hero-sub{font-size:16px}
  .hero-dots,.scroll-line{display:none}
  .includes{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .form-card{padding:28px}
  .stats{grid-template-columns:1fr 1fr;gap:28px}
  .benefits{grid-template-columns:1fr 1fr}
  .checks{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .events-row{grid-template-columns:1fr;gap:14px}
  .event-hero{min-height:340px}
  .event-hero-body{padding:40px 28px;min-height:340px;max-width:100%}
  .event-hero-photo::after{
    background:linear-gradient(180deg,rgba(10,28,18,.4) 0%,rgba(10,28,18,.85) 100%);
  }
  .footer-grid{grid-template-columns:1fr;gap:36px}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center}
  .parallax-overlay{left:20px;right:20px;bottom:32px}
  .wa-float{right:16px;bottom:16px}
  .wa-bubble{max-width:260px}
}

/* ─── Mini-form (overlap hero) ────────────── */
.miniform-wrap{
  position:relative;z-index:5;
  margin-top:-72px;padding:0 52px;
  pointer-events:none;
}
.miniform{
  pointer-events:auto;
  background:#fff;border:1px solid var(--border);
  border-radius:18px;
  box-shadow:0 30px 80px rgba(15,30,20,.18), 0 4px 12px rgba(15,30,20,.06);
  display:grid;grid-template-columns:1fr 2.4fr;gap:0;
  max-width:var(--max);margin:0 auto;
  overflow:hidden;
}
.miniform-text{
  background:var(--green);color:#fff;
  padding:28px 32px;display:flex;flex-direction:column;justify-content:center;
}
.miniform-text .eyebrow{color:rgba(255,255,255,.7);margin-bottom:10px}
.miniform-text strong{
  font-family:'Playfair Display',serif;font-weight:500;
  font-size:24px;line-height:1.15;letter-spacing:-.3px;
}
.miniform-text small{
  color:rgba(255,255,255,.75);font-size:13px;line-height:1.5;margin-top:8px;
}
.miniform-fields{
  display:grid;grid-template-columns:1.1fr 1fr .8fr auto;gap:18px;
  padding:24px 32px;align-items:end;
}
.miniform-fields .field{gap:6px}
.miniform-fields label{
  font-size:10px;font-weight:500;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--muted);
}
.miniform-fields input,
.miniform-fields select{
  border:none;border-bottom:1px solid var(--border);
  background:transparent;border-radius:0;
  padding:8px 0;font-size:14px;font-family:'Inter',sans-serif;
  transition:border-color .2s;
}
.miniform-fields input:focus,
.miniform-fields select:focus{outline:none;border-bottom-color:var(--green)}
.miniform-fields .btn{height:46px;padding:0 22px;white-space:nowrap}

@media (max-width:1024px){
  .miniform-wrap{padding:0 28px;margin-top:-60px}
  .miniform{grid-template-columns:1fr}
  .miniform-text{padding:22px 26px}
  .miniform-fields{grid-template-columns:1fr 1fr;padding:22px 26px}
  .miniform-fields .btn{grid-column:1/-1}
}
@media (max-width:768px){
  .miniform-wrap{padding:0 16px;margin-top:-48px}
  .miniform-fields{grid-template-columns:1fr}
}

/* ─── Galería masonry ─────────────────────── */
.masonry{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:180px;grid-auto-flow:dense;gap:14px;
  margin-top:48px;
}
.m-item{
  position:relative;overflow:hidden;border-radius:14px;
  cursor:zoom-in;background:var(--cream);
  display:block;
}
.m-item img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.m-item:hover img{transform:scale(1.06)}
.m-item::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.25));
  opacity:0;transition:opacity .3s;
}
.m-item:hover::after{opacity:1}
.m-tall{grid-row:span 2}
.m-wide{grid-column:span 2}

@media (max-width:1024px){
  .masonry{grid-template-columns:repeat(3,1fr);grid-auto-rows:160px}
}
@media (max-width:768px){
  .masonry{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px;gap:10px}
  .m-wide{grid-column:span 2}
}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;z-index:9999;
  display:none;align-items:center;justify-content:center;
  background:rgba(8,16,12,.92);backdrop-filter:blur(8px);
  padding:40px;
}
.lightbox.show{display:flex;animation:fadein .25s ease}
.lightbox img{
  max-width:100%;max-height:100%;object-fit:contain;
  border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.6);
}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;background:rgba(255,255,255,.12);color:#fff;
  border:1px solid rgba(255,255,255,.18);
  width:48px;height:48px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;cursor:pointer;
  transition:background .2s,transform .2s;
}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{
  background:rgba(255,255,255,.22);transform:scale(1.05);
}
.lightbox-close{top:24px;right:24px}
.lightbox-prev{left:24px;top:50%;transform:translateY(-50%)}
.lightbox-next{right:24px;top:50%;transform:translateY(-50%)}
.lightbox-prev:hover,.lightbox-next:hover{transform:translateY(-50%) scale(1.05)}
.lightbox-counter{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.7);font-size:12px;letter-spacing:2px;
  text-transform:uppercase;
}

/* ─── FAQ ─────────────────────────────────── */
.faq-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.faq-head h2{font-size:clamp(34px,4vw,48px);margin-top:18px;text-wrap:pretty}
.faq-head .lead{margin-top:24px;color:var(--muted);font-size:16px;line-height:1.6;max-width:380px}
.faq-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item summary{
  list-style:none;cursor:pointer;
  padding:24px 0;display:flex;justify-content:space-between;align-items:center;gap:24px;
  font-family:'Playfair Display',serif;font-size:20px;font-weight:500;
  color:var(--black);transition:color .2s;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--green)}
.faq-item summary i{
  width:32px;height:32px;border-radius:50%;
  background:var(--green-soft);color:var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;flex-shrink:0;
  transition:transform .3s,background .2s;
}
.faq-item[open] summary i{transform:rotate(45deg);background:var(--green);color:#fff}
.faq-item p{
  padding:0 0 24px;color:var(--muted);font-size:15px;line-height:1.7;
  max-width:640px;text-wrap:pretty;
}

@media (max-width:1024px){
  .faq-wrap{grid-template-columns:1fr;gap:40px}
  .faq-item summary{font-size:18px;padding:20px 0}
}

/* ─── Map card ────────────────────────────── */
.map-card{
  margin-top:24px;border-radius:14px;overflow:hidden;
  border:1px solid var(--border);background:#fff;
  box-shadow:0 8px 24px rgba(15,30,20,.06);
}
.map-card iframe{
  display:block;width:100%;height:240px;border:none;
  filter:saturate(.85) contrast(.95);
}
.map-link{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:14px;background:var(--green);color:#fff;
  font-size:13px;font-weight:500;letter-spacing:.5px;
  transition:background .2s;
}
.map-link:hover{background:var(--green-hover)}
.map-link i{font-size:14px}

/* ─── Calendario ───────────────────────────── */
.cal{
  max-width:980px;margin:0 auto;
  background:#fff;border:1px solid var(--border);
  padding:40px 48px 36px;
}
.cal-controls{
  display:flex;align-items:center;justify-content:center;gap:32px;
  margin-bottom:18px;
}
.cal-nav{
  width:40px;height:40px;border-radius:50%;
  background:var(--green-soft);color:var(--green);
  border:none;cursor:pointer;font-size:13px;
  transition:background .2s,transform .2s;
}
.cal-nav:hover{background:var(--green);color:#fff;transform:scale(1.05)}
.cal-current{
  font-family:'Playfair Display',serif;font-size:22px;font-weight:500;
  color:var(--black);letter-spacing:.3px;min-width:280px;text-align:center;
}
.cal-legend{
  display:flex;justify-content:center;gap:28px;flex-wrap:wrap;
  margin-bottom:36px;padding-bottom:24px;border-bottom:1px solid var(--border);
  font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;
}
.cal-legend span{display:flex;align-items:center;gap:8px}
.cal-legend .dot{
  width:10px;height:10px;border-radius:50%;display:inline-block;
}
.dot-free{background:var(--green)}
.dot-some{background:#d4a85e}
.dot-busy{background:#c45a4d;opacity:.5}

.cal-months{
  display:grid;grid-template-columns:1fr 1fr;gap:48px;
}
.cal-month-title{
  font-family:'Playfair Display',serif;font-size:20px;font-weight:500;
  text-align:center;margin-bottom:14px;color:var(--black);
}
.cal-month-title span{color:var(--muted);font-style:italic;font-weight:400;font-size:16px;margin-left:4px}
.cal-dow{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;
  font-size:11px;text-transform:uppercase;letter-spacing:1px;
  color:var(--muted);text-align:center;margin-bottom:8px;padding-bottom:8px;
  border-bottom:1px solid var(--border);
}
.cal-days{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;
}
.cal-day{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:500;
  background:transparent;border:none;cursor:pointer;
  color:var(--black);border-radius:4px;
  position:relative;
  transition:background .2s,color .2s,transform .15s;
}
.cal-empty{cursor:default}
.cal-past{color:#ccc;cursor:not-allowed;opacity:.5}
.cal-free{
  background:var(--green-soft);color:var(--green);font-weight:600;
}
.cal-free:hover{background:var(--green);color:#fff;transform:scale(1.05)}
.cal-some{
  background:rgba(212,168,94,.18);color:#a07520;font-weight:600;
}
.cal-some:hover{background:#d4a85e;color:#fff;transform:scale(1.05)}
.cal-busy{
  color:#c45a4d;opacity:.45;cursor:not-allowed;
  text-decoration:line-through;
}
.cal-note{
  text-align:center;color:var(--muted);font-size:13px;font-style:italic;
  margin-top:32px;padding-top:24px;border-top:1px solid var(--border);
}

@media (max-width:768px){
  .cal{padding:28px 18px 24px}
  .cal-months{grid-template-columns:1fr;gap:32px}
  .cal-current{font-size:18px;min-width:200px}
  .cal-controls{gap:16px;margin-bottom:14px}
  .cal-legend{gap:16px;font-size:11px;margin-bottom:24px}
  .cal-day{font-size:13px}
}

/* ============================================
   FIXES AUDITORÍA 11 may 2026
   Skip link + a11y + honeypot + consent + cookie banner v2 + calendar disclaimer + arrepentimiento + reduced motion
   ============================================ */

/* Skip link (WCAG 2.4.1) */
.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  background: #1C3A2A;
  color: #fff;
  padding: 10px 18px;
  z-index: 9999;
  text-decoration: none;
  font-weight: 600;
  border-bottom-right-radius: 8px;
  transition: top .2s;
}
.skip-link:focus {
  top: 0;
  outline: 3px solid #fafaf7;
}

/* Honeypot: invisible para humanos, presente para bots */
.hp-wrap {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* Consent checkbox */
.form-consent {
  margin: 12px 0 16px;
  padding: 12px 14px;
  background: #f8f7f3;
  border-radius: 8px;
  border-left: 3px solid #1C3A2A;
}
.consent-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 13px;
  line-height: 1.5;
}
.consent-row input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 3px;
  width: 18px;
  height: 18px;
  accent-color: #1C3A2A;
  cursor: pointer;
}
.consent-row small {
  display: block;
  color: #666;
  font-size: 11px;
  margin-top: 6px;
}
.consent-row a {
  color: #1C3A2A;
  font-weight: 600;
  text-decoration: underline;
}

/* Cookie banner mejorado */
.bq-cookies {
  position: fixed;
  bottom: 20px;
  left: 20px;
  right: 20px;
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0,0,0,.15);
  padding: 18px 22px;
  z-index: 9998;
  transform: translateY(150%);
  transition: transform .35s ease;
}
.bq-cookies.show { transform: translateY(0); }
.bq-cookies-inner {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.bq-cookies-text { flex: 1 1 280px; }
.bq-cookies-text strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
}
.bq-cookies-text p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: #555;
}
.bq-cookies-text a { color: #1C3A2A; text-decoration: underline; }
.bq-cookies-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.bq-cookies-actions .btn {
  padding: 8px 18px;
  font-size: 13px;
}
@media (max-width: 600px) {
  .bq-cookies { bottom: 12px; left: 12px; right: 12px; padding: 14px; }
  .bq-cookies-actions { width: 100%; }
  .bq-cookies-actions .btn { flex: 1; }
}

/* Disclaimer reforzado del calendario */
.cal-disclaimer-strong {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #fff8e6;
  border-left: 4px solid #d4a017;
  border-radius: 8px;
  padding: 14px 18px;
  max-width: 900px;
  margin: 0 auto 24px;
}
.cal-disclaimer-strong i {
  color: #d4a017;
  font-size: 20px;
  flex-shrink: 0;
  margin-top: 2px;
}
.cal-disclaimer-strong p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #6e5500;
}
.cal-disclaimer-strong strong { color: #4a3600; }

/* Página arrepentimiento */
.arrep-info-box {
  background: #f8f7f3;
  border-left: 4px solid #1C3A2A;
  padding: 18px 22px;
  border-radius: 8px;
  margin: 24px 0;
}
.arrep-info-box p:last-child { margin-bottom: 0; }
.arrep-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
  margin: 24px 0;
}
.arrep-option {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 20px;
}
.arrep-option h3 {
  font-size: 17px;
  margin: 0 0 10px;
  color: #1C3A2A;
}
.arrep-option h3 i { margin-right: 8px; }
.arrep-option .btn { width: 100%; margin-top: 10px; }
.legal-back {
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid #e5e5e5;
}
.legal-back a {
  color: #1C3A2A;
  font-weight: 600;
  text-decoration: none;
}

/* Footer legal strip */
.footer-legal-strip {
  background: rgba(0,0,0,.2);
  padding: 12px 28px;
  text-align: center;
  border-top: 1px solid rgba(255,255,255,.06);
}
.footer-legal-strip small {
  color: rgba(255,255,255,.6);
  font-size: 11px;
  line-height: 1.5;
}
.footer-arrepentimiento {
  font-weight: 600;
}

/* Past day calendar feedback */
.cal-day[disabled].cal-past,
.cal-day.cal-past {
  opacity: 0.3;
  cursor: not-allowed;
  text-decoration: line-through;
}

/* Focus visible mejorado (WCAG 2.4.7) */
*:focus-visible {
  outline: 3px solid #1C3A2A;
  outline-offset: 2px;
  border-radius: 4px;
}
.btn:focus-visible,
.nav-cta:focus-visible {
  outline-color: #fafaf7;
  outline-offset: 3px;
}

/* prefers-reduced-motion (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .parallax-bg {
    transform: none !important;
  }
  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
  .hero-slide {
    transition: none !important;
  }
}

/* ============================================
   REUNIÓN DUEÑOS 11 may — Inclusiones reales + Extras
   ============================================ */

.includes-cat {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  color: #1C3A2A;
  margin: 40px 0 20px;
  text-align: center;
  letter-spacing: -0.01em;
}
.includes-cat-sub {
  text-align: center;
  color: #666;
  font-size: 14px;
  margin: -10px 0 24px;
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
}

.includes-2 {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* Extras opcionales */
.extras-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
  margin-top: 32px;
}
.extra-card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 24px 22px;
  text-align: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.extra-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(28, 58, 42, 0.1);
  border-color: #1C3A2A;
}
.extra-card i {
  font-size: 30px;
  color: #1C3A2A;
  margin-bottom: 14px;
  display: block;
}
.extra-card h4 {
  margin: 0 0 8px;
  color: #1C3A2A;
  font-size: 17px;
}
.extra-card p {
  color: #666;
  font-size: 13.5px;
  line-height: 1.5;
  margin: 0;
}
.extra-card-cta {
  background: linear-gradient(135deg, #1C3A2A 0%, #2D5A3F 100%);
  border-color: #1C3A2A;
}
.extra-card-cta i,
.extra-card-cta h4 {
  color: #fff;
}
.extra-card-cta p {
  color: rgba(255,255,255,.85);
}
.extra-link {
  display: inline-block;
  margin-top: 12px;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 2px solid rgba(255,255,255,.4);
  padding-bottom: 2px;
  font-size: 13.5px;
  transition: border-color 0.2s;
}
.extra-link:hover {
  border-bottom-color: #fff;
}
