/* ============================================================
   FortiVox — Public Marketing Site
   Dark premium cybersecurity theme
   ============================================================ */

:root {
    --bg-0:#06070d;
    --bg-1:#0b0e18;
    --bg-2:#10141f;
    --bg-3:#161b29;
    --border:#1f2433;
    --text:#e6edf7;
    --muted:#8b94a8;
    --accent:#60a5fa;
    --accent-2:#a855f7;
    --danger:#ef4444;
    --success:#22c55e;
    --warning:#f59e0b;
    --grad: linear-gradient(135deg,#60a5fa 0%,#a855f7 60%,#f472b6 100%);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg-0);color:var(--text);font-family:'Inter','Segoe UI',system-ui,sans-serif;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
a{color:var(--accent);text-decoration:none}
a:hover{color:#93c5fd}
.container{max-width:1240px;margin:0 auto;padding:0 24px}

/* NAV */
.site-nav{position:sticky;top:0;z-index:50;background:rgba(6,7,13,0.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.site-nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;color:#fff;letter-spacing:.3px;text-decoration:none}
.brand i{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:26px}
.brand .fv-logo{display:inline-block;flex-shrink:0}
.brand .fv-logo-nav{height:36px;width:auto}
.brand .fv-logo-footer{height:32px;width:auto}
@media (max-width: 720px){
    .brand{font-size:18px;gap:8px}
    .brand .fv-logo-nav{height:30px}
}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{color:var(--muted);font-weight:500;font-size:14px;transition:color .2s}
.nav-links a:hover{color:#fff}
.nav-cta{display:flex;gap:10px;align-items:center}
.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:22px;cursor:pointer}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:10px;font-weight:600;font-size:14px;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .2s,background .2s;text-decoration:none}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 8px 28px -10px rgba(96,165,250,.55)}
.btn-primary:hover{color:#fff;box-shadow:0 12px 36px -10px rgba(168,85,247,.6)}
.btn-ghost{background:transparent;color:#fff;border-color:var(--border)}
.btn-ghost:hover{border-color:#3b4863;background:rgba(255,255,255,.03)}
.btn-outline{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn-lg{padding:14px 26px;font-size:15px}

/* HERO */
.hero{position:relative;padding:120px 0 100px;overflow:hidden;background:radial-gradient(1200px 600px at 50% -10%,rgba(96,165,250,.18),transparent 60%),radial-gradient(900px 500px at 90% 20%,rgba(168,85,247,.15),transparent 60%),var(--bg-0)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 70%);opacity:.6;pointer-events:none}
.hero-inner{position:relative;text-align:center;max-width:920px;margin:0 auto}
.hero-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.3);color:#bfdbfe;font-size:13px;font-weight:500;margin-bottom:24px}
.hero h1{font-size:clamp(36px,5.4vw,64px);line-height:1.08;font-weight:800;margin:0 0 22px;letter-spacing:-1px}
.hero h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{font-size:18px;color:var(--muted);max-width:680px;margin:0 auto 36px;line-height:1.6}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:80px;max-width:920px;margin-left:auto;margin-right:auto}
.hero-stat{padding:22px;border-radius:14px;background:linear-gradient(180deg,rgba(22,27,41,.7),rgba(11,14,24,.7));border:1px solid var(--border);text-align:left}
.hero-stat .label{font-size:12px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);margin-bottom:8px}
.hero-stat .value{font-size:28px;font-weight:700;color:#fff}
.hero-stat .value.accent{color:var(--accent)}
.hero-stat .value.danger{color:var(--danger)}
.hero-stat .value.success{color:var(--success)}

/* SECTIONS */
section{padding:96px 0;position:relative}
.section-head{text-align:center;max-width:760px;margin:0 auto 56px}
.section-eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--accent);font-weight:600;margin-bottom:12px}
.section-head h2{font-size:clamp(28px,3.6vw,44px);font-weight:800;margin:0 0 14px;letter-spacing:-.5px}
.section-head p{color:var(--muted);font-size:17px;margin:0;line-height:1.6}

/* PRODUCT GRID */
.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.product-card{padding:28px;border-radius:18px;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));border:1px solid var(--border);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;position:relative;overflow:hidden}
.product-card::after{content:"";position:absolute;inset:0;background:radial-gradient(400px 200px at 100% 0%,rgba(96,165,250,.08),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.product-card:hover{transform:translateY(-4px);border-color:#2d3650;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.product-card:hover::after{opacity:1}
.product-icon{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,rgba(96,165,250,.15),rgba(168,85,247,.15));display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:22px;margin-bottom:18px;border:1px solid rgba(96,165,250,.25)}
.product-card h3{margin:0 0 8px;font-size:19px;font-weight:700;color:#fff}
.product-card .short{color:var(--muted);font-size:14px;line-height:1.55;margin-bottom:16px;min-height:48px}
.product-features{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:8px}
.product-features li{font-size:13.5px;color:#cdd5e3;display:flex;align-items:center;gap:8px}
.product-features li i{color:var(--success);font-size:11px}
.product-price{display:flex;align-items:baseline;gap:6px;padding-top:14px;border-top:1px dashed var(--border)}
.product-price .amt{font-size:22px;font-weight:700;color:#fff}
.product-price .cyc{color:var(--muted);font-size:13px}

/* PRICING */
.pricing-cycle-toggle{display:flex;flex-wrap:wrap;gap:6px;padding:6px;margin:0 auto 28px;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;width:max-content;max-width:100%;justify-content:center;align-items:center}
.pricing-cycle-toggle .pct-btn{padding:9px 18px;border-radius:999px;background:transparent;border:0;color:var(--muted);font-weight:600;font-size:14px;letter-spacing:.3px;cursor:pointer;transition:background .2s,color .2s}
.pricing-cycle-toggle .pct-btn:hover{color:#fff}
.pricing-cycle-toggle .pct-btn.is-active{background:var(--grad);color:#fff;box-shadow:0 2px 8px rgba(168,85,247,.25)}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;align-items:stretch}
.plan-card{padding:32px 28px;border-radius:20px;background:var(--bg-2);border:1px solid var(--border);display:flex;flex-direction:column;position:relative;transition:transform .25s,border-color .25s}
.plan-card:hover{transform:translateY(-4px)}
.plan-card.featured{border-color:rgba(168,85,247,.5);background:linear-gradient(180deg,rgba(168,85,247,.08),var(--bg-2))}
.plan-card.featured::before{content:"Most Popular";position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:5px 14px;border-radius:999px;background:var(--grad);color:#fff;font-size:11px;font-weight:700;letter-spacing:1px}
.plan-name{font-size:14px;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted);font-weight:600;margin-bottom:8px}
.plan-price{display:flex;align-items:baseline;gap:6px;margin-bottom:6px}
.plan-price .num{font-size:42px;font-weight:800;color:#fff}
.plan-price .cyc{color:var(--muted);font-size:14px}
.plan-orig{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:6px;font-size:16px}
.plan-orig .orig-label{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}
.plan-orig .orig{position:relative;color:#fca5a5;text-decoration:line-through;text-decoration-color:rgba(239,68,68,.85);text-decoration-thickness:2px;font-weight:700;font-size:18px}
.plan-save{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;border:0;font-size:11px;font-weight:800;letter-spacing:1px;padding:4px 10px;border-radius:999px;text-transform:uppercase;box-shadow:0 4px 12px rgba(34,197,94,.35)}
.plan-promo{position:absolute;top:14px;right:14px;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:5px 11px;border-radius:999px;box-shadow:0 4px 14px rgba(239,68,68,.35)}
.plan-promo i{margin-right:5px}
.plan-savings{font-size:12.5px;color:#86efac;font-weight:600;margin:-2px 0 14px}
.plan-savings strong{color:#bbf7d0}
.plan-desc{color:var(--muted);font-size:13.5px;line-height:1.5;margin:6px 0 22px;min-height:48px}
.plan-features{list-style:none;padding:0;margin:0 0 24px;flex:1;display:flex;flex-direction:column;gap:10px}
.plan-features li{font-size:14px;color:#dbe2ef;display:flex;align-items:flex-start;gap:10px}
.plan-features li i{color:var(--success);font-size:13px;margin-top:3px}

/* THREAT INTEL */
.intel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:32px}
.intel-card{padding:24px;border-radius:16px;background:linear-gradient(160deg,var(--bg-2),var(--bg-1));border:1px solid var(--border);position:relative;overflow:hidden}
.intel-card .ic-label{font-size:12px;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.intel-card .ic-label i{color:var(--accent)}
.intel-card .ic-value{font-size:34px;font-weight:800;color:#fff;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.intel-card .ic-sub{font-size:12.5px;color:var(--muted);margin-top:6px}
.intel-card.danger .ic-value{color:var(--danger)}
.intel-card.warn .ic-value{color:var(--warning)}
.intel-card.ok .ic-value{color:var(--success)}
.intel-list{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.intel-list h4{margin:0;padding:18px 22px;font-size:14px;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.intel-list h4 i{color:var(--danger)}
.intel-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;padding:14px 22px;border-bottom:1px solid var(--border);font-size:13.5px;align-items:center}
.intel-row:last-child{border-bottom:0}
.intel-row .ip{font-family:'JetBrains Mono','SF Mono',monospace;color:#fff;font-weight:600}
.intel-row .country{color:#cdd5e3}
.intel-row .threat{color:var(--warning);font-weight:500;text-transform:capitalize}
.intel-row .severity{justify-self:end;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}
.sev-low{background:rgba(34,197,94,.12);color:var(--success)}
.sev-medium{background:rgba(245,158,11,.12);color:var(--warning)}
.sev-high{background:rgba(239,68,68,.12);color:var(--danger)}
.sev-critical{background:rgba(168,85,247,.15);color:#c084fc}

/* FEATURES */
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.feature-card{padding:26px;border-radius:16px;background:var(--bg-2);border:1px solid var(--border);transition:border-color .2s,transform .2s}
.feature-card:hover{border-color:#2d3650;transform:translateY(-3px)}
.feature-card .ic{width:46px;height:46px;border-radius:10px;background:rgba(96,165,250,.1);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:19px;margin-bottom:16px;border:1px solid rgba(96,165,250,.2)}
.feature-card h4{margin:0 0 8px;color:#fff;font-size:17px;font-weight:700}
.feature-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}

/* CONTACT */
.contact-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:start}
.contact-info h3{font-size:26px;margin:0 0 14px;color:#fff;font-weight:700}
.contact-info p{color:var(--muted);font-size:15px;line-height:1.7;margin:0 0 26px}
.contact-info ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:18px}
.contact-info ul li{display:flex;gap:14px;align-items:flex-start;color:#dbe2ef;font-size:14.5px}
.contact-info ul li i{color:var(--accent);font-size:18px;margin-top:2px;width:24px;text-align:center}
.contact-info ul li small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.contact-form{padding:32px;border-radius:18px;background:var(--bg-2);border:1px solid var(--border)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-field{margin-bottom:16px}
.form-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:8px;text-transform:uppercase;letter-spacing:.8px}
.form-field input,.form-field textarea,.form-field select{width:100%;padding:13px 14px;border-radius:10px;background:var(--bg-1);border:1px solid var(--border);color:#fff;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(96,165,250,.15)}
.form-field textarea{resize:vertical;min-height:130px}
.alert-box{padding:14px 16px;border-radius:10px;font-size:14px;margin-bottom:20px;display:flex;align-items:center;gap:10px}
.alert-box.success{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);color:#86efac}
.alert-box.error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#fca5a5}

/* FOOTER */
.site-footer{background:var(--bg-1);border-top:1px solid var(--border);padding:60px 0 28px;margin-top:80px}
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:40px;margin-bottom:40px}
.footer-brand p{color:var(--muted);font-size:14px;line-height:1.7;margin:14px 0 18px;max-width:320px}
.footer-social{display:flex;gap:10px}
.footer-social a{width:38px;height:38px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .2s}
.footer-social a:hover{color:#fff;border-color:var(--accent);background:rgba(96,165,250,.1)}
.footer-col h5{margin:0 0 18px;font-size:13px;text-transform:uppercase;letter-spacing:1.6px;color:#fff;font-weight:700}
.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.footer-col ul a{color:var(--muted);font-size:14px;transition:color .2s}
.footer-col ul a:hover{color:#fff}
.footer-bottom{padding-top:24px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;color:var(--muted);font-size:13px}

/* CTA STRIP */
.cta-strip{padding:64px 40px;border-radius:24px;background:linear-gradient(135deg,rgba(96,165,250,.12),rgba(168,85,247,.12));border:1px solid rgba(96,165,250,.25);text-align:center;position:relative;overflow:hidden}
.cta-strip h2{font-size:32px;margin:0 0 12px;color:#fff;font-weight:800}
.cta-strip p{color:var(--muted);font-size:16px;margin:0 0 26px;max-width:560px;margin-left:auto;margin-right:auto}

/* RESPONSIVE */
@media (max-width: 980px){
    .nav-links{display:none}
    .nav-toggle{display:block}
    .nav-links.open{display:flex;position:absolute;top:72px;left:0;right:0;background:var(--bg-1);flex-direction:column;padding:18px 24px;border-bottom:1px solid var(--border);gap:14px}
    .hero-stats{grid-template-columns:repeat(2,1fr)}
    .contact-wrap{grid-template-columns:1fr;gap:32px}
    .footer-grid{grid-template-columns:1fr 1fr;gap:30px}
    .intel-row{grid-template-columns:1fr 1fr;gap:6px}
    .intel-row .country,.intel-row .threat{display:none}
    .form-row{grid-template-columns:1fr}
    section{padding:72px 0}
}
@media (max-width: 560px){
    .hero{padding:80px 0 60px}
    .hero-stats{grid-template-columns:1fr 1fr;gap:14px}
    .hero-stat{padding:16px}
    .hero-stat .value{font-size:22px}
    .footer-grid{grid-template-columns:1fr}
    .cta-strip{padding:40px 22px}
}


/* ============================================================
   LIVE SECURITY OVERVIEW (homepage)
   ============================================================ */
.live-overview{padding:88px 0;background:linear-gradient(180deg,var(--bg-0),var(--bg-1))}
.live-grid{display:grid;grid-template-columns:300px 1fr 320px;gap:22px;align-items:stretch}
.live-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:20px;display:flex;flex-direction:column;min-height:480px}
.live-card .lc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.live-card .lc-head h4{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:1.6px;color:#fff;font-weight:700;display:flex;align-items:center;gap:8px}
.live-card .lc-head h4 i{color:var(--accent)}
.live-card .lc-pulse{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--success);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.live-card .lc-pulse::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:fvPulse 1.6s infinite}
@keyframes fvPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

/* Visitor intel card */
.vi-ip{font-family:'JetBrains Mono','SF Mono',monospace;font-size:22px;font-weight:700;color:#fff;letter-spacing:.5px;margin:6px 0 4px;word-break:break-all}
.vi-sub{font-size:13px;color:var(--muted);margin-bottom:18px}
.vi-rows{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.vi-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg-1);border:1px solid var(--border);border-radius:10px;font-size:13.5px}
.vi-row .k{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:1.2px;font-weight:600}
.vi-row .v{color:#fff;font-weight:500;text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vi-flag{display:inline-flex;align-items:center;gap:8px}
.vi-flag .cc{display:inline-flex;align-items:center;justify-content:center;width:26px;height:18px;border-radius:3px;background:var(--bg-3);font-size:10px;font-weight:700;color:#fff;letter-spacing:.5px}
.vi-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px}
.vi-badge.ok{background:rgba(34,197,94,.12);color:var(--success)}
.vi-badge.warn{background:rgba(239,68,68,.12);color:var(--danger)}

/* World map */
.fv-map-wrap{position:relative;background:radial-gradient(900px 500px at 50% 40%,rgba(96,165,250,.08),transparent 70%),var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:14px;min-height:480px;overflow:hidden}
#fv-world-map{width:100%;height:460px;position:relative}
.fv-map-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}
.fv-map-legend{position:absolute;bottom:14px;left:18px;display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.fv-map-legend .lg{display:inline-flex;align-items:center;gap:6px}
.fv-map-legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block}

/* Live threat feed */
.fv-feed{display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:420px;padding-right:4px}
.fv-feed-row{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"sev ip type" "sev country type";gap:2px 10px;padding:9px 12px;background:var(--bg-1);border:1px solid var(--border);border-radius:10px;font-size:12.5px;animation:fvFeedIn .4s ease}
@keyframes fvFeedIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.fv-feed-sev{grid-area:sev;align-self:center;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.fv-feed-sev.sev-low{background:rgba(34,197,94,.15);color:var(--success)}
.fv-feed-sev.sev-medium{background:rgba(245,158,11,.15);color:var(--warning)}
.fv-feed-sev.sev-high{background:rgba(239,68,68,.15);color:var(--danger)}
.fv-feed-sev.sev-critical{background:rgba(168,85,247,.18);color:#c084fc}
.fv-feed-ip{grid-area:ip;font-family:'JetBrains Mono','SF Mono',monospace;color:#fff;font-weight:600;font-size:12.5px}
.fv-feed-country{grid-area:country;color:var(--muted);font-size:11.5px}
.fv-feed-type{grid-area:type;align-self:center;color:#cdd5e3;font-size:11.5px;text-align:right;font-weight:500}
.fv-feed-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}

/* KPI strip */
.live-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:24px}
.live-kpi{padding:16px 18px;border-radius:12px;background:var(--bg-2);border:1px solid var(--border)}
.live-kpi .lk-label{font-size:10.5px;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.live-kpi .lk-value{font-size:24px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.live-kpi.danger .lk-value{color:var(--danger)}
.live-kpi.warn   .lk-value{color:var(--warning)}
.live-kpi.ok     .lk-value{color:var(--success)}
.live-kpi.accent .lk-value{color:var(--accent)}

/* Top countries (under map) */
.fv-tc-row{display:grid;grid-template-columns:120px 1fr 50px;align-items:center;gap:10px;padding:6px 0;font-size:13px}
.fv-tc-name{color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fv-tc-bar{height:8px;background:var(--bg-1);border-radius:999px;overflow:hidden}
.fv-tc-bar span{display:block;height:100%;background:var(--grad);border-radius:999px;transition:width .6s ease}
.fv-tc-num{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}

/* Bottom live grid: 3 columns (top countries, top attack types, recently blocked) */
.live-grid-bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:24px}

/* Ransomware.live live cards (4-up under the attack map) */
.rwlive-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px}
.rwlive-card{background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.rwlive-card .rwlc-label{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:8px}
.rwlive-card .rwlc-label i{color:var(--accent);font-size:13px}
.rwlive-card .rwlc-value{font-size:28px;font-weight:800;color:#fff;line-height:1.1;font-variant-numeric:tabular-nums}
.rwlive-card .rwlc-sub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}

/* Quiet/low-data badge on the map */
.fv-map-quiet{position:absolute;top:18px;right:18px;display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:rgba(96,165,250,.12);border:1px solid rgba(96,165,250,.35);color:#cfe0ff;font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:600;z-index:2}

@media (max-width: 1100px){
    .live-grid{grid-template-columns:1fr;}
    .live-grid-bottom{grid-template-columns:1fr}
    .live-card{min-height:auto}
    .fv-map-wrap{min-height:auto}
    #fv-world-map{height:380px}
    .live-kpis{grid-template-columns:repeat(3,1fr)}
    .rwlive-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 600px){
    .rwlive-grid{grid-template-columns:1fr}
}
/* ============================================================
   LEGAL PAGES (privacy policy, terms, etc.)
   ============================================================ */
.legal-hero{padding:120px 0 50px;background:radial-gradient(1200px 500px at 50% -10%,rgba(96,165,250,.18),transparent 60%),radial-gradient(900px 400px at 90% 30%,rgba(168,85,247,.12),transparent 60%),var(--bg-0);border-bottom:1px solid var(--border)}
.legal-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.3);color:var(--accent);font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:18px}
.legal-hero h1{font-size:44px;font-weight:800;color:#fff;margin:0 0 14px;letter-spacing:-.5px}
.legal-hero .legal-lead{color:var(--muted);font-size:17px;line-height:1.7;max-width:760px;margin:0 0 22px}
.legal-meta{display:flex;flex-wrap:wrap;gap:14px;color:var(--muted);font-size:13.5px}
.legal-meta span{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px}
.legal-meta span i{color:var(--accent)}
.legal-meta .print-btn{cursor:pointer;color:#fff;background:var(--bg-2);border:1px solid var(--border);font-family:inherit}
.legal-meta .print-btn:hover{border-color:var(--accent);color:var(--accent)}
.legal-layout{display:grid;grid-template-columns:260px 1fr;gap:48px;padding:60px 0 90px;align-items:start}
.legal-toc{position:sticky;top:96px;background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:20px;max-height:calc(100vh - 120px);overflow-y:auto}
.legal-toc h4{margin:0 0 14px;font-size:11.5px;text-transform:uppercase;letter-spacing:1.4px;color:#fff;font-weight:700}
.legal-toc ol{list-style:none;counter-reset:toc;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.legal-toc ol li{counter-increment:toc}
.legal-toc ol li a{display:block;padding:8px 10px;border-radius:8px;color:var(--muted);font-size:13px;line-height:1.4;border-left:2px solid transparent;transition:all .15s}
.legal-toc ol li a::before{content:counter(toc, decimal) ". ";color:var(--accent);font-weight:600;margin-right:4px}
.legal-toc ol li a:hover{background:var(--bg-1);color:#fff;border-left-color:var(--accent)}
.legal-content{min-width:0;color:#cdd5e3;font-size:15px;line-height:1.75}
.legal-section{scroll-margin-top:90px;padding-bottom:38px;margin-bottom:38px;border-bottom:1px solid var(--border)}
.legal-section:last-child{border-bottom:0;margin-bottom:0}
.legal-section h2{font-size:26px;color:#fff;margin:0 0 8px;font-weight:700;letter-spacing:-.2px;display:flex;align-items:center;gap:12px}
.legal-section h2 .num{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,rgba(96,165,250,.18),rgba(168,85,247,.18));border:1px solid rgba(96,165,250,.35);color:var(--accent);font-size:14px;font-weight:700}
.legal-section h3{font-size:17px;color:#fff;margin:24px 0 10px;font-weight:600}
.legal-section p{margin:0 0 14px}
.legal-section ul{margin:0 0 16px;padding-left:0;list-style:none}
.legal-section ul li{position:relative;padding:6px 0 6px 26px;color:#cdd5e3}
.legal-section ul li::before{content:"";position:absolute;left:6px;top:14px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.legal-section ul li strong{color:#fff;font-weight:600}
.legal-callout{padding:16px 18px;border-radius:12px;background:rgba(96,165,250,.08);border:1px solid rgba(96,165,250,.25);color:#e6edf7;font-size:14px;line-height:1.65;margin:14px 0 18px;display:flex;gap:12px;align-items:flex-start}
.legal-callout i{color:var(--accent);font-size:18px;margin-top:2px}
.legal-callout strong{color:#fff}
.legal-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:14px}
.legal-contact-card{padding:18px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px}
.legal-contact-card .lbl{font-size:11px;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.legal-contact-card .lbl i{color:var(--accent)}
.legal-contact-card .val{color:#fff;font-size:14.5px;font-weight:500;word-break:break-word}
.legal-contact-card .val a{color:#fff}
.legal-contact-card .val a:hover{color:var(--accent)}
@media (max-width:980px){
    .legal-layout{grid-template-columns:1fr;gap:24px;padding:36px 0 60px}
    .legal-toc{position:static;max-height:none;top:auto}
    .legal-hero{padding:90px 0 36px}
    .legal-hero h1{font-size:32px}
}
@media print{
    .site-nav,.site-footer,.legal-toc,.legal-meta .print-btn{display:none !important}
    body{background:#fff;color:#000}
    .legal-hero{background:#fff;padding:20px 0;border-bottom:1px solid #ccc}
    .legal-hero h1,.legal-section h2,.legal-section h3{color:#000}
    .legal-eyebrow{background:#eef;border-color:#ccc;color:#333}
    .legal-meta span{background:#fff;border-color:#ccc;color:#333}
    .legal-layout{grid-template-columns:1fr;gap:0;padding:0}
    .legal-content,.legal-section ul li,.legal-section p{color:#222}
    .legal-section{border-bottom-color:#ccc;page-break-inside:avoid}
    .legal-section h2 .num{background:#eef;color:#333;border-color:#ccc}
    .legal-callout{background:#f5f8ff;border-color:#ccd}
    .legal-contact-card{background:#fff;border-color:#ccc}
    .legal-contact-card .val,.legal-contact-card .val a{color:#000}
    a{color:#0050a0 !important;text-decoration:underline}
}

@media (max-width: 560px){
    .live-kpis{grid-template-columns:repeat(2,1fr)}
    .live-overview{padding:60px 0}
}



/* EMERGENCY BANNER */
.fv-banner-emergency{position:sticky;top:0;z-index:60;font-size:14px;font-weight:600;border-bottom:1px solid rgba(0,0,0,.25)}
.fv-banner-emergency .fv-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 24px;flex-wrap:wrap}
.fv-banner-emergency .fv-banner-msg{display:inline-flex;align-items:center;gap:10px;line-height:1.4}
.fv-banner-emergency .fv-banner-msg i{font-size:16px}
.fv-banner-emergency .fv-banner-cta{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:rgba(0,0,0,.25);color:#fff;border:1px solid rgba(255,255,255,.25);font-weight:700;font-size:13px;white-space:nowrap;transition:background .15s}
.fv-banner-emergency .fv-banner-cta:hover{background:rgba(0,0,0,.4);color:#fff}
.fv-banner-emergency.fv-banner-info{background:linear-gradient(90deg,#1e3a8a,#1d4ed8);color:#dbeafe}
.fv-banner-emergency.fv-banner-warning{background:linear-gradient(90deg,#7c2d12,#b45309);color:#fef3c7}
.fv-banner-emergency.fv-banner-critical{background:linear-gradient(90deg,#7f1d1d,#b91c1c);color:#fee2e2}
.fv-banner-emergency + .site-nav{top:0}
@media (max-width: 720px){
    .fv-banner-emergency .fv-banner-inner{padding:10px 16px}
    .fv-banner-emergency{font-size:13px}
}

/* INCIDENT RESPONSE PAGE */
.ir-hero{position:relative;padding:96px 0 64px;background:radial-gradient(1200px 500px at 50% -10%,rgba(239,68,68,.18),transparent 60%),radial-gradient(900px 500px at 90% 20%,rgba(168,85,247,.12),transparent 60%),var(--bg-0);overflow:hidden}
.ir-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 70%);opacity:.5;pointer-events:none}
.ir-hero-inner{position:relative;text-align:center;max-width:880px;margin:0 auto}
.ir-hero .pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#fca5a5;font-size:13px;font-weight:600;margin-bottom:22px}
.ir-hero h1{font-size:clamp(34px,5vw,56px);line-height:1.1;font-weight:800;margin:0 0 18px;letter-spacing:-1px}
.ir-hero h1 .grad{background:linear-gradient(135deg,#f87171 0%,#a855f7 60%,#60a5fa 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.ir-hero p.lead{font-size:18px;color:var(--muted);max-width:680px;margin:0 auto 30px;line-height:1.6}
.ir-hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

.ir-section{padding:80px 0}
.ir-section-head{text-align:center;max-width:760px;margin:0 auto 48px}
.ir-section-head .eyebrow{display:inline-block;font-size:13px;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:12px}
.ir-section-head h2{font-size:clamp(28px,3.5vw,40px);margin:0 0 14px;color:#fff;font-weight:800;line-height:1.15}
.ir-section-head p{color:var(--muted);font-size:16px;margin:0;line-height:1.6}

.ir-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ir-step{position:relative;padding:28px;border-radius:16px;background:linear-gradient(180deg,rgba(22,27,41,.85),rgba(11,14,24,.85));border:1px solid var(--border);transition:transform .2s,border-color .2s,box-shadow .2s}
.ir-step:hover{transform:translateY(-4px);border-color:rgba(96,165,250,.4);box-shadow:0 18px 40px -18px rgba(96,165,250,.35)}
.ir-step-num{position:absolute;top:-14px;inset-inline-start:24px;width:36px;height:36px;border-radius:10px;background:var(--grad);display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:14px;box-shadow:0 8px 24px -8px rgba(96,165,250,.6)}
.ir-step-icon{width:48px;height:48px;border-radius:12px;background:rgba(96,165,250,.12);border:1px solid rgba(96,165,250,.25);display:inline-flex;align-items:center;justify-content:center;color:var(--accent);font-size:20px;margin:6px 0 16px}
.ir-step h3{margin:0 0 10px;font-size:18px;font-weight:700;color:#fff}
.ir-step p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}

.ir-form-section{padding:80px 0;background:linear-gradient(180deg,var(--bg-0),var(--bg-1))}
.ir-form-wrap{max-width:760px;margin:0 auto;padding:36px;background:var(--bg-2);border:1px solid var(--border);border-radius:18px}
.ir-form-wrap h3{margin:0 0 8px;font-size:24px;color:#fff;font-weight:700}
.ir-form-wrap .sub{color:var(--muted);font-size:14px;margin:0 0 26px;line-height:1.6}

@media (max-width: 980px){
    .ir-steps{grid-template-columns:1fr 1fr;gap:18px}
}
@media (max-width: 640px){
    .ir-steps{grid-template-columns:1fr}
    .ir-hero{padding:72px 0 48px}
    .ir-section{padding:60px 0}
    .ir-form-wrap{padding:24px}
}
