/* =============================================
   Riesgos · Formularios (plano técnico y comparador)
   ============================================= */
.rk-fm { --fm-bg:#fff; --fm-ink:#14123a; --fm-muted:#5a5878; --fm-line:#e3e1f6; --fm-ind:#4b3df0; --fm-ind-d:#3a2ed0; --fm-soft:#f1efff; --fm-red:#e5484d; --fm-green:#12a37f; }
.rk .sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.rk-fm main { color:var(--fm-ink); }
.fm-wrap { width:100%; max-width:1140px; margin:0 auto; padding:0 28px; }

/* ---------- Hero con plano ---------- */
.fm-hero { position:relative; padding:clamp(48px,7vw,92px) 0 clamp(36px,5vw,64px); background:var(--fm-soft);
  background-image:linear-gradient(rgba(75,61,240,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(75,61,240,.09) 1px,transparent 1px); background-size:26px 26px; }
.fm-hero::after { content:""; position:absolute; inset:auto 0 0 0; height:90px; background:linear-gradient(180deg,transparent,var(--fm-soft)); pointer-events:none; }
.fm-hero .fm-wrap { position:relative; z-index:1; }
.fm-kicker { display:inline-block; padding:6px 11px; border:1.5px solid var(--fm-ind); border-radius:6px; background:#fff; font:700 .7rem/1 'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--fm-ind-d); }
.fm-hero h1 { max-width:860px; margin:18px 0 16px; font-size:clamp(2.2rem,5.4vw,4.4rem); line-height:1; letter-spacing:-.055em; color:var(--fm-ink); }
.fm-hero h1 span { color:var(--fm-ind); }
.fm-lead { max-width:660px; margin:0; color:var(--fm-muted); font-size:clamp(1.02rem,1.5vw,1.18rem); line-height:1.66; }
.fm-lead b { color:var(--fm-ink); }

/* ---------- Laboratorio ---------- */
.fm-lab { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:clamp(18px,3vw,34px); margin-top:clamp(26px,4vw,44px); align-items:start; }
.fm-compare { position:relative; border:1.5px solid var(--fm-ind); border-radius:22px; background:#fff; box-shadow:10px 10px 0 rgba(75,61,240,.14); overflow:hidden; --pos:100%; }
.fm-layer { padding:46px clamp(16px,4vw,44px) 40px; }
.fm-layer--typ { position:absolute; inset:0; background:#fff; clip-path:inset(0 calc(100% - var(--pos)) 0 0); }
.fm-tag { position:absolute; top:14px; padding:5px 10px; border-radius:100px; font:700 .66rem/1 'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.fm-tag--typ { left:14px; background:#ffe9ea; color:#b42328; }
.fm-tag--good { right:14px; background:#dff7ef; color:#0c7a5e; }
.fm-card { max-width:430px; margin:0 auto; padding:22px; border:1px solid var(--fm-line); border-radius:16px; background:#fff; box-shadow:0 18px 40px rgba(30,20,90,.1); }
.fm-card h3 { margin:0 0 4px; font-size:1.15rem; letter-spacing:-.03em; color:var(--fm-ink); }
.fm-card .sub { margin:0 0 14px; color:var(--fm-muted); font-size:.82rem; line-height:1.45; }
.fm-notice { margin:0 0 14px; padding:10px 12px; border-left:3px solid var(--fm-green); border-radius:0 8px 8px 0; background:#ecfaf5; color:#0b5d48; font-size:.76rem; line-height:1.5; }
.fm-notice, .fm-spacer { min-height:88px; box-sizing:border-box; }
.fm-spacer { margin-bottom:14px; }
.fm-field { position:relative; margin-bottom:12px; }
.fm-field label { display:block; margin-bottom:5px; color:var(--fm-ink); font-size:.76rem; font-weight:700; }
.fm-input { display:block; width:100%; height:38px; border:1px solid #d6d3ee; border-radius:9px; background:#faf9ff; }
.fm-input--area { height:92px; }
.fm-help { margin:5px 0 0; color:var(--fm-muted); font-size:.7rem; line-height:1.4; }
.fm-check { position:relative; display:flex; gap:10px; align-items:flex-start; margin:14px 0; font-size:.76rem; line-height:1.45; color:var(--fm-ink); }
.fm-box { flex:none; width:18px; height:18px; margin-top:1px; border:2px solid #7b78a6; border-radius:4px; background:#fff; }
.fm-box.on { border-color:var(--fm-ind); background:var(--fm-ind); position:relative; }
.fm-box.on::after { content:""; position:absolute; left:4px; top:0; width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.fm-check a { color:var(--fm-ind-d); text-decoration:underline; }
.fm-send { display:block; width:100%; padding:11px; border:0; border-radius:100px; background:var(--fm-ind); color:#fff; font:700 .82rem/1 'Inter',sans-serif; text-align:center; }

/* Pines */
.fm-pin { position:absolute; z-index:3; display:grid; place-items:center; width:26px; height:26px; padding:0; border:2px solid #fff; border-radius:50%; background:var(--fm-red); color:#fff; font:800 .74rem/1 'Inter',sans-serif; cursor:pointer; box-shadow:0 4px 12px rgba(229,72,77,.5); transition:transform .2s ease, background .2s ease; }
.fm-pin::before { content:""; position:absolute; inset:-6px; border-radius:50%; border:2px solid rgba(229,72,77,.45); animation:fmPulse 2s ease-out infinite; }
@keyframes fmPulse { from { transform:scale(.7); opacity:1; } to { transform:scale(1.5); opacity:0; } }
.fm-pin:hover { transform:scale(1.12); }
.fm-pin[aria-pressed="true"] { background:var(--fm-ink); box-shadow:0 4px 12px rgba(20,18,58,.5); }
.fm-pin[aria-pressed="true"]::before { border-color:rgba(20,18,58,.4); }
.fm-pin:focus-visible { outline:3px solid var(--fm-ind); outline-offset:3px; }
.fm-pin--1 { right:-13px; top:-8px; }
.fm-pin--2 { left:calc(50% - 13px); top:-10px; }
.fm-pin--3 { left:-34px; top:-3px; }
.fm-pin--4 { right:-13px; top:-4px; }
.fm-pin--5 { right:-13px; top:-8px; }

/* Divisor */
.fm-divider { position:absolute; top:0; bottom:0; left:var(--pos); width:0; z-index:4; pointer-events:none; }
.fm-divider::before { content:""; position:absolute; top:0; bottom:0; left:-1px; width:2px; background:var(--fm-ind); }
.fm-divider i { position:absolute; top:50%; left:-17px; display:grid; place-items:center; width:34px; height:34px; margin-top:-17px; border-radius:50%; background:var(--fm-ind); color:#fff; font:700 .8rem/1 'Inter',sans-serif; box-shadow:0 6px 16px rgba(75,61,240,.45); }
.fm-slider { display:block; width:100%; margin:16px 0 0; height:30px; background:transparent; -webkit-appearance:none; appearance:none; cursor:ew-resize; }
.fm-slider::-webkit-slider-runnable-track { height:6px; border-radius:100px; background:linear-gradient(90deg,var(--fm-ind) var(--pos,100%),#dcd9f3 var(--pos,100%)); }
.fm-slider::-moz-range-track { height:6px; border-radius:100px; background:#dcd9f3; }
.fm-slider::-moz-range-progress { height:6px; border-radius:100px; background:var(--fm-ind); }
.fm-slider::-webkit-slider-thumb { -webkit-appearance:none; width:24px; height:24px; margin-top:-9px; border-radius:50%; background:#fff; border:4px solid var(--fm-ind); box-shadow:0 3px 10px rgba(75,61,240,.4); }
.fm-slider::-moz-range-thumb { width:16px; height:16px; border-radius:50%; background:#fff; border:4px solid var(--fm-ind); }
.fm-slider:focus-visible { outline:3px solid var(--fm-ind); outline-offset:6px; border-radius:100px; }
.fm-hint { margin:6px 0 0; color:var(--fm-muted); font-size:.8rem; }

/* Panel de detalle */
.fm-panel { position:sticky; top:84px; padding:24px; border:1.5px solid var(--fm-ink); border-radius:20px; background:#fff; box-shadow:8px 8px 0 var(--fm-ink); }
.fm-panel__n { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--fm-red); color:#fff; font:800 .9rem/1 'Inter',sans-serif; }
.fm-panel h3 { margin:12px 0 6px; font-size:1.3rem; line-height:1.15; letter-spacing:-.04em; color:var(--fm-ink); }
.fm-panel__num { display:flex; align-items:baseline; gap:10px; margin:10px 0 6px; }
.fm-panel__num b { font-size:3.4rem; font-weight:800; letter-spacing:-.07em; line-height:1; color:var(--fm-ind); }
.fm-panel__num span { color:var(--fm-muted); font-size:.84rem; line-height:1.35; }
.fm-panel p { margin:0 0 12px; color:var(--fm-muted); font-size:.92rem; line-height:1.6; }
.fm-fix { margin-top:14px; padding:12px 14px; border-radius:12px; background:var(--fm-soft); color:var(--fm-ink); font-size:.88rem; line-height:1.55; }
.fm-fix b { display:block; margin-bottom:3px; font:700 .68rem/1 'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--fm-ind-d); }
.fm-panel[data-empty="true"] .fm-panel__n { display:none; }

/* ---------- Secciones ---------- */
.fm-sec { padding:clamp(52px,7vw,96px) 0; }
.fm-sec--soft { background:var(--fm-soft); }
.fm-head { max-width:720px; margin:0 0 clamp(26px,4vw,44px); }
.fm-eyebrow { font:700 .72rem/1.2 'JetBrains Mono',monospace; letter-spacing:.1em; text-transform:uppercase; color:var(--fm-ind-d); }
.fm-head h2 { margin:12px 0 12px; font-size:clamp(1.9rem,3.6vw,3rem); line-height:1.04; letter-spacing:-.05em; color:var(--fm-ink); }
.fm-head p { margin:0; color:var(--fm-muted); font-size:clamp(1rem,1.4vw,1.12rem); line-height:1.66; }
.fm-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.fm-stat { padding:20px; border:1.5px solid var(--fm-ink); border-radius:18px; background:#fff; box-shadow:5px 5px 0 var(--fm-ink); }
.fm-stat b { display:block; font-size:2.7rem; font-weight:800; letter-spacing:-.07em; line-height:1; color:var(--fm-ind); }
.fm-stat span { display:block; margin-top:8px; color:var(--fm-muted); font-size:.84rem; line-height:1.42; }
.fm-stat--ok b { color:var(--fm-green); }

.fm-code { position:relative; max-width:860px; margin:0 auto; border:1.5px solid var(--fm-ink); border-radius:18px; background:#0f0e2c; box-shadow:8px 8px 0 var(--fm-ind); overflow:hidden; }
.fm-code__bar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid rgba(255,255,255,.12); }
.fm-code__bar span { color:#a9a6d6; font:600 .72rem/1 'JetBrains Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }
.fm-code__bar button { padding:8px 13px; border:1px solid rgba(255,255,255,.22); border-radius:8px; background:transparent; color:#fff; font:600 .76rem/1 'Inter',sans-serif; cursor:pointer; }
.fm-code__bar button:hover { background:rgba(255,255,255,.1); }
.fm-code__bar button:focus-visible { outline:2px solid #c9c4ff; outline-offset:2px; }
.fm-code pre { margin:0; padding:20px; overflow-x:auto; color:#d9d6ff; font:500 .8rem/1.7 'JetBrains Mono',monospace; }
.fm-code pre .t { color:#8fb6ff; }
.fm-code pre .s { color:#a7f3d0; }
.fm-codenote { max-width:860px; margin:16px auto 0; color:var(--fm-muted); font-size:.82rem; line-height:1.55; }

.fm-faq details { border-bottom:1px solid var(--fm-line); }
.fm-faq details:first-child { border-top:1px solid var(--fm-line); }
.fm-faq summary { display:flex; justify-content:space-between; gap:18px; padding:20px 2px; color:var(--fm-ink); font-size:1.06rem; font-weight:750; cursor:pointer; list-style:none; }
.fm-faq summary::-webkit-details-marker { display:none; }
.fm-faq summary::after { content:"+"; color:var(--fm-ind); font-size:1.5rem; font-weight:400; transition:transform .2s ease; }
.fm-faq details[open] summary::after { transform:rotate(45deg); }
.fm-faq summary:focus-visible { outline:3px solid var(--fm-ind); outline-offset:2px; }
.fm-faq p { max-width:66ch; margin:-4px 36px 22px 0; color:var(--fm-muted); font-size:.97rem; line-height:1.68; }
.fm-links { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:22px; }
.fm-links a { color:var(--fm-ind-d); font-weight:700; font-size:.92rem; }
.fm-cta { padding:clamp(56px,8vw,100px) 0; text-align:center; color:#fff; background:radial-gradient(640px 300px at 50% 0%,rgba(143,125,255,.4),transparent 65%),linear-gradient(135deg,#1b1658,#3a2ed0); }
.fm-cta .fm-wrap { max-width:760px; }
.fm-cta h2 { margin:0; color:#fff; font-size:clamp(2rem,4.2vw,3.4rem); line-height:1.04; letter-spacing:-.055em; }
.fm-cta p { max-width:540px; margin:16px auto 26px; color:#d8d4ff; font-size:1.05rem; line-height:1.62; }
.fm-cta .btn { background:#fff; color:#2d22b0; }
.fm-cta .btn:hover { background:#efedff; }
.fm-disc { padding:22px 0; background:#ebe9fb; color:#5f5c82; font-size:.76rem; line-height:1.55; text-align:center; }
.fm-disc p { max-width:880px; margin:0 auto; }

@media (max-width: 920px) {
  .fm-lab { grid-template-columns:1fr; }
  .fm-panel { position:static; }
  .fm-stats { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
  .fm-stats { grid-template-columns:1fr; }
  .fm-pin--3 { left:auto; right:-13px; top:-14px; }
}
@media (prefers-reduced-motion: reduce) { .fm-pin::before { animation:none; } .fm-pin { transition:none; } }
