:root{
  --ink:#0b1220;
  --muted:#5a6475;
  --bg:#ffffff;
  --alt:#f4f6f9;

  --brand:#104070;
  --brand-2:#0c2f55;
  --accent:#b11d2a;

  --border:rgba(16,64,112,.18);
  --radius:18px;
  --shadow:0 16px 40px rgba(0,0,0,.10);

  --nature-opacity:.07;
  --nature-strong:.095;

  --header-h: 92px;
  --footer-h: 54px;

  --wa-green:#25D366;
  --wa-green-soft:rgba(37,211,102,.16);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.5;
  overflow-x:hidden;
}

/* Desktop: sin scroll total */
@media (min-width: 961px){
  body{ overflow:hidden; }
}

/* Luz suave */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity: var(--scene-light-opacity, .06);
  background-image:
    radial-gradient(circle at var(--scene-g1-x, 20%) var(--scene-g1-y, 10%), rgba(16,64,112,var(--scene-g1-a, .28)), transparent 55%),
    radial-gradient(circle at var(--scene-g2-x, 85%) var(--scene-g2-y, 25%), rgba(177,29,42,var(--scene-g2-a, .18)), transparent 60%),
    radial-gradient(circle at var(--scene-g3-x, 30%) var(--scene-g3-y, 90%), rgba(16,64,112,var(--scene-g3-a, .20)), transparent 55%);
  z-index:-6;
}
/* Hojas watermark azul/gris */
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-4;
  opacity: var(--nature-opacity);
  background-repeat: repeat;
  background-size: 560px 560px;
  mix-blend-mode: multiply;
  filter: saturate(.55) contrast(1.02);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='560' viewBox='0 0 560 560'%3E%3Cdefs%3E%3Cg id='leaf'%3E%3Cpath d='M30 60c34-46 82-62 140-42-8 58-44 108-118 152-36-26-48-58-22-110z' fill='%23104070' fill-opacity='.12'/%3E%3Cpath d='M30 60c34-46 82-62 140-42-8 58-44 108-118 152-36-26-48-58-22-110z' fill='none' stroke='%230b1220' stroke-opacity='.15' stroke-width='3'/%3E%3Cpath d='M50 82c30 10 64 2 106-28' fill='none' stroke='%23104070' stroke-opacity='.10' stroke-width='3'/%3E%3C/g%3E%3C/defs%3E%3Cg%3E%3Cg transform='translate(40 40) rotate(-12) scale(.88)'%3E%3Cuse href='%23leaf'/%3E%3C/g%3E%3Cg transform='translate(260 70) rotate(18) scale(.70)'%3E%3Cuse href='%23leaf'/%3E%3C/g%3E%3Cg transform='translate(380 120) rotate(34) scale(.78)'%3E%3Cuse href='%23leaf'/%3E%3C/g%3E%3Cg transform='translate(120 260) rotate(10) scale(.80)'%3E%3Cuse href='%23leaf'/%3E%3C/g%3E%3Cg transform='translate(320 290) rotate(-22) scale(.92)'%3E%3Cuse href='%23leaf'/%3E%3C/g%3E%3Cg transform='translate(70 390) rotate(26) scale(.74)'%3E%3Cuse href='%23leaf'/%3E%3C/g%3E%3Cg transform='translate(360 410) rotate(10) scale(.82)'%3E%3Cuse href='%23leaf'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Canopia + bokeh */
.nature-corners{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-3;
  overflow:hidden;
  opacity: var(--nature-strong);
  background:
    radial-gradient(circle at 10% 10%, rgba(16,64,112,.09), transparent 60%),
    radial-gradient(circle at 90% 90%, rgba(11,18,32,.05), transparent 60%),
    radial-gradient(circle at 60% 35%, rgba(16,64,112,.05), transparent 55%);
}
.nature-corners .bokeh{
  position:absolute;
  inset:-10%;
  background:
    radial-gradient(circle at 20% 30%, rgba(16,64,112,.08), transparent 18%),
    radial-gradient(circle at 70% 20%, rgba(11,18,32,.06), transparent 16%),
    radial-gradient(circle at 30% 80%, rgba(16,64,112,.07), transparent 18%),
    radial-gradient(circle at 85% 70%, rgba(11,18,32,.05), transparent 14%);
  filter: blur(12px);
  opacity:.55;
  animation: bokehDrift var(--bokeh-dur, 18s) ease-in-out infinite;
}
@keyframes bokehDrift{
  0%{ transform: translate3d(0,0,0) scale(1); }
  50%{ transform: translate3d(var(--bokeh-shift-x, 14px), var(--bokeh-shift-y, -10px), 0) scale(1.02); }
  100%{ transform: translate3d(0,0,0) scale(1); }
}

/* Panal */
.honey-bg{position:fixed; inset:0; pointer-events:none; z-index:-2; overflow:hidden;}
.honey-cluster{
  position:absolute; width:360px; height:260px;
  filter: blur(.15px);
  opacity:0;
  animation: honeyFade 16s ease-in-out infinite, honeyDrift 22s ease-in-out infinite;
  transform: translate3d(0,0,0);
}
.hc-1{ top: 80px; left: -60px; animation-delay: 0s, 0s; }
.hc-2{ top: 420px; right: -90px; width: 320px; height: 240px; animation-delay: 3.5s, 1.5s; }
.hc-3{ bottom: 80px; left: 10%; width: 300px; height: 220px; animation-delay: 7s, 3s; }

@keyframes honeyDrift{
  0%{ transform: translate(0px, 0px) scale(1); }
  50%{ transform: translate(14px, -10px) scale(1.03); }
  100%{ transform: translate(0px, 0px) scale(1); }
}
@keyframes honeyFade{
  0%{ opacity: 0; }
  18%{ opacity: var(--honey-scene-opacity, .30); }
  50%{ opacity: .16; }
  82%{ opacity: var(--honey-scene-opacity, .30); }
  100%{ opacity: 0; }
}
.hex{
  position:absolute;
  width:56px; height:64px;
  clip-path: polygon(25% 6.7%, 75% 6.7%, 100% 50%, 75% 93.3%, 25% 93.3%, 0% 50%);
  background: linear-gradient(180deg, rgba(16,64,112,.22), rgba(16,64,112,.08));
  border: 1px solid rgba(16,64,112,.32);
  box-shadow: 0 14px 30px rgba(0,0,0,.07), inset 0 1px 0 rgba(255,255,255,.38);
  opacity:.95;
}
.honey-cluster .hx-1{ left:0; top:74px; transform: scale(.96); opacity:.82; }
.honey-cluster .hx-2{ left:48px; top:38px; transform: scale(1.02); opacity:.92; }
.honey-cluster .hx-3{ left:96px; top:74px; transform: scale(1.06); opacity:.98; }
.honey-cluster .hx-4{ left:48px; top:110px; transform: scale(.94); opacity:.78; }
.honey-cluster .hx-5{ left:144px; top:38px; transform: scale(.94); opacity:.76; }
.honey-cluster .hx-6{ left:192px; top:74px; transform: scale(1.06); opacity:.98; }
.honey-cluster .hx-7{ left:144px; top:110px; transform: scale(1.02); opacity:.86; }
.honey-cluster .hx-8{ left:240px; top:38px; transform: scale(.92); opacity:.72; }
.honey-cluster .hx-9{ left:288px; top:74px; transform: scale(.98); opacity:.82; }
.honey-cluster .hx-10{ left:240px; top:110px; transform: scale(1.04); opacity:.90; }
.honey-cluster .hx-11{ left:336px; top:38px; transform: scale(.86); opacity:.62; }
.honey-cluster .hx-12{ left:384px; top:74px; transform: scale(.90); opacity:.66; }
.honey-cluster .hx-3,
.honey-cluster .hx-9{
  background: linear-gradient(180deg, rgba(177,29,42,.13), rgba(16,64,112,.06));
  border-color: rgba(177,29,42,.26);
}

/* Base */
.container{width:min(1120px, 92%); margin:0 auto}
h1{font-size:clamp(28px, 3.7vw, 46px); line-height:1.08; margin:8px 0 10px}
h2{font-size:clamp(22px, 2.1vw, 30px); margin:0 0 8px}
h3{margin:0 0 6px}
.muted{color:var(--muted)}
.lead{font-size:clamp(15px, 1.5vw, 18px); color:var(--muted); max-width:70ch}
.eyebrow{letter-spacing:.12em; text-transform:uppercase; font-size:12px; color:var(--muted); margin:0 0 10px}

.header{
  position:fixed; top:0; left:0; right:0;
  z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  border-bottom:2px solid rgba(16,64,112,.20);
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  padding:14px 0;
}
.header__right{display:flex; align-items:center; gap:12px;}

.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit}
.brand__logo{height:60px; width:auto}
.brand__text{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-weight:900; font-size:18px; letter-spacing:.2px}
.brand__tagline{
  font-size:10px; font-weight:800; letter-spacing:.6px;
  color:var(--brand);
  text-transform:uppercase;
  margin-top:2px;
}

/* Nav */
.nav{display:flex; gap:18px; align-items:center}
.nav a{color:var(--ink); text-decoration:none; font-weight:900; opacity:.92}
.nav a:hover{opacity:1}
.nav a[aria-current="page"]{ color:var(--brand); opacity:1; }
.nav__sep{width:1px; height:22px; background:var(--border); display:inline-block}
.lang{font-weight:900; color:var(--brand); border:1px solid var(--border); padding:6px 10px; border-radius:999px;}
.nav__toggle{
  display:none;
  border:1px solid var(--border);
  background:#fff;
  border-radius:12px;
  padding:10px 12px;
  font-weight:900;
}

/* Buttons */
.btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--border);
  text-decoration:none;
  font-weight:900;
  gap:8px;
  white-space:nowrap;
  overflow:hidden;
  transition: transform .12s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn::after{
  content:"";
  position:absolute;
  inset:-60% -40%;
  background:linear-gradient(120deg, transparent 35%, rgba(255,255,255,.45) 50%, transparent 65%);
  transform: translateX(-40%);
  opacity:0;
  pointer-events:none;
}
.btn:hover::after{ opacity:.8; animation: btnshine .9s ease; }
@keyframes btnshine{ from{ transform: translateX(-45%);} to{ transform: translateX(45%);} }

.btn--primary{
  background:linear-gradient(180deg, var(--brand), var(--brand-2));
  color:#fff;
  border-color:transparent;
  box-shadow: 0 12px 28px rgba(16,64,112,.18);
}
.btn--primary:hover{ transform: translateY(-1px); box-shadow: 0 18px 40px rgba(16,64,112,.24); filter:saturate(1.05); }
.btn--ghost{
  background:rgba(255,255,255,.72);
  color:var(--brand);
  border-color:rgba(16,64,112,.22);
  backdrop-filter: blur(6px);
}
.btn--ghost:hover{ transform: translateY(-1px); box-shadow: 0 14px 30px rgba(0,0,0,.08); border-color: rgba(16,64,112,.28); }
.btn:active{ transform: translateY(1px) scale(.99); }
.nav .nav__cta{ opacity:1 !important; color:#fff !important; border-color:transparent !important; }

/* ===== DECK (WOW) ===== */
.app-shell{
  padding-top: var(--header-h, 92px);
  min-height: 100dvh;
}

.deck{
  position:relative;
  height: calc(100dvh - var(--header-h, 92px) - var(--footer-h, 64px));
perspective: 1200px;
  transform-style: preserve-3d;
}
.slide{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transform-style: preserve-3d;

  /* NO SCROLL interno */
  overflow:hidden;
}
.slide__inner{
  height:100%;
  display:flex;
  align-items:center;
  padding: 16px 0;
}

/* estados para animación */
.slide.is-active{
  opacity:1;
  pointer-events:auto;
  transform: translate3d(0,0,0) rotateY(0deg) scale(1);
  filter: none;
}
.slide.is-prev{
  opacity:0;
  transform: translate3d(-9%,0,-120px) rotateY(18deg) scale(.96);
  filter: blur(6px);
}
.slide.is-next{
  opacity:0;
  transform: translate3d(9%,0,-120px) rotateY(-18deg) scale(.96);
  filter: blur(6px);
}

.slide.anim-in-right{ animation: inRight .62s cubic-bezier(.2,.8,.2,1) both; }
.slide.anim-in-left{ animation: inLeft .62s cubic-bezier(.2,.8,.2,1) both; }
.slide.anim-out-left{ animation: outLeft .62s cubic-bezier(.2,.8,.2,1) both; }
.slide.anim-out-right{ animation: outRight .62s cubic-bezier(.2,.8,.2,1) both; }

@keyframes inRight{
  from{ opacity:0; transform: translate3d(10%,0,-140px) rotateY(-20deg) scale(.95); filter: blur(8px); }
  to{ opacity:1; transform: translate3d(0,0,0) rotateY(0deg) scale(1); filter: blur(0); }
}
@keyframes inLeft{
  from{ opacity:0; transform: translate3d(-10%,0,-140px) rotateY(20deg) scale(.95); filter: blur(8px); }
  to{ opacity:1; transform: translate3d(0,0,0) rotateY(0deg) scale(1); filter: blur(0); }
}
@keyframes outLeft{
  from{ opacity:1; transform: translate3d(0,0,0) rotateY(0deg) scale(1); filter: blur(0); }
  to{ opacity:0; transform: translate3d(-10%,0,-140px) rotateY(20deg) scale(.95); filter: blur(8px); }
}
@keyframes outRight{
  from{ opacity:1; transform: translate3d(0,0,0) rotateY(0deg) scale(1); filter: blur(0); }
  to{ opacity:0; transform: translate3d(10%,0,-140px) rotateY(-20deg) scale(.95); filter: blur(8px); }
}

/* Dots */
.deck-dots{
  position:absolute;
  left:50%;
  bottom: 10px;
  transform: translateX(-50%);
  display:flex;
  gap:8px;
  opacity:.75;
}
.dot{
  width:7px; height:7px; border-radius:999px;
  background: rgba(16,64,112,.22);
}
.dot.is-on{ background: rgba(16,64,112,.55); box-shadow: 0 0 0 5px rgba(16,64,112,.10); }

/* Hero */
.hero__grid{display:grid; grid-template-columns: 1.12fr .88fr; gap:24px; align-items:center;}
.hero__actions{display:flex; gap:12px; flex-wrap:wrap; margin:14px 0}
.hero__highlights{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px}
.pill{border:1px solid rgba(16,64,112,.18); border-radius:999px; padding:6px 10px; font-weight:900; color:var(--brand); background:rgba(255,255,255,.82); backdrop-filter: blur(6px);}
.slide-hint{display:flex; align-items:center; gap:10px; margin-top:14px; color:var(--muted); font-weight:800; font-size:12px;}
.hint-dot{ width:10px; height:10px; border-radius:999px; background:rgba(16,64,112,.25); box-shadow: 0 0 0 6px rgba(16,64,112,.08); }

/* Hero art */
.hero__art{
  --rx: 0deg;
  --ry: 0deg;
  position:relative;
  display:grid;
  grid-template-rows: 1fr auto;
  gap:8px;
  background:linear-gradient(180deg, rgba(16,64,112,.10), rgba(16,64,112,.02));
  border:1px solid rgba(16,64,112,.18);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
  overflow:hidden;
  max-width: 440px;
  justify-self:end;
  perspective: 1000px;
  transform-style: preserve-3d;
}
.hero__media{
  display:flex; align-items:center; justify-content:center;
  min-height:252px;
  transform: rotateX(var(--rx)) rotateY(var(--ry));
  transform-style: preserve-3d;
  transition: transform .08s linear;
}
.hero__ribbonWrap{
  position:absolute; top:12px; right:16px;
  width:64px; height:86px; z-index:6;
  transform: translateZ(70px);
  pointer-events:none;
}
.hero__ribbonWrap::after{
  content:"";
  position:absolute; left:10px; top:14px;
  width:40px; height:70px;
  border-radius:16px;
  background: rgba(0,0,0,.18);
  filter: blur(14px);
  transform: translate(10px, 16px);
  opacity:.55;
}
.hero__ribbon{position:relative; width:58px; height:auto; display:block; margin:0 auto; filter: drop-shadow(0 16px 18px rgba(0,0,0,.20));}
.hero__bee{
  width:140%;
  max-width:760px;
  height:auto;
  display:block;
  transform: translateY(6px) translateZ(105px) scale(1.06);
  filter: drop-shadow(0 28px 70px rgba(0,0,0,.22));
}
.hero__badge{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(16,64,112,.18);
  border-radius:14px;
  padding:10px 12px;
  backdrop-filter: blur(6px);
  transform: translateZ(40px);
}
.badge__title{font-weight:900; font-size:14px}
.badge__text{color:var(--muted); font-weight:600; font-size:12px; line-height:1.35; margin-top:6px;}
.badge__social{display:flex; gap:10px; align-items:center; justify-content:center; margin-top:10px;}
.social__link{
  cursor:pointer;
  width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(16,64,112,.18); border-radius:999px;
  background:rgba(255,255,255,.85); backdrop-filter: blur(6px);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.social__link:hover{transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,0,0,.10); border-color: rgba(16,64,112,.28);}
.social__link svg{width:18px; height:18px; fill: var(--brand);}

/* Layout helpers (compact) */
.slide-head{ margin-bottom:10px; }
.grid-2{ display:grid; grid-template-columns: 1fr 1fr; gap:14px; }
.split{display:grid; grid-template-columns: 1.1fr .9fr; gap:16px; align-items:center}
.split--tight{ gap:14px; }

.panel{
  border:1px solid rgba(16,64,112,.18);
  border-radius:var(--radius);
  padding:16px;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
  box-shadow:var(--shadow);
}
.panel--tight{ padding:14px; }
.panel:hover{ box-shadow: 0 22px 55px rgba(0,0,0,.12); }

.cards{display:grid; grid-template-columns: repeat(3, 1fr); gap:12px; margin-top:12px}
.cards--2{grid-template-columns: repeat(2, 1fr)}
.cards--tight{ margin-top:10px; gap:12px; }
.card{
  border:1px solid rgba(16,64,112,.18);
  border-radius:var(--radius);
  padding:14px;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
}
.card--flat{ box-shadow: none; }
.card p{ margin:0; color:var(--muted); font-weight:600; }

.bullets{
  margin: 8px 0 0;
  padding-left: 18px;
  color: var(--muted);
}
.bullets li{ margin: 8px 0; }
.bullets strong{ color: var(--ink); }

.mini-cta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.mini-note{ margin-top:12px; padding-top:10px; border-top:1px solid rgba(16,64,112,.12); }
.mini-note__k{ font-weight:900; color:var(--brand); font-size:12px; letter-spacing:.06em; text-transform:uppercase; display:block; }
.mini-note__v{ color:var(--muted); font-weight:700; display:block; margin-top:4px; }

.stats-row{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
  margin-top:12px;
}
.stat{
  border:1px solid rgba(16,64,112,.14);
  border-radius:14px;
  padding:10px 12px;
  background:rgba(255,255,255,.86);
  backdrop-filter: blur(6px);
}
.stat__k{ display:block; font-weight:900; color:var(--brand); font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.stat__v{ display:block; margin-top:4px; font-weight:800; }

.row-between{ display:flex; align-items:center; justify-content:space-between; gap:12px; }

/* Contact strip + form tight */
.contact-strip{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
  margin:12px 0 10px;
}
.contact-item{
  border:1px solid rgba(16,64,112,.18);
  border-radius:14px;
  padding:10px 12px;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
}
.contact-k{
  display:block;
  font-weight:900;
  color:var(--brand);
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.contact-v{display:block; margin-top:4px; color:var(--ink); font-weight:800}
.contact-link{color:var(--brand); text-decoration:none}
.contact-link:hover{text-decoration:underline}

.form{ margin-top:6px; }
.form--tight{ margin-top:6px; }
.form__grid{display:grid; grid-template-columns: 1fr 1fr; gap:12px}
.form__grid--tight{ gap:10px; }
label{display:grid; gap:6px; font-weight:900}
label.full{ grid-column:1 / -1; }
input, textarea{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(16,64,112,.18);
  font:inherit;
  background:rgba(255,255,255,.92);
}
textarea{ resize:none; }
input:focus, textarea:focus{outline:none; border-color: rgba(16,64,112,.45); box-shadow: 0 0 0 4px rgba(16,64,112,.10);}

/* Footer deck */
.footer{
  padding:14px 0;
  border-top:1px solid rgba(16,64,112,.18);
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(6px);
}
.footer__inner{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;}
.footer-link{color:var(--brand); text-decoration:none; font-weight:900}
.footer-link:hover{text-decoration:underline}

.footer--deck{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:40;
  height: var(--footer-h);
  display:flex;
  align-items:center;
}


/* Floating buttons */
.fab{ position:fixed; right:16px; bottom: calc(var(--footer-h) + 14px); display:flex; flex-direction:column; gap:10px; z-index:9999; }
.fab__btn{
  width:54px; height:54px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none;
  border:1px solid rgba(16,64,112,.20);
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  position:relative;
}
.fab__btn:hover{ transform: translateY(-3px); box-shadow: 0 22px 55px rgba(0,0,0,.22); }
.fab__btn svg{ width:28px; height:28px; fill: var(--brand); }

.fab__tooltip{
  position:absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%) translateX(6px);
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(16,64,112,.18);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(8px);
  box-shadow: 0 14px 34px rgba(0,0,0,.14);
  color: var(--brand);
  font-weight: 900;
  font-size: 12px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease;
  user-select: none;
}
.fab__tooltip::after{
  content:"";
  position:absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 7px solid transparent;
  border-left-color: rgba(255,255,255,.96);
  filter: drop-shadow(0 2px 2px rgba(0,0,0,.10));
}
.fab__btn:hover .fab__tooltip,
.fab__btn:focus-visible .fab__tooltip{
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

.fab__btn--whatsapp.fab__btn--pulse::before{
  content:"";
  position:absolute;
  inset:-10px;
  border-radius:999px;
  background: radial-gradient(circle, var(--wa-green-soft), transparent 65%);
  opacity: 0;
  transform: scale(.92);
  animation: waGlow 1.8s ease-in-out infinite;
  filter: blur(2px);
  z-index:0;
}
.fab__btn--whatsapp > svg{ position:relative; z-index:1; }
.fab__btn--pulse{ animation: waBounce 1.8s ease-in-out infinite; }
.fab__btn--pulse::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:999px;
  border:2px solid rgba(16,64,112,.12);
  animation: waRing 1.8s ease-out infinite;
}
@keyframes waBounce{
  0%,100%{ transform: translateY(0) scale(1); }
  35%{ transform: translateY(-3px) scale(1.03); }
  55%{ transform: translateY(0) scale(1); }
}
@keyframes waRing{
  0%{ opacity:.0; transform: scale(.92); }
  20%{ opacity:.55; }
  60%{ opacity:.0; transform: scale(1.18); }
  100%{ opacity:0; transform: scale(1.18); }
}
@keyframes waGlow{
  0%{ opacity:0; transform: scale(.92); }
  25%{ opacity:.55; }
  60%{ opacity:0; transform: scale(1.12); }
  100%{ opacity:0; transform: scale(1.12); }
}

/* ===== Mobile: vuelve a scroll normal ===== */
@media (max-width: 960px){
  body{ overflow:auto; }

  .nav__toggle{display:inline-flex}
  .nav{
    position:absolute;
    top:78px; right:4%;
    background:rgba(255,255,255,.94);
    border:1px solid rgba(16,64,112,.18);
    border-radius:16px;
    padding:12px;
    box-shadow: 0 16px 40px rgba(0,0,0,.16);
    display:none;
    flex-direction:column;
    min-width:240px;
    align-items:stretch;
    gap:12px;
  }
  .nav.is-open{display:flex}
  .nav__sep{display:none}

  .app-shell{ height:auto; padding-top: var(--header-h); }
  .deck{ height:auto; perspective:none; }
  .slide{
    position: static;
    opacity: 1;
    pointer-events:auto;
    transform:none !important;
    filter:none !important;
    overflow: visible;
  }
  .slide__inner{
    height:auto;
    padding: 54px 0;
    align-items:stretch;
  }
  .deck-dots{ display:none; }

  .hero__grid{ grid-template-columns:1fr; }
  .split{ grid-template-columns:1fr; }
  .grid-2{ grid-template-columns:1fr; }
  .cards{ grid-template-columns:1fr; }
  .cards--2{ grid-template-columns:1fr; }
  .form__grid{ grid-template-columns:1fr; }
  .contact-strip{ grid-template-columns:1fr; }
  
.footer--deck{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

  .fab{ bottom:16px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .honey-cluster{ animation:none; opacity:.16; }
  .bokeh{ animation:none; }
  .fab__btn--pulse{ animation:none; }
  .fab__btn--pulse::after{ animation:none; }
  .fab__btn--whatsapp.fab__btn--pulse::before{ animation:none; opacity:.08; transform:none; }
  .slide.anim-in-right,
  .slide.anim-in-left,
  .slide.anim-out-left,
  .slide.anim-out-right{ animation:none; }
}

/* ===== CINEMATIC TRANSITION ===== */
.deck{
  isolation:isolate; /* overlays don't blend outside */
}

/* Light sweep overlay */
.deck::after{
  content:"";
  position:absolute;
  inset:-12%;
  pointer-events:none;
  opacity:0;
  z-index:12;
  background:
    linear-gradient(110deg,
      transparent 35%,
      rgba(255,255,255,.65) 48%,
      rgba(255,255,255,.18) 55%,
      transparent 70%);
  transform: translateX(-24%) rotate(6deg);
  filter: blur(2px);
  mix-blend-mode: soft-light;
}

/* Depth vignette */
.deck::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  z-index:11;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.0) 35%, rgba(0,0,0,.16) 78%, rgba(0,0,0,.22) 100%);
  transition: opacity .18s ease;
}

/* Activated by JS while animating */
.deck.is-cinematic::after{
  opacity:1;
  animation: sweep 620ms cubic-bezier(.2,.8,.2,1) both;
}
.deck.is-cinematic::before{
  opacity:1;
}

/* Controlled camera shake */
.app-shell.is-cinematic{
  animation: camShake 420ms cubic-bezier(.2,.8,.2,1) both;
  transform-origin: 50% 50%;
}

@keyframes sweep{
  from{ transform: translateX(-30%) rotate(6deg); opacity:0; }
  15%{ opacity:.85; }
  60%{ opacity:.35; }
  to{ transform: translateX(26%) rotate(6deg); opacity:0; }
}
@keyframes camShake{
  0%{ transform: translate3d(0,0,0); }
  18%{ transform: translate3d(-1px,.5px,0); }
  35%{ transform: translate3d(1.2px,-.6px,0); }
  55%{ transform: translate3d(-.8px,.4px,0); }
  75%{ transform: translate3d(.6px,-.2px,0); }
  100%{ transform: translate3d(0,0,0); }
}

/* Slight depth emphasis */
.deck.is-cinematic .slide.is-active .slide__inner{
  filter: saturate(1.02) contrast(1.02);
}

/* ===== SIDE NAV (timeline) ===== */
.side-nav{
  position:fixed;
  left:16px;
  top:50%;
  transform: translateY(-50%);
display:flex;
  flex-direction:column;
  gap:12px;
  z-index:20;
  padding:10px 10px;
  border-radius:18px;
  border:1px solid rgba(16,64,112,.16);
  background: rgba(255,255,255,.62);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 45px rgba(0,0,0,.10);
}
.side-nav::before{
  content:"";
  position:absolute;
  left: 18px;
  top: 14px;
  bottom: 14px;
  width: 2px;
  border-radius:2px;
  background: linear-gradient(180deg, rgba(16,64,112,.08), rgba(16,64,112,.24), rgba(16,64,112,.08));
  opacity:.9;
}
.side-nav__item{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  padding: 8px 10px 8px 28px;
  border:0;
  background:transparent;
  cursor:pointer;
  text-align:left;
  border-radius:14px;
  font-weight:900;
  color: rgba(11,18,32,.80);
  transition: transform .12s ease, background-color .15s ease, box-shadow .15s ease;
}
.side-nav__item:hover{
  transform: translateX(1px);
  background: rgba(255,255,255,.70);
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.side-nav__dot{
  position:absolute;
  left: 12px;
  width: 10px;
  height: 10px;
  border-radius:999px;
  background: rgba(16,64,112,.25);
  box-shadow: 0 0 0 6px rgba(16,64,112,.07);
}
.side-nav__label{
  font-size: 12px;
  letter-spacing:.02em;
  white-space:nowrap;
}
.side-nav__item[aria-current="page"]{
  color: var(--brand);
  background: rgba(255,255,255,.78);
}
.side-nav__item[aria-current="page"] .side-nav__dot{
  background: rgba(16,64,112,.60);
  box-shadow: 0 0 0 6px rgba(16,64,112,.12), 0 0 0 1px rgba(16,64,112,.22) inset;
}

@media (max-width: 960px){
  .side-nav{ display:none; }
}

@media (prefers-reduced-motion: reduce){
  .deck.is-cinematic::after{ animation:none; opacity:0; }
  .app-shell.is-cinematic{ animation:none; }
}


/* ===== PARALLAX DEPTH LAYERS ===== */
.nature-corners,
.honey-bg{
  will-change: transform;
  transition: transform 620ms cubic-bezier(.2,.8,.2,1);
  transform: translate3d(var(--px,0px), var(--py,0px), 0) scale(1.02);
}
/* Separate depth: honey moves a bit more than nature */
.honey-bg{
  transform: translate3d(calc(var(--px,0px) * 1.35), calc(var(--py,0px) * 1.35), 0) scale(1.03);
  transition-duration: 680ms;
}

/* Reduced motion: keep static */
@media (prefers-reduced-motion: reduce){
  .nature-corners,
  .honey-bg{
    transition:none;
    transform:none !important;
  }
}


/* ===== SCENE PRESETS ===== */
:root{
  --scene-light-opacity: .06;
  --scene-g1-x: 20%; --scene-g1-y: 10%; --scene-g1-a: .28;
  --scene-g2-x: 85%; --scene-g2-y: 25%; --scene-g2-a: .18;
  --scene-g3-x: 30%; --scene-g3-y: 90%; --scene-g3-a: .20;
  --bokeh-dur: 18s;
  --bokeh-shift-x: 14px;
  --bokeh-shift-y: -10px;
  --honey-scene-opacity: .30;
}
:root[data-scene="inicio"]{
  --scene-light-opacity: .075;
  --scene-g1-x: 18%; --scene-g1-y: 12%; --scene-g1-a: .34;
  --scene-g2-x: 84%; --scene-g2-y: 22%; --scene-g2-a: .22;
  --scene-g3-x: 28%; --scene-g3-y: 88%; --scene-g3-a: .22;
  --bokeh-dur: 17s;
  --honey-scene-opacity: .34;
}
:root[data-scene="servicios"]{
  --scene-light-opacity: .062;
  --scene-g1-x: 22%; --scene-g1-y: 8%;  --scene-g1-a: .26;
  --scene-g2-x: 86%; --scene-g2-y: 28%; --scene-g2-a: .16;
  --scene-g3-x: 36%; --scene-g3-y: 92%; --scene-g3-a: .18;
  --bokeh-dur: 19s;
  --honey-scene-opacity: .28;
}
:root[data-scene="lineas"]{
  --scene-light-opacity: .058;
  --scene-g1-x: 16%; --scene-g1-y: 18%; --scene-g1-a: .24;
  --scene-g2-x: 88%; --scene-g2-y: 20%; --scene-g2-a: .14;
  --scene-g3-x: 26%; --scene-g3-y: 92%; --scene-g3-a: .20;
  --bokeh-dur: 20s;
  --bokeh-shift-x: 12px;
  --honey-scene-opacity: .26;
}
:root[data-scene="cobertura"]{
  --scene-light-opacity: .066;
  --scene-g1-x: 24%; --scene-g1-y: 12%; --scene-g1-a: .24;
  --scene-g2-x: 82%; --scene-g2-y: 30%; --scene-g2-a: .20;
  --scene-g3-x: 34%; --scene-g3-y: 86%; --scene-g3-a: .18;
  --bokeh-dur: 18s;
  --bokeh-shift-y: -8px;
  --honey-scene-opacity: .32;
}
:root[data-scene="contacto"]{
  --scene-light-opacity: .052;
  --scene-g1-x: 20%; --scene-g1-y: 10%; --scene-g1-a: .20;
  --scene-g2-x: 90%; --scene-g2-y: 22%; --scene-g2-a: .14;
  --scene-g3-x: 30%; --scene-g3-y: 94%; --scene-g3-a: .16;
  --bokeh-dur: 21s;
  --honey-scene-opacity: .22;
}


/* ===== SNAP ZOOM (micro) ===== */
@media (min-width: 961px){
  .slide.is-active .slide__inner{
    animation: snapZoom 420ms cubic-bezier(.2,.9,.2,1) both;
    transform-origin: 50% 50%;
  }
}
@keyframes snapZoom{
  0%{ transform: scale(.988); filter: contrast(1.01); }
  60%{ transform: scale(1.012); }
  100%{ transform: scale(1); filter:none; }
}
@media (prefers-reduced-motion: reduce){
  .slide.is-active .slide__inner{ animation:none !important; }
}


/* ===== FILM GRAIN (subtle) ===== */
.film-grain{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:8; /* above backgrounds, below header/content (header is 50) */
  opacity:.06;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size: 260px 260px;
  animation: grainMove 1.8s steps(6) infinite;
}
@keyframes grainMove{
  0%{ transform: translate3d(0,0,0); }
  20%{ transform: translate3d(-2%, 1%, 0); }
  40%{ transform: translate3d(1%, -2%, 0); }
  60%{ transform: translate3d(2%, 2%, 0); }
  80%{ transform: translate3d(-1%, -1%, 0); }
  100%{ transform: translate3d(0,0,0); }
}
@media (prefers-reduced-motion: reduce){
  .film-grain{ animation:none; opacity:.04; }
}


/* ===== FAB SOCIAL STACK (right, vertical) ===== */
.fab__social{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
  margin-bottom: 10px; /* separation from WhatsApp */
}
.fab__sbtn{
  width:44px;
  height:44px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:1px solid rgba(16,64,112,.18);
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  position:relative;
  cursor:pointer;
}
.fab__sbtn:hover{
  transform: translateY(-3px);
  box-shadow: 0 20px 50px rgba(0,0,0,.20);
}
.fab__sbtn svg{
  width:20px;
  height:20px;
  fill: var(--brand);
}

/* Hide the inline social inside the hero badge on desktop (keep on mobile if you want) */
@media (min-width: 961px){
  .badge__social--inline{ display:none; }
}
@media (max-width: 960px){
  .fab__social{ display:none; } /* on mobile keep it simple */
}


/* ===== HIVOX WATERMARK CLEAN (FINAL) =====
   - Inside hero panel
   - Behind bee
   - Does NOT affect layout
*/

.hero__media{
  position: relative;
}

.hero__media::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;

  background-image: url("/assets/img/hivox-incubator.png");
  background-repeat:no-repeat;
  background-position: 66% 56%;
  background-size: min(640px, 94%);

  /* Futuristic presence */
  opacity: .48;

  /* High-impact futuristic tone */
  filter:
    saturate(1.85)
    contrast(1.22)
    brightness(1.12)
    drop-shadow(0 22px 55px rgba(16,64,112,.45))
    drop-shadow(0 0 22px rgba(16,64,112,.35));

  mix-blend-mode: normal;

  transform: translate3d(
    calc(var(--px,0px) * 0.22),
    calc(var(--py,0px) * 0.22),
    0
  );
}

:root[data-scene="inicio"] .hero__media::before{
  opacity: .55;
}

.hero__bee{
  position: relative;
  z-index: 1;
}

@media (max-width: 1200px){
  .hero__media::before{
    background-size: min(520px, 100%);
    background-position: 70% 60%;
    opacity: .14;
  }
}

@media (max-width: 960px){
  .hero__media::before{
    display:none;
  }
}



/* Fallback if footer insertion wasn't possible */
.vibee-sign--floating{
  position: fixed;
  left: 14px;
  bottom: 14px;
  z-index: 60;
  pointer-events:none;
  opacity:.0;
  display:none;
}

/* Footer alignment helper (non-breaking) */

.footer--deck{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.footer--deck > *{ flex: 0 0 auto; }



/* Make footer content hug the left edge a bit more */
.footer--deck .footer__inner{
  padding-left: 10px;
}


/* ===== VIBEE MARK — footer (left, integrated) ===== */
.footer--deck .footer__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

/* Left cluster: Vibee + copyright */
.footer__left{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

/* Vibee mark: integrated (not a button) */
.vibee-mark{
  height: 28px;
  width: auto;
  opacity: .75;
  filter: grayscale(1) contrast(1.05);
  mix-blend-mode: multiply;
  transform: translateZ(0);
  transition: opacity .18s ease, filter .18s ease, transform .18s ease;
}

@media (hover:hover){
  .vibee-mark:hover{
    opacity: .95;
    filter: grayscale(0) saturate(1.35) contrast(1.06) drop-shadow(0 10px 22px rgba(255,196,46,.18));
    transform: translateY(-1px);
  }
}

/* Push content closer to the extreme left */
.footer--deck .container.footer__inner{
  padding-left: 6px !important;
}

@media (max-width: 960px){
  .vibee-mark{ height: 24px; opacity: .72; }
}


/* ===== WIND FLAG (BANDERÍN) — SAFE (NO LAYOUT SHIFT) =====
   Importante: NO tocar .hero__ribbonWrap (mantiene su absolute original).
*/
.hero__ribbon{
  transform-origin: 50% 0%;
  animation: vibeeRibbonWindSafe 5.4s ease-in-out infinite;
  will-change: transform;
}

@keyframes vibeeRibbonWindSafe{
  0%   { transform: rotate(0deg); }
  22%  { transform: rotate(-1.2deg); }
  52%  { transform: rotate(0.9deg); }
  78%  { transform: rotate(-0.7deg); }
  100% { transform: rotate(0deg); }
}

@media (prefers-reduced-motion: reduce){
  .hero__ribbon{ animation:none !important; }
}



}

/* ===== STATUS TOAST (no layout shift) ===== */
.form-status{
  /* override old inline behavior */
  position: fixed;
  z-index: 9999;
  right: 18px;
  top: calc(var(--header-h, 92px) + 14px);
  max-width: min(520px, calc(100vw - 36px));
  display: none;

  border-radius: 14px;
  padding: 10px 14px;
  border: 1px solid rgba(16,64,112,.18);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  font-weight: 900;
  font-size: 14px;
  color: var(--brand);
  box-shadow: 0 18px 48px rgba(0,0,0,.14);

  transform: translateY(-6px) scale(.985);
  opacity: 0;
}

.form-status.is-show{
  display:block;
  animation: toastIn .34s cubic-bezier(.2,.9,.2,1) both;
}

.form-status.is-hide{
  animation: toastOut .22s ease both;
}

.form-status .status-row{
  display:flex;
  align-items:flex-start;
  gap: 10px;
}

.status-icon{
  width: 16px;
  height: 16px;
  margin-top: 2px;
  display:inline-block;
  border-radius: 999px;
  border: 2px solid currentColor;
  position: relative;
  flex: 0 0 auto;
  opacity: .9;
}

.form-status.is-sending .status-icon::after{
  content:"";
  position:absolute;
  inset: 3px;
  border-radius: 999px;
  border: 2px solid transparent;
  border-top-color: currentColor;
  animation: spin 850ms linear infinite;
}

.form-status.is-success{
  border-color: rgba(37,211,102,.35);
  background: rgba(37,211,102,.12);
  color: #0b5b2a;
}
.form-status.is-success .status-icon{
  border-color: rgba(11,91,42,.75);
  background: rgba(255,255,255,.55);
}
.form-status.is-success .status-icon::after{
  content:"";
  position:absolute;
  left:4px; top:6px;
  width: 8px; height: 4px;
  border-left: 3px solid rgba(11,91,42,.85);
  border-bottom: 3px solid rgba(11,91,42,.85);
  transform: rotate(-45deg);
}

.form-status.is-error{
  border-color: rgba(177,29,42,.32);
  background: rgba(177,29,42,.10);
  color: #7b0f18;
}
.form-status.is-error .status-icon{
  border-color: rgba(123,15,24,.75);
  background: rgba(255,255,255,.55);
}
.form-status.is-error .status-icon::after{
  content:"";
  position:absolute;
  left: 4px; top: 4px;
  width: 8px; height: 8px;
  transform: rotate(45deg);
  background:
    linear-gradient(currentColor,currentColor) center/2px 10px no-repeat,
    linear-gradient(currentColor,currentColor) center/10px 2px no-repeat;
  opacity:.9;
}

@keyframes toastIn{
  from{ opacity:0; transform: translateY(-10px) scale(.98); }
  to{ opacity:1; transform: translateY(0) scale(1); }
}
@keyframes toastOut{
  from{ opacity:1; transform: translateY(0) scale(1); }
  to{ opacity:0; transform: translateY(-8px) scale(.985); }
}
@keyframes spin{ to{ transform: rotate(360deg);} }

/* Mobile: keep toast inside viewport */
@media (max-width: 560px){
  .form-status{
    right: 10px;
    top: calc(var(--header-h, 92px) + 10px);
    max-width: calc(100vw - 20px);
  }
}



section[data-slide="contacto"] .form__grid{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
}

@media (max-width: 900px){
  section[data-slide="contacto"] .form__grid{
    grid-template-columns: 1fr;
  }
}


/* ===== CONTACT FORM NON-INVASIVE FIX ===== */
/* Do not override slide layout system */
section[data-slide="contacto"] .form{
  width: 100%;
  margin: 0;
}




/* ===== CONTACT SLIDE CLIP FIX ===== */
section[data-slide="contacto"] .slide__inner{
  padding-top: 56px; /* clears fixed header area (milimetric) */
}
section[data-slide="contacto"] .slide-head{
  margin-top: 6px;
}
section[data-slide="contacto"] .form{
  padding-bottom: 34px; /* keeps submit above footer */
}
section[data-slide="contacto"] .row-between{
  margin-bottom: 10px;
}



/* ===== CONTACT SLIDE FINAL FIXES ===== */

/* Hide honeypot field completely */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* Ensure title is visible and not clipped by header */
section[data-slide="contacto"] .slide__inner{
  padding-top: 28px; /* clears fixed header area */
}

section[data-slide="contacto"] .slide-head{
  position: relative;
  z-index: 2;
  margin-top: 0;
  padding-top: 6px;
}

section[data-slide="contacto"] .slide-head h2{
  display:block;
  margin: 0 0 8px 0;
  line-height: 1.05;
}

/* Keep submit button above footer safely */
section[data-slide="contacto"] .form{
  padding-bottom: 46px;
}


/* ===== CONTACT TITLE MILIMETRIC ===== */
section[data-slide="contacto"] .slide-head{
  padding-top: 8px;
}

section[data-slide="contacto"] .slide-head h2{
  padding-top: 6px;
  margin-top: 0;
}

/* If any parent uses overflow hidden, avoid clipping the title */
section[data-slide="contacto"] .slide__inner,
section[data-slide="contacto"] .container{
  overflow: visible;
}



/* ===== CONTACT TITLE ANTI-CLIP MICROFIX ===== */
section[data-slide="contacto"] .slide-head h2{
  line-height: 1.18 !important;
  padding-top: 10px !important;
  padding-bottom: 2px !important;
  display: inline-block;
  overflow: visible;
}



/* ===== CONTACT TITLE POSITION FIX (MOVE BELOW DIVIDER) ===== */
/* The title is being overlapped by the top divider line; push it down and bring it to front */
section[data-slide="contacto"] .slide-head{
  margin-top: 18px !important;
  padding-top: 10px !important;
  position: relative;
  z-index: 20;
}

section[data-slide="contacto"] .slide-head h2{
  position: relative;
  z-index: 25;
  transform: translateY(6px);
}

/* ===== Footer typography consistency ===== */
.footer small,
.footer__meta{
  color: rgba(11,43,75,.78);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .01em;
}
.footer .footer-link{ color: rgba(11,43,75,.78); }
.footer .footer-link:hover{ color: var(--brand); }



/* ===== Cookie Consent (D'Calidad) ===== */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:2147483647;pointer-events:auto}
.cookie-banner[hidden]{display:none !important}
.cookie-banner__card{max-width:980px;margin:0 auto;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid rgba(11,43,75,.15);box-shadow:0 20px 60px rgba(0,0,0,.12);border-radius:18px;padding:14px 14px 12px;display:flex;gap:14px;align-items:center;justify-content:space-between}
.cookie-banner__title{font-weight:900;color:#0b2b4b;font-size:14px;letter-spacing:.2px;margin-bottom:2px}
.cookie-banner__desc{color:rgba(11,43,75,.75);font-size:13px;line-height:1.25}
.cookie-banner__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cookie-modal{position:fixed;inset:0;z-index:2147483647;display:none;align-items:center;justify-content:center;padding:18px}
.cookie-modal.is-open{display:flex}
.cookie-modal__backdrop{position:absolute;inset:0;background:rgba(10,20,35,.45)}
.cookie-modal__panel{position:relative;z-index:1;width:min(720px,100%);background:#fff;border-radius:18px;border:1px solid rgba(11,43,75,.15);box-shadow:0 30px 90px rgba(0,0,0,.2);padding:18px}
.cookie-modal__h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.cookie-modal__title{font-weight:950;color:#0b2b4b;font-size:18px}
.cookie-modal__close{border:none;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:rgba(11,43,75,.7)}
.cookie-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid rgba(11,43,75,.1)}
.cookie-row:first-of-type{border-top:none}
.cookie-row__label{font-weight:900;color:#0b2b4b}
.cookie-row__meta{color:rgba(11,43,75,.75);font-size:13px;margin-top:3px;line-height:1.25}
.cookie-btn{border:1px solid rgba(11,43,75,.2);border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer;background:#fff;color:#0b2b4b}
.cookie-btn.primary{background:linear-gradient(180deg,#0b2b4b,#0a2742);color:#fff;border-color:transparent}
.cookie-btn.ghost{background:transparent}
.cookie-footer{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
@media (max-width:720px){
  .cookie-banner__card{flex-direction:column;align-items:flex-start}
  .cookie-banner__actions{justify-content:flex-start}
}

/* ===== Footer bottom 3-column layout (center cookie links) ===== */
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.footer__left,.footer__right{flex:1 1 260px}
.footer__cookies{flex:0 0 auto;display:flex;gap:8px;justify-content:center;align-items:center;margin:0 auto;font-size:12px;font-weight:800;color:rgba(11,43,75,.78)}
.footer__cookies a{color:rgba(11,43,75,.78);text-decoration:none}
.footer__cookies a:hover{color:var(--brand)}
@media (max-width: 820px){
  .footer__bottom{justify-content:center}
  .footer__left,.footer__right{flex:1 1 100%;text-align:center}
  .footer__cookies{order:3}
}

/* ===== Footer 3-column centering (left / center / right) ===== */
.footer__left{flex:1 1 260px; display:flex; align-items:center; gap:10px;}
.footer__left small{display:block; line-height:1.2}
.footer__right{flex:1 1 260px; text-align:right;}
.footer__right .footer__meta{display:block; line-height:1.2}
.footer__cookies{flex:0 0 auto; margin:0 auto; text-align:center; white-space:nowrap;}
/* keep hover as color only (no underline / double line) */
.footer__cookies a{border-bottom:none !important; text-decoration:none !important;}
.footer__cookies a:hover{border-bottom:none !important; text-decoration:none !important; color:var(--brand);}
@media (max-width: 820px){
  .footer__inner{justify-content:center;}
  .footer__left,.footer__right{flex:1 1 100%; justify-content:center; text-align:center;}
  .footer__cookies{order:3; margin-top:2px;}
}



/* =========================================================
   UPGRADE VISUAL PRO
   - WhatsApp más premium
   - Slider / navegación más elegante
   - YouTube más vistoso
   ========================================================= */

/* ===== WHATSAPP PRO ===== */

.fab__btn--whatsapp{
  position: relative;
  overflow: visible;
  transition:
    transform .28s cubic-bezier(.22,.61,.36,1),
    box-shadow .28s cubic-bezier(.22,.61,.36,1),
    filter .28s ease;
  box-shadow:
    0 10px 24px rgba(0,0,0,.18),
    0 0 0 0 rgba(37,211,102,.0);
}

.fab__btn--whatsapp:hover{
  transform: translateY(-3px) scale(1.055);
  box-shadow:
    0 16px 34px rgba(0,0,0,.24),
    0 0 0 10px rgba(37,211,102,.12);
  filter: saturate(1.04);
}

.fab__btn--whatsapp::before{
  animation: waGlowPro 2.4s ease-in-out infinite !important;
}

.fab__btn--whatsapp::after{
  animation: waRingPro 2.8s ease-out infinite !important;
}

@keyframes waGlowPro{
  0%{opacity:.28;transform:scale(.92);filter:blur(2px);}
  50%{opacity:.52;transform:scale(1.08);filter:blur(4px);}
  100%{opacity:.22;transform:scale(.92);filter:blur(2px);}
}

@keyframes waRingPro{
  0%{transform:scale(.88);opacity:.45;}
  65%{transform:scale(1.38);opacity:0;}
  100%{transform:scale(1.38);opacity:0;}
}

.fab__btn--whatsapp > svg{
  transition: transform .25s ease;
}

.fab__btn--whatsapp:hover > svg{
  transform: scale(1.08);
}

/* ===== SLIDER PREMIUM ===== */

.slide{
  will-change: transform, opacity, filter;
}

.slide.anim-in-right{
  animation: premiumInRight .72s cubic-bezier(.22,.61,.36,1) both !important;
}

.slide.anim-in-left{
  animation: premiumInLeft .72s cubic-bezier(.22,.61,.36,1) both !important;
}

.slide.anim-out-left{
  animation: premiumOutLeft .58s cubic-bezier(.22,.61,.36,1) both !important;
}

.slide.anim-out-right{
  animation: premiumOutRight .58s cubic-bezier(.22,.61,.36,1) both !important;
}

@keyframes premiumInRight{
  from{opacity:0;transform:translate3d(72px,0,-120px) rotateY(-14deg) scale(.975);filter:blur(10px);}
  60%{opacity:1;transform:translate3d(-6px,0,0) rotateY(1deg) scale(1.002);filter:blur(0);}
  to{opacity:1;transform:translate3d(0,0,0) rotateY(0deg) scale(1);filter:blur(0);}
}

@keyframes premiumInLeft{
  from{opacity:0;transform:translate3d(-72px,0,-120px) rotateY(14deg) scale(.975);filter:blur(10px);}
  60%{opacity:1;transform:translate3d(6px,0,0) rotateY(-1deg) scale(1.002);filter:blur(0);}
  to{opacity:1;transform:translate3d(0,0,0) rotateY(0deg) scale(1);filter:blur(0);}
}

@keyframes premiumOutLeft{
  from{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0);}
  to{opacity:0;transform:translate3d(-56px,0,-80px) rotateY(10deg) scale(.97);filter:blur(6px);}
}

@keyframes premiumOutRight{
  from{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0);}
  to{opacity:0;transform:translate3d(56px,0,-80px) rotateY(-10deg) scale(.97);filter:blur(6px);}
}

/* ===== YOUTUBE BOOST ===== */

.js-social-yt{
  position: relative;
  background: linear-gradient(180deg,#ff2b2b,#d90000) !important;
  border-color: rgba(185,0,0,.55) !important;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
  transition:transform .26s cubic-bezier(.22,.61,.36,1),box-shadow .26s cubic-bezier(.22,.61,.36,1),filter .26s ease;
}

.js-social-yt:hover{
  transform:translateY(-3px) scale(1.06);
  box-shadow:0 15px 30px rgba(0,0,0,.24),0 0 0 8px rgba(255,0,0,.16);
  filter:saturate(1.06);
}

.js-social-yt::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:999px;
  border:2px solid rgba(255,0,0,.34);
  animation:ytPulsePro 3s ease-out infinite;
  pointer-events:none;
}

@keyframes ytPulsePro{
  0%{transform:scale(.86);opacity:.50;}
  70%{transform:scale(1.42);opacity:0;}
  100%{transform:scale(1.42);opacity:0;}
}

.js-social-yt>svg{transition:transform .24s ease;}
.js-social-yt:hover>svg{transform:scale(1.08);}



/* ===== Footer: Hivox + Vibee marks ===== */
.footer__left{
  display:flex;
  align-items:center;
  gap:14px;
}

/* logo HIVOX */
.hivox-mark{
  height:24px;
  width:auto;
  display:block;
  object-fit:contain;
  flex:0 0 auto;
  opacity:.95;
  transform:translateY(.5px);
}

/* logo VIBEE (protagonista) */
.vibee-mark{
  height:32px;
  width:auto;
  display:block;
  object-fit:contain;
  flex:0 0 auto;
}

/* responsive */
@media (max-width:820px){

  .hivox-mark{
    height:20px;
  }

  .vibee-mark{
    height:26px;
  }

}