:root{
  --white:#FFFFFF;
  --paper:#FBFAF7;
  --tint:#F2F5F0;
  --sage-bg:#E8EFE6;
  --sage:#5F7F5C;
  --sage-deep:#2F4A38;
  --sage-ink:#3C5A45;
  --ink:#1C2420;
  --soft:#4E5752;
  --muted:#6E7772;
  --gold:#B08D3E;
  --line:#E3E0D3;
  --wa:#1E7A4C;
  --ease-out-expo:cubic-bezier(0.16,1,0.3,1);
  --ease-out-quart:cubic-bezier(0.25,1,0.5,1);
  --dur-fast:240ms;
  --dur-slow:800ms;
  --t:300ms;
}

/* halos de luz sutiles */
.halo{
  position:absolute;pointer-events:none;z-index:0;
  background:radial-gradient(closest-side,rgba(95,127,92,.14),transparent 72%);
  filter:blur(10px);
}
.halo--hero{width:min(640px,90vw);aspect-ratio:1;right:-8%;top:6%;}
.halo--center{width:min(720px,94vw);aspect-ratio:2.2;left:50%;top:8%;translate:-50% 0;}
.section{position:relative;}
.section > *{position:relative;z-index:1;}
.halo{z-index:0;}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;background:var(--white);scroll-padding-top:84px;}
html.no-scroll,html.no-scroll body{overflow:hidden;height:100%;}

body{
  background:var(--white);
  color:var(--ink);
  font-family:'Inter',-apple-system,'Segoe UI',sans-serif;
  font-size:18px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.lock-scroll{overflow:hidden;height:100vh;}

img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
::selection{background:var(--sage);color:#fff;}

:focus-visible{outline:2px solid var(--sage);outline-offset:3px;border-radius:4px;}

.skip{
  position:fixed;top:-70px;left:16px;z-index:10002;
  background:var(--sage-deep);color:#fff;
  padding:12px 20px;border-radius:999px;
  font-size:.9rem;font-weight:600;text-decoration:none;
  transition:top .25s ease;min-height:44px;
  display:flex;align-items:center;
}
.skip:focus{top:14px;color:#fff;}

#page-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:10001;
  background:linear-gradient(90deg,var(--sage),var(--gold));
  transform:scaleX(0);transform-origin:left;
}

/* ============ INTRO (se mantiene) ============ */
.intro-loader{
  position:fixed;inset:0;z-index:9999;
  display:grid;place-items:center;
  background:#0b0b0c;overflow:hidden;
  transition:opacity 1s ease,background-color .8s ease;
}
.intro-loader.is-fading{opacity:0;}
/* al terminar la intro todo el loader (fondo, vídeo, textos, barra) se funde a blanco, sin pasar por marrón/negro */
.intro-loader.to-white{background:#fff!important;transition:background-color .45s ease,opacity 1s ease;}
.intro-loader.to-white .intro-video,
.intro-loader.to-white .intro-fallback-canvas,
.intro-loader.to-white .intro-content,
.intro-loader.to-white .intro-progress,
.intro-loader.to-white .intro-skip{opacity:0!important;transition:opacity .45s ease;}
.intro-video,.intro-fallback-canvas{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(.5) saturate(1.05);
  opacity:0;transition:opacity 1s ease;
}
.intro-video.is-on{opacity:1;}
.intro-video.is-dim{opacity:.35;}
.intro-fallback-canvas{display:none;}
.intro-loader.no-video .intro-video{display:none;}
.intro-loader.no-video .intro-fallback-canvas{display:block;opacity:1;}
.intro-content{position:relative;z-index:2;padding:0 20px;text-align:center;transition:opacity .6s ease,transform .6s ease;}
.intro-content.is-out{opacity:0;transform:translateY(-18px);}
.intro-brand{
  display:flex;flex-direction:column;align-items:center;gap:20px;
  font-family:'Fraunces',Georgia,serif;font-weight:600;
  font-size:clamp(2.2rem,7vw,5rem);letter-spacing:.04em;color:#f6efe4;
}
.intro-brand__line--sub{
  font-family:'Inter',sans-serif;font-weight:300;
  font-size:clamp(.95rem,2.4vw,1.4rem);
  letter-spacing:.5em;text-indent:.5em;color:#E8CD8A;
  opacity:0;transition:opacity 1s ease;
}
.intro-brand__line--sub.is-visible{opacity:1;}
@media (max-width:480px){
  .intro-brand{font-size:clamp(1.7rem,9vw,2.4rem);gap:14px;letter-spacing:.02em;}
  .intro-brand__line--sub{font-size:.72rem;letter-spacing:.32em;text-indent:.32em;}
}
.char{display:inline-block;opacity:0;transform:translateY(60%) rotateX(-40deg);transform-origin:bottom center;will-change:transform,opacity;}
.intro-static .char{opacity:1;transform:none;}
.intro-veil{
  position:absolute;inset:0;z-index:2;opacity:0;pointer-events:none;
  background:#fff;
  transition:opacity .8s ease;
}
.intro-veil.is-on{opacity:1;}
.intro-progress{position:absolute;bottom:48px;left:50%;translate:-50% 0;width:200px;height:2px;background:rgba(255,255,255,.15);z-index:3;overflow:hidden;}
.intro-progress__fill{width:0%;height:100%;background:var(--gold);}
.intro-skip{
  position:absolute;top:32px;right:32px;z-index:3;
  opacity:0;pointer-events:none;
  background:transparent;border:1px solid rgba(255,255,255,.35);
  color:#f6efe4;padding:10px 18px;border-radius:999px;
  font-size:.85rem;cursor:pointer;min-height:44px;
  display:flex;align-items:center;gap:8px;
}
.intro-skip.is-visible{opacity:1;pointer-events:auto;}
.intro-skip:hover{border-color:var(--gold);background:rgba(201,164,92,.12);}

/* ============ HEADER (siempre transparente, sin franja al bajar) ============ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:500;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px clamp(20px,5vw,64px);
  background:transparent;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  border-bottom:1px solid transparent;
  transition:padding .3s,color .4s;
}
/* sobre la portada oscura: texto claro, sin fondo, para no tapar la foto */
.site-header:not(.is-condensed) .brand-mark,
.site-header:not(.is-condensed) .brand-mark__initials,
.site-header:not(.is-condensed) .nav-link,
.site-header:not(.is-condensed) .header-phone{
  color:#F7F5EE;
}
.site-header:not(.is-condensed) .brand-mark__full{color:rgba(247,245,238,.75);}
.site-header:not(.is-condensed) .nav__underline{background:#E9C878;}
.site-header:not(.is-condensed) .burger span{background:#F7F5EE;}
/* al bajar de la portada: mismo header transparente, solo cambia a texto oscuro para que se siga leyendo */
.site-header.is-condensed .brand-mark,
.site-header.is-condensed .brand-mark__initials,
.site-header.is-condensed .nav-link,
.site-header.is-condensed .header-phone{
  color:var(--ink);
}
.site-header.is-condensed .brand-mark__full{color:var(--soft);}
.site-header.is-condensed .nav__underline{background:var(--sage);}
.site-header.is-condensed .burger span{background:var(--ink);}
@media (max-width:1080px){
  /* en móvil el header debe quedar totalmente transparente sobre la portada, sin ninguna franja de fondo */
  .site-header{background:transparent!important;box-shadow:none!important;border-bottom-color:transparent!important;}
  .site-header{padding-block:14px;}
}
.brand-mark{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink);}
.brand-mark__initials{
  font-family:'Fraunces',serif;font-weight:700;font-size:1.35rem;letter-spacing:.05em;
  color:var(--sage-deep);
}
.brand-mark__full{font-size:.82rem;color:var(--soft);}
.brand-mark__full em{font-style:italic;}
@media (max-width:860px){.brand-mark__full{display:none;}}
.main-nav{display:flex;gap:clamp(16px,2.2vw,32px);}
.nav-link{
  position:relative;text-decoration:none;font-size:.93rem;font-weight:500;
  color:var(--ink);padding:4px 0;min-height:44px;display:inline-flex;align-items:center;
}
.nav-link:hover{color:var(--sage-ink);}
.nav__underline{
  position:absolute;left:0;right:0;bottom:6px;height:2px;border-radius:2px;
  background:var(--sage);transform:scaleX(0);transform-origin:center;
  transition:transform var(--dur-fast) var(--ease-out-expo);
}
.nav-link:hover .nav__underline,.nav-link:focus-visible .nav__underline{transform:scaleX(1);}
@media (max-width:1080px){.main-nav{display:none;}}
@media (max-width:640px){
  /* en móvil solo se ve el botón de menú (barritas); marca y acciones se ocultan para no solaparse con la foto */
  .brand-mark,.header-actions{display:none;}
  .site-header{justify-content:flex-end;}
}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:12px;min-width:44px;min-height:44px;justify-content:center;}
.burger span{width:24px;height:2px;background:var(--ink);display:block;}
@media (max-width:1080px){.burger{display:flex;}}
.mobile-menu{
  position:fixed;inset:0;z-index:600;background:var(--white);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:40px;padding:40px 24px calc(40px + env(safe-area-inset-bottom,0px));
  transform:translateY(-100%);transition:transform .5s var(--ease-out-expo);
  visibility:hidden;
}
.mobile-menu.is-open{transform:translateY(0);visibility:visible;}
.mobile-menu nav{display:flex;flex-direction:column;gap:20px;text-align:center;}
.mobile-menu nav a{
  font-family:'Fraunces',serif;font-size:1.9rem;color:var(--ink);
  text-decoration:none;min-height:44px;display:flex;align-items:center;justify-content:center;
}

/* ============ BOTONES ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:16px 36px;border-radius:999px;
  font-size:.95rem;font-weight:600;letter-spacing:.05em;
  text-decoration:none;cursor:pointer;border:none;position:relative;overflow:hidden;
  min-height:54px;transition:transform .25s ease,box-shadow .3s,background .3s;
}
.btn:hover{transform:translateY(-3px);}
.btn--primary{background:linear-gradient(150deg,#3A5A44,var(--sage-deep));color:#fff;box-shadow:0 12px 28px -12px rgba(47,74,56,.55);}
.btn--primary:hover{background:linear-gradient(150deg,#2C4634,#22372A);box-shadow:0 18px 36px -12px rgba(47,74,56,.6);}
.btn--dark{background:var(--ink);color:#fff;}
.btn--dark:hover{box-shadow:0 18px 36px -14px rgba(28,36,32,.5);}
.btn--wa{background:linear-gradient(150deg,#25935C,var(--wa));color:#fff;box-shadow:0 12px 28px -12px rgba(30,122,76,.55);}
.btn--wa:hover{background:linear-gradient(150deg,#1E7A4C,#155E3A);box-shadow:0 18px 36px -12px rgba(30,122,76,.6);}
.btn--outline{background:transparent;color:var(--sage-deep);border:1.5px solid var(--sage-deep);}
.btn--outline:hover{background:rgba(95,127,92,.1);}
.btn--sm{padding:11px 22px;min-height:44px;font-size:.86rem;gap:8px;}
.btn__wa-icon{flex-shrink:0;}
.btn--lg{padding:19px 54px;font-size:1.05rem;}
.btn-ripple__wave{position:absolute;width:10px;height:10px;background:rgba(255,255,255,.5);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;}

/* ============ HERO premium (texto izq / foto der) ============ */
.hero{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);align-items:center;
  gap:clamp(32px,4vw,64px);
  max-width:1300px;margin:0 auto;
  padding:132px clamp(20px,5vw,48px) 84px;
  min-height:100svh;align-content:center;
  background:
    radial-gradient(760px 520px at 88% 12%,rgba(95,127,92,.22),transparent 70%),
    radial-gradient(560px 400px at 4% 92%,rgba(176,141,62,.16),transparent 70%),
    radial-gradient(460px 320px at 45% 45%,rgba(95,127,92,.08),transparent 70%),
    linear-gradient(180deg,#FFFFFF 0%,#FCFBF7 60%,#F2F5F0 100%);
}
.hero > *{position:relative;z-index:1;}
.hero__content{max-width:600px;}

/* destellos de luz animados — flashes sutiles de acento */
.hero__flash{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  mix-blend-mode:plus-lighter;opacity:0;
}
.hero__flash--1{
  width:340px;height:340px;top:4%;right:6%;
  background:radial-gradient(closest-side,rgba(255,255,255,.9),rgba(95,127,92,.15) 55%,transparent 75%);
  animation:heroFlash 6.5s ease-in-out infinite;
}
.hero__flash--2{
  width:220px;height:220px;bottom:8%;left:2%;
  background:radial-gradient(closest-side,rgba(255,246,214,.85),rgba(176,141,62,.12) 55%,transparent 75%);
  animation:heroFlash 6.5s ease-in-out 2.2s infinite;
}
.hero__flash--3{
  width:160px;height:160px;top:44%;left:36%;
  background:radial-gradient(closest-side,rgba(255,255,255,.7),transparent 72%);
  animation:heroFlash 7.5s ease-in-out 4.1s infinite;
}
@keyframes heroFlash{
  0%,100%{opacity:0;transform:scale(.85);}
  50%{opacity:.9;transform:scale(1.08);}
}
@media (prefers-reduced-motion: reduce){
  .hero__flash{animation:none!important;opacity:.35;}
}

/* cuadrados de color decorativos */
.deco-squares{display:flex;align-items:flex-end;gap:9px;margin-bottom:30px;}
.deco-squares span{border-radius:4px;opacity:0;animation:sqIn .7s var(--ease-out-expo) forwards;}
.deco-squares span:nth-child(1){width:22px;height:22px;background:var(--sage-deep);animation-delay:.15s;}
.deco-squares span:nth-child(2){width:16px;height:16px;background:var(--sage);animation-delay:.25s;animation-name:sqInFloat;}
.deco-squares span:nth-child(3){width:26px;height:26px;background:var(--sage-bg);border:1px solid #CBD8C6;animation-delay:.35s;}
.deco-squares span:nth-child(4){width:14px;height:14px;background:#EFE6CE;animation-delay:.45s;animation-name:sqInFloat;}
.deco-squares span:nth-child(5){width:19px;height:19px;background:var(--gold);animation-delay:.55s;}
.deco-squares i{width:64px;height:1px;background:var(--line);margin-left:6px;margin-bottom:9px;opacity:0;animation:sqIn .8s ease .65s forwards;}
@keyframes sqIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@keyframes sqInFloat{
  0%{opacity:0;transform:translateY(10px);}
  100%{opacity:1;transform:translateY(0);}
}

.hero__kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.74rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;
  color:#12241a;background:linear-gradient(120deg,#E4ECE1,#D8E4D3);
  border:1px solid #B7CBB0;
  padding:11px 22px;border-radius:999px;margin-bottom:26px;
  box-shadow:0 10px 24px -14px rgba(47,74,56,.5);
}
.hero__kicker::before{
  content:"";width:8px;height:8px;border-radius:50%;background:var(--sage-deep);
  box-shadow:0 0 0 0 rgba(47,74,56,.55);
  animation:kickerPulse 2.4s ease-out infinite;
}
@keyframes kickerPulse{
  0%{box-shadow:0 0 0 0 rgba(47,74,56,.55);}
  70%{box-shadow:0 0 0 9px rgba(47,74,56,0);}
  100%{box-shadow:0 0 0 0 rgba(47,74,56,0);}
}
.hero__title{
  font-family:'Fraunces',serif;font-weight:650;
  font-size:clamp(2.9rem,5.2vw,4.7rem);line-height:1.04;letter-spacing:-.02em;
  color:#0E1613;
  margin-bottom:24px;max-width:15ch;
}
.hero__title{overflow-wrap:normal;word-break:normal;hyphens:none;}
.hero__title .word{display:inline-block;white-space:nowrap;}
.hero__title em{
  font-style:italic;font-weight:700;color:#12261a;white-space:nowrap;
  background:linear-gradient(180deg,transparent 58%,rgba(176,141,62,.4) 58%,rgba(176,141,62,.4) 96%,transparent 96%);
  padding:0 .08em;
}
/* seguridad: sin GSAP el texto siempre visible */
.no-gsap .word__inner{transform:none!important;}
.no-gsap .split-unit{opacity:1!important;transform:none!important;}
.hero__subtitle{max-width:44ch;color:#28322c;font-size:1.18rem;line-height:1.7;margin-bottom:38px;}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px;}
.btn__arrow{display:inline-block;margin-left:8px;transition:transform .28s var(--ease-out-expo);}
.btn:hover .btn__arrow{transform:translateX(3px);}
.hero__rating{
  display:inline-flex;align-items:center;gap:10px;
  color:#2A3530;font-size:1rem;font-weight:500;
  background:rgba(255,255,255,.75);border:1px solid var(--line);
  padding:12px 22px;border-radius:999px;
  box-shadow:0 14px 30px -20px rgba(28,36,32,.4);
}
.hero__rating span{color:#9A7A2E;letter-spacing:2px;}
.hero__rating strong{color:#131B17;}
.hero__glow-title{
  position:absolute;z-index:0;left:38%;top:16%;width:44%;height:44%;
  background:radial-gradient(closest-side,rgba(95,127,92,.12),transparent 72%);
  filter:blur(12px);pointer-events:none;
  animation:breathe 8s ease-in-out infinite;
}

/* foto protagonista (derecha) */
.hero__media{position:relative;display:flex;justify-content:center;align-items:center;}
.hero__photo-halo{
  position:absolute;z-index:0;width:118%;aspect-ratio:1;
  background:radial-gradient(closest-side,rgba(95,127,92,.38),rgba(176,141,62,.12) 55%,transparent 73%);
  filter:blur(16px);
  animation:breathe 8s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:.7;transform:scale(1);}50%{opacity:1;transform:scale(1.05);}}
.hero__photo{
  position:relative;z-index:1;overflow:hidden;
  border-radius:230px 230px 34px 34px;
  border:8px solid #fff;
  outline:1.5px solid #CBD8C6;outline-offset:10px;
  box-shadow:0 70px 120px -30px rgba(20,40,28,.62),0 18px 38px -18px rgba(176,141,62,.35);
  max-width:min(440px,80vw);width:100%;
  isolation:isolate;
}
.hero__photo img{
  width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;
  filter:contrast(1.08) saturate(1.08) brightness(1.01);
  transition:transform 1.2s var(--ease-out-expo);
}
.hero__photo:hover img{transform:scale(1.035);}
/* sheen: barrido de luz sobre la foto */
.hero__photo::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 46%,rgba(255,255,255,.06) 54%,transparent 70%);
  transform:translateX(-120%);
  animation:heroSheen 5.5s ease-in-out 1.4s infinite;
}
@keyframes heroSheen{
  0%,60%,100%{transform:translateX(-120%);}
  78%{transform:translateX(120%);}
}
@media (prefers-reduced-motion: reduce){
  .hero__photo::before{animation:none;display:none;}
}
.hero__photo-frame{
  position:absolute;z-index:0;
  inset:4% -20px auto auto;width:44%;height:44%;
  border:1.5px solid var(--gold);border-radius:0 34px 0 0;
  border-bottom:none;border-left:none;opacity:.6;
  pointer-events:none;
}
.hero__dots{
  position:absolute;z-index:2;right:0;bottom:10%;
  display:grid;grid-template-columns:repeat(3,8px);gap:9px;
}
.hero__dots span{width:8px;height:8px;border-radius:50%;background:var(--sage-deep);opacity:.5;}
.hero__dots span:nth-child(3n){opacity:.22;}
.hero__badge{
  position:absolute;z-index:2;left:-6px;bottom:10%;
  background:#fff;border:1px solid var(--line);border-radius:18px;
  border-left:4px solid var(--sage-deep);
  box-shadow:0 26px 50px -22px rgba(28,36,32,.4);
  padding:15px 22px;text-align:center;
  animation:badgeFloat 7s ease-in-out infinite;
}
.hero__badge strong{display:block;font-family:'Fraunces',serif;font-size:1.4rem;color:#131B17;}
.hero__badge span{font-size:.78rem;color:var(--muted);letter-spacing:.06em;}
@keyframes badgeFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}

/* segundo badge: detalle personal / cercanía */
.hero__badge--alt{
  left:auto;right:-10px;bottom:auto;top:8%;
  border-left:none;border-right:4px solid var(--gold);
  animation:badgeFloat 7s ease-in-out .8s infinite;
}
.hero__badge--alt strong{font-size:1rem;font-family:'Inter',sans-serif;font-weight:600;}

@media (max-width:960px){
  .hero{grid-template-columns:1fr;padding-top:122px;min-height:auto;}
  .hero__media{order:-1;}
  .hero__photo{max-width:min(300px,68vw);}
  .hero__photo-frame{right:-8px;}
  .hero__badge{left:2%;bottom:5%;padding:10px 16px;}
  .hero__badge--alt{right:2%;top:4%;padding:9px 14px;}
  .hero__dots{right:4%;}
  .deco-squares{margin-bottom:22px;}
  .deco-squares span:nth-child(n+4){display:none;}
  .hero__title{font-size:clamp(2.2rem,8.6vw,3rem);}
  .hero__glow-title{width:80%;left:10%;top:8%;}
  .hero__flash{display:none;}
}

/* ============ HERO PORTADA — estilo "TODO AL FILO" (foto full-bleed + texto encima) ============ */
.hero--full{
  display:block;grid-template-columns:none;
  max-width:none;margin:0;padding:0;
  min-height:100svh;height:100vh;
  background:#fff;
  overflow:hidden;
}
.hero--full > *{position:relative;z-index:1;}
.hero__bg-photo{
  position:absolute;inset:0;z-index:0;
  display:block;width:100%;height:100%;
}
.hero__bg-photo{background:#0A0B0A;}
.hero__bg-photo img{
  width:100%;height:100%;object-fit:cover;object-position:100% 30%;
  filter:contrast(1.05) saturate(1.02) brightness(.96);
}
/* pantallas anchas: la foto es cuadrada, así que se muestra completa (Javier entero) a la derecha y se funde con el fondo oscuro */
@media (min-width:961px){
  .hero__bg-photo img{
    width:auto;height:100%;max-width:none;aspect-ratio:1/1;
    position:absolute;right:0;top:0;object-fit:cover;object-position:50% 50%;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 26%);
            mask-image:linear-gradient(90deg,transparent 0%,#000 26%);
  }
}
.hero__scrim{
  position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(90deg,rgba(6,8,7,.92) 0%,rgba(8,10,9,.68) 32%,rgba(10,12,10,.22) 56%,rgba(10,12,10,.08) 72%),
    linear-gradient(0deg,rgba(4,5,4,.55) 0%,rgba(4,5,4,0) 30%,rgba(4,5,4,0) 72%,rgba(4,5,4,.5) 100%);
}
.hero__grain{
  position:absolute;inset:0;z-index:0;opacity:.05;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero__kicker--top-mobile{display:none;}
.hero__topline,.hero__bottomline{
  position:absolute;left:clamp(20px,5vw,48px);right:clamp(20px,5vw,48px);z-index:2;
  display:flex;justify-content:space-between;align-items:center;
  font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.62);
}
.hero__topline{top:clamp(96px,10vh,132px);}
.hero__bottomline{bottom:clamp(28px,4vh,44px);}
.hero__scroll-cue{display:inline-flex;align-items:center;gap:10px;}
.hero__scroll-cue i{
  display:inline-block;width:1px;height:22px;background:rgba(255,255,255,.55);
  animation:scrollCue 2.2s ease-in-out infinite;
}
@keyframes scrollCue{0%,100%{transform:scaleY(1);opacity:.4;}50%{transform:scaleY(1.3);opacity:.9;}}

.hero__content--full{
  position:absolute;z-index:2;left:clamp(20px,5vw,48px);
  top:50%;transform:translateY(-50%);
  max-width:min(640px,88vw);
}
.hero__kicker--full{
  color:#F4F1E6;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(6px);
  box-shadow:none;
}
.hero__kicker--full::before{background:#D8B25C;}
.hero__title--full{
  color:#F7F5EE;
  font-size:clamp(3.6rem,10vw,7.5rem);
  line-height:.98;letter-spacing:-.01em;
  max-width:none;
  margin-bottom:26px;
  text-shadow:0 8px 40px rgba(0,0,0,.35);
}
.hero__title--full em{
  color:#E9C878;font-style:italic;font-weight:700;
  background:none;
}
.hero__subtitle--full{color:rgba(244,242,234,.82);max-width:42ch;}
.hero__rating--full{
  background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);
  color:#F4F1E6;backdrop-filter:blur(6px);
}
.hero__rating--full strong{color:#fff;}
.btn--outline-light{color:#F7F5EE;border-color:rgba(247,245,238,.55);}
.btn--outline-light:hover{background:rgba(255,255,255,.1);}

@media (max-width:960px){
  .hero--full{height:100svh;}
  .hero__bg-photo img{object-position:50% 22%;}
  .hero__content--full{max-width:90vw;}
  .hero__title--full{font-size:clamp(2.6rem,13vw,4.2rem);}
  .hero__subtitle--full{font-size:1.02rem;}
  /* en móvil quitamos las líneas editoriales (nutrición·01 / método 07 / scroll): sobran espacio y no aportan */
  .hero__topline,.hero__bottomline{display:none;}
}
@media (max-width:960px) and (orientation:portrait){
  /* móvil vertical: foto cuadrada a pantalla completa (rellena todo) y el texto abajo sobre degradado oscuro */
  .hero--full{height:100svh;min-height:100svh;}
  .hero__bg-photo img{object-position:50% 30%;}
  .hero__content--full{top:auto;bottom:clamp(28px,5svh,56px);transform:none;left:clamp(20px,5vw,48px);right:clamp(20px,5vw,48px);max-width:none;}
  .hero__scrim{
    background:
      linear-gradient(0deg,rgba(6,7,6,.94) 0%,rgba(6,7,6,.82) 32%,rgba(6,7,6,.35) 52%,rgba(6,7,6,0) 66%),
      linear-gradient(180deg,rgba(6,7,6,.55) 0%,rgba(6,7,6,0) 16%);
  }
  /* la etiqueta del bloque de texto inferior se oculta en móvil vertical: la sustituye la copia de arriba (.hero__kicker--top-mobile) */
  .hero__kicker--full{display:none;}
  .hero__title--full{font-size:clamp(2.1rem,10vw,3rem);line-height:.95;margin-bottom:10px;}
  /* copia del kicker anclada arriba de la foto, para que la cara de Javier quede despejada */
  .hero__kicker--top-mobile{
    display:inline-flex;position:absolute;z-index:3;
    left:clamp(20px,5vw,48px);
    top:calc(env(safe-area-inset-top,0px) + 76px);
    max-width:calc(100% - clamp(40px,10vw,96px));
  }
  .hero__subtitle--full{font-size:.92rem;line-height:1.45;margin-bottom:14px;}
  .hero__cta--full{gap:10px;flex-wrap:nowrap;margin-bottom:14px;}
  .hero__cta--full .btn{flex:1 1 0;min-width:0;padding:12px 10px;min-height:46px;font-size:.78rem;letter-spacing:.03em;text-align:center;white-space:normal;line-height:1.15;}
  .hero__rating--full{font-size:.82rem;padding:8px 14px;gap:8px;}
  /* sombra suave arriba de la foto para que la etiqueta se lea bien sobre la madera clara */
  .hero__scrim{
    background:
      linear-gradient(0deg,rgba(6,7,6,.94) 0%,rgba(6,7,6,.82) 32%,rgba(6,7,6,.35) 52%,rgba(6,7,6,0) 66%),
      linear-gradient(180deg,rgba(6,7,6,.6) 0%,rgba(6,7,6,.05) 14%,rgba(6,7,6,0) 22%);
  }
}

/* ============ MARQUESINA ANIMADA ============ */
.marquee{
  overflow:hidden;background:var(--sage-deep);
  padding:16px 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);
}
.marquee__track{display:flex;width:max-content;animation:marqueeScroll 32s linear infinite;}
.marquee__group{display:flex;align-items:center;flex-shrink:0;}
.marquee__group span{
  font-family:'Fraunces',serif;font-weight:600;font-style:italic;
  font-size:clamp(1rem,2.2vw,1.4rem);color:#F4F1E6;
  white-space:nowrap;padding:0 clamp(16px,2.5vw,28px);
}
.marquee__group span[aria-hidden]{
  font-family:'Inter',sans-serif;font-style:normal;font-weight:400;
  color:var(--gold);padding:0;font-size:1rem;
}
@keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.marquee__track{animation:none;}}
@media (max-width:640px){.marquee__track{animation-duration:20s;}}

/* ============ SECCIONES ============ */
.section{padding:clamp(64px,7vw,104px) clamp(20px,5vw,64px);overflow:hidden;}
.section > *{max-width:1180px;margin-inline:auto;}
.section--tint{background:linear-gradient(180deg,#F4F6F2,var(--tint) 30%);}
.section--sage{background:linear-gradient(180deg,#EDF2EB,var(--sage-bg));box-shadow:inset 0 1px 0 rgba(95,127,92,.12),inset 0 -1px 0 rgba(95,127,92,.12);}
.section--tint{background:var(--tint);}
.section--sage{background:var(--sage-bg);}
.section__eyebrow{
  color:var(--sage-ink);font-size:.76rem;font-weight:600;
  letter-spacing:.3em;text-transform:uppercase;margin-bottom:18px;
}
.eyebrow-emoji{
  display:inline-block;letter-spacing:normal;text-transform:none;
  font-size:1rem;vertical-align:-1px;margin-right:2px;
}
.section__title{
  font-family:'Fraunces',serif;font-weight:600;
  font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.08;letter-spacing:-.01em;
  text-wrap:balance;
  max-width:22ch;margin-bottom:20px;
}
.section__title em{font-style:italic;color:var(--sage-ink);}
.section__lead{max-width:62ch;color:var(--soft);font-size:1.12rem;margin-bottom:16px;}
.section__lead--center{margin-inline:auto;text-align:center;}
.section__cta-wrap{display:flex;justify-content:center;margin-top:52px;}
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity var(--dur-slow) var(--ease-out-expo),transform var(--dur-slow) var(--ease-out-expo);}
[data-reveal].is-revealed{opacity:1;transform:none;}
.stagger-child{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease-out-expo),transform .7s var(--ease-out-expo);}
.is-revealed .stagger-child{opacity:1;transform:none;}
.split-unit-wrapper{display:inline-block;overflow:hidden;vertical-align:top;}
.split-unit{display:inline-block;will-change:transform,opacity;}
.word{display:inline-block;overflow:hidden;vertical-align:top;}
/* visible por defecto: si el JS falla, el texto siempre se lee */
.word__inner{display:inline-block;will-change:transform;}

/* listas editoriales */
.edit-list{list-style:none;margin-top:48px;border-top:2px solid var(--ink);}
.edit-list li{
  display:grid;grid-template-columns:120px 1fr;gap:clamp(16px,3vw,40px);align-items:start;
  padding:34px 8px;border-bottom:1px solid var(--line);
  transition:background .3s,padding-left .3s;
}
.edit-list li:hover{background:rgba(255,255,255,.7);padding-left:20px;}
.section--tint .edit-list li:hover{background:rgba(255,255,255,.9);}
.edit-list li:hover .edit-list__num{color:var(--sage-deep);transform:scale(1.07);}
.edit-list li:hover h3{color:var(--sage-deep);}
.edit-list__num{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:clamp(2.4rem,4.4vw,3.4rem);color:var(--sage);line-height:1;
  display:inline-block;transform-origin:left center;
  transition:transform var(--t) var(--ease-out-expo),color var(--t);
}
.edit-list h3{transition:color var(--t);}
.edit-list li{transition:background var(--t),padding-left .35s var(--ease-out-expo);}
.edit-list h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.55rem;margin-bottom:8px;}
.edit-list p{color:var(--soft);font-size:1.08rem;max-width:60ch;}
.edit-list--cards{border-top:none;display:grid;grid-template-columns:1fr 1fr;gap:0 48px;}
.edit-list--cards li{padding:30px 4px;}
@media (max-width:860px){.edit-list--cards{grid-template-columns:1fr;}.edit-list li{grid-template-columns:72px 1fr;}}

/* frase */
.section--quote{background:var(--white);text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.big-quote{
  font-family:'Fraunces',serif;font-weight:700;
  font-size:clamp(2.2rem,5.6vw,4.2rem);line-height:1.08;
  max-width:22ch;margin:0 auto 24px;
}
.big-quote em{font-style:italic;color:var(--sage-ink);}
.big-quote__sub{max-width:58ch;margin:0 auto;color:var(--soft);font-size:1.15rem;}

/* por qué: dos columnas */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,80px);align-items:start;}
.split__sticky{position:sticky;top:110px;}
.split__sticky .btn{margin-top:20px;}
.why-row{padding:32px 0 32px 4px;border-bottom:1px solid var(--line);transition:padding-left .35s var(--ease-out-expo),background var(--t);}
.why-row:first-child{padding-top:0;}
.why-row:hover{padding-left:14px;background:linear-gradient(90deg,rgba(95,127,92,.06),transparent 70%);}
.why-row h3 span{transition:color var(--t);}
.why-row:hover h3 span{color:var(--sage-deep);}
.why-row h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.4rem;margin-bottom:10px;}
.why-row h3 span{color:var(--sage);margin-right:12px;}
.why-row p{color:var(--soft);font-size:1.06rem;max-width:56ch;}
@media (max-width:900px){.split{grid-template-columns:1fr;}.split__sticky{position:static;}}

/* banda whatsapp */
.wa-band{
  margin-top:48px;background:linear-gradient(140deg,#3A5A44,var(--sage-deep));
  color:#fff;position:relative;overflow:hidden;
  border-radius:22px;padding:clamp(30px,4vw,48px);
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  box-shadow:0 34px 60px -30px rgba(47,74,56,.5);
}
.wa-band::before{
  content:"";position:absolute;width:420px;aspect-ratio:1;right:-140px;top:-140px;
  background:radial-gradient(closest-side,rgba(232,205,138,.22),transparent 70%);
  pointer-events:none;
}
.wa-band p{font-size:1.2rem;max-width:36ch;}
.wa-band strong{font-family:'Fraunces',serif;font-weight:600;font-size:1.4rem;display:block;margin-bottom:6px;}

/* método timeline */
.method .timeline{position:relative;list-style:none;padding-left:56px;margin-top:44px;max-width:740px;}
.method__svg{position:absolute;left:0;top:8px;width:24px;pointer-events:none;overflow:visible;}
.method__path{stroke:var(--sage);stroke-width:2;}
.timeline__progress-line{position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:var(--line);border-radius:2px;}
.timeline__progress-line i{display:block;width:100%;height:0%;background:linear-gradient(180deg,var(--sage),var(--gold));border-radius:2px;}
.timeline__item{position:relative;padding-bottom:48px;}
.timeline__item:last-of-type{padding-bottom:0;}
.timeline__num{
  position:absolute;left:-45px;top:0;width:26px;height:26px;border-radius:50%;
  border:2px solid var(--sage);background:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:600;color:var(--sage-ink);
  transition:background .4s,color .4s;
}
.timeline__item.is-active .timeline__num{background:var(--sage);color:#fff;}
.timeline__item h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.4rem;margin-bottom:8px;}
.timeline__item p{color:var(--soft);font-size:1.06rem;max-width:54ch;}

/* beneficios */
.section--sage{text-align:center;}
.section--sage .section__title{margin-inline:auto;}
.section--sage .section__lead{margin-inline:auto;}
.bene-tags{list-style:none;display:flex;flex-wrap:wrap;gap:14px;margin-top:40px;justify-content:center;}
.bene-tags li{
  background:#fff;border:1px solid #CBD8C6;color:var(--ink);
  padding:15px 28px;border-radius:999px;font-size:1.02rem;font-weight:500;
  min-height:50px;display:inline-flex;align-items:center;
  transition:transform .3s,box-shadow .3s;
}
.bene-tags li:hover{transform:translateY(-3px);box-shadow:0 16px 30px -18px rgba(47,74,56,.4);}

/* ubicación */
.ubi-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px;align-items:stretch;}
.ubi-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(28px,4vw,48px);box-shadow:0 30px 60px -38px rgba(28,36,32,.3);}
.ubi-card__pin{
  width:60px;height:60px;border-radius:50%;background:var(--sage-bg);color:var(--sage-ink);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin-bottom:22px;
}
.ubi-card address{font-style:normal;font-size:1.3rem;line-height:1.6;margin-bottom:18px;}
.ubi-card__phone{display:inline-block;font-size:1.6rem;font-weight:600;text-decoration:none;margin-bottom:14px;font-variant-numeric:tabular-nums;}
.ubi-card__phone:hover{color:var(--sage-ink);}
.ubi-card__hours{font-size:.98rem;color:var(--soft);line-height:1.6;margin-bottom:28px;}
.ubi-card__hours::before{content:"🕐 ";}
.ubi-card__btns{display:flex;flex-direction:column;gap:12px;}
.ubi-card__btns .btn{width:100%;}
.ubi-map{border-radius:22px;overflow:hidden;border:1px solid var(--line);min-height:380px;}
.ubi-map iframe{width:100%;height:100%;min-height:380px;border:0;display:block;}
.practical{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px;}
.practical li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:4px;}
.practical strong{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-ink);}
.practical span,.practical a{font-size:1.02rem;font-weight:500;}
@media (max-width:900px){.ubi-grid{grid-template-columns:1fr;}.practical{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.practical{grid-template-columns:1fr;}}

/* reseñas */
.res-score{
  position:relative;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;
  margin:28px auto 8px;max-width:640px;
  background:linear-gradient(180deg,#FFFFFF,var(--paper));
  border:1px solid var(--line);border-radius:24px;
  padding:34px 30px;
  box-shadow:0 30px 60px -34px rgba(47,74,56,.35);
  overflow:hidden;
}
.res-score::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.65) 50%,transparent 60%);
  transform:translateX(-120%);
}
.res-score.is-revealed::after{animation:resShine 1.4s ease-out .5s 1;}
@keyframes resShine{to{transform:translateX(120%);}}
@media (prefers-reduced-motion: reduce){.res-score::after{display:none;}}
.res-score__stars{color:var(--gold);font-size:1.7rem;letter-spacing:5px;}
.res-score__num{font-family:'Fraunces',serif;font-weight:700;font-size:3.8rem;font-variant-numeric:tabular-nums;}
.res-score__count{font-size:.85rem;letter-spacing:.2em;color:var(--muted);font-weight:600;}
.res-filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:32px 0 8px;}
.res-filter{
  border:1.5px solid var(--line);background:#fff;color:var(--soft);
  padding:11px 24px;border-radius:999px;font-size:.92rem;font-weight:600;cursor:pointer;
  min-height:46px;transition:border-color .3s,background .3s,color .3s;font-family:'Inter',sans-serif;
}
.res-filter:hover{border-color:var(--sage);}
.res-filter.is-active{background:var(--sage-deep);border-color:var(--sage-deep);color:#fff;}
.res-viewport{overflow:hidden;margin-top:28px;}
.res-track{display:flex;gap:20px;will-change:transform;}
.res-card{
  flex:0 0 calc((100% - 40px) / 3);
  background:var(--paper);border:1px solid var(--line);border-radius:18px;
  padding:32px 28px;display:flex;flex-direction:column;gap:14px;user-select:none;
  box-shadow:0 18px 40px -28px rgba(28,36,32,.25);
  transition:box-shadow var(--t),border-color var(--t);
}
.res-card:hover{border-color:#C6D2C0;box-shadow:0 26px 50px -28px rgba(47,74,56,.4);}
.res-card__stars{color:var(--gold);letter-spacing:3px;font-size:1.05rem;}
.res-card p{font-size:1rem;line-height:1.7;}
.res-card__foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);}
.res-card__foot strong{display:block;font-size:1rem;}
.res-card__foot span{font-size:.85rem;color:var(--muted);}
.res-card__note{font-size:.82rem;color:var(--sage-ink);font-style:italic;}
.res-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:28px;}
.res-arrow{
  width:52px;height:52px;border-radius:50%;
  border:1.5px solid var(--ink);background:#fff;color:var(--ink);
  font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .3s,color .3s;
}
.res-arrow:hover{background:var(--ink);color:#fff;}
.res-dots{display:flex;gap:10px;}
.res-dots button{width:11px;height:11px;border-radius:50%;border:none;background:#D5D0BF;cursor:pointer;padding:0;min-width:11px;transition:background .3s,transform .3s;}
.res-dots button.is-active{background:var(--sage);transform:scale(1.35);}
@media (max-width:960px){.res-card{flex-basis:calc((100% - 20px) / 2);}}
@media (max-width:640px){.res-card{flex-basis:100%;}}

/* resultados reales (lista para fotos futuras) */
.rr-soon{
  display:inline-block;margin-top:26px;background:#fff;border:1px dashed var(--sage);
  color:var(--sage-ink);font-weight:500;padding:18px 32px;border-radius:999px;font-size:1.02rem;
}
.rr-case{margin-top:40px;}
.rr-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:760px;}
.rr-photos figure{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.rr-photos img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.rr-photos figcaption{padding:14px;text-align:center;font-weight:600;color:var(--soft);}

/* sobre javier */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,72px);align-items:center;}
.about-media{border-radius:200px 200px 28px 28px;overflow:hidden;border:6px solid #fff;box-shadow:0 30px 60px -30px rgba(47,74,56,.3);}
.about-media img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;transform:scale(.97);transition:transform 1.1s var(--ease-out-expo);}
.about-media.is-revealed img{transform:scale(1);}
.about-text p{margin-bottom:18px;font-size:1.08rem;line-height:1.75;max-width:60ch;}
.about-cta{margin-top:30px;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr;}.about-media{max-width:380px;}}

/* contacto */
.section--contact{background:linear-gradient(160deg,#F4F1E6,var(--tint));text-align:center;border-top:1px solid var(--line);}
.contact-lead{font-size:1.3rem;color:var(--soft);max-width:44ch;margin:0 auto 36px;}
.contact-ctas{display:flex;justify-content:center;margin-bottom:28px;}
.contact-lines{font-size:1.3rem;}
.contact-lines a{font-weight:600;text-decoration:none;border-bottom:2px solid var(--sage);}
.contact-lines--dim{color:var(--muted);font-size:1.02rem;margin-top:12px;}

/* footer */
.site-footer{background:#F1EFE7;color:var(--soft);padding:64px clamp(20px,5vw,64px) 28px;border-top:1px solid var(--line);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;max-width:1200px;margin:0 auto 40px;}
.footer-brand{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--sage-deep);margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.footer-brand span{font-size:1.15rem;}
.footer-grid p{font-size:.98rem;margin-bottom:8px;}
.footer-h{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage-ink);margin-bottom:14px;font-weight:600;}
.footer-grid a{display:block;text-decoration:none;font-size:.98rem;min-height:40px;color:var(--soft);}
.footer-grid a:hover{color:var(--ink);text-decoration:underline;}
.footer-copy{text-align:center;font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:24px;max-width:1200px;margin:0 auto;}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

/* whatsapp flotante */
.wa-float{
  position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:450;
  width:60px;height:60px;border-radius:50%;
  background:var(--wa);color:#fff;
  display:flex;align-items:center;justify-content:center;text-decoration:none;
  box-shadow:0 16px 36px -12px rgba(0,0,0,.45);
  transition:transform .25s ease;
}
.wa-float::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:var(--wa);opacity:.55;
  animation:waPulse 2.6s ease-out infinite;
  z-index:-1;
}
@keyframes waPulse{
  0%{transform:scale(1);opacity:.5;}
  100%{transform:scale(1.65);opacity:0;}
}
.wa-float:hover{transform:scale(1.08);}
@media (prefers-reduced-motion: reduce){.wa-float::before{animation:none;display:none;}}
.wa-float__tip{
  position:absolute;right:70px;top:50%;translate:0 -50%;
  background:var(--ink);color:#fff;font-size:.82rem;font-weight:500;
  padding:9px 16px;border-radius:10px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.wa-float:hover .wa-float__tip{opacity:1;}
@media (max-width:640px){.wa-float__tip{display:none;}.wa-float{width:56px;height:56px;}}

@media (max-width:640px){
  body{font-size:16px;}
  .hero__cta .btn{flex:1;justify-content:center;}
  .edit-list li{grid-template-columns:64px 1fr;gap:16px;}
}
@media (max-width:400px){
  .hero__title{font-size:clamp(2.2rem,12vw,2.8rem);}
  .res-score__num{font-size:2.6rem;}
}

/* ============ NUEVAS SECCIONES: problema, emocional, confianza, faq, contacto ============ */
.pain-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;margin-top:44px;border-top:2px solid var(--ink);}
.pain-item{padding:30px 4px;border-bottom:1px solid var(--line);transition:background var(--t),padding-left .35s var(--ease-out-expo);}
.pain-item:hover{background:rgba(255,255,255,.8);padding-left:16px;}
.pain-item span{color:var(--sage);font-size:1.1rem;}
.pain-item h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.35rem;margin:10px 0 8px;}
.pain-item p{color:var(--soft);font-size:1.04rem;max-width:52ch;}
@media (max-width:860px){.pain-grid{grid-template-columns:1fr;}}

.section--deep{background:linear-gradient(155deg,#38543F,var(--sage-deep) 65%,#22372A);color:#fff;text-align:center;}
.section--deep .section__title{color:#fff;margin-inline:auto;}
.section--deep .section__title em{color:var(--gold-light);}
.emo-lead{max-width:62ch;margin:0 auto 10px;color:#E4E9DF;font-size:1.15rem;}
.emo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:960px;margin:40px auto 0;border-top:1px solid rgba(255,255,255,.25);}
.emo-grid article{padding:34px 26px;border-bottom:1px solid rgba(255,255,255,.25);}
.emo-grid span{color:var(--gold-light);font-size:1.2rem;}
.emo-grid h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.45rem;margin:12px 0 8px;}
.emo-grid p{color:#D9E0D3;font-size:1.02rem;}
@media (max-width:760px){.emo-grid{grid-template-columns:1fr;}}

.cta-band{
  margin-top:52px;background:var(--sage-bg);border:1px solid #CBD8C6;
  border-radius:22px;padding:clamp(28px,4vw,44px);
  display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;
}
.cta-band p{font-size:1.15rem;max-width:38ch;}
.cta-band strong{font-family:'Fraunces',serif;font-weight:600;font-size:1.35rem;display:block;margin-bottom:4px;}

.confianza-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.confianza-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 26px;transition:transform var(--t),box-shadow var(--t);}
.confianza-grid article:hover{transform:translateY(-4px);box-shadow:0 24px 44px -26px rgba(47,74,56,.35);}
.confianza-grid span{color:var(--sage);font-size:1.5rem;}
.confianza-grid h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.2rem;margin:12px 0 8px;}
.confianza-grid p{color:var(--soft);font-size:.99rem;}
@media (max-width:960px){.confianza-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.confianza-grid{grid-template-columns:1fr;}}

.faq-list{max-width:800px;margin-top:40px;display:flex;flex-direction:column;gap:14px;}
.faq-list details{
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:6px 26px;transition:border-color var(--t),box-shadow var(--t);
}
.faq-list details:hover{border-color:#C6D2C0;}
.faq-list details[open]{border-color:var(--sage);box-shadow:0 20px 40px -28px rgba(47,74,56,.35);}
.faq-list summary{
  cursor:pointer;list-style:none;min-height:60px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  font-family:'Fraunces',serif;font-weight:600;font-size:1.2rem;
}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{
  content:"+";flex:none;width:34px;height:34px;border-radius:50%;
  border:1.5px solid var(--sage);color:var(--sage-ink);
  display:flex;align-items:center;justify-content:center;font-size:1.2rem;
  transition:transform var(--t),background var(--t),color var(--t);
}
.faq-list details[open] summary::after{transform:rotate(45deg);background:var(--sage);color:#fff;}
.faq-list details p{color:var(--soft);font-size:1.04rem;padding:0 0 22px;max-width:62ch;}

.contact-channels{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:760px;margin:0 auto 34px;}
.contact-channel{
  background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:28px;text-decoration:none;text-align:left;
  display:flex;flex-direction:column;gap:6px;
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.contact-channel:hover{transform:translateY(-4px);box-shadow:0 26px 48px -26px rgba(47,74,56,.4);border-color:#C6D2C0;}
.contact-channel__icon{
  width:48px;height:48px;border-radius:50%;background:var(--sage-bg);color:var(--sage-ink);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:8px;
}
.contact-channel strong{font-family:'Fraunces',serif;font-size:1.3rem;}
.contact-channel span{color:var(--soft);}
@media (max-width:640px){.contact-channels{grid-template-columns:1fr;}}

@media (prefers-reduced-motion:reduce){
  .deco-squares span,.deco-squares i{opacity:1!important;animation:none!important;}
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  .char{opacity:1;transform:none;}
  .intro-progress,.intro-skip{display:none;}
  [data-reveal],.stagger-child{opacity:1!important;transform:none!important;transition:none!important;}
  .word__inner{transform:none;}
  .about-media img{transform:none;}
  .halo{display:none;}
}

/* ============ AVISO DE COOKIES ============ */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:9000;
  padding:16px clamp(16px,4vw,28px) calc(16px + env(safe-area-inset-bottom,0px));
  transform:translateY(110%);opacity:0;
  transition:transform .5s var(--ease-out-expo),opacity .5s ease;
}
.cookie-banner.is-visible{transform:translateY(0);opacity:1;}
.cookie-banner__inner{
  max-width:960px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:22px 26px;box-shadow:0 24px 60px -20px rgba(28,36,32,.35);
}
.cookie-banner__text{color:var(--soft);font-size:.94rem;line-height:1.6;flex:1 1 380px;margin:0;}
.cookie-banner__text a{color:var(--sage-ink);font-weight:600;}
.cookie-banner__btns{display:flex;gap:12px;flex-shrink:0;}
@media (max-width:560px){
  .cookie-banner__inner{padding:20px;flex-direction:column;align-items:stretch;text-align:left;}
  .cookie-banner__btns{width:100%;}
  .cookie-banner__btns .btn{flex:1;}
}
@media (prefers-reduced-motion:reduce){.cookie-banner{transition:opacity .3s ease;transform:none!important;}}

/* =====================================================================
   ACABADO PREMIUM — refinamientos sutiles (mismos colores, mismo contenido)
   Bloque independiente al final del archivo: se puede borrar entero
   para volver al aspecto anterior.
   ===================================================================== */

/* Tipografía más fina y estable */
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;}
body{font-kerning:normal;font-feature-settings:"kern" 1,"liga" 1;-moz-osx-font-smoothing:grayscale;}
.section__title,.hero__title,.edit-list h3,.faq-list summary{font-optical-sizing:auto;}
p,.section__lead,.edit-list p,.faq-list details p{text-wrap:pretty;}

/* Scroll: barra fina y elegante */
html{scrollbar-width:thin;scrollbar-color:#B9C4B5 transparent;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#C3CDBF;border-radius:999px;border:3px solid #fff;}
::-webkit-scrollbar-thumb:hover{background:#A9B7A4;}

/* Foco accesible más pulido (mismo color de marca) */
:focus-visible{outline:2px solid var(--sage);outline-offset:4px;border-radius:6px;box-shadow:0 0 0 6px rgba(95,127,92,.16);}

/* Botones: sombras en capas, brillo suave y pulsación con tacto */
.btn{
  transition:transform .45s var(--ease-out-expo),box-shadow .45s var(--ease-out-expo),background .35s ease,border-color .35s ease,color .35s ease;
  -webkit-tap-highlight-color:transparent;
}
.btn--primary{box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 2px 4px rgba(47,74,56,.18),0 14px 30px -14px rgba(47,74,56,.55);}
.btn--primary:hover{box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 4px 8px rgba(47,74,56,.2),0 22px 40px -14px rgba(47,74,56,.6);}
.btn--wa{box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 2px 4px rgba(30,122,76,.2),0 14px 30px -14px rgba(30,122,76,.55);}
.btn--wa:hover{box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 4px 8px rgba(30,122,76,.22),0 22px 40px -14px rgba(30,122,76,.6);}
.btn:active{transform:translateY(-1px) scale(.985);transition-duration:.12s;}
.btn::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .9s var(--ease-out-expo);
}
.btn--primary:hover::after,.btn--wa:hover::after{transform:translateX(120%);}
.btn--outline{transition:transform .45s var(--ease-out-expo),background .35s ease,border-color .35s ease;}

/* Portada: botón secundario con cristal esmerilado y microdetalle en el texto */
.hero--full .btn--outline,.hero--full .hero__rating--full,.hero--full .hero__kicker--full{
  -webkit-backdrop-filter:blur(10px) saturate(1.1);backdrop-filter:blur(10px) saturate(1.1);
}
.hero--full .hero__title--full{text-shadow:0 2px 30px rgba(0,0,0,.35);}
.hero--full .hero__subtitle--full{text-shadow:0 1px 14px rgba(0,0,0,.4);}

/* Títulos de sección: eyebrow con filete dorado (mismo dorado de la marca) */
.section:not(.section--contact) .section__eyebrow::after{
  content:"";display:inline-block;width:34px;height:1px;margin-left:12px;vertical-align:middle;
  background:linear-gradient(90deg,var(--gold),transparent);opacity:.75;
}
.section--sage .section__eyebrow::after,.section--deep .section__eyebrow::after,.section--quote .section__eyebrow::after,.section--contact .section__eyebrow::after{display:none;}

/* Listas editoriales: línea de acento que se dibuja al pasar el ratón */
.edit-list li{position:relative;}
.edit-list li::before{
  content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;
  background:linear-gradient(90deg,var(--sage),var(--gold));
  transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease-out-expo);
}
.edit-list li:hover::before{transform:scaleX(1);}

/* Tarjetas y bloques: profundidad en capas, más natural */
.ubi-card{box-shadow:0 1px 2px rgba(28,36,32,.04),0 8px 18px -10px rgba(28,36,32,.12),0 40px 70px -42px rgba(28,36,32,.32);}
.faq-list details{box-shadow:0 1px 2px rgba(28,36,32,.03);transition:border-color var(--t),box-shadow .5s var(--ease-out-expo),transform .5s var(--ease-out-expo);}
.faq-list details:hover{box-shadow:0 12px 28px -20px rgba(47,74,56,.3);}
.faq-list details[open]{box-shadow:0 1px 2px rgba(28,36,32,.04),0 24px 44px -28px rgba(47,74,56,.4);}
.contact-channel{box-shadow:0 1px 2px rgba(28,36,32,.04),0 10px 22px -16px rgba(28,36,32,.18);}
.contact-channel:hover{box-shadow:0 1px 2px rgba(28,36,32,.05),0 24px 44px -22px rgba(28,36,32,.3);}

/* Foto "Sobre Javier": marco con doble sombra y brillo interior fino */
.about-media{box-shadow:0 1px 2px rgba(47,74,56,.08),0 14px 30px -14px rgba(47,74,56,.25),0 44px 80px -40px rgba(47,74,56,.38);}

/* Selección de texto y botón flotante de WhatsApp más finos */
.wa-float{box-shadow:0 2px 4px rgba(30,122,76,.25),0 16px 34px -12px rgba(30,122,76,.55);transition:transform .5s var(--ease-out-expo),box-shadow .5s var(--ease-out-expo);}
.wa-float:hover{box-shadow:0 4px 8px rgba(30,122,76,.28),0 22px 42px -12px rgba(30,122,76,.6);}

/* Imágenes nítidas y sin parpadeos al aparecer */
img{image-rendering:auto;-webkit-user-drag:none;}

/* Respeto a "reducir movimiento": sin brillos ni desplazamientos */
@media (prefers-reduced-motion:reduce){
  .btn::after,.edit-list li::before{display:none;}
  .btn,.wa-float{transition:none;}
}

/* En móvil: sin efectos que dependen del ratón y sombras algo más contenidas */
@media (hover:none){
  .btn::after{display:none;}
  .edit-list li::before{display:none;}
}
@media (max-width:640px){
  .section:not(.section--contact) .section__eyebrow::after{width:22px;}
}
