*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;overflow-x:clip}
/* Guardian de full-bleed: clip no crea contenedor de scroll, de modo
   que el header sticky y el CTA fijo siguen funcionando. */
body{overflow-x:clip}
body{margin:0;background:var(--jpm-cream);color:var(--jpm-ink);font-family:"Nunito Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6;text-rendering:optimizeLegibility}
body.menu-open{overflow:hidden}
a{color:inherit}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}
::selection{background:rgba(236,197,69,.45);color:var(--jpm-purple)}
.wrap{width:var(--wrap);margin-inline:auto}
.skip-link{position:fixed;left:16px;top:12px;z-index:9999;transform:translateY(-150%);background:var(--jpm-purple);color:white;padding:10px 14px;border-radius:10px;text-decoration:none}.skip-link:focus{transform:none}
.eyebrow{font-family:"Rubik",ui-sans-serif,system-ui,sans-serif;font-weight:800;font-size:.73rem;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:var(--jpm-orange)}
h1,h2,h3,h4{font-family:"Rubik",ui-sans-serif,system-ui,sans-serif;letter-spacing:-.035em;color:var(--jpm-purple);margin-top:0}
h1{font-size:clamp(3rem,7vw,7.1rem);line-height:.91;margin-bottom:24px;max-width:10ch}h2{font-size:clamp(2.25rem,4.7vw,4.8rem);line-height:.98;margin-bottom:18px;max-width:16ch}h3{font-size:clamp(1.35rem,2.2vw,1.9rem);line-height:1.08;margin-bottom:10px}
p{margin-top:0}.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--jpm-text);max-width:760px}.muted{color:var(--jpm-muted)}
.section{padding:clamp(70px,9vw,120px) 0}.section.white{background:var(--jpm-white)}.section.deep{background:var(--jpm-purple);color:#fff}.section.deep h2,.section.deep h3{color:#fff}.section.deep .lead,.section.deep .muted{color:rgba(255,255,255,.74)}
.gradient-text{background:var(--jpm-arc);background-size:180% 180%;-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 20px;border-radius:999px;border:1px solid transparent;text-decoration:none;font-family:"Rubik",ui-sans-serif,system-ui,sans-serif;font-weight:800;font-size:.9rem;cursor:pointer;transition:transform var(--motion-micro) var(--ease-state),box-shadow var(--motion-micro) var(--ease-state),background var(--motion-micro) var(--ease-state),border-color var(--motion-micro) var(--ease-state)}
.btn:hover{transform:translateY(-2px)}.btn:focus-visible,.nav-link:focus-visible,.submenu a:focus-visible,.mobile-menu a:focus-visible{outline:3px solid rgba(236,197,69,.72);outline-offset:4px}.btn.primary{background:var(--jpm-purple);color:#fff;box-shadow:var(--shadow-sm)}.btn.arc{background:var(--jpm-arc);background-size:160% 160%;color:#fff;box-shadow:var(--shadow-sm)}.btn.ghost{background:rgba(255,255,255,.66);border-color:rgba(81,11,68,.16);color:var(--jpm-purple)}.btn.light{background:#fff;color:var(--jpm-purple)}.btn.disabled{opacity:.58;cursor:not-allowed;pointer-events:none}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.rule{height:1px;background:var(--jpm-line);border:0;margin:0}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;background:#F6EDF3;color:var(--jpm-purple);font:800 .72rem/1 "Rubik",ui-sans-serif,sans-serif}.status{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--jpm-cream-2);color:var(--jpm-muted);font-size:.72rem;font-weight:800}
.card-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.card{background:#fff;border:1px solid var(--jpm-line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:28px;position:relative;overflow:hidden}.card::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-100px;bottom:-110px;background:radial-gradient(circle,rgba(236,197,69,.24),rgba(204,101,75,.1),transparent 68%);pointer-events:none}.card h3{position:relative;z-index:1}.card p{color:var(--jpm-muted);position:relative;z-index:1}
.kicker-line{display:flex;align-items:center;gap:12px;margin-bottom:18px}.kicker-line::after{content:"";height:1px;background:var(--jpm-line);flex:1;max-width:120px}
@media(max-width:760px){:root{--wrap:min(100% - 28px,1200px)}.section{padding:68px 0}.card{padding:22px}.actions .btn{width:100%}}
