/* Meridian Axis — página de la empresa (meridianaxishq.com)
   Layout: una sola columna ancha; hero en dos mitades (titular | globo con meridianos que se gira),
   bandas de contenido sobre fondo tinta y una red de agentes de IA animada.
   Identidad del logo: azul marino, niebla, ámbar y azul. Una sola apariencia oscura, elegida a propósito.
   Las fuentes se sirven desde este dominio (fonts/fonts.css), no desde Google. */
@import url("fonts/fonts.css");

:root{
  --ink:#0A0C18; --navy:#16192D; --navy2:#1E2240; --mist:#DDDCEA; --mist2:#A3A4C2; --line:rgba(221,220,234,.12);
  --amber:#FC9F0D; --blue:#6895E2;
  --display:"Archivo","Arial Narrow","Helvetica Neue",system-ui,sans-serif;
  --body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --mx:50%; --my:40%;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--mist);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.pad{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.wrap{max-width:1200px;margin:0 auto}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}
h1,h2,h3{margin:0;font-family:var(--display);font-stretch:118%;letter-spacing:-.01em;line-height:1.04;text-wrap:balance}
p{margin:0}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mist2)}
.eyebrow b{color:var(--amber);font-weight:500}
[id]{scroll-margin-top:96px}
.skip{position:absolute;left:-999px;top:8px;z-index:50;background:var(--amber);color:#14100A;padding:10px 16px;border-radius:999px;font-weight:600;text-decoration:none}
.skip:focus{left:16px}

/* barra superior y progreso */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--ink)}
header.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(10,12,24,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.bar .wrap{display:flex;align-items:center;gap:20px;min-height:84px}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--amber);transform-origin:0 50%;transform:scaleX(0)}
.logo{height:58px;width:auto;display:block}
nav.links{display:flex;gap:26px;margin-left:auto;font-size:14px}
nav.links a{text-decoration:none;color:var(--mist2);transition:color .2s;position:relative}
nav.links a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--amber);transition:right .3s}
nav.links a:hover,nav.links a.on{color:var(--mist)}
nav.links a:hover::after,nav.links a.on::after{right:0}
.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:0 0 auto}
.lang button{min-height:36px;min-width:44px;border:0;background:transparent;color:var(--mist2);font:500 12px var(--mono);letter-spacing:.08em;cursor:pointer;transition:background .2s,color .2s}
.lang button[aria-pressed="true"]{background:var(--mist);color:var(--ink)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--mist);cursor:pointer;padding:0;place-items:center;flex:0 0 auto}
.burger span{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),opacity .2s;transform-origin:center}
.burger span+span{margin-top:4px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu{display:none}
@media (max-width:860px){
  nav.links{display:none}
  .lang{margin-left:auto}
  .burger{display:grid}
  .logo{height:46px}
  header.bar .wrap{min-height:72px;gap:12px}
  .menu{display:block;position:fixed;inset:0;z-index:15;background:rgba(10,12,24,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:calc(72px + env(safe-area-inset-top,0px) + 24px) max(20px,env(safe-area-inset-left,0px)) 40px;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility 0s .3s}
  .menu.open{opacity:1;visibility:visible;transition:opacity .3s var(--ease)}
  .menu a{display:block;text-decoration:none;font-family:var(--display);font-stretch:112%;font-weight:700;font-size:34px;line-height:1.2;padding:12px 0;border-bottom:1px solid var(--line);color:var(--mist);transform:translateY(14px);opacity:0;transition:transform .5s var(--ease),opacity .4s}
  .menu.open a{transform:none;opacity:1}
  .menu.open a:nth-child(2){transition-delay:.05s}.menu.open a:nth-child(3){transition-delay:.1s}.menu.open a:nth-child(4){transition-delay:.15s}.menu.open a:nth-child(5){transition-delay:.2s}.menu.open a:nth-child(6){transition-delay:.25s}
  .menu a::before{content:"→ ";color:var(--amber)}
  .menu .mail-link{font-family:var(--mono);font-stretch:100%;font-weight:500;font-size:15px;color:var(--mist2);border:0;margin-top:14px}
  .menu .mail-link::before{content:""}
  body.menu-open{overflow:hidden}
}

/* hero */
.hero{position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(520px circle at var(--mx) var(--my),rgba(104,149,226,.13),transparent 60%);pointer-events:none}
.hero::after{content:"";position:absolute;inset:auto -10% -40% -10%;height:60%;background:radial-gradient(60% 100% at 50% 100%,rgba(252,159,13,.07),transparent 70%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding-block:72px 40px}
.hero h1{font-size:clamp(44px,7.2vw,96px);font-weight:800}
.hero h1 em{font-style:normal;color:var(--amber)}
/* el brillo se pinta en las palabras (.w) cuando el titular está partido; si no, en el <em> entero. Dos reglas separadas: :has() no se entiende en navegadores viejos y anularía la regla */
.hero h1 em .w{background:linear-gradient(100deg,var(--amber) 0%,#FFD38A 45%,var(--amber) 60%,var(--amber) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 6s ease-in-out infinite}
.hero h1 em:not(:has(.w)){background:linear-gradient(100deg,var(--amber) 0%,#FFD38A 45%,var(--amber) 60%,var(--amber) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 6s ease-in-out infinite}
@keyframes shine{0%,100%{background-position:100% 0}50%{background-position:0 0}}
.hero h1 .w{display:inline-block}
.hero .title{margin-top:22px}
.hero .lede{font-size:clamp(17px,1.6vw,20px);color:var(--mist2);max-width:36ch;margin-top:22px}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 22px;border-radius:999px;text-decoration:none;font-weight:600;font-size:15px;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}
.btn.primary{background:var(--amber);color:#14100A}
.btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s var(--ease)}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(252,159,13,.25)}
.btn.primary:hover::after{transform:translateX(120%)}
.btn.ghost{border:1px solid var(--line);color:var(--mist)}
.btn.ghost:hover{border-color:var(--mist2)}
.btn svg{transition:transform .2s}
.btn:hover svg{transform:translateX(3px)}
.globe-box{position:relative;aspect-ratio:1/1;max-width:560px;width:100%;justify-self:end;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.globe-box:active{cursor:grabbing}
#globe{width:100%;height:100%;display:block}
.globe-tag{position:absolute;left:0;bottom:6%;font-family:var(--mono);font-size:11.5px;color:var(--mist2);letter-spacing:.06em;line-height:1.7;pointer-events:none}
.globe-tag b{color:var(--amber);font-weight:500}
.drag{position:absolute;right:4%;top:6%;font-family:var(--mono);font-size:11px;color:var(--mist2);letter-spacing:.08em;pointer-events:none}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;padding-block:40px 20px;gap:24px}.globe-box{justify-self:center;max-width:min(440px,86vw)}}

/* entrada del hero (solo con JS; sin JS todo es visible) */
.js .hero .in-up{opacity:0;transform:translateY(18px);animation:up .9s var(--ease) forwards}
.js .hero .lede{animation-delay:.35s}
.js .hero .ctas{animation-delay:.5s}
.js .hero .eyebrow{animation-delay:.05s}
.js .hero h1 .w{opacity:0;transform:translateY(.55em) rotate(2deg);animation:word .8s var(--ease) forwards;animation-delay:calc(.12s + var(--i,0)*.07s)}
.js .hero h1 em .w{animation:word .8s var(--ease) forwards,shine 6s ease-in-out infinite;animation-delay:calc(.12s + var(--i,0)*.07s),0s}
.js .hero .globe-box{opacity:0;transform:scale(.92);animation:pop 1.2s var(--ease) .2s forwards}
@keyframes up{to{opacity:1;transform:none}}
@keyframes word{to{opacity:1;transform:none}}
@keyframes pop{to{opacity:1;transform:none}}

/* cintas */
.ticker{border-block:1px solid var(--line);overflow:hidden;background:var(--navy)}
.ticker .track{display:flex;gap:48px;width:max-content;padding-block:15px;animation:slide 48s linear infinite;font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--mist2);white-space:nowrap}
.ticker .track.rev{animation-direction:reverse;animation-duration:60s;border-top:1px solid var(--line);color:var(--mist)}
.ticker .track span b{color:var(--mist);font-weight:500;margin-right:10px}
.ticker .track.rev span::before{content:"◆";color:var(--amber);margin-right:14px;font-size:9px;vertical-align:2px}
.ticker:hover .track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}

/* bandas */
.band{padding-block:96px}
.band .head{display:grid;gap:14px;max-width:760px;margin-bottom:48px}
.band .head.tight{margin-bottom:0}
.band h2{font-size:clamp(34px,4.6vw,60px);font-weight:750}
.band .head p{font-size:18px;color:var(--mist2);max-width:60ch}
.band.top0{padding-top:0}
@media (max-width:700px){.band{padding-block:64px}.band .head{margin-bottom:32px}}

/* aparición al bajar: sin JS todo es visible; con JS entra con un pequeño desplazamiento */
.js .rise{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rise.in{opacity:1;transform:none}
.js .stagger>*{opacity:0}
.js .stagger.in>*{opacity:1;animation:up2 .7s var(--ease) backwards;animation-delay:calc(var(--n,0)*.1s)}
.js .stagger.in>:nth-child(2){--n:1}.js .stagger.in>:nth-child(3){--n:2}.js .stagger.in>:nth-child(4){--n:3}.js .stagger.in>:nth-child(5){--n:4}.js .stagger.in>:nth-child(6){--n:5}
@keyframes up2{from{opacity:0;transform:translateY(18px)}}

/* qué hacemos */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.step{padding:28px 24px 8px 0;border-right:1px solid var(--line);display:grid;gap:14px;align-content:start;position:relative}
.step:last-child{border-right:0}
.step + .step{padding-left:24px}
.step .num{font-family:var(--mono);font-size:12px;color:var(--amber);letter-spacing:.1em}
.step h3{font-size:28px;font-weight:700}
.step p{color:var(--mist2);font-size:15.5px}
.step::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--amber);transition:width .6s ease}
.step:hover::before,.steps.in .step::before{width:100%}
.steps.in .step:nth-child(2)::before{transition-delay:.25s}.steps.in .step:nth-child(3)::before{transition-delay:.5s}.steps.in .step:nth-child(4)::before{transition-delay:.75s}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.step:nth-child(2){border-right:0}.step:nth-child(3){padding-left:0}.step:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}.step{border-right:0;padding-left:0!important;border-top:1px solid var(--line)}.step:first-child{border-top:0}}

/* IA */
.ai{background:linear-gradient(180deg,var(--ink),var(--navy) 60%,var(--ink))}
.ai .grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.ai h2{margin-top:14px}
.ai .intro{font-size:18px;color:var(--mist2);margin-top:18px;max-width:58ch}
.net{width:100%;max-width:560px;margin:0 auto;display:block;overflow:visible}
.net .ring{fill:none;stroke:rgba(221,220,234,.10);stroke-width:1}
.net .thread{stroke:rgba(104,149,226,.22);stroke-width:1}
.net .spoke{stroke:rgba(104,149,226,.55);stroke-width:1.5;stroke-dasharray:3 9;animation:flow 1.6s linear infinite}
.net .spoke.thin{stroke:rgba(104,149,226,.28);stroke-width:1;animation-duration:2.6s}
.net .spoke.h{stroke:var(--amber);stroke-width:2;animation-duration:1.1s}
@keyframes flow{to{stroke-dashoffset:-24}}
.net .orbit{transform-origin:270px 240px;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.net .dot{fill:var(--blue)}
.net .agent .body{fill:var(--navy2);stroke:var(--blue);stroke-width:1.5;transition:fill .2s}
.net .agent.out .body{stroke:rgba(104,149,226,.7);fill:#171A33}
.net .agent:hover .body{fill:#2A2F5A}
.net text{font-family:var(--mono);font-size:10.5px;fill:var(--mist);text-anchor:middle;letter-spacing:.03em}
.net .agent .glow{fill:none;stroke:var(--blue);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center;animation:ping 4.8s ease-out infinite}
.net .agent:nth-of-type(2) .glow{animation-delay:.4s}.net .agent:nth-of-type(3) .glow{animation-delay:.8s}.net .agent:nth-of-type(4) .glow{animation-delay:1.2s}.net .agent:nth-of-type(5) .glow{animation-delay:1.6s}.net .agent:nth-of-type(6) .glow{animation-delay:2s}.net .agent:nth-of-type(7) .glow{animation-delay:2.4s}.net .agent:nth-of-type(8) .glow{animation-delay:2.8s}.net .agent:nth-of-type(9) .glow{animation-delay:3.2s}.net .agent:nth-of-type(10) .glow{animation-delay:3.6s}.net .agent:nth-of-type(11) .glow{animation-delay:4s}.net .agent:nth-of-type(12) .glow{animation-delay:4.4s}
@keyframes ping{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}
.net .core circle{fill:#24284A;stroke:var(--mist);stroke-width:1.5}
.net .core text{font-size:11px}
.net .core .halo{fill:none;stroke:var(--amber);stroke-width:1;stroke-dasharray:2 6;animation:spin 18s linear infinite reverse;transform-origin:270px 240px}
.net .human rect{fill:#2A1C06;stroke:var(--amber);stroke-width:1.5}
.net .human text{fill:#FFD38A;font-size:11px}
.cards{display:grid;gap:14px;margin-top:28px}
.card{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:16px;background:rgba(10,12,24,.5);transition:border-color .25s,transform .25s,box-shadow .25s}
.card:hover{border-color:rgba(104,149,226,.5);transform:translateX(4px);box-shadow:0 12px 40px rgba(0,0,0,.25)}
.card i{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--navy2);color:var(--amber);font-style:normal;transition:transform .3s var(--ease)}
.card:hover i{transform:rotate(-8deg) scale(1.08)}
.card h3{font-size:19px;font-weight:700;font-stretch:110%}
.card p{color:var(--mist2);font-size:15px;margin-top:4px}
.log{margin-top:28px;border:1px solid var(--line);border-radius:16px;background:#070912;font-family:var(--mono);font-size:12.5px;overflow:hidden}
.log .top{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);color:var(--mist2);font-size:11.5px;letter-spacing:.06em}
.log .top i{width:8px;height:8px;border-radius:50%;background:#3B9E6B;box-shadow:0 0 10px #3B9E6B;animation:blink 2s ease-in-out infinite}
@keyframes blink{50%{opacity:.35}}
.log ol{list-style:none;margin:0;padding:12px 14px;display:grid;gap:6px;min-height:150px}
.log li{color:var(--mist2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.js .log li.new{animation:logIn .4s var(--ease)}
@keyframes logIn{from{opacity:0;transform:translateX(-6px)}}
.log li b{color:var(--blue);font-weight:500}
.log li.hum b{color:var(--amber)}
.log li.cur::after{content:"▍";color:var(--amber);animation:blink 1s steps(1) infinite;margin-left:2px}
@media (max-width:900px){.ai .grid{grid-template-columns:1fr}}

/* plataforma */
.platform{background:var(--navy)}
.platform .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.pipe{position:relative;border:1px solid var(--line);border-radius:20px;padding:36px 28px;background:var(--ink);display:grid;gap:22px}
.pipe-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;position:relative}
.pipe-row::before{content:"";position:absolute;left:12%;right:12%;top:22px;height:2px;background:var(--line)}
.pulse{position:absolute;top:18px;left:12%;width:10px;height:10px;border-radius:50%;background:var(--amber);box-shadow:0 0 18px var(--amber);animation:run 4.2s cubic-bezier(.6,0,.4,1) infinite}
@keyframes run{0%{left:12%}100%{left:calc(88% - 10px)}}
.pnode{display:grid;justify-items:center;gap:10px;text-align:center;position:relative}
.pnode i{width:46px;height:46px;border-radius:50%;border:1px solid var(--blue);background:var(--navy2);display:grid;place-items:center;font-style:normal;font-family:var(--mono);font-size:12px;color:var(--blue);animation:beat 4.2s cubic-bezier(.6,0,.4,1) infinite}
.pnode:nth-child(3) i{animation-delay:1.05s}.pnode:nth-child(4) i{animation-delay:2.1s}.pnode:nth-child(5) i{animation-delay:3.15s}
@keyframes beat{0%,18%,100%{box-shadow:0 0 0 0 rgba(252,159,13,0);border-color:var(--blue)}8%{box-shadow:0 0 0 6px rgba(252,159,13,.18);border-color:var(--amber)}}
.pnode span{font-size:13px;color:var(--mist2)}
.pipe-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--mist2);border-top:1px solid var(--line);padding-top:16px}
.pipe-foot b{color:var(--mist);font-weight:500}
@media (max-width:900px){.platform .wrap{grid-template-columns:1fr;gap:36px}}
@media (max-width:480px){.pipe{padding:28px 16px}.pnode span{font-size:12px}}

/* mercados */
.markets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.mk{background:var(--ink);padding:26px 24px;display:grid;gap:6px;transition:background .25s;position:relative;overflow:hidden}
.mk::after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;border:1px solid transparent;transition:border-color .3s,transform .5s}
.mk:hover{background:var(--navy)}
.mk:hover::after{border-color:rgba(104,149,226,.35);transform:scale(1.6)}
.mk .code{font-family:var(--display);font-stretch:125%;font-weight:800;font-size:40px;color:var(--mist);line-height:1}
.mk .name{font-weight:600}
.mk .meta{font-family:var(--mono);font-size:12px;color:var(--mist2);letter-spacing:.04em}
@media (max-width:760px){.markets{grid-template-columns:repeat(2,minmax(0,1fr))}.mk{padding:20px 18px}}

/* principios */
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.pr{border:1px solid var(--line);border-radius:18px;padding:28px;display:grid;gap:10px;transition:border-color .25s,background .25s,transform .25s}
.pr:hover{border-color:rgba(252,159,13,.45);background:rgba(22,25,45,.6);transform:translateY(-3px)}
.pr h3{font-size:24px;font-weight:700}
.pr p{color:var(--mist2)}
@media (max-width:760px){.principles{grid-template-columns:1fr}.pr{padding:22px}}

/* contacto */
.contact{border-top:1px solid var(--line)}
.contact .wrap{display:grid;gap:28px;justify-items:start}
.contact h2{font-size:clamp(40px,6vw,84px);font-weight:800;max-width:15ch}
.mail{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.mail code{font-family:var(--mono);font-size:clamp(17px,2.2vw,24px);color:var(--mist);user-select:all;border-bottom:1px solid var(--amber);padding-bottom:4px;word-break:break-all}
.copy{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--mist);font:500 13px var(--mono);cursor:pointer;transition:border-color .2s,background .2s}
.copy:hover{border-color:var(--mist2)}
.copy.ok{border-color:var(--amber);color:var(--amber)}
.copy.warn{border-color:var(--mist2);color:var(--mist)}
.who{display:flex;flex-wrap:wrap;gap:10px}
.who span{font-family:var(--mono);font-size:12px;letter-spacing:.06em;border:1px solid var(--line);border-radius:999px;padding:7px 14px;color:var(--mist2)}

footer{border-top:1px solid var(--line);padding-block:28px 40px;font-size:13px;color:var(--mist2)}
footer .wrap{display:grid;gap:18px}
footer .row{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center}
footer img{height:34px;width:auto;display:block}
footer .legal{font-size:12.5px;line-height:1.7;max-width:70ch}
footer .legal a,footer .row a{color:var(--mist2);text-decoration:underline;text-decoration-color:rgba(163,164,194,.4);text-underline-offset:3px}
footer .legal a:hover,footer .row a:hover{color:var(--mist);text-decoration-color:var(--amber)}
footer nav{display:flex;flex-wrap:wrap;gap:8px 18px}

/* página legal */
.doc{padding-block:56px 96px}
.doc .wrap{max-width:780px}
.doc h1{font-size:clamp(36px,5vw,56px);font-weight:800;margin-top:14px}
.doc h2{font-size:clamp(24px,3vw,32px);font-weight:700;margin-top:48px;padding-top:28px;border-top:1px solid var(--line)}
.doc h3{font-size:19px;font-weight:700;margin-top:28px}
.doc p,.doc li{color:var(--mist2);margin-top:12px}
.doc ul{padding-left:20px;margin:0}
.doc li{margin-top:8px}
.doc strong{color:var(--mist);font-weight:600}
.doc a{color:var(--mist);text-decoration-color:var(--amber);text-underline-offset:3px}
.doc .meta{font-family:var(--mono);font-size:12px;color:var(--mist2);margin-top:10px;letter-spacing:.04em}
.doc table{width:100%;border-collapse:collapse;margin-top:14px;font-size:15px}
.doc td{padding:10px 12px 10px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--mist2)}
.doc td:first-child{color:var(--mist);font-weight:600;white-space:nowrap;width:34%}
@media (max-width:560px){.doc td{display:block;padding:8px 0 0}.doc td:first-child{width:auto;padding-top:14px}.doc td:last-child{padding-bottom:12px;border-bottom:1px solid var(--line)}.doc td:first-child{border-bottom:0}}
.i18n[lang]{display:none}
html[lang="en"] .i18n[lang="en"],html[lang="es"] .i18n[lang="es"],html[lang="ru"] .i18n[lang="ru"]{display:block}
.nf .eyebrow{margin-top:40px}.nf .cta{margin-top:28px}
.back{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--mist2);font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.back:hover{color:var(--mist)}

/* cambio de idioma: fundido suave del contenido */
.js main,.js footer{transition:opacity .25s ease}
.js.fading main,.js.fading footer{opacity:0}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .js .rise,.js .stagger>*,.js .hero .in-up,.js .hero h1 .w,.js .hero .globe-box{opacity:1;transform:none}
}
