/* Finanzas Automáticas · tokens en identidad/DESIGN.md */
@font-face{font-family:"Space Grotesk";src:url(fonts/space-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url(fonts/space-grotesk-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(fonts/instrument-serif-latin-400-italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}

:root{
  --ink:#050A1A; --bg:#070D1F; --surface:#0D1630; --surface-2:#121D3D;
  --line:rgb(148 170 220 / .16);
  --text:#EEF2FA; --text-muted:#9AA6C3;
  --accent:#F59E0B; --accent-contrast:#1A1203;
  --blue:#3B82F6; --cyan:#22D3EE; --lime:#A3E635;
  --signal:linear-gradient(100deg,#2F6BFF 0%,#22D3EE 50%,#A3E635 100%);
  --paper:#F4F1EA; --paper-text:#121726;

  --font-display:"Space Grotesk",system-ui,sans-serif;
  --font-body:"IBM Plex Sans",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --font-serif:"Instrument Serif",Georgia,serif;

  --step--1:clamp(.83rem,.8rem + .2vw,.94rem);
  --step-0:clamp(1rem,.96rem + .25vw,1.13rem);
  --step-1:clamp(1.2rem,1.1rem + .5vw,1.45rem);
  --step-2:clamp(1.5rem,1.25rem + 1.2vw,2.2rem);
  --step-3:clamp(2rem,1.5rem + 2.5vw,3.5rem);
  --step-5:clamp(2.6rem,1.6rem + 5vw,6.2rem);
  --tracking-tight:-.035em;

  --space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--space-32:8rem;
  --radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1.5rem;--radius-full:999px;
  --shadow-lg:0 30px 60px -20px rgb(0 0 0 / .55),0 10px 20px -10px rgb(0 0 0 / .4);
  --ease-out:cubic-bezier(.16,1,.3,1);--dur-fast:150ms;--dur-base:300ms;--dur-slow:700ms;
  --wrap:min(1240px,100% - 2.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--step-0)/1.65 var(--font-body);overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.wrap{width:var(--wrap);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:1rem;top:1rem;z-index:200;background:var(--accent);color:var(--accent-contrast);padding:.5rem 1rem;border-radius:var(--radius-sm)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-tight);line-height:1.02;margin:0}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-1);letter-spacing:-.02em;line-height:1.15}
em.s{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.kicker{font:400 .78rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);display:inline-flex;gap:.6rem;align-items:center}
.kicker::before{content:"";width:28px;height:2px;background:var(--signal)}
.lead{font-size:var(--step-1);color:var(--text-muted);line-height:1.5;max-width:38ch}

/* Botones */
.btn{display:inline-flex;align-items:center;gap:.6rem;min-height:52px;padding:.85rem 1.4rem;border-radius:var(--radius-full);font:600 1rem/1 var(--font-body);text-decoration:none;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-base),box-shadow var(--dur-base)}
.btn svg{width:20px;height:20px;flex:none}
.btn-primary{background:var(--accent);color:var(--accent-contrast);box-shadow:0 10px 30px -10px rgb(245 158 11 / .7)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px -12px rgb(245 158 11 / .85)}
.btn-ghost{border:1px solid var(--line);color:var(--text);background:rgb(255 255 255 / .03)}
.btn-ghost:hover{background:rgb(255 255 255 / .08);transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}

/* Cabecera */
.top{position:fixed;inset:0 0 auto;z-index:50;transition:background var(--dur-base),backdrop-filter var(--dur-base),border-color var(--dur-base);border-bottom:1px solid transparent}
.top.is-solid{background:rgb(5 10 26 / .82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;font:700 1.1rem/1 var(--font-display);letter-spacing:-.02em}
.brand img{width:40px;height:auto}
.nav{display:flex;gap:1.8rem;align-items:center}
.nav a{text-decoration:none;font-size:.95rem;color:var(--text-muted);transition:color var(--dur-fast)}
.nav a:hover{color:var(--text)}
.nav .btn{min-height:42px;padding:.6rem 1.1rem;font-size:.92rem;color:var(--accent-contrast)}
@media (max-width:860px){.nav a:not(.btn){display:none}.top .wrap{height:64px}.brand span{font-size:1rem}}

/* Hero */
.hero{position:relative;min-height:100svh;display:grid;align-items:end;padding:120px 0 var(--space-16);isolation:isolate;overflow:hidden}
.hero__img{position:absolute;inset:0;z-index:-2}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;transform:scale(1.04);animation:drift 18s var(--ease-out) forwards}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(5 10 26 / .96) 0%,rgb(5 10 26 / .8) 38%,rgb(5 10 26 / .15) 75%),linear-gradient(0deg,var(--bg) 0%,transparent 35%)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:var(--space-12);align-items:end}
.hero h1{font-size:clamp(2.4rem,1.4rem + 2.8vw,4rem);max-width:14ch;margin:var(--space-6) 0}
.hero h1 em.s{background:var(--signal);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em}
.hero .lead{margin:0 0 var(--space-8)}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.hero__card{justify-self:end;width:min(320px,100%);padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:rgb(13 22 48 / .55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hero__card p{margin:.4rem 0 0;font-size:.92rem;color:var(--text-muted);line-height:1.5}
.hero__card .kicker{font-size:.7rem}
.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgb(163 230 53 / .6);animation:pulse 2.2s infinite}
@keyframes pulse{to{box-shadow:0 0 0 12px rgb(163 230 53 / 0)}}
@keyframes drift{to{transform:scale(1)}}
@media (max-width:860px){
  .hero{min-height:auto;padding:88px 0 var(--space-12);align-items:start}
  .hero::before{background:linear-gradient(180deg,rgb(5 10 26 / .55) 0%,rgb(5 10 26 / .92) 52%,var(--bg) 100%)}
  .hero__img img{object-position:78% 30%}
  .hero__grid{grid-template-columns:1fr;gap:var(--space-8)}
  .hero h1{font-size:clamp(2.35rem,10.5vw,3.4rem);margin:var(--space-4) 0}
  .hero .lead{font-size:1.05rem;margin-bottom:var(--space-6)}
  .hero__cta .btn{flex:1 1 100%;justify-content:center}
  .hero__card{justify-self:stretch;width:100%}
}

/* Franja de riesgo */
.risk{border-block:1px solid var(--line);background:var(--ink)}
.risk .wrap{display:grid;grid-template-columns:auto 1fr;gap:var(--space-6);padding-block:var(--space-6);align-items:start}
.risk strong{font:500 .78rem/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);white-space:nowrap;padding-top:.2rem}
.risk p{margin:0;font-size:.95rem;color:var(--text-muted);max-width:95ch}
@media (max-width:640px){.risk .wrap{grid-template-columns:1fr;gap:var(--space-2)}}

section{position:relative}
.sec{padding-block:clamp(4.5rem,9vw,8.5rem)}
.sec__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-8);align-items:end;margin-bottom:var(--space-16)}
.sec__head p{margin:0;color:var(--text-muted);max-width:46ch;justify-self:end}
@media (max-width:860px){.sec__head{grid-template-columns:1fr;margin-bottom:var(--space-12)}.sec__head p{justify-self:start}}

/* Por qué: bento */
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(150px,auto);gap:var(--space-4)}
.tile{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-8);background:var(--surface);overflow:hidden;transition:border-color var(--dur-base),transform var(--dur-base) var(--ease-out)}
.tile:hover{border-color:rgb(148 170 220 / .35);transform:translateY(-3px)}
.tile h3{margin-bottom:var(--space-3)}
.tile p{margin:0;color:var(--text-muted);font-size:.98rem}
.tile .num{font:400 .75rem/1 var(--font-mono);color:var(--text-muted);letter-spacing:.1em;display:block;margin-bottom:var(--space-6)}
.tile--img{grid-column:span 7;grid-row:span 2;padding:0;min-height:420px}
.tile--img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile--img figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--space-8);background:linear-gradient(0deg,rgb(5 10 26 / .92),transparent);font-family:var(--font-display);font-size:var(--step-2);letter-spacing:-.03em;line-height:1.05}
.tile--a{grid-column:span 5}
.tile--b{grid-column:span 5;background:var(--surface-2)}
.tile--c{grid-column:span 4}
.tile--d{grid-column:span 8;display:grid;grid-template-columns:1fr auto;gap:var(--space-8);align-items:center}
.tile--d svg{width:min(320px,40vw);height:auto}
@media (max-width:860px){.bento{grid-template-columns:1fr}.tile--img,.tile--a,.tile--b,.tile--c,.tile--d{grid-column:auto;grid-row:auto}.tile--img{min-height:340px}.tile--d{grid-template-columns:1fr}.tile--d svg{width:100%}}
.spark path{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.spark .grid{stroke:var(--line);stroke-width:1}
.draw{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 2.2s var(--ease-out)}
.is-in .draw{stroke-dashoffset:0}

/* Modalidades */
.plans{background:var(--paper);color:var(--paper-text)}
.plans .kicker{color:#5B6478}
.plans .sec__head p{color:#4A5266}
.plans__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-6)}
.star{position:relative;border-radius:var(--radius-lg);padding:clamp(1.75rem,4vw,3.5rem);background:var(--ink);color:var(--text);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:480px;box-shadow:var(--shadow-lg)}
.star::before{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgb(34 211 238 / .35),transparent 65%);filter:blur(10px)}
.star__tag{display:inline-flex;align-self:flex-start;gap:.5rem;align-items:center;padding:.4rem .8rem;border-radius:var(--radius-full);border:1px solid rgb(245 158 11 / .5);color:var(--accent);font:400 .75rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
.star h3{font-size:var(--step-3);margin:var(--space-6) 0 var(--space-4);max-width:12ch}
.star p{color:var(--text-muted);max-width:44ch;margin:0 0 var(--space-8)}
.star .btn{align-self:flex-start;position:relative}
.plan-list{display:grid;gap:var(--space-4)}
.plan{border:1px solid #D9D3C5;border-radius:var(--radius-lg);padding:var(--space-8);background:#FBF9F4;display:grid;gap:var(--space-3);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base)}
.plan:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgb(18 23 38 / .45)}
.plan__price{font:700 var(--step-3)/1 var(--font-display);letter-spacing:-.04em}
.plan__price small{font:400 1rem/1 var(--font-body);color:#5B6478;letter-spacing:0;margin-left:.3rem}
.plan p{margin:0;color:#4A5266;font-size:.96rem}
.plan a{font-weight:600;color:#0B4FD6;text-underline-offset:4px}
.plan-note{font-size:.85rem;color:#5B6478;margin:var(--space-2) 0 0}
@media (max-width:860px){.plans__grid{grid-template-columns:1fr}.star{min-height:auto}}

/* Proceso */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;border-top:1px solid var(--line)}
.step{padding:var(--space-8) var(--space-6) var(--space-8) 0;border-right:1px solid var(--line);position:relative}
.step:last-child{border-right:0}
.step:not(:first-child){padding-left:var(--space-6)}
.step::before{counter-increment:s;content:"0" counter(s);display:block;font:700 var(--step-3)/1 var(--font-display);letter-spacing:-.04em;margin-bottom:var(--space-6);background:var(--signal);-webkit-background-clip:text;background-clip:text;color:transparent;width:max-content}
.step p{color:var(--text-muted);margin:.6rem 0 0;font-size:.97rem}
@media (max-width:860px){.steps{grid-template-columns:1fr}.step,.step:not(:first-child){border-right:0;border-bottom:1px solid var(--line);padding:var(--space-6) 0}}

/* Sobre Enrique */
.about__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.about__media{position:relative}
.about__media .big{border-radius:var(--radius-lg);aspect-ratio:4/5;object-fit:cover;width:100%}
.about__media .face{position:absolute;right:-1.5rem;bottom:-1.5rem;width:44%;max-width:200px;border-radius:var(--radius-lg);border:6px solid var(--bg);box-shadow:var(--shadow-lg);aspect-ratio:1;object-fit:cover;object-position:50% 20%}
.about blockquote{margin:0 0 var(--space-8);font:400 var(--step-3)/1.08 var(--font-serif);font-style:italic;letter-spacing:-.02em}
.about p{color:var(--text-muted);max-width:56ch}
.facts{list-style:none;padding:0;margin:var(--space-8) 0 0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.facts li{border-top:1px solid var(--line);padding-top:var(--space-4);font-size:.95rem;color:var(--text-muted)}
.facts strong{display:block;font:700 var(--step-2)/1.1 var(--font-display);color:var(--text);letter-spacing:-.03em;margin-bottom:.3rem}
@media (max-width:860px){.about__grid{grid-template-columns:1fr}.about__media .face{right:.75rem;bottom:-1.25rem;width:36%}.facts{grid-template-columns:1fr}}

/* Galería */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}
.gallery figure{margin:0;border-radius:var(--radius-lg);overflow:hidden;position:relative}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{position:absolute;left:var(--space-4);bottom:var(--space-4);font:400 .72rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:rgb(5 10 26 / .7);padding:.5rem .7rem;border-radius:var(--radius-full)}
.g1{grid-column:1/8;aspect-ratio:16/10}.g2{grid-column:8/13;aspect-ratio:4/5;grid-row:span 2}.g3{grid-column:1/5;aspect-ratio:1}.g4{grid-column:5/8;aspect-ratio:3/4}
@media (max-width:860px){.gallery{grid-template-columns:1fr 1fr}.g1{grid-column:1/-1}.g2{grid-column:1/2;grid-row:auto}.g3{grid-column:2/3;aspect-ratio:4/5}.g4{grid-column:1/-1;aspect-ratio:16/10}}

/* Compromisos */
.promise{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-16)}
.promise div{padding:var(--space-6) 0;border-top:2px solid transparent;border-image:var(--signal) 1}
.promise h3{font-size:1.15rem;margin-bottom:.5rem}
.promise p{color:var(--text-muted);margin:0;font-size:.96rem}
@media (max-width:860px){.promise{grid-template-columns:1fr}}

/* FAQ */
.faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-12)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-6) 0;font:500 var(--step-1)/1.3 var(--font-display);letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.6rem/1 var(--font-mono);color:var(--accent);transition:transform var(--dur-base) var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 var(--space-6);color:var(--text-muted);max-width:62ch}
@media (max-width:860px){.faq__grid{grid-template-columns:1fr;gap:var(--space-6)}}

/* Contacto */
.contact{padding-block:clamp(4.5rem,9vw,8rem);background:radial-gradient(80% 120% at 85% 0%,rgb(47 107 255 / .28),transparent 60%),var(--ink);border-top:1px solid var(--line)}
.contact h2{font-size:var(--step-5);max-width:12ch}
.contact__grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-12);align-items:end}
.contact dl{margin:0;display:grid;gap:var(--space-6)}
.contact dt{font:400 .75rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem}
.contact dd{margin:0;font-size:1.1rem}
.contact dd a{text-underline-offset:4px}
.contact .hero__cta{margin-top:var(--space-8)}
@media (max-width:860px){.contact__grid{grid-template-columns:1fr}}

/* Pie */
footer{border-top:1px solid var(--line);padding-block:var(--space-12);font-size:.88rem;color:var(--text-muted)}
footer .wrap{display:grid;gap:var(--space-6)}
.foot__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-6);align-items:center}
footer nav a{color:var(--text-muted);text-underline-offset:3px;margin-right:1rem}
footer nav a:hover{color:var(--text)}
.foot__risk{max-width:100ch;font-size:.82rem;line-height:1.55}

/* Barra móvil */
.mbar{display:none}
@media (max-width:760px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .mbar{display:flex;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 84px calc(10px + env(safe-area-inset-bottom)) 12px;background:rgb(5 10 26 / .92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);transition:translate .25s ease}
  .mbar.is-off{translate:0 calc(100% + 24px);visibility:hidden}
  .mbar .btn{flex:1;justify-content:center;min-height:48px;padding:.7rem .9rem;font-size:.95rem}
}

/* Páginas legales */
.legal{padding:140px 0 var(--space-24)}
.legal .wrap{max-width:72ch}
.legal h1{font-size:var(--step-3);margin-bottom:var(--space-4)}
.legal h2{font-size:var(--step-1);margin:var(--space-12) 0 var(--space-3)}
.legal p,.legal li{color:var(--text-muted)}
.legal table{width:100%;border-collapse:collapse;margin:var(--space-6) 0;font-size:.92rem;table-layout:fixed}
.legal th,.legal td{border:1px solid var(--line);padding:.7rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.legal th{color:var(--text);background:var(--surface)}
@media (max-width:640px){.legal table,.legal thead,.legal tbody,.legal tr,.legal th,.legal td{display:block}.legal thead{display:none}.legal tr{border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:var(--space-4);padding:.5rem}.legal td{border:0;padding:.35rem .5rem}.legal td::before{content:attr(data-th) ": ";color:var(--text);font-weight:600}}

/* Entradas */
.rv{opacity:0;transform:translateY(28px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}.draw{stroke-dashoffset:0}}
.tile--img{margin:0}
.gallery figcaption{max-width:calc(100% - 2rem);line-height:1.3}
@media (max-width:860px){.star .btn{align-self:stretch;justify-content:center;text-align:center;line-height:1.25}.hero::before{background:linear-gradient(180deg,rgb(5 10 26 / .35) 0%,rgb(5 10 26 / .9) 48%,var(--bg) 100%)}}
