/* LYVA PULSE - hoja de estilos compartida por las paginas legales. Sistema de diseno identico al de index.html. */
/* ==========================================================================
   LYVA PULSE — sistema de diseño
   Derivado del logotipo: degradado violeta→magenta, trazo redondeado,
   tipografía en contorno (la "LYVA" del logo es outline, no maciza).
   ========================================================================== */
:root{
  --ink:#050506;
  --ink-2:#08080C;
  --panel:#0B0B11;
  --line:rgba(255,255,255,.10);
  --line-soft:rgba(255,255,255,.055);
  --white:#F5F5F8;
  --muted:#90909B;
  --muted-2:#66666F;
  --violet:#6C3CFF;
  --magenta:#C55CFF;
  --grad:linear-gradient(135deg,var(--violet) 0%,var(--magenta) 100%);
  --grad-rev:linear-gradient(45deg,var(--magenta) 0%,var(--violet) 100%);

  --s-1:6px; --s-2:12px; --s-3:18px; --s-4:26px;
  --s-5:36px; --s-6:52px; --s-7:76px; --s-8:112px;

  --maxw:1240px;
  --measure:58ch;
  --gutter:clamp(22px,5.4vw,76px);
  --sect-y:clamp(92px,12.5vw,176px);
  --sect-y-sm:clamp(70px,9vw,120px);
  --r:16px;
  --r-sm:11px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:92px}
body{
  margin:0;background:var(--ink);color:var(--white);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.is-locked{overflow:hidden}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:rgba(140,60,255,.35);color:#fff}
:focus-visible{outline:2px solid var(--magenta);outline-offset:4px;border-radius:5px}

.skip{position:absolute;left:-9999px;top:0;z-index:200;padding:12px 20px;background:var(--violet);border-radius:0 0 8px 0}
.skip:focus{left:0}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* grano: textura sutil sobre el negro */
.grain{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.032;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* barra de progreso de lectura (transform: no provoca layout) */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:90;background:var(--grad);transform:scaleX(0);transform-origin:left;will-change:transform}

/* ---------- Tipografía ---------- */
h1,h2,h3{font-family:Manrope,Inter,sans-serif;font-weight:700;margin:0;letter-spacing:-.034em;line-height:1.04}
.h-xl{font-size:clamp(2.55rem,6.8vw,5rem);letter-spacing:-.042em}
.h-lg{font-size:clamp(2rem,4.9vw,3.6rem);letter-spacing:-.036em;line-height:1.07}
.h-md{font-size:clamp(1.45rem,2.7vw,2.1rem);line-height:1.14}
.h-sm{font-size:1.05rem;font-weight:600;letter-spacing:-.014em;line-height:1.32}
p{margin:0}
.lead{font-size:clamp(1.01rem,1.45vw,1.14rem);color:var(--muted);max-width:var(--measure);line-height:1.68}
.lead--w{max-width:70ch}
.lead strong{color:var(--white);font-weight:500}
.small{font-size:.9rem;color:var(--muted);line-height:1.62}
.tiny{font-size:.765rem;color:var(--muted-2);line-height:1.6}

/* contorno tipográfico — el gesto del logotipo llevado a la web */
.outline{
  color:transparent;-webkit-text-stroke:1.3px rgba(245,245,248,.8);
  paint-order:stroke fill;
}
@supports not (-webkit-text-stroke:1px #000){ .outline{color:rgba(245,245,248,.55)} }

.eyebrow{display:inline-flex;align-items:center;gap:11px;font-size:.685rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--grad)}
.idx{font-size:.685rem;font-weight:600;letter-spacing:.22em;color:var(--muted-2);font-variant-numeric:tabular-nums}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- Ritmo ---------- */
.mt-1{margin-top:var(--s-1)}.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}
.mt-4{margin-top:var(--s-4)}.mt-5{margin-top:var(--s-5)}.mt-6{margin-top:var(--s-6)}

/* ---------- Layout ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);position:relative;z-index:2}
.section{padding-block:var(--sect-y);position:relative}
.section--sm{padding-block:var(--sect-y-sm)}
.section--panel{background:linear-gradient(180deg,var(--ink-2),var(--ink));border-block:1px solid var(--line-soft)}
.rule{height:1px;background:var(--line-soft);border:0;margin:0}

.sect-head{margin-bottom:clamp(38px,5.2vw,66px)}
.sect-head__meta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:var(--s-4);border-bottom:1px solid var(--line-soft);margin-bottom:var(--s-5)}
.sect-head h2{max-width:19ch}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 28px;border-radius:999px;border:1px solid var(--line);
  font-size:.775rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  background:transparent;cursor:pointer;min-height:53px;text-align:center;
  transition:transform .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease),box-shadow .45s var(--ease),background-color .35s var(--ease);
}
.btn:hover{transform:translateY(-1px)}
.btn--primary{border-color:transparent;color:#fff;background:var(--grad);box-shadow:0 10px 34px -18px rgba(150,60,255,.9)}
.btn--primary:hover{box-shadow:0 18px 50px -16px rgba(160,70,255,.85)}
.btn--ghost{color:var(--white);background:rgba(255,255,255,.022)}
.btn--ghost:hover{border-color:rgba(197,92,255,.55)}
.btn--lg{padding:19px 36px;min-height:59px}
.btn--block{width:100%}
.btn__arrow{transition:transform .35s var(--ease)}
.btn:hover .btn__arrow{transform:translateY(2px)}

/* ---------- Marca ---------- */
.logo{display:inline-flex;align-items:center;gap:13px}
.logo__mark{width:34px;height:34px;flex:0 0 auto}
.nav .logo{min-height:44px}
.logo__bar{width:1px;height:26px;background:var(--line);flex:0 0 auto}
.logo__type{display:grid;gap:2px;line-height:1}
.logo__lyva{
  font-family:Manrope,sans-serif;font-weight:600;font-size:.98rem;letter-spacing:.3em;
  color:transparent;-webkit-text-stroke:.9px rgba(245,245,248,.92);
}
@supports not (-webkit-text-stroke:1px #000){ .logo__lyva{color:var(--white)} }
.logo__pulse{font-family:Manrope,sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.42em;color:var(--magenta)}
.logo--lg .logo__mark{width:52px;height:52px}
.logo--lg .logo__lyva{font-size:1.5rem;-webkit-text-stroke-width:1.1px}
.logo--lg .logo__pulse{font-size:.86rem}
.logo--lg .logo__bar{height:40px}

/* ---------- Navegación ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:80;border-bottom:1px solid transparent;transition:background-color .4s var(--ease),border-color .4s var(--ease)}
.nav.is-stuck{background:rgba(5,5,6,.76);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border-bottom-color:var(--line-soft)}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:28px;height:80px}
.nav__links{display:none;gap:36px;align-items:center}
.nav__links a{font-size:.715rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);position:relative;padding-block:7px;transition:color .3s var(--ease)}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--grad);transition:width .4s var(--ease)}
.nav__links a:hover{color:var(--white)}
.nav__links a:hover::after{width:100%}
.nav__cta{display:none}
.burger{display:inline-flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:5px;width:46px;height:46px;background:none;border:0;cursor:pointer;padding:0;margin-right:-6px}
.burger span{display:block;height:1.5px;background:var(--white);transition:transform .4s var(--ease),width .4s var(--ease)}
.burger span:nth-child(1){width:23px}
.burger span:nth-child(2){width:15px}
.nav.is-open .burger span:nth-child(1){transform:translateY(3.25px) rotate(45deg)}
.nav.is-open .burger span:nth-child(2){width:23px;transform:translateY(-3.25px) rotate(-45deg)}

.menu{
  position:fixed;inset:0;z-index:70;background:rgba(5,5,6,.98);
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);
  display:flex;flex-direction:column;justify-content:center;padding:118px var(--gutter) 52px;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .4s var(--ease),transform .5s var(--ease),visibility .4s;
}
.menu.is-open{opacity:1;visibility:visible;transform:none}
.menu__link{font-family:Manrope,sans-serif;font-size:clamp(1.5rem,6.4vw,2.1rem);font-weight:700;letter-spacing:-.03em;padding-block:var(--s-3);border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;gap:16px}
.menu__foot{margin-top:var(--s-6);display:grid;gap:var(--s-3)}
.menu__ig{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:.78rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}

/* ---------- CTA fija en móvil ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:75;
  padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));
  background:rgba(5,5,6,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border-top:1px solid var(--line-soft);
  transform:translateY(110%);transition:transform .45s var(--ease);
}
.dock.is-on{transform:none}
body.is-locked .dock{transform:translateY(110%)}

.footer{border-top:1px solid var(--line-soft);padding-block:var(--s-6)}
.footer__in{display:grid;gap:var(--s-5)}
.footer__links{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4)}
.footer__links a{font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);transition:color .3s var(--ease)}
.footer__links a:hover{color:var(--white)}
.footer__links .ig-link{display:inline-flex;align-items:center;gap:8px}
.footer__tag{font-size:.71rem;letter-spacing:.21em;text-transform:uppercase;color:var(--muted-2)}
.footer__legal{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line-soft);display:grid;gap:var(--s-2)}

/* ---------- Páginas legales ---------- */
.legal{padding-top:clamp(116px,15vw,168px);padding-bottom:var(--sect-y-sm)}
.legal__col{max-width:780px;margin-inline:auto}
.legal__h1{margin-top:var(--s-4);font-size:clamp(2.1rem,6.4vw,3.6rem);letter-spacing:-.042em;line-height:1.04;text-wrap:balance}
.legal__updated{margin-top:var(--s-3);font-size:.8rem;letter-spacing:.04em;color:var(--muted-2)}
.legal__lead{margin-top:var(--s-5);font-size:clamp(1.02rem,1.5vw,1.14rem);line-height:1.68;color:var(--muted)}
.legal h2{margin:clamp(40px,6vw,60px) 0 var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--line-soft);font-size:clamp(1.25rem,2.6vw,1.6rem);letter-spacing:-.03em;line-height:1.15;scroll-margin-top:96px}
.legal p,.legal li{color:var(--muted);font-size:.97rem;line-height:1.75}
.legal p{margin-top:var(--s-3)}
.legal h2 + p{margin-top:0}
.legal ul{margin:var(--s-3) 0 0;padding-left:1.25em;display:grid;gap:8px}
.legal li::marker{color:var(--magenta)}
.legal strong{color:var(--white);font-weight:500}
.legal em{font-style:normal;color:var(--white);font-size:.92em;background:rgba(255,255,255,.06);padding:1px 6px;border-radius:5px}
.legal a{color:var(--white);text-decoration:underline;text-decoration-color:rgba(197,92,255,.6);text-underline-offset:3px;overflow-wrap:anywhere}
.legal a:hover{text-decoration-color:var(--magenta)}
/* datos en filas (sin tablas: cómodo en móvil, sin scroll horizontal) */
.legal__dl{margin:var(--s-3) 0 0;padding:0;border-top:1px solid var(--line-soft)}
.legal__dl > div{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.legal__dl dt{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
.legal__dl dd{margin:0;font-size:.97rem;line-height:1.65;color:var(--white);overflow-wrap:anywhere}
.legal__dl--wide dt{font-size:.95rem;font-weight:500;letter-spacing:-.005em;text-transform:none;color:var(--white);line-height:1.45}
.legal__dl--wide dd{color:var(--muted);font-size:.93rem}
.legal__dl [hidden]{display:none}
/* datos legales pendientes: imposibles de pasar por alto */
.legal-var--pending{display:inline-block;padding:1px 8px;border:1px dashed rgba(255,196,90,.55);border-radius:6px;background:rgba(255,196,90,.08);color:#F4CF8A;font-size:.92em;line-height:1.5}
.legal-banner{margin-bottom:var(--s-5);padding:14px 16px;border:1px solid rgba(255,196,90,.3);border-radius:var(--r-sm);background:rgba(255,196,90,.06);color:#F4CF8A;font-size:.82rem;line-height:1.55}
.legal__more{display:flex;flex-wrap:wrap;gap:0 var(--s-4);margin-top:clamp(44px,6vw,72px);padding-top:var(--s-4);border-top:1px solid var(--line-soft)}
.legal__more a{display:inline-flex;align-items:center;min-height:44px;font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.legal__more a:hover{color:var(--white)}
.legal .legal__back{margin-top:var(--s-3)}
.legal .legal__back a{display:inline-flex;align-items:center;min-height:44px}

/* ---------- Responsive ---------- */
@media (max-width:919px){ .grain{display:none} }
@media (max-width:619px){
  :root{--sect-y:clamp(68px,17vw,96px);--sect-y-sm:60px;--gutter:20px}
  html{scroll-padding-top:76px}
  .nav__in{height:68px}
  .burger{width:48px;height:48px}
  .menu{padding-top:96px}
  .menu__link{padding-block:16px}
  .btn{min-height:52px}
  .btn--lg{padding:17px 24px;min-height:56px}
  .footer__links{gap:0 22px}
  .footer__links a{display:inline-flex;align-items:center;min-height:44px}
}
@media (min-width:620px){
  .footer__in{grid-template-columns:1fr auto;align-items:end}
  .footer__links{justify-content:flex-end}
  .legal__dl > div{grid-template-columns:200px 1fr;gap:var(--s-4)}
  .legal__dl--wide > div{grid-template-columns:1fr 1.15fr}
}
@media (min-width:920px){
  .nav__links,.nav__cta{display:flex}
  .burger{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* contenido condicionado por legal-config.js: oculto salvo que el dato exista */
.legal [data-legal-if]:not(.is-on){display:none}
