/* ── Stats strip ─────────────────────────────────── */
    .em-strip { background:#f8fafc; border-top:1px solid #e2e8f0; border-bottom:1px solid #e2e8f0; padding:0; }
    .em-strip-inner { display:flex; flex-wrap:wrap; border-left:1px solid #e2e8f0; }
    .em-mc { flex:1; min-width:120px; padding:22px 20px; border-right:1px solid #e2e8f0; text-align:center; }
    .em-mc-n { font-size:1.8rem; font-weight:900; color:#2563eb; line-height:1; margin-bottom:4px; }
    .em-mc-l { font-size:.72rem; color:#64748b; font-weight:500; }

    /* ── IP Hero widget ───────────────────────────────── */
    .ip-widget { background:#fff; border:1px solid #e2e8f0; border-radius:18px; overflow:hidden; box-shadow:0 16px 56px rgba(15,23,42,.14); }
    .ip-wbar { background:linear-gradient(135deg,#2563eb,#1d4ed8,#0369a1); padding:14px 18px; display:flex; align-items:center; gap:10px; }
    .ip-wbar-icon { width:32px; height:32px; border-radius:8px; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; color:#fff; font-size:.85rem; flex-shrink:0; }
    .ip-wbar-title { font-size:.72rem; font-weight:700; color:rgba(255,255,255,.9); flex:1; }
    .ip-wbar-badge { display:inline-flex; align-items:center; gap:4px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#fff; font-size:.6rem; font-weight:800; padding:3px 10px; border-radius:999px; }
    .ip-wbody { padding:18px; }
    .ip-alloc-row { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid #e2e8f0; border-radius:12px; margin-bottom:8px; background:#f8fafc; }
    .ip-alloc-row.active { background:#eff6ff; border-color:#bfdbfe; }
    .ip-alloc-av { width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:800; flex-shrink:0; }
    .ip-alloc-name { font-size:.76rem; font-weight:700; color:#1e293b; }
    .ip-alloc-host { font-size:.65rem; color:#94a3b8; font-family:monospace; }
    .ip-alloc-ip { margin-left:auto; font-size:.72rem; font-weight:800; color:#2563eb; font-family:monospace; background:#eff6ff; border:1px solid #bfdbfe; padding:3px 10px; border-radius:7px; white-space:nowrap; }
    .ip-alloc-ip--new { background:linear-gradient(135deg,#2563eb,#0891b2); color:#fff; border-color:transparent; animation:ipPulse 1.8s ease-in-out infinite; }
    @keyframes ipPulse { 0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.3)} 50%{box-shadow:0 0 0 6px rgba(37,99,235,0)} }
    .ip-divider { border-top:1px solid #f1f5f9; margin:12px 0; }
    .ip-status-row { display:flex; align-items:center; gap:8px; font-size:.68rem; color:#64748b; }
    .ip-status-dot { width:6px; height:6px; border-radius:50%; background:#22c55e; animation:pulse-green 2s infinite; }
    .ip-net-block { background:#fff; border:1px solid #e2e8f0; border-radius:10px; padding:12px 14px; }
    .ip-net-title { font-size:.65rem; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
    .ip-net-grid { display:grid; grid-template-columns:repeat(8,1fr); gap:3px; }
    .ip-net-cell { height:10px; border-radius:2px; background:#e2e8f0; }
    .ip-net-cell.used { background:#bfdbfe; }
    .ip-net-cell.yours { background:linear-gradient(135deg,#2563eb,#0891b2); animation:ipPulse 1.8s ease-in-out infinite; }
    .ip-net-legend { display:flex; gap:12px; margin-top:8px; font-size:.6rem; color:#94a3b8; }
    .ip-net-legend span { display:flex; align-items:center; gap:4px; }
    .ip-net-legend .dot { width:8px; height:8px; border-radius:2px; }

    /* ── Notice box ───────────────────────────────────── */
    .ip-notice { background:#fffbeb; border:1px solid #fde68a; border-radius:14px; padding:18px 20px; display:flex; gap:14px; }
    .ip-notice-ico { width:36px; height:36px; border-radius:9px; background:#fef3c7; color:#d97706; display:flex; align-items:center; justify-content:center; font-size:.9rem; flex-shrink:0; margin-top:1px; }
    .ip-notice-title { font-size:.88rem; font-weight:800; color:#92400e; margin-bottom:4px; }
    .ip-notice-text { font-size:.82rem; color:#78350f; line-height:1.7; margin:0; }

    /* ── Use case cards ───────────────────────────────── */
    .ip-uc-sec { padding:88px 0; background:#f8fafc; }
    .ip-uc-card { background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:28px 22px; height:100%; transition:all .25s; }
    .ip-uc-card:hover { border-color:#bfdbfe; box-shadow:0 10px 32px rgba(37,99,235,.1); transform:translateY(-3px); }
    .ip-uc-ico { width:48px; height:48px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; margin-bottom:14px; }
    .ip-uc-card h4 { font-size:.98rem; font-weight:800; color:#1e293b; margin-bottom:8px; }
    .ip-uc-card p { font-size:.84rem; color:#64748b; line-height:1.7; margin:0; }

    /* ── Network restriction section ─────────────────── */
    .ip-scope-sec { padding:88px 0; background:#fff; }
    .ip-scope-card { border-radius:18px; padding:32px 28px; height:100%; }
    .ip-scope-card--ok { background:#f0fdf4; border:1.5px solid #bbf7d0; }
    .ip-scope-card--warn { background:#fff7ed; border:1.5px solid #fed7aa; }
    .ip-scope-card--no { background:#fef2f2; border:1.5px solid #fecaca; }
    .ip-scope-ico { width:48px; height:48px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; margin-bottom:16px; }
    .ip-scope-card h4 { font-size:1rem; font-weight:800; margin-bottom:8px; }
    .ip-scope-card p { font-size:.84rem; line-height:1.7; margin:0; }
    .ip-scope-card ul { font-size:.84rem; line-height:1.85; padding-left:1.1rem; margin:10px 0 0; }

    /* ── Pricing ──────────────────────────────────────── */
    .ip-price-sec { padding:88px 0; background:#f8fafc; }
    .ip-price-card { background:#fff; border:1px solid #e2e8f0; border-radius:22px; padding:38px 32px; box-shadow:0 4px 24px rgba(15,23,42,.06); }
    .ip-price-badge { display:inline-flex; align-items:center; gap:6px; background:#eff6ff; color:#2563eb; border:1px solid #bfdbfe; font-size:.68rem; font-weight:800; padding:4px 14px; border-radius:999px; margin-bottom:14px; letter-spacing:.04em; text-transform:uppercase; }
    .ip-price-amount { font-size:3.2rem; font-weight:900; color:#0f172a; line-height:1; margin-bottom:4px; }
    .ip-price-amount sup { font-size:1.4rem; font-weight:700; vertical-align:.5em; }
    .ip-price-period { font-size:.82rem; color:#94a3b8; margin-bottom:20px; }
    .ip-price-list { list-style:none; padding:0; margin:0 0 24px; }
    .ip-price-list li { display:flex; align-items:flex-start; gap:10px; padding:7px 0; border-bottom:1px solid #f1f5f9; font-size:.86rem; color:#475569; }
    .ip-price-list li:last-child { border-bottom:none; }
    .ip-price-list li i { color:#16a34a; margin-top:2px; flex-shrink:0; }
    .ip-price-cta { background:linear-gradient(135deg,#2563eb,#1d4ed8); color:#fff; border:none; border-radius:12px; padding:14px 28px; font-size:.95rem; font-weight:800; width:100%; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; }
    .ip-price-cta:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,99,235,.35); color:#fff; }
    .ip-block-card { background:#0f172a; border-radius:22px; padding:38px 32px; color:#fff; height:100%; }
    .ip-block-tag { display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.7); font-size:.68rem; font-weight:800; padding:4px 14px; border-radius:999px; margin-bottom:14px; letter-spacing:.04em; text-transform:uppercase; }
    .ip-block-amount { font-size:2.4rem; font-weight:900; line-height:1; margin-bottom:4px; }
    .ip-block-sub { font-size:.8rem; color:rgba(255,255,255,.45); margin-bottom:16px; }
    .ip-block-info { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:14px 16px; font-size:.78rem; color:rgba(255,255,255,.65); line-height:1.7; }
    .ip-block-cta { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); color:#fff; border-radius:12px; padding:12px 24px; font-size:.88rem; font-weight:800; display:inline-flex; align-items:center; gap:8px; text-decoration:none; margin-top:20px; transition:all .2s; }
    .ip-block-cta:hover { background:rgba(255,255,255,.18); color:#fff; }

    /* ── SaaS comparison ──────────────────────────────── */
    .ip-saas-sec { padding:88px 0; background:#fff; }
    .ip-saas-card { border-radius:18px; padding:28px 24px; height:100%; }
    .ip-saas-card--them { background:#f8fafc; border:1px solid #e2e8f0; }
    .ip-saas-card--us { background:linear-gradient(135deg,#eff6ff,#f0fdf4); border:2px solid #bfdbfe; }
    .ip-saas-logo { display:flex; align-items:center; gap:8px; margin-bottom:14px; }
    .ip-saas-logo-ico { width:36px; height:36px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:.85rem; }
    .ip-saas-logo-name { font-size:.88rem; font-weight:800; color:#0f172a; }
    .ip-saas-label { font-size:.65rem; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; }
    .ip-saas-item { display:flex; align-items:flex-start; gap:8px; padding:6px 0; font-size:.8rem; color:#475569; border-bottom:1px solid #f1f5f9; }
    .ip-saas-item:last-child { border-bottom:none; }
    .ip-saas-item i { margin-top:2px; flex-shrink:0; }

    /* ── CTA ──────────────────────────────────────────── */
    .ip-cta-sec { padding:88px 0; background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 60%,#0369a1 100%); position:relative; overflow:hidden; }
    .ip-cta-sec::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 70% at 80% 50%,rgba(255,255,255,.06) 0%,transparent 60%); }

    /* ── Trust band ───────────────────────────────────── */
    .ip-trust { background:#fff; border-top:1px solid #e2e8f0; border-bottom:1px solid #e2e8f0; padding:20px 0; overflow:hidden; }
    .ip-trust-track { display:flex; align-items:center; gap:28px; animation:trustScroll 26s linear infinite; white-space:nowrap; }
    .ip-trust-track:hover { animation-play-state:paused; }
    @keyframes trustScroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
    .ip-trust-pill { display:inline-flex; align-items:center; gap:7px; padding:7px 16px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:999px; font-size:.76rem; font-weight:700; color:#475569; white-space:nowrap; flex-shrink:0; }

    /* ── Testimonials ─────────────────────────────────── */
    .ip-test-sec { padding:88px 0; background:#f8fafc; }
    .ip-test-card { background:#fff; border:1px solid #e2e8f0; border-radius:18px; padding:28px 26px; height:100%; transition:all .25s; }
    .ip-test-card:hover { border-color:#bfdbfe; box-shadow:0 12px 36px rgba(37,99,235,.1); transform:translateY(-3px); }
    .ip-test-stars { display:flex; gap:3px; margin-bottom:14px; }
    .ip-test-stars i { color:#f59e0b; font-size:.78rem; }
    .ip-test-quote { font-size:.9rem; color:#334155; line-height:1.8; margin-bottom:18px; font-style:italic; }
    .ip-test-quote::before { content:'\201C'; font-size:1.4rem; color:#2563eb; line-height:0; vertical-align:-.35em; margin-right:2px; }
    .ip-test-quote::after  { content:'\201D'; font-size:1.4rem; color:#2563eb; line-height:0; vertical-align:-.35em; margin-left:2px; }
    .ip-test-author { display:flex; align-items:center; gap:10px; padding-top:16px; border-top:1px solid #e2e8f0; }
    .ip-test-av { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:.85rem; font-weight:800; flex-shrink:0; }
    .ip-test-name { font-size:.85rem; font-weight:800; color:#1e293b; }
    .ip-test-role { font-size:.74rem; color:#94a3b8; }

    /* ── Compatibility cards ──────────────────────────── */
    .ip-compat-sec { padding:88px 0; background:#f8fafc; }
    .ip-compat-card { background:#fff; border:1px solid #e2e8f0; border-radius:18px; padding:28px 22px; height:100%; transition:all .25s; display:flex; flex-direction:column; }
    .ip-compat-card:hover { border-color:#bfdbfe; box-shadow:0 10px 32px rgba(37,99,235,.1); transform:translateY(-3px); }
    .ip-compat-ico { width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:14px; }
    .ip-compat-card h4 { font-size:.98rem; font-weight:800; color:#1e293b; margin-bottom:8px; }
    .ip-compat-card p { font-size:.84rem; color:#64748b; line-height:1.7; margin:0 0 16px; flex:1; }
    .ip-compat-link { display:inline-flex; align-items:center; gap:6px; font-size:.78rem; font-weight:700; color:#2563eb; text-decoration:none; margin-top:auto; }
    .ip-compat-link:hover { text-decoration:underline; color:#1d4ed8; }
    .ip-compat-badge { display:inline-flex; align-items:center; gap:5px; background:#eff6ff; border:1px solid #bfdbfe; color:#1d4ed8; font-size:.65rem; font-weight:800; padding:3px 10px; border-radius:999px; margin-bottom:10px; }

    /* ── Network SVG Hero ─────────────────────────────── */
    .ip-svg-wrap { position:relative; width:100%; max-width:540px; margin:0 auto; }
    .ip-svg-canvas { width:100%; height:auto; display:block; }
    /* switch body */
    .sw-body { fill:#0f172a; rx:16; }
    .sw-port { fill:#1e293b; stroke:#334155; stroke-width:1; }
    .sw-port.active { fill:#1e3a5f; stroke:#2563eb; stroke-width:1.5; }
    .sw-port.yours { fill:#1d4ed8; stroke:#60a5fa; stroke-width:2; animation:swPortPulse 1.8s ease-in-out infinite; }
    @keyframes swPortPulse { 0%,100%{stroke-opacity:1;fill-opacity:1} 50%{stroke-opacity:.5;fill-opacity:.7} }
    /* LED dots */
    .sw-led { r:3.5; }
    .sw-led-off { fill:#334155; }
    .sw-led-on  { fill:#22c55e; animation:ledBlink 2.4s ease-in-out infinite; }
    .sw-led-yours { fill:#60a5fa; animation:ledBlinkBlue 1.4s ease-in-out infinite; }
    @keyframes ledBlink     { 0%,100%{opacity:1} 50%{opacity:.25} }
    @keyframes ledBlinkBlue { 0%,100%{opacity:1} 50%{opacity:.3} }
    /* data packets moving along cables */
    .pkt { r:4; fill:#3b82f6; opacity:0; }
    .pkt-grn { r:3.5; fill:#22c55e; opacity:0; }
    .pkt-yel { r:3.5; fill:#f59e0b; opacity:0; }
    /* cable lines */
    .cable { stroke:#334155; stroke-width:1.5; fill:none; stroke-linecap:round; }
    .cable-active { stroke:#2563eb; stroke-width:2; fill:none; opacity:.55; }
    .cable-active-grn { stroke:#22c55e; stroke-width:1.5; fill:none; opacity:.45; }
    /* floating "NEW IP" label */
    .sw-ip-label { font-family:'Inter',sans-serif; font-size:8px; font-weight:800; fill:#60a5fa; letter-spacing:.03em; }
    .sw-ip-label-bg { fill:#172554; rx:4; opacity:.9; }
    @keyframes swLabelPop { 0%{opacity:0;transform:translateY(6px)} 20%{opacity:1;transform:translateY(0)} 80%{opacity:1} 100%{opacity:0} }
    .sw-pop { animation:swLabelPop 3s ease-in-out infinite; transform-origin:center; }
    /* floating server racks */
    .rack { fill:#1e293b; stroke:#334155; stroke-width:1; rx:6; }
    .rack-stripe { fill:none; stroke:#2563eb; stroke-width:1.5; opacity:.5; }
    .rack-led-row .r { r:2.5; fill:#22c55e; animation:ledBlink 2.4s ease-in-out infinite; }
    .rack-led-row .r2 { animation-delay:.6s; } .rack-led-row .r3 { animation-delay:1.2s; }
    /* top label bar */
    .sw-topbar { fill:#172554; }
    .sw-topbar-text { font-family:'Inter',sans-serif; font-size:7.5px; font-weight:700; fill:rgba(255,255,255,.6); letter-spacing:.04em; }
    .sw-brand { font-family:'Inter',sans-serif; font-size:9px; font-weight:900; fill:#60a5fa; letter-spacing:.05em; }
    /* badge "YOURS" */
    .sw-badge-bg  { fill:#2563eb; rx:6; }
    .sw-badge-txt { font-family:'Inter',sans-serif; font-size:6.5px; font-weight:800; fill:#fff; }
    /* IP wizard */
    .ip-wiz-sec { padding:88px 0; background:#f8fafc; }
    .ip-wiz-card { background:#fff; border:1px solid #e2e8f0; border-radius:22px; padding:40px 36px; max-width:680px; margin:0 auto; box-shadow:0 8px 40px rgba(15,23,42,.08); }
    .ip-wiz-step { display:none; }
    .ip-wiz-step.active { display:block; }
    .ip-wiz-steps-bar { display:flex; gap:0; margin-bottom:40px; }
    .ip-wiz-step-dot { flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; position:relative; }
    .ip-wiz-step-dot::before { content:''; position:absolute; top:15px; left:50%; width:100%; height:2px; background:#e2e8f0; z-index:0; }
    .ip-wiz-step-dot:last-child::before { display:none; }
    .ip-wiz-dot-num { width:30px; height:30px; border-radius:50%; background:#e2e8f0; color:#94a3b8; font-size:.72rem; font-weight:800; display:flex; align-items:center; justify-content:center; position:relative; z-index:1; transition:all .25s; flex-shrink:0; }
    .ip-wiz-step-dot.done .ip-wiz-dot-num  { background:#2563eb; color:#fff; }
    .ip-wiz-step-dot.current .ip-wiz-dot-num { background:#2563eb; color:#fff; box-shadow:0 0 0 4px rgba(37,99,235,.2); }
    .ip-wiz-dot-lbl { font-size:.65rem; font-weight:600; color:#94a3b8; text-align:center; }
    .ip-wiz-step-dot.current .ip-wiz-dot-lbl, .ip-wiz-step-dot.done .ip-wiz-dot-lbl { color:#2563eb; }
    /* service selector pills */
    .ip-svc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:12px; }
    .ip-svc-pill { border:1.5px solid #e2e8f0; border-radius:14px; padding:16px 14px; cursor:pointer; transition:all .2s; display:flex; align-items:center; gap:10px; background:#fff; }
    .ip-svc-pill:hover { border-color:#93c5fd; background:#eff6ff; }
    .ip-svc-pill.selected { border-color:#2563eb; background:#eff6ff; box-shadow:0 0 0 3px rgba(37,99,235,.15); }
    .ip-svc-pill input { display:none; }
    .ip-svc-pill-ico { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:.85rem; flex-shrink:0; }
    .ip-svc-pill-lbl { font-size:.82rem; font-weight:700; color:#1e293b; }
    .ip-wiz-product-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
    .ip-wiz-product-opt { border:1.5px solid #e2e8f0; border-radius:14px; padding:14px 16px; cursor:pointer; transition:all .2s; background:#fff; display:block; }
    .ip-wiz-product-opt:hover { border-color:#93c5fd; background:#eff6ff; }
    .ip-wiz-product-opt.selected { border-color:#2563eb; background:#eff6ff; box-shadow:0 0 0 3px rgba(37,99,235,.15); }
    .ip-wiz-product-opt input { display:none; }
    .ip-wiz-product-name { font-size:.85rem; font-weight:800; color:#1e293b; margin-bottom:4px; }
    .ip-wiz-product-price { font-size:.78rem; font-weight:700; color:#2563eb; }
    /* quantity control */
    .ip-qty-row { display:flex; align-items:center; gap:20px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:16px; padding:22px 24px; }
    .ip-qty-btn { width:40px; height:40px; border-radius:10px; background:#e2e8f0; color:#1e293b; border:none; font-size:1.1rem; font-weight:800; cursor:pointer; transition:all .15s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
    .ip-qty-btn:hover { background:#bfdbfe; color:#1d4ed8; }
    .ip-qty-btn:disabled { opacity:.35; cursor:not-allowed; }
    .ip-qty-val { font-size:2rem; font-weight:900; color:#1e293b; min-width:50px; text-align:center; }
    .ip-qty-info  { flex:1; }
    .ip-qty-label { font-size:.8rem; color:#64748b; }
    .ip-qty-total { font-size:1.1rem; font-weight:800; color:#2563eb; margin-top:4px; }
    /* wiz navigation */
    .ip-wiz-nav { display:flex; align-items:center; justify-content:space-between; margin-top:28px; gap:12px; }
    .ip-wiz-btn-prev { background:#f1f5f9; color:#475569; border:none; border-radius:12px; padding:12px 22px; font-size:.88rem; font-weight:700; cursor:pointer; transition:all .2s; }
    .ip-wiz-btn-prev:hover { background:#e2e8f0; }
    .ip-wiz-btn-next { background:linear-gradient(135deg,#2563eb,#1d4ed8); color:#fff; border:none; border-radius:12px; padding:12px 26px; font-size:.88rem; font-weight:800; cursor:pointer; transition:all .2s; display:flex; align-items:center; gap:7px; }
    .ip-wiz-btn-next:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(37,99,235,.35); }
    /* summary card */
    .ip-wiz-summary { background:#f8fafc; border:1px solid #e2e8f0; border-radius:14px; padding:20px 22px; }
    .ip-wiz-summary-row { display:flex; justify-content:space-between; align-items:center; padding:7px 0; border-bottom:1px solid #f1f5f9; font-size:.86rem; }
    .ip-wiz-summary-row:last-child { border-bottom:none; font-weight:800; color:#1e293b; }
    .ip-wiz-summary-row span:first-child { color:#64748b; }
    /* block IP notice */
    .ip-block-notice { background:#fffbeb; border:1.5px solid #fde68a; border-radius:16px; padding:24px 22px; }
    /* Modal styles */
    .ip-modal-overlay { display:none; position:fixed; inset:0; background:rgba(15,23,42,.65); z-index:9999; backdrop-filter:blur(3px); align-items:center; justify-content:center; padding:16px; }
    .ip-modal-overlay.open { display:flex; }
    .ip-modal-box { background:#fff; border-radius:22px; max-width:560px; width:100%; max-height:90vh; overflow-y:auto; box-shadow:0 32px 80px rgba(15,23,42,.25); animation:modalIn .3s ease; }
    @keyframes modalIn { from{opacity:0;transform:scale(.93)} to{opacity:1;transform:scale(1)} }
    .ip-modal-header { background:linear-gradient(135deg,#dc2626,#b91c1c); padding:22px 28px; border-radius:22px 22px 0 0; display:flex; align-items:center; gap:12px; }
    .ip-modal-header-form { background:linear-gradient(135deg,#2563eb,#1d4ed8); padding:22px 28px; border-radius:22px 22px 0 0; display:flex; align-items:center; gap:12px; }
    .ip-modal-body { padding:26px 28px; }
    .ip-modal-close { margin-left:auto; background:rgba(255,255,255,.15); border:none; color:#fff; width:30px; height:30px; border-radius:8px; cursor:pointer; font-size:.9rem; display:flex; align-items:center; justify-content:center; }
    .ip-modal-close:hover { background:rgba(255,255,255,.3); }
    .ip-warn-list { list-style:none; padding:0; margin:0 0 20px; }
    .ip-warn-list li { display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-bottom:1px solid #f1f5f9; font-size:.84rem; color:#334155; line-height:1.6; }
    .ip-warn-list li:last-child { border-bottom:none; }
    .ip-warn-list li i { color:#dc2626; margin-top:2px; flex-shrink:0; }
    .ip-modal-checkbox-row { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; background:#fef2f2; border:1px solid #fecaca; border-radius:10px; margin-bottom:10px; cursor:pointer; }
    .ip-modal-checkbox-row input { margin-top:2px; flex-shrink:0; accent-color:#dc2626; }
    .ip-modal-checkbox-row label { font-size:.8rem; color:#991b1b; line-height:1.6; cursor:pointer; }
    .ip-modal-btn-row { display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
    .ip-modal-btn-cancel { flex:1; background:#f1f5f9; color:#475569; border:none; border-radius:11px; padding:12px 18px; font-size:.88rem; font-weight:700; cursor:pointer; }
    .ip-modal-btn-proceed { flex:1; background:linear-gradient(135deg,#2563eb,#1d4ed8); color:#fff; border:none; border-radius:11px; padding:12px 18px; font-size:.88rem; font-weight:800; cursor:pointer; transition:all .2s; }
    .ip-modal-btn-proceed:disabled { opacity:.4; cursor:not-allowed; }
    .ip-modal-btn-proceed:not(:disabled):hover { box-shadow:0 6px 20px rgba(37,99,235,.35); }
    .ip-form-group { margin-bottom:16px; }
    .ip-form-group label { font-size:.78rem; font-weight:700; color:#475569; display:block; margin-bottom:6px; }
    .ip-form-group input, .ip-form-group textarea, .ip-form-group select { width:100%; border:1.5px solid #e2e8f0; border-radius:10px; padding:10px 14px; font-size:.88rem; color:#1e293b; outline:none; transition:border-color .2s; font-family:inherit; background:#fff; }
    .ip-form-group input:focus, .ip-form-group textarea:focus { border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.1); }
    .ip-form-group textarea { resize:vertical; min-height:80px; }
    .ip-form-submit { width:100%; background:linear-gradient(135deg,#2563eb,#1d4ed8); color:#fff; border:none; border-radius:12px; padding:14px; font-size:.95rem; font-weight:800; cursor:pointer; transition:all .2s; margin-top:6px; }
    .ip-form-submit:hover { box-shadow:0 8px 24px rgba(37,99,235,.35); transform:translateY(-1px); }

    /* ── Animations ───────────────────────────────────── */
    .fade-up { opacity:0; transform:translateY(24px); transition:opacity .55s ease,transform .55s ease; }
    .fade-up.visible { opacity:1; transform:translateY(0); }
    .delay-1 { transition-delay:.12s; } .delay-2 { transition-delay:.22s; } .delay-3 { transition-delay:.32s; }
    @keyframes pulse-green { 0%,100%{opacity:1} 50%{opacity:.3} }

    /* ── Wizard Gate ─────────────────────────────────────── */
    .ip-wiz-gate { background:#f8fafc; border:1.5px solid #e2e8f0; border-radius:14px; padding:18px 20px; }
    .ip-wiz-gate-label { font-size:.9rem; font-weight:700; color:#1e293b; }
    .ip-wiz-gate-opts { display:flex; gap:10px; flex-wrap:wrap; }
    .ip-wiz-gate-opt { display:flex; align-items:center; gap:8px; padding:11px 18px; border:1.5px solid #e2e8f0; border-radius:10px; cursor:pointer; font-size:.875rem; font-weight:500; color:#475569; background:#fff; transition:all .2s; flex:1; min-width:180px; }
    .ip-wiz-gate-opt input { display:none; }
    .ip-wiz-gate-opt i { font-size:1rem; }
    .ip-wiz-gate-opt#gate-yes-lbl i { color:#d1d5db; }
    .ip-wiz-gate-opt#gate-no-lbl  i { color:#d1d5db; }
    .ip-wiz-gate-opt#gate-yes-lbl.selected { border-color:#16a34a; background:#f0fdf4; color:#14532d; font-weight:600; }
    .ip-wiz-gate-opt#gate-yes-lbl.selected i { color:#16a34a; }
    .ip-wiz-gate-opt#gate-no-lbl.selected  { border-color:#dc2626; background:#fef2f2; color:#991b1b; font-weight:600; }
    .ip-wiz-gate-opt#gate-no-lbl.selected  i { color:#dc2626; }
    .ip-wiz-gate-opt:hover:not(.selected) { border-color:#c7d2fe; background:#f8faff; }

    /* ── IP Checker ──────────────────────────────────────── */
    .ip-checker-sec { padding:88px 0; background:#fff; }
    .ip-checker-card { background:#f8fafc; border:1px solid #e2e8f0; border-radius:20px; padding:32px 36px; max-width:780px; margin:0 auto; }
    .ip-checker-top { display:flex; flex-direction:column; gap:14px; }
    .ip-checker-input-wrap { display:flex; align-items:center; gap:0; border:2px solid #e2e8f0; border-radius:12px; background:#fff; overflow:hidden; transition:border-color .2s; }
    .ip-checker-input-wrap:focus-within { border-color:var(--primary); }
    .ip-checker-ico { padding:0 14px; color:#94a3b8; font-size:1rem; }
    .ip-checker-input { flex:1; border:none; outline:none; padding:14px 4px; font-size:.95rem; background:transparent; color:#1e293b; font-family:'Inter',sans-serif; }
    .ip-checker-btn { background:var(--primary); color:#fff; border:none; padding:14px 26px; font-size:.9rem; font-weight:600; font-family:'Inter',sans-serif; cursor:pointer; transition:background .2s; white-space:nowrap; }
    .ip-checker-btn:hover { background:#1d3461; }
    .ip-checker-auto-btn { background:transparent; border:1.5px solid #e2e8f0; border-radius:8px; padding:9px 18px; font-size:.85rem; font-weight:500; color:#64748b; cursor:pointer; font-family:'Inter',sans-serif; transition:all .2s; width:fit-content; }
    .ip-checker-auto-btn:hover { border-color:var(--primary); color:var(--primary); }
    .ip-checker-result { margin-top:20px; border-radius:14px; overflow:hidden; border:1px solid #e2e8f0; }
    .ip-res-header { display:flex; align-items:center; gap:14px; padding:18px 22px; }
    .ip-res-badge { border-radius:30px; padding:5px 14px; font-size:.8rem; font-weight:700; letter-spacing:.04em; }
    .ip-res-badge.shared { background:#fef3c7; color:#92400e; }
    .ip-res-badge.dedicated { background:#dcfce7; color:#166534; }
    .ip-res-header.shared-h { background:#fffbeb; }
    .ip-res-header.dedicated-h { background:#f0fdf4; }
    .ip-res-ip { font-family:'Courier New',monospace; font-size:1rem; font-weight:700; color:#1e293b; }
    .ip-res-body { padding:18px 22px; background:#fff; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
    .ip-res-stat { background:#f8fafc; border-radius:10px; padding:14px; text-align:center; }
    .ip-res-stat-val { font-size:1.25rem; font-weight:700; color:#1e293b; }
    .ip-res-stat-lbl { font-size:.75rem; color:#64748b; margin-top:3px; }
    .ip-res-footer { padding:14px 22px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid #f1f5f9; }
    .ip-res-cta { background:var(--primary); color:#fff; border:none; border-radius:8px; padding:9px 20px; font-size:.85rem; font-weight:600; font-family:'Inter',sans-serif; cursor:pointer; text-decoration:none; transition:background .2s; }
    .ip-res-cta:hover { background:#1d3461; color:#fff; }

    /* ── Savings Calculator ──────────────────────────────── */
    @media(max-width:576px) {
      .ip-res-body { grid-template-columns:1fr 1fr; }
      .ip-checker-card { padding:20px 18px; }
      .ip-checker-ico { display: none; }
      .ip-checker-input-wrap {
        flex-direction: column;
        gap: 8px;
        background: transparent;
        border: none;
        overflow: visible;
        border-radius: 0;
      }
      .ip-checker-input-wrap:focus-within { border-color: transparent; }
      .ip-checker-input {
        flex: 1 1 100%;
        padding: 14px 16px;
        border: 2px solid #e2e8f0;
        border-radius: 12px;
        background: #fff;
        transition: border-color .2s;
      }
      .ip-checker-input-wrap:focus-within .ip-checker-input { border-color: var(--primary); }
      .ip-checker-btn {
        width: 100%;
        border-radius: 12px;
        padding: 14px;
        text-align: center;
        justify-content: center;
        display: flex;
        align-items: center;
      }
    }