:root{
  --teal:#0F6E56; --teal-d:#04342C; --mint:#E1F5EE; --ink:#1F2421;
  --naranja:#D85A30; --ambar:#EF9F27; --rojo:#E2231A;
  --paper:#ffffff; --mist:#F4FBF8; --line:#DCEAE4; --muted:#5B6B64;
  --hl:#FCE4B8;
  --display:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --body:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --sh:0 6px 24px rgba(4,52,44,.08); --sh-lg:0 22px 60px rgba(4,52,44,.18);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.6;
  -webkit-font-smoothing:antialiased;font-size:17px}
h1,h2,h3,.badge,.boton,.logo,.stat b{font-family:var(--display)}
a{color:var(--teal)}
.contenedor{max-width:1060px;margin:0 auto;padding:0 20px;position:relative;z-index:2}
.paso{display:none}
.paso.activa{display:block}

/* reveal on scroll (degrada a visible si no hay JS) */
.will-reveal{opacity:0;transform:translateY(24px)}
.will-reveal.in{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){.will-reveal{opacity:1;transform:none}}

/* ---------- HEADER ---------- */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}
.top .contenedor{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font-weight:800;font-size:21px;color:var(--teal-d);letter-spacing:-.5px}
.logo b{color:var(--teal)}
.top-cta{display:inline-flex;align-items:center;gap:9px;background:var(--teal);color:#fff;
  font-family:var(--display);font-weight:700;font-size:15px;padding:11px 20px;border-radius:999px;border:none;
  cursor:pointer;text-decoration:none;transition:.15s;box-shadow:0 6px 16px rgba(15,110,86,.25)}
.top-cta:hover{background:var(--teal-d);transform:translateY(-1px)}
.top .precio-mini{background:var(--ambar);color:var(--teal-d);font-weight:800;padding:3px 9px;border-radius:7px;font-size:13px}
.top .precio-mini s{opacity:.65;font-weight:600;margin-right:4px}

/* ---------- HERO ---------- */
.hero{background:radial-gradient(120% 90% at 80% -10%,#d3efe4 0%,var(--mint) 34%,#fff 78%);
  padding:56px 0 64px;position:relative;overflow:hidden}
.blob{position:absolute;border-radius:50%;z-index:0;pointer-events:none}
.blob.b1{width:340px;height:340px;background:rgba(15,110,86,.10);top:-90px;right:-70px}
.blob.b2{width:220px;height:220px;background:rgba(239,159,39,.16);bottom:-60px;left:-40px}
.blob.b3{width:120px;height:120px;background:rgba(216,90,48,.12);top:120px;left:44%}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  color:var(--teal);font-family:var(--display);font-weight:700;font-size:12.5px;letter-spacing:.6px;
  text-transform:uppercase;padding:8px 15px;border-radius:999px;box-shadow:var(--sh)}
.eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--teal);display:inline-block;
  box-shadow:0 0 0 4px rgba(15,110,86,.16)}
.hero h1{font-size:clamp(32px,5.2vw,50px);line-height:1.05;letter-spacing:-1.4px;color:var(--teal-d);
  margin:22px 0 16px;font-weight:800}
.hero h1 span{color:var(--teal)}
.hero h1 .marca{color:var(--teal-d);background:linear-gradient(180deg,transparent 58%,var(--hl) 58%,var(--hl) 92%,transparent 92%);
  padding:0 4px;border-radius:2px;white-space:nowrap}
.hero .lead{font-size:19px;color:var(--muted);max-width:520px;margin-bottom:26px}
.precio-bloque{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.precio-grande{display:flex;align-items:baseline;gap:5px}
.precio-grande .n{font-family:var(--display);font-size:60px;font-weight:800;color:var(--teal);line-height:1;letter-spacing:-2.5px}
.precio-grande .c{font-size:28px;font-weight:800;color:var(--teal)}
.precio-antes{display:flex;flex-direction:column;gap:4px;line-height:1.1}
.precio-antes s{color:var(--muted);font-size:19px}
.precio-antes em{font-style:normal;background:var(--naranja);color:#fff;font-family:var(--display);font-weight:700;
  font-size:11.5px;padding:4px 10px;border-radius:6px;letter-spacing:.3px;text-transform:uppercase}
.cta-grande{display:inline-flex;align-items:center;justify-content:center;gap:11px;background:var(--naranja);
  color:#fff;font-family:var(--display);font-weight:800;font-size:19px;padding:18px 32px;border-radius:15px;
  border:none;cursor:pointer;text-decoration:none;box-shadow:0 12px 26px rgba(216,90,48,.34);transition:.18s}
.cta-grande:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(216,90,48,.44)}
.cta-grande svg{width:22px;height:22px}
.trust-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:24px}
.trust-row span{display:inline-flex;align-items:center;gap:7px;font-size:14.5px;color:var(--teal-d);font-weight:600}
.trust-row svg{color:var(--teal);flex:none;width:18px;height:18px}

/* Signature: tarjeta certificado premium */
.cert-wrap{position:relative;display:flex;justify-content:center}
.cert-glow{position:absolute;width:78%;height:78%;top:11%;left:11%;border-radius:30px;
  background:radial-gradient(circle,rgba(15,110,86,.35),transparent 70%);filter:blur(30px);z-index:0}
.cert-card{background:#fff;border-radius:18px;box-shadow:var(--sh-lg);position:relative;z-index:1;
  border:1px solid var(--line);max-width:400px;overflow:hidden;animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(1.2deg)}50%{transform:translateY(-12px) rotate(1.2deg)}}
.cert-ribbon{height:9px;background:linear-gradient(90deg,var(--teal),var(--teal-d))}
.cert-body{padding:26px 26px 22px;position:relative}
.cert-body:before{content:"";position:absolute;inset:9px 9px;border:1.5px solid var(--mint);border-radius:12px;pointer-events:none}
.cert-badge{position:absolute;top:14px;right:14px;background:var(--mint);color:var(--teal);font-family:var(--display);
  font-weight:700;font-size:10px;letter-spacing:.5px;padding:4px 9px;border-radius:6px}
.cert-top{text-align:center;color:var(--teal);font-weight:700;font-size:11px;letter-spacing:2px;text-transform:uppercase}
.cert-h{text-align:center;font-family:var(--display);font-weight:800;color:var(--teal-d);font-size:22px;margin:12px 0 3px}
.cert-sub{text-align:center;color:var(--ambar);font-weight:700;font-size:14px;margin-bottom:16px}
.cert-line{height:1px;background:var(--line);margin:14px 24px}
.cert-nombre{text-align:center;font-family:var(--display);font-weight:800;font-size:23px;color:var(--teal);margin:8px 0 4px}
.cert-dni{text-align:center;color:var(--muted);font-size:12.5px}
.cert-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:20px;font-size:10.5px;color:var(--muted);line-height:1.4}
.seal{position:absolute;right:-16px;bottom:-16px;width:80px;height:80px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#158a6c,var(--teal));color:#fff;display:flex;align-items:center;
  justify-content:center;box-shadow:0 10px 24px rgba(15,110,86,.45);border:4px solid #fff;z-index:2}
.seal:before{content:"";position:absolute;inset:6px;border:1.5px dashed rgba(255,255,255,.5);border-radius:50%}
.seal svg{width:34px;height:34px}

/* ---------- BANDA CONFIANZA ---------- */
.confianza{background:var(--teal-d);color:#fff;padding:26px 0}
.confianza .contenedor{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;text-align:center}
.stat b{display:block;font-size:26px;font-weight:800;color:var(--ambar);letter-spacing:-.5px;line-height:1}
.stat span{display:block;color:#bfe0d5;font-size:13.5px;margin-top:5px;font-weight:600}
.stat{position:relative}
.stat:not(:last-child):after{content:"";position:absolute;right:-9px;top:8px;bottom:8px;width:1px;background:rgba(255,255,255,.14)}

/* ---------- SECCIONES ---------- */
.seccion{padding:66px 0}
.seccion.alt{background:var(--mist);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-eyebrow{color:var(--teal);font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:1.4px;
  text-transform:uppercase;text-align:center;display:flex;align-items:center;justify-content:center;gap:12px}
.sec-eyebrow:before,.sec-eyebrow:after{content:"";height:2px;width:26px;background:var(--ambar);border-radius:2px}
.sec-titulo{font-size:clamp(27px,3.6vw,36px);line-height:1.13;letter-spacing:-.9px;color:var(--teal-d);
  text-align:center;font-weight:800;margin:14px auto 8px;max-width:730px}
.sec-intro{text-align:center;color:var(--muted);max-width:600px;margin:0 auto 42px;font-size:17.5px}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 24px 26px;box-shadow:var(--sh);
  position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--teal),var(--ambar))}
.card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg)}
.card .ico{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,var(--mint),#cceadf);
  color:var(--teal);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.card .ico svg{width:27px;height:27px}
.card h3{font-size:19.5px;color:var(--teal-d);margin-bottom:8px;font-weight:700}
.card p{color:var(--muted);font-size:15.5px}

.sectores{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sector{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 16px;text-align:center;
  box-shadow:var(--sh);transition:transform .2s,box-shadow .2s}
.sector:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.sector .ico{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:var(--mint);color:var(--teal);
  display:flex;align-items:center;justify-content:center}
.sector .ico svg{width:27px;height:27px}
.sector b{display:block;color:var(--teal-d);font-size:16px;font-weight:700;margin-bottom:3px;font-family:var(--display)}
.sector span{color:var(--muted);font-size:13.5px}

.pasos-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.paso-b{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px 26px;box-shadow:var(--sh);position:relative}
.paso-b .num{font-family:var(--display);font-weight:800;font-size:18px;color:#fff;
  background:linear-gradient(135deg,var(--teal),var(--teal-d));width:44px;height:44px;border-radius:13px;
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;box-shadow:0 8px 18px rgba(15,110,86,.3)}
.paso-b h3{font-size:19.5px;color:var(--teal-d);margin-bottom:7px;font-weight:700}
.paso-b p{color:var(--muted);font-size:15.5px}

.garantias{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 36px;max-width:840px;margin:0 auto}
.gar{display:flex;gap:15px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:20px 22px;box-shadow:var(--sh)}
.gar .chk{flex:none;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--teal-d));
  color:#fff;display:flex;align-items:center;justify-content:center;margin-top:1px}
.gar .chk svg{width:16px;height:16px}
.gar b{display:block;color:var(--teal-d);font-family:var(--display);font-size:16.5px;margin-bottom:3px}
.gar p{color:var(--muted);font-size:15px}

.faq{max-width:760px;margin:34px auto 0}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden;transition:box-shadow .2s}
.faq details[open]{box-shadow:var(--sh)}
.faq summary{list-style:none;cursor:pointer;padding:20px 22px;font-family:var(--display);font-weight:700;
  color:var(--teal-d);font-size:17px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:26px;color:var(--teal);font-weight:300;transition:transform .2s;flex:none}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq .a{padding:0 22px 20px;color:var(--muted);font-size:15.5px}

.cta-band{background:linear-gradient(135deg,var(--teal) 0%,var(--teal-d) 100%);color:#fff;text-align:center;
  padding:64px 20px;position:relative;overflow:hidden}
.cta-band:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;
  background:rgba(239,159,39,.14);top:-120px;right:-60px}
.cta-band h2{color:#fff;font-size:clamp(27px,3.6vw,38px);letter-spacing:-.9px;margin-bottom:12px;font-weight:800}
.cta-band p{color:#cdeee2;font-size:18px;margin-bottom:28px}
.cta-band .cta-grande{background:#fff;color:var(--naranja);box-shadow:0 12px 34px rgba(0,0,0,.22)}
.cta-band .cta-grande:hover{background:#fff}
.cta-band .mini{display:block;margin-top:16px;color:#a9ddcd;font-size:14px}

.pie{background:var(--teal-d);color:#bcd;padding:46px 0 32px;font-size:14px}
.pie .contenedor{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.pie .logo{color:#fff;font-size:22px;margin-bottom:12px}
.pie .logo b{color:var(--ambar)}
.pie p{color:#9db8ae;line-height:1.7;max-width:340px}
.pie a{color:#cfe8df;text-decoration:none}
.pie a:hover{color:#fff}
.pie .links{display:flex;flex-direction:column;gap:8px}

/* Barra de compra fija en móvil */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);
  padding:11px 16px;display:none;align-items:center;justify-content:space-between;gap:12px;
  box-shadow:0 -8px 24px rgba(4,52,44,.12)}
.sticky-cta .p{font-family:var(--display);font-weight:800;color:var(--teal-d);font-size:16px}
.sticky-cta .p s{color:var(--muted);font-weight:600;font-size:13px;margin-right:5px}
.sticky-cta button{background:var(--naranja);color:#fff;font-family:var(--display);font-weight:800;
  border:none;border-radius:11px;padding:13px 22px;font-size:16px;cursor:pointer;box-shadow:0 8px 18px rgba(216,90,48,.32)}

/* ---------- CURSO / TEST / DATOS ---------- */
.curso-wrap{max-width:720px;margin:0 auto;padding:38px 20px 80px}
.paso-titulo{font-size:27px;color:var(--teal-d);letter-spacing:-.6px;margin:4px 0 4px;font-weight:800}
.paso-guia{color:var(--muted);margin-bottom:20px}
.progreso-barra{height:7px;background:var(--line);border-radius:99px;margin-bottom:26px;overflow:hidden}
.progreso-barra i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--ambar));border-radius:99px}
.modulo{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;margin-bottom:16px;box-shadow:var(--sh)}
.modulo h3{color:var(--teal);font-size:19.5px;margin-bottom:10px;font-weight:700;font-family:var(--display)}
.modulo p{font-size:16px;color:#3a4640;margin-bottom:10px}
.modulo p:last-child{margin-bottom:0}
.pregunta{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:14px;box-shadow:var(--sh)}
.pregunta .q{font-family:var(--display);font-weight:700;margin-bottom:14px;color:var(--teal-d);font-size:16.5px}
.opcion{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1.5px solid var(--line);
  border-radius:11px;margin-bottom:9px;cursor:pointer;transition:.12s}
.opcion:hover{border-color:var(--teal);background:var(--mist)}
.opcion input{accent-color:var(--teal);width:19px;height:19px;flex:none}
.opcion.sel{border-color:var(--teal);background:var(--mint)}
.resultado{text-align:center;padding:18px;border-radius:14px;margin:0 0 16px;font-weight:700;font-family:var(--display)}
.resultado.ok{background:var(--mint);color:var(--teal)}
.resultado.ko{background:#fdeceb;color:var(--rojo)}
.campo{margin-bottom:15px}
.campo label{display:block;font-family:var(--display);font-weight:600;font-size:14px;margin-bottom:6px;color:var(--teal-d)}
.campo input{width:100%;font-size:16px;padding:14px;border:1.5px solid var(--line);border-radius:11px;font-family:inherit;background:#fff}
.campo input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,110,86,.12)}
.fila{display:flex;gap:12px}
.fila .campo{flex:1}
.factura-check{display:flex;align-items:center;gap:11px;background:var(--mist);border:1px solid var(--line);
  padding:15px;border-radius:12px;margin:6px 0 16px;font-size:15px;cursor:pointer}
.factura-check input{width:20px;height:20px;accent-color:var(--teal);flex:none}
#camposFactura{display:none}
#camposFactura.abierto{display:block}
.candado{text-align:center;font-size:13.5px;color:var(--muted);margin-top:12px}
.boton{display:block;width:100%;background:var(--teal);color:#fff;border:none;font-family:var(--display);
  font-size:17px;font-weight:700;padding:16px;border-radius:13px;cursor:pointer;text-align:center;
  text-decoration:none;transition:.15s;margin-top:8px}
.boton:hover{background:var(--teal-d)}
.boton.pago{background:var(--naranja);font-size:19px;padding:18px;box-shadow:0 10px 24px rgba(216,90,48,.3)}
.boton.pago:hover{filter:brightness(.95);background:var(--naranja)}
.link-atras{display:inline-block;margin:18px 0 0;color:var(--teal);text-decoration:none;font-weight:600;font-size:15px;cursor:pointer}

.pantalla-centro{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--mist)}
.tarjeta-final{background:#fff;border-radius:20px;padding:42px 30px;max-width:470px;text-align:center;box-shadow:var(--sh-lg)}
.tarjeta-final h1{font-size:25px;color:var(--teal-d);margin:16px 0 10px;font-weight:800}
.tarjeta-final p{color:#444;margin-bottom:10px}
.tarjeta-final .sutil{font-size:13px;color:var(--muted)}
.tarjeta-final .aviso{font-size:14px;color:var(--naranja)}
.check{width:76px;height:76px;border-radius:50%;background:var(--teal);color:#fff;font-size:40px;line-height:76px;margin:0 auto;font-weight:800}
.check.cancel{background:var(--rojo)}
.check.espera{background:var(--ambar)}
.tarjeta-final .boton{max-width:250px;margin:22px auto 0}

@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:38px}
  .cert-wrap{order:-1}
  .cards,.pasos-3{grid-template-columns:1fr}
  .sectores{grid-template-columns:repeat(2,1fr)}
  .garantias{grid-template-columns:1fr}
  .confianza .contenedor{grid-template-columns:repeat(2,1fr);gap:22px 10px}
  .stat:not(:last-child):after{display:none}
  .top .top-cta span:not(.precio-mini){display:none}
  .sticky-cta{display:flex}
  #portada{padding-bottom:74px}
}
@media(max-width:520px){
  body{font-size:16px}
  .seccion{padding:50px 0}
  .hero{padding:38px 0 48px}
  .fila{flex-direction:column;gap:0}
}
.pie .legal-bar{max-width:none;margin-top:26px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#88a89d;text-align:left}
