/* ─────────────────────────────────────────────
   SIA ELECTORAL · Shared design system
   Space Grotesk + JetBrains Mono · Teal on dark
   ───────────────────────────────────────────── */

*{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#080F12;
  --bg2:#0C1518;
  --bg3:#101E22;
  --panel:#122329;
  --panel2:#163039;
  --line:rgba(45,212,191,0.12);
  --line2:rgba(45,212,191,0.22);
  --ink:#F0FAFA;
  --ink2:#A8C8C8;
  --muted:#5B8A8A;
  --teal:#2DD4BF;
  --teal2:#1DB8A0;
  --teal-deep:#0E7A6E;
  --teal-soft:rgba(45,212,191,0.10);
  --amber:#F5A623;
  --amber-soft:rgba(245,166,35,0.10);
  --red:#F87171;
  --green:#34D399;
  --wa:#25D366;
  --white:#FFFFFF;
}

html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Space Grotesk',system-ui,sans-serif;
  font-size:15px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.mono{font-family:'JetBrains Mono',monospace}
a{color:inherit}
img,svg{display:block;max-width:100%}

/* ─── NAV ─── */
nav.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:68px;padding:0 6vw;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(8,15,18,0.92);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);
}
.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-brand svg{width:34px;height:34px;flex-shrink:0}
.nav-brand .nm{display:flex;flex-direction:column;line-height:1}
.nav-brand .nm .top{font-weight:700;font-size:17px;letter-spacing:-0.02em;color:var(--ink)}
.nav-brand .nm .top em{color:var(--teal);font-style:normal}
.nav-brand .nm .sub{font-family:'JetBrains Mono';font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);margin-top:1px}
.nav-links{display:flex;gap:28px;list-style:none;align-items:center}
.nav-links a{font-size:14px;color:var(--ink2);text-decoration:none;transition:color .2s;font-weight:500}
.nav-links a:hover,.nav-links a.active{color:var(--teal)}
.nav-right{display:flex;align-items:center;gap:12px}
.btn-nav-ghost{font-size:14px;color:var(--ink2);text-decoration:none;font-weight:500;padding:8px 16px;border-radius:8px;border:1px solid var(--line2);transition:all .2s}
.btn-nav-ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn-nav-cta{font-size:14px;font-weight:600;color:#000;background:var(--teal);padding:9px 20px;border-radius:8px;text-decoration:none;transition:background .2s,transform .15s}
.btn-nav-cta:hover{background:var(--teal2);transform:translateY(-1px)}

/* dropdown */
.has-dropdown{position:relative}
.has-dropdown > a::after{content:'›';display:inline-block;margin-left:5px;transform:rotate(90deg);font-size:11px;opacity:0.55}
.dropdown{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(-6px);
  background:var(--panel);border:1px solid var(--line2);border-radius:12px;
  padding:10px;min-width:260px;
  opacity:0;visibility:hidden;
  transition:opacity .18s,visibility .18s,transform .18s;
  box-shadow:0 25px 60px rgba(0,0,0,0.55);
}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dropdown a{
  display:flex;flex-direction:column;gap:2px;
  padding:9px 12px;border-radius:8px;text-decoration:none;
  color:var(--ink2);font-size:13.5px;font-weight:500;
  transition:background .15s,color .15s;
}
.dropdown a small{font-family:'JetBrains Mono';font-size:10px;color:var(--muted);font-weight:400;letter-spacing:0.05em;line-height:1.4}
.dropdown a:hover{background:var(--teal-soft);color:var(--teal)}
.dropdown a:hover small{color:var(--ink2)}

.nav-mobile-btn{display:none;background:none;border:none;color:var(--ink);padding:8px;cursor:pointer}
.nav-mobile-btn svg{width:24px;height:24px}

/* ─── SHARED PRIMITIVES ─── */
.container{max-width:1160px;margin:0 auto;padding:0 6vw}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'JetBrains Mono';font-size:11px;letter-spacing:0.24em;
  text-transform:uppercase;color:var(--teal);margin-bottom:18px;
}
.dot{width:5px;height:5px;border-radius:50%;background:var(--teal);display:inline-block}
.dot.pulse{animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(45,212,191,0.5)}50%{box-shadow:0 0 0 8px rgba(45,212,191,0)}}
h1,h2,h3,h4,h5{font-weight:700;letter-spacing:-0.03em;line-height:1.05}
h1 em,h2 em,h3 em,h4 em{color:var(--teal);font-style:normal}
h2.section-h{font-size:clamp(34px,4.5vw,62px);font-weight:700;line-height:1.02;letter-spacing:-0.03em}
.section-lead{font-size:clamp(16px,1.4vw,19px);color:var(--ink2);line-height:1.65;margin-top:18px;max-width:640px;font-weight:300}
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--teal);color:#000;font-weight:700;font-size:15px;padding:14px 26px;border-radius:10px;text-decoration:none;transition:background .2s,transform .15s;cursor:pointer;border:none}
.btn-primary:hover{background:var(--teal2);transform:translateY(-2px)}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--ink2);font-weight:500;font-size:15px;padding:14px 26px;border-radius:10px;text-decoration:none;border:1px solid var(--line2);transition:all .2s;cursor:pointer}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}

.fade-up{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}
.fade-up.visible{opacity:1;transform:none}

/* ─── FOOTER ─── */
footer.site-footer{border-top:1px solid var(--line);padding:48px 0 32px;background:var(--bg);margin-top:0}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
.footer-brand .nm{font-size:20px;font-weight:700;letter-spacing:-0.02em;margin-bottom:8px;display:flex;align-items:center;gap:10px}
.footer-brand .nm em{color:var(--teal);font-style:normal}
.footer-brand .nm svg{width:28px;height:28px}
.footer-brand p{font-size:13px;color:var(--muted);line-height:1.6;max-width:280px;margin-top:6px}
.footer-col h5{font-family:'JetBrains Mono';font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.footer-col a{display:block;font-size:13px;color:var(--ink2);text-decoration:none;margin-bottom:10px;transition:color .2s}
.footer-col a:hover{color:var(--teal)}
.footer-bottom{border-top:1px solid var(--line);margin-top:36px;padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.footer-bottom p{font-family:'JetBrains Mono';font-size:10px;color:var(--muted);letter-spacing:0.1em}

/* ─── MODULE PAGE: hero ─── */
.module-hero{
  position:relative;overflow:hidden;
  padding:140px 0 80px;
  border-bottom:1px solid var(--line);
}
.module-hero-bg{
  position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(45,212,191,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(45,212,191,0.035) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:radial-gradient(ellipse 80% 70% at 70% 30%,black,transparent);
}
.module-hero-glow{position:absolute;width:700px;height:500px;top:-100px;right:-150px;border-radius:50%;background:rgba(45,212,191,0.07);filter:blur(120px);pointer-events:none}
.module-hero-glow.alert{background:rgba(248,113,113,0.05)}
.module-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.module-tag{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono';font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--teal);margin-bottom:18px;background:rgba(45,212,191,0.08);border:1px solid rgba(45,212,191,0.25);padding:6px 14px;border-radius:99px}
.module-hero h1{font-size:clamp(42px,5.2vw,68px);line-height:0.97;letter-spacing:-0.04em;margin-bottom:22px}
.module-hero p.lead{font-size:clamp(16px,1.4vw,18px);color:var(--ink2);line-height:1.65;max-width:540px;font-weight:300}
.module-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.module-hero-visual{display:flex;justify-content:center}

/* breadcrumb */
.crumb{display:flex;align-items:center;gap:10px;font-family:'JetBrains Mono';font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.crumb a{color:var(--muted);text-decoration:none;transition:color .2s}
.crumb a:hover{color:var(--teal)}
.crumb .sep{opacity:0.45}

/* sections inside modules */
.module-section{padding:90px 0;border-bottom:1px solid var(--line)}
.module-section:nth-of-type(even){background:var(--bg2)}
.module-section h2{font-size:clamp(32px,3.8vw,48px);margin-bottom:14px}
.module-section .lead{font-size:17px;color:var(--ink2);line-height:1.7;margin-bottom:48px;max-width:640px;font-weight:300}

/* generic two-col */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.four-col{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}

/* feature group lists */
.fg-title{font-family:'JetBrains Mono';font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--teal);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.fl{list-style:none;margin-bottom:32px}
.fl li{font-size:14px;color:var(--ink2);padding:9px 0;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:10px;line-height:1.5}
.fl li:last-child{border-bottom:none}
.fl li::before{content:'—';color:var(--teal);flex-shrink:0;font-family:'JetBrains Mono';font-size:11px;margin-top:3px}

/* stat row */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:32px 0}
.stat-row.four{grid-template-columns:repeat(4,1fr)}
.sc{background:var(--panel);padding:28px 26px}
.sc-label{font-family:'JetBrains Mono';font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.sc-value{font-size:32px;font-weight:700;color:var(--teal);letter-spacing:-0.02em;line-height:1;margin-bottom:6px}
.sc-value.sm{font-size:20px}
.sc-desc{font-size:12.5px;color:var(--ink2);font-weight:300;line-height:1.55}

/* numbered card grid */
.num-grid{display:grid;gap:18px}
.num-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px 30px;transition:border-color .2s,transform .2s}
.num-card:hover{border-color:var(--line2);transform:translateY(-3px)}
.num-card .num{font-family:'JetBrains Mono';font-size:32px;font-weight:700;color:var(--teal);line-height:1;margin-bottom:12px}
.num-card h4{font-size:17px;margin-bottom:8px;letter-spacing:-0.01em}
.num-card p{font-size:13.5px;color:var(--ink2);line-height:1.6;font-weight:300}
.num-card.highlight{background:var(--panel2);border-color:var(--line2)}

/* numbered steps with connector */
.steps-v{display:flex;flex-direction:column}
.steps-v .step{display:flex;gap:18px;padding-bottom:32px;position:relative}
.steps-v .step::before{content:'';position:absolute;left:21px;top:46px;bottom:0;width:1px;background:var(--line)}
.steps-v .step:last-child::before{display:none}
.steps-v .step-num{width:44px;height:44px;border-radius:12px;background:var(--teal-soft);border:1px solid rgba(45,212,191,0.3);display:grid;place-items:center;color:var(--teal);font-family:'JetBrains Mono';font-weight:600;font-size:14px;flex-shrink:0}
.steps-v .step-text h4{font-size:17px;margin-bottom:5px;margin-top:10px}
.steps-v .step-text p{font-size:14px;color:var(--ink2);line-height:1.65;font-weight:300}

/* note */
.nota{background:linear-gradient(135deg,rgba(45,212,191,0.06),transparent);border:1px solid rgba(45,212,191,0.2);border-radius:14px;padding:22px 28px;font-size:14px;color:var(--ink2);line-height:1.7;margin-bottom:14px;font-weight:300}
.nota strong{color:var(--ink);font-weight:600}
.nota.alert{background:linear-gradient(135deg,rgba(248,113,113,0.07),transparent);border-color:rgba(248,113,113,0.25)}

/* problem card */
.prob-box{background:var(--panel2);border:1px solid var(--line2);border-radius:16px;padding:32px 40px;margin-bottom:40px}
.prob-box h3{font-size:20px;margin-bottom:16px}
.prob-box ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.prob-box li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink2);line-height:1.55}
.prob-box li .x{color:var(--red);font-family:'JetBrains Mono';flex-shrink:0;margin-top:1px;font-weight:600}

/* related modules cards (cross-link bottom of page) */
.related-modules{padding:80px 0 100px;background:var(--bg)}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:36px}
.related-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px;text-decoration:none;transition:all .2s;position:relative}
.related-card:hover{border-color:var(--teal);transform:translateY(-3px)}
.related-card .rc-key{font-family:'JetBrains Mono';font-size:10px;letter-spacing:0.2em;color:var(--muted);margin-bottom:10px}
.related-card .rc-name{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:6px;letter-spacing:-0.01em}
.related-card .rc-desc{font-size:12.5px;color:var(--ink2);line-height:1.55;font-weight:300}
.related-card .arrow{position:absolute;top:20px;right:20px;color:var(--muted);transition:color .2s}
.related-card:hover .arrow{color:var(--teal)}

/* CTA block */
.cta-block{padding:120px 0;text-align:center;position:relative;overflow:hidden;background:var(--bg)}
.cta-glow{position:absolute;width:700px;height:500px;left:50%;transform:translateX(-50%);top:-100px;border-radius:50%;background:rgba(45,212,191,0.07);filter:blur(80px);pointer-events:none}
.cta-block .cta-inner{position:relative;z-index:1;max-width:680px;margin:0 auto}
.cta-block h2{font-size:clamp(36px,5vw,60px);margin:0 auto;line-height:1.04}
.cta-block p{font-size:17px;color:var(--ink2);margin-top:18px;line-height:1.65;font-weight:300}
.cta-block .btns{display:flex;justify-content:center;gap:14px;margin-top:36px;flex-wrap:wrap}

/* ─── RESPONSIVE ─── */
@media(max-width:1024px){
  .container{padding:0 5vw}
  nav.site-nav{padding:0 5vw;height:62px}
  .nav-links{display:none}
  .btn-nav-ghost{display:none}
  .module-hero{padding:110px 0 60px}
  .module-hero-inner{grid-template-columns:1fr;gap:48px}
  .two-col{grid-template-columns:1fr;gap:32px}
  .three-col{grid-template-columns:1fr 1fr}
  .four-col{grid-template-columns:1fr 1fr}
  .stat-row,.stat-row.four{grid-template-columns:1fr 1fr}
  .related-grid{grid-template-columns:1fr 1fr}
  .footer-inner{grid-template-columns:1fr 1fr 1fr;gap:32px}
  .footer-brand{grid-column:1 / -1}
  .footer-brand p{max-width:none}
  .module-section{padding:64px 0}
}
@media(max-width:640px){
  .container{padding:0 22px}
  nav.site-nav{padding:0 22px;height:58px}
  .nav-brand .nm .top{font-size:15px}
  .nav-brand .nm .sub{font-size:8px}
  .nav-brand svg{width:30px;height:30px}
  .btn-nav-cta{padding:8px 14px;font-size:13px}
  .module-hero{padding:96px 0 48px}
  .module-tag{font-size:10px;padding:5px 12px}
  .three-col,.four-col,.stat-row,.stat-row.four{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr;gap:10px}
  .footer-inner{grid-template-columns:1fr 1fr;gap:24px}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px}
  .cta-block{padding:80px 0}
  .module-section{padding:56px 0}
  .module-section .lead{margin-bottom:36px}
  .prob-box{padding:24px 22px}
  .sc{padding:22px 20px}
  .sc-value{font-size:26px}
  .num-card{padding:22px 24px}
}
