/* ═══════════════════════════════════════════
   CapVPN — style.css
   Fonts: 100% system fonts (zero Google Fonts)
   ═══════════════════════════════════════════ */

/* ─── DESIGN TOKENS ─── */
:root {
    --bg-0: #060608;
    --bg-1: #0D0D12;
    --bg-2: #13131A;
    --bg-3: #1A1A24;
    --bg-card: rgba(19,19,26,0.8);
    --cyan: #00F5FF;
    --cyan-dim: rgba(0,245,255,0.15);
    --cyan-glow: 0 0 40px rgba(0,245,255,0.25);
    --violet: #7C3AED;
    --violet-dim: rgba(124,58,237,0.15);
    --rose: #F43F5E;
    --emerald: #10B981;
    --amber: #F59E0B;
    --text-1: #F0F0F8;
    --text-2: #8888A8;
    --text-3: #44445A;
    --border: rgba(255,255,255,0.07);
    --border-active: rgba(0,245,255,0.35);
    --gradient: linear-gradient(135deg, #00F5FF 0%, #7C3AED 100%);
    --gradient-r: linear-gradient(135deg, #7C3AED 0%, #00F5FF 100%);
    --shadow-glow: 0 20px 60px rgba(0,245,255,0.12);

    /* System font stacks — no external dependency */
    --font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
                 Helvetica, Arial, sans-serif;
    --font-mono: 'Courier New', Courier, monospace;
}

/* ─── RESET ─── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }

body {
    font-family: var(--font-base);
    background: var(--bg-0);
    color: var(--text-1);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1,h2,h3,h4,h5 {
    font-family: var(--font-base);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

/* ─── SCROLL PROGRESS ─── */
#scroll-progress {
    position: fixed; top:0; left:0; height:3px; z-index:9999;
    background: var(--gradient); width:0%;
    transition: width 0.1s linear;
    box-shadow: 0 0 10px var(--cyan);
}

/* ─── LOADER ─── */
.loader-wrap {
    position: fixed; inset:0; background: var(--bg-0); z-index:9998;
    display: flex; align-items: center; justify-content: center;
    transition: opacity 0.6s, visibility 0.6s;
}
.loader-wrap.gone { opacity:0; visibility:hidden; }
.loader-ring {
    width:52px; height:52px; border-radius:50%;
    border:3px solid var(--bg-3); border-top-color: var(--cyan);
    animation: spin 0.9s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ─── BACK TO TOP ─── */
#back-top {
    position:fixed; bottom:1.5rem; right:1.5rem;
    width:44px; height:44px;
    background: var(--gradient); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; border:none; color:#000; z-index:500;
    opacity:0; transform:translateY(20px);
    transition: all 0.3s; box-shadow: var(--shadow-glow);
}
#back-top.show { opacity:1; transform:translateY(0); }
#back-top:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(0,245,255,0.3); }

/* ─── COOKIE BANNER ─── */
#cookie-banner {
    position:fixed; bottom:0; left:0; right:0; z-index:800;
    background: var(--bg-2); border-top:1px solid var(--border);
    padding:1rem 1.5rem; display:flex; align-items:center;
    justify-content:space-between; gap:1rem; flex-wrap:wrap;
    transform:translateY(100%); transition:transform 0.4s ease;
    backdrop-filter:blur(20px);
}
#cookie-banner.show { transform:translateY(0); }
#cookie-banner p { font-size:0.85rem; color:var(--text-2); flex:1; min-width:200px; }
#cookie-banner p a { color:var(--cyan); text-decoration:none; }
.cookie-actions { display:flex; gap:0.75rem; flex-wrap:wrap; }

/* ─── CONTAINER ─── */
.container { max-width:1200px; margin:0 auto; padding:0 1.5rem; width:100%; }

/* ─── HEADER ─── */
header {
    position:fixed; top:0; left:0; right:0; z-index:600;
    padding:0.85rem 0;
    background: rgba(6,6,8,0.85);
    backdrop-filter: blur(24px);
    border-bottom: 1px solid var(--border);
    transition: all 0.3s;
}
header.scrolled { padding:0.65rem 0; background:rgba(6,6,8,0.97); }
.hdr { display:flex; align-items:center; justify-content:space-between; }

.logo { display:flex; align-items:center; gap:0.65rem; text-decoration:none; }
.logo img { height:38px; width:38px; border-radius:10px; object-fit:cover; }
.logo-text { font-size:1.4rem; font-weight:800; color:var(--text-1); }
.logo-text em { font-style:normal; color:var(--cyan); }

nav { display:flex; align-items:center; gap:1.75rem; }
nav a {
    color:var(--text-2); text-decoration:none; font-size:0.9rem;
    font-weight:500; transition:color 0.2s; position:relative; padding-bottom:2px;
}
nav a::after {
    content:''; position:absolute; bottom:0; left:0;
    width:0; height:2px; background:var(--gradient); transition:width 0.3s;
}
nav a:hover { color:var(--text-1); }
nav a:hover::after { width:100%; }

.hdr-actions { display:flex; align-items:center; gap:0.75rem; }

/* ─── BUTTONS ─── */
.btn {
    display:inline-flex; align-items:center; gap:0.45rem;
    padding:0.65rem 1.25rem; border-radius:10px; font-weight:600;
    font-size:0.88rem; text-decoration:none; cursor:pointer;
    border:none; transition:all 0.25s;
    font-family: var(--font-base);
    position:relative; overflow:hidden; white-space:nowrap;
}
.btn-ghost {
    background:transparent; color:var(--text-2);
    border:1px solid var(--border);
}
.btn-ghost:hover { color:var(--text-1); border-color:var(--border-active); background:var(--cyan-dim); }
.btn-primary { background:var(--gradient); color:#000; font-weight:700; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 12px 40px rgba(0,245,255,0.3); filter:brightness(1.1); }
.btn-outline { background:transparent; color:var(--cyan); border:1.5px solid var(--cyan); }
.btn-outline:hover { background:var(--cyan-dim); transform:translateY(-2px); }
.btn-lg { padding:0.9rem 1.75rem; font-size:0.98rem; border-radius:12px; }

.hamburger { display:none; background:none; border:none; color:var(--text-1); cursor:pointer; padding:6px; border-radius:8px; }
.hamburger:hover { background:var(--bg-3); }

/* ─── MOBILE NAV ─── */
.mob-overlay {
    display:none; position:fixed; inset:0;
    background:rgba(0,0,0,0.7); z-index:699;
    opacity:0; transition:opacity 0.3s;
}
.mob-overlay.on { display:block; opacity:1; }
.mob-nav {
    display:none; position:fixed; top:0; right:-100%; bottom:0;
    width:min(300px,85vw); background:var(--bg-1);
    border-left:1px solid var(--border); z-index:700;
    padding:1.5rem; transition:right 0.35s cubic-bezier(0.4,0,0.2,1);
    overflow-y:auto;
}
.mob-nav.on { display:flex; flex-direction:column; right:0; }
.mob-nav-hdr { display:flex; align-items:center; justify-content:space-between; margin-bottom:2rem; }
.mob-close { background:none; border:none; color:var(--text-1); cursor:pointer; padding:6px; border-radius:8px; }
.mob-links a {
    display:block; padding:0.85rem 0; color:var(--text-2);
    text-decoration:none; border-bottom:1px solid var(--border);
    font-size:0.95rem; transition:color 0.2s;
}
.mob-links a:hover { color:var(--cyan); }
.mob-cta { margin-top:1.5rem; display:flex; flex-direction:column; gap:0.75rem; }
.mob-cta .btn { width:100%; justify-content:center; }

/* ─── ANNOUNCEMENT BAR ─── */
.announce-bar {
    background:linear-gradient(90deg,var(--violet),var(--cyan));
    text-align:center; padding:0.5rem 1rem;
    font-size:0.82rem; font-weight:600; color:#000;
    position:relative; z-index:590;
}
.announce-bar a { color:#000; font-weight:700; text-decoration:underline; }

/* ─── HERO ─── */
.hero {
    min-height:100vh; display:flex; align-items:center;
    padding:9rem 0 5rem; position:relative; overflow:hidden;
}
.hero-bg {
    position:absolute; inset:0; pointer-events:none;
    background:
        radial-gradient(ellipse 60% 50% at 10% 20%, rgba(124,58,237,0.18) 0%, transparent 70%),
        radial-gradient(ellipse 50% 60% at 90% 80%, rgba(0,245,255,0.12) 0%, transparent 70%),
        radial-gradient(ellipse 40% 40% at 50% 50%, rgba(0,245,255,0.04) 0%, transparent 70%);
}
.hero-grid {
    position:absolute; inset:0; opacity:0.3;
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size:60px 60px;
}
.hero-inner {
    position:relative; z-index:1;
    display:grid; grid-template-columns:1fr 1fr;
    gap:4rem; align-items:center;
}

.hero-eyebrow {
    display:inline-flex; align-items:center; gap:0.6rem;
    padding:0.4rem 0.9rem; background:var(--cyan-dim);
    border:1px solid rgba(0,245,255,0.3); border-radius:100px;
    font-size:0.8rem; font-weight:600; color:var(--cyan);
    margin-bottom:1.25rem; animation:fadeSlideDown 0.6s ease both;
}
.eyebrow-dot {
    width:7px; height:7px; border-radius:50%;
    background:var(--cyan); animation:blink 1.5s ease infinite;
}

@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:0.3;} }
@keyframes fadeSlideDown { from{opacity:0;transform:translateY(-12px);} to{opacity:1;transform:translateY(0);} }
@keyframes fadeSlideUp   { from{opacity:0;transform:translateY(20px);}  to{opacity:1;transform:translateY(0);} }

.hero-h1 {
    font-size:clamp(2.8rem,6vw,4.5rem); font-weight:800;
    line-height:1.05; margin-bottom:1.25rem;
    animation:fadeSlideUp 0.7s 0.1s ease both;
}
.grad-text {
    background:var(--gradient); -webkit-background-clip:text;
    background-clip:text; color:transparent;
}

.hero-sub {
    font-size:1.05rem; color:var(--text-2); max-width:480px;
    margin-bottom:2rem; line-height:1.75;
    animation:fadeSlideUp 0.7s 0.2s ease both;
}
.hero-cta { display:flex; gap:0.75rem; flex-wrap:wrap; animation:fadeSlideUp 0.7s 0.3s ease both; }

.hero-trust {
    display:flex; align-items:center; gap:0.6rem; margin-top:2rem;
    animation:fadeSlideUp 0.7s 0.4s ease both;
}
.trust-avatars { display:flex; }
.trust-avatars span {
    width:32px; height:32px; border-radius:50%;
    background:var(--gradient); border:2px solid var(--bg-0);
    display:flex; align-items:center; justify-content:center;
    font-size:0.7rem; font-weight:700; color:#000; margin-left:-8px;
}
.trust-avatars span:first-child { margin-left:0; }
.trust-txt { font-size:0.82rem; color:var(--text-2); }
.trust-txt strong { color:var(--text-1); }

.hero-stats {
    display:flex; gap:1.5rem; margin-top:2.5rem; flex-wrap:wrap;
    animation:fadeSlideUp 0.7s 0.5s ease both;
}
.hero-stat { display:flex; flex-direction:column; }
.hero-stat-val { font-size:1.6rem; font-weight:800; color:var(--cyan); }
.hero-stat-lbl { font-size:0.78rem; color:var(--text-2); text-transform:uppercase; letter-spacing:0.08em; }

/* ─── HERO VISUAL / ORB ─── */
.hero-visual {
    display:flex; justify-content:center; align-items:center;
    animation:fadeSlideUp 0.8s 0.2s ease both;
}
.vpn-orb-wrap { position:relative; width:320px; height:320px; }
.orb-rings { position:absolute; inset:0; }
.orb-ring {
    position:absolute; border-radius:50%;
    border:1px solid rgba(0,245,255,0.15);
    animation:orb-pulse 3s ease-out infinite;
}
.orb-ring:nth-child(1){inset:0;   animation-delay:0s;}
.orb-ring:nth-child(2){inset:-28px;animation-delay:0.6s;}
.orb-ring:nth-child(3){inset:-56px;animation-delay:1.2s;}
.orb-ring:nth-child(4){inset:-84px;animation-delay:1.8s;}
@keyframes orb-pulse {
    0%  { opacity:0.6; transform:scale(1);    }
    100%{ opacity:0;   transform:scale(1.25); }
}

.orb-btn {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:170px; height:170px; border-radius:50%;
    background:radial-gradient(circle at 40% 35%, rgba(0,245,255,0.15), rgba(124,58,237,0.1));
    border:2px solid rgba(0,245,255,0.5);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    cursor:pointer; text-decoration:none;
    box-shadow:0 0 60px rgba(0,245,255,0.2), inset 0 0 40px rgba(0,245,255,0.05);
    backdrop-filter:blur(12px);
    animation:float 5s ease-in-out infinite;
    transition:all 0.3s;
}
.orb-btn:hover { transform:translate(-50%,-50%) scale(1.06); box-shadow:0 0 80px rgba(0,245,255,0.4); }
@keyframes float { 0%,100%{margin-top:0;} 50%{margin-top:-16px;} }
.orb-btn i     { color:var(--cyan); margin-bottom:0.4rem; }
.orb-btn span  { font-weight:700; font-size:0.95rem; color:var(--text-1); }
.orb-btn small { font-size:0.72rem; color:var(--text-2); }

.orb-pill {
    position:absolute; display:flex; align-items:center; gap:0.5rem;
    padding:0.45rem 0.85rem; background:var(--bg-2);
    border:1px solid var(--border); border-radius:100px;
    font-size:0.75rem; font-weight:600; backdrop-filter:blur(10px);
    white-space:nowrap;
}
.orb-pill .dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.orb-pill-1 { top:8px;  right:-20px; }
.orb-pill-2 { bottom:20px; left:-30px; }
.orb-pill-3 { top:55%; right:-40px;  }

/* ─── TRUST BAR ─── */
.trust-bar {
    padding:1.5rem 0;
    border-top:1px solid var(--border); border-bottom:1px solid var(--border);
    background:var(--bg-1);
}
.trust-bar-inner { display:flex; align-items:center; justify-content:center; gap:2.5rem; flex-wrap:wrap; }
.trust-badge {
    display:flex; align-items:center; gap:0.6rem;
    font-size:0.82rem; font-weight:600; color:var(--text-2); transition:color 0.2s;
}
.trust-badge:hover { color:var(--text-1); }
.trust-badge i { color:var(--cyan); }
.trust-divider { width:1px; height:24px; background:var(--border); }

/* ─── SECTIONS COMMON ─── */
section { padding:5.5rem 0; }
.section-label {
    display:inline-flex; align-items:center; gap:0.5rem;
    padding:0.4rem 0.9rem; background:var(--cyan-dim);
    border:1px solid rgba(0,245,255,0.2); border-radius:100px;
    font-size:0.78rem; font-weight:700; color:var(--cyan);
    text-transform:uppercase; letter-spacing:0.08em; margin-bottom:1rem;
}
.sec-hdr { text-align:center; margin-bottom:4rem; }
.sec-hdr h2 { font-size:clamp(2rem,4vw,2.8rem); margin-bottom:0.75rem; }
.sec-hdr p { font-size:1rem; color:var(--text-2); max-width:560px; margin:0 auto; line-height:1.75; }

/* ─── FEATURES ─── */
.feat-bg { background:var(--bg-1); }
.feat-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.25rem; }
.feat-card {
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:20px; padding:1.75rem; position:relative;
    overflow:hidden; transition:all 0.3s; backdrop-filter:blur(8px);
}
.feat-card::after {
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse at top left, rgba(0,245,255,0.06), transparent 60%);
    opacity:0; transition:opacity 0.3s;
}
.feat-card:hover { border-color:var(--border-active); transform:translateY(-6px); box-shadow:var(--shadow-glow); }
.feat-card:hover::after { opacity:1; }
.feat-card.col-5 { grid-column:span 5; }
.feat-card.col-4 { grid-column:span 4; }
.feat-card.col-3 { grid-column:span 3; }
.feat-card.col-7 { grid-column:span 7; }
.feat-icon {
    width:52px; height:52px; border-radius:14px;
    background:var(--gradient); display:flex; align-items:center;
    justify-content:center; color:#000; margin-bottom:1.25rem;
    box-shadow:0 8px 24px rgba(0,245,255,0.2);
}
.feat-card h3 { font-size:1.15rem; margin-bottom:0.6rem; }
.feat-card p  { color:var(--text-2); font-size:0.9rem; line-height:1.7; }
.feat-kpi {
    display:flex; gap:2rem; margin-top:1.25rem;
    padding-top:1.25rem; border-top:1px solid var(--border);
}
.feat-kpi-val { font-size:1.35rem; font-weight:800; color:var(--cyan); }
.feat-kpi-lbl { font-size:0.75rem; color:var(--text-2); }
.proto-badge {
    display:inline-flex; align-items:center; gap:0.4rem;
    background:var(--cyan-dim); border:1px solid rgba(0,245,255,0.3);
    border-radius:100px; padding:0.25rem 0.7rem;
    font-family:var(--font-mono); font-size:0.78rem;
    color:var(--cyan); margin-top:0.75rem;
}

/* ─── COMPARISON TABLE ─── */
.cmp-bg { background:var(--bg-0); }
.cmp-table-wrap { overflow-x:auto; border-radius:20px; border:1px solid var(--border); }
.cmp-table { width:100%; border-collapse:collapse; }
.cmp-table th, .cmp-table td {
    padding:1rem 1.25rem; text-align:center;
    border-bottom:1px solid var(--border); white-space:nowrap;
}
.cmp-table th { background:var(--bg-2); font-size:0.9rem; font-weight:700; }
.cmp-table th:first-child, .cmp-table td:first-child { text-align:left; }
.cmp-table tr:last-child td { border-bottom:none; }
.cmp-table tr:hover td { background:rgba(255,255,255,0.02); }
.cmp-cap { background:var(--gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cmp-yes { color:var(--emerald); }
.cmp-no  { color:var(--text-3);  }
.cmp-partial { color:var(--amber); }
.cmp-table td { font-size:0.88rem; color:var(--text-2); }
.cmp-table .cmp-col-cap { background:var(--cyan-dim); }
.cmp-feature-name { color:var(--text-1); font-weight:500; }
.cmp-highlight { font-weight:700; font-size:1rem; }

/* ─── HOW IT WORKS ─── */
.steps-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:1.5rem; position:relative;
}
.steps-grid::before {
    content:''; position:absolute; top:3.5rem;
    left:calc(100%/6); right:calc(100%/6);
    height:1px; background:linear-gradient(90deg, transparent, var(--cyan), transparent);
    opacity:0.3;
}
.step-card {
    text-align:center; padding:2rem 1.5rem;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:20px; transition:all 0.3s; position:relative;
}
.step-card:hover { border-color:var(--border-active); transform:translateY(-4px); }
.step-num {
    width:60px; height:60px; border-radius:50%;
    background:var(--gradient); display:flex; align-items:center; justify-content:center;
    font-size:1.4rem; font-weight:800; color:#000; margin:0 auto 1.25rem;
    box-shadow:0 8px 24px rgba(0,245,255,0.25);
}
.step-card h3 { font-size:1.1rem; margin-bottom:0.6rem; }
.step-card p  { color:var(--text-2); font-size:0.9rem; line-height:1.7; }

/* ─── DOWNLOAD BANNER ─── */
.dl-banner {
    background:linear-gradient(135deg, rgba(124,58,237,0.15), rgba(0,245,255,0.08));
    border:1px solid var(--border); border-radius:24px; padding:3rem;
    display:flex; align-items:center; justify-content:space-between;
    gap:2rem; flex-wrap:wrap; margin-top:3rem;
    position:relative; overflow:hidden;
}
.dl-banner::before {
    content:''; position:absolute; right:-100px; top:-100px;
    width:350px; height:350px; border-radius:50%;
    background:radial-gradient(circle, rgba(0,245,255,0.08), transparent 70%);
}
.dl-banner-txt h3 { font-size:1.5rem; margin-bottom:0.5rem; }
.dl-banner-txt p  { color:var(--text-2); font-size:0.9rem; }
.dl-badges { display:flex; gap:1rem; flex-wrap:wrap; position:relative; z-index:1; }
.dl-badge {
    display:flex; align-items:center; gap:0.75rem;
    background:var(--bg-0); border:1px solid var(--border);
    border-radius:14px; padding:0.65rem 1.25rem;
    text-decoration:none; color:var(--text-1); transition:all 0.3s;
}
.dl-badge:hover { border-color:var(--border-active); transform:translateY(-2px); background:var(--cyan-dim); }
.dl-badge-icon { display:flex; }
.dl-badge-icon svg { width:28px; height:28px; }
.dl-badge-txt small { display:block; font-size:0.68rem; color:var(--text-2); text-transform:uppercase; letter-spacing:0.08em; }
.dl-badge-txt span  { display:block; font-size:1rem; font-weight:700; }

/* ─── PRICING ─── */
.price-bg { background:var(--bg-1); }
.price-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.5rem; max-width:980px; margin:0 auto; }
.price-card {
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:24px; padding:2.25rem; position:relative;
    overflow:hidden; transition:all 0.3s;
}
.price-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-glow); }
.price-card.best {
    border-color:var(--violet);
    background:linear-gradient(135deg,rgba(124,58,237,0.12),rgba(0,245,255,0.05));
    transform:scale(1.02);
}
.price-card.best:hover { transform:scale(1.02) translateY(-4px); }
.price-badge {
    position:absolute; top:1.25rem; right:1.25rem;
    padding:0.3rem 0.75rem; background:var(--gradient);
    border-radius:100px; font-size:0.68rem; font-weight:800;
    text-transform:uppercase; letter-spacing:0.06em; color:#000;
}
.price-name  { font-size:1.1rem; font-weight:700; margin-bottom:0.75rem; }
.price-row   { display:flex; align-items:baseline; gap:0.2rem; margin-bottom:0.3rem; }
.price-cur   { font-size:1.25rem; font-weight:600; color:var(--text-2); }
.price-amt   { font-size:2.8rem; font-weight:800; background:var(--gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
.price-per   { font-size:0.85rem; color:var(--text-2); margin-bottom:1.5rem; }
.price-save  { display:inline-flex; align-items:center; padding:0.25rem 0.65rem; background:rgba(16,185,129,0.15); border-radius:100px; font-size:0.75rem; font-weight:600; color:var(--emerald); margin-bottom:1.5rem; }
.price-feats { border-top:1px solid var(--border); padding-top:1.25rem; margin-bottom:1.75rem; }
.pf          { display:flex; align-items:center; gap:0.7rem; padding:0.5rem 0; font-size:0.88rem; color:var(--text-2); }
.pf i        { flex-shrink:0; }
.pf.on i     { color:var(--emerald); }
.pf.off i    { color:var(--text-3); }
.pf.off span { text-decoration:line-through; color:var(--text-3); }
.price-cta   { width:100%; justify-content:center; }

/* ─── MAP / SERVERS ─── */
.map-wrap   {
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:24px;
    padding:1.5rem;
    overflow:hidden;
    box-shadow:0 24px 70px rgba(0,0,0,0.24), 0 0 0 1px rgba(0,245,255,0.04) inset;
}
.globe-stage {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:560px;
    border-radius:20px;
    padding:1.25rem;
    overflow:hidden;
    background:
        radial-gradient(circle at 20% 20%, rgba(124,58,237,0.18), transparent 40%),
        radial-gradient(circle at 80% 30%, rgba(0,245,255,0.12), transparent 35%),
        linear-gradient(135deg, rgba(9,9,13,0.95), rgba(19,19,26,0.9));
    border:1px solid rgba(255,255,255,0.05);
}
.globe-wrap {
    position:relative;
    width:min(100%, 680px);
    aspect-ratio:1 / 1;
    min-height:0;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.globe-wrap::before {
    content:'';
    position:absolute;
    inset:6% 12%;
    border-radius:50%;
    background:radial-gradient(circle, rgba(0,245,255,0.12), rgba(124,58,237,0.06) 45%, transparent 70%);
    filter:blur(36px);
    pointer-events:none;
}
#server-map {
    width:100%;
    height:100%;
    display:block;
    border-radius:50%;
    position:relative;
    z-index:1;
    touch-action:none;
}
.globe-labels {
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
}
.globe-label {
    position:absolute;
    transform:translate(-50%, -50%) scale(var(--label-scale, 1));
    transform-origin:center;
    padding:0.28rem 0.55rem;
    border-radius:999px;
    background:rgba(6,6,8,0.8);
    border:1px solid rgba(0,245,255,0.22);
    color:var(--text-1);
    font-size:0.72rem;
    font-weight:700;
    letter-spacing:0.02em;
    white-space:nowrap;
    box-shadow:0 10px 24px rgba(0,0,0,0.22);
    opacity:0;
    transition:opacity 0.2s ease;
    backdrop-filter:blur(10px);
}
.globe-label.is-visible {
    opacity:1;
}
.srv-stats  { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; margin-top:1.5rem; }
.srv-stat   { text-align:center; padding:1.25rem; background:var(--bg-2); border-radius:14px; border:1px solid var(--border); transition:all 0.3s; }
.srv-stat:hover  { border-color:var(--border-active); transform:translateY(-3px); }
.srv-stat-val    { font-size:1.75rem; font-weight:800; color:var(--cyan); }
.srv-stat-lbl    { font-size:0.8rem; color:var(--text-2); margin-top:0.2rem; }

/* ─── SPEED SECTION ─── */
.speed-bg  { background:var(--bg-1); }
.speed-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.speed-txt h2  { font-size:clamp(1.8rem,3.5vw,2.5rem); margin-bottom:1rem; }
.speed-txt p   { color:var(--text-2); font-size:0.95rem; line-height:1.75; margin-bottom:1.5rem; }
.speed-bars    { display:flex; flex-direction:column; gap:1.25rem; }
.speed-bar-item { display:flex; flex-direction:column; gap:0.4rem; }
.speed-bar-label { display:flex; justify-content:space-between; font-size:0.82rem; color:var(--text-2); }
.speed-bar-track { height:10px; background:var(--bg-3); border-radius:100px; overflow:hidden; }
.speed-bar-fill  { height:100%; border-radius:100px; background:var(--gradient); transition:width 1.2s cubic-bezier(0.4,0,0.2,1); }
.speed-bar-val   { font-weight:700; color:var(--text-1); }
.speed-icon-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.speed-icon-card {
    padding:1.5rem; background:var(--bg-card); border:1px solid var(--border);
    border-radius:18px; text-align:center; transition:all 0.3s;
}
.speed-icon-card:hover { border-color:var(--border-active); transform:translateY(-3px); }
.speed-icon-card i  { color:var(--cyan); display:block; margin:0 auto 0.6rem; }
.speed-icon-card h4 { font-size:0.88rem; margin-bottom:0.25rem; }
.speed-icon-card p  { font-size:0.78rem; color:var(--text-2); }

/* ─── TESTIMONIALS ─── */
.test-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:1.25rem; }
.test-card {
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:20px; padding:1.75rem; transition:all 0.3s;
    position:relative; overflow:hidden;
}
.test-card::before {
    content:'"'; position:absolute; top:0.5rem; right:1rem;
    font-size:6rem; color:rgba(0,245,255,0.06); line-height:1;
}
.test-card:hover { border-color:var(--border-active); transform:translateY(-4px); }
.stars     { display:flex; gap:0.2rem; color:var(--amber); margin-bottom:0.9rem; }
.test-text { font-size:0.92rem; color:var(--text-2); line-height:1.75; margin-bottom:1.25rem; font-style:italic; }
.test-author { display:flex; align-items:center; gap:0.85rem; }
.test-av   { width:44px; height:44px; border-radius:50%; background:var(--gradient); display:flex; align-items:center; justify-content:center; font-weight:800; color:#000; font-size:1rem; }
.test-info h4   { font-size:0.9rem; }
.test-info span { font-size:0.78rem; color:var(--text-2); }
.test-platform  { margin-left:auto; font-size:0.75rem; color:var(--text-3); }

/* ─── FAQ ─── */
.faq-wrap { max-width:780px; margin:0 auto; }
.faq-item {
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:16px; margin-bottom:0.85rem; overflow:hidden; transition:border-color 0.3s;
}
.faq-item:hover, .faq-item.open { border-color:var(--border-active); }
.faq-q {
    display:flex; justify-content:space-between; align-items:center;
    padding:1.25rem 1.5rem; cursor:pointer; user-select:none; gap:1rem;
}
.faq-q h3  { font-size:0.95rem; font-weight:600; color:var(--text-1); }
.faq-q i   { flex-shrink:0; color:var(--text-2); transition:transform 0.3s, color 0.3s; }
.faq-item.open .faq-q i { transform:rotate(180deg); color:var(--cyan); }
.faq-a     { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }
.faq-a-inner { padding:0 1.5rem 1.25rem; color:var(--text-2); font-size:0.9rem; line-height:1.75; }
.faq-item.open .faq-a { max-height:300px; }

/* ─── NEWSLETTER ─── */
.newsletter-wrap {
    background:var(--bg-2); border:1px solid var(--border);
    border-radius:20px; padding:2rem 2.5rem; display:flex;
    align-items:center; justify-content:space-between;
    gap:2rem; flex-wrap:wrap; margin-top:3rem;
}
.newsletter-txt h3 { font-size:1.15rem; margin-bottom:0.35rem; }
.newsletter-txt p  { color:var(--text-2); font-size:0.88rem; }
.newsletter-form   { display:flex; gap:0.65rem; flex-wrap:wrap; }
.newsletter-input {
    flex:1; min-width:220px; padding:0.75rem 1rem;
    background:var(--bg-3); border:1px solid var(--border);
    border-radius:10px; color:var(--text-1); font-size:0.9rem;
    font-family:var(--font-base); outline:none; transition:border-color 0.3s;
}
.newsletter-input::placeholder { color:var(--text-3); }
.newsletter-input:focus { border-color:var(--border-active); }

/* ─── FINAL CTA ─── */
.cta-fin {
    background:linear-gradient(135deg, rgba(124,58,237,0.12), rgba(0,245,255,0.07));
    border-top:1px solid var(--border); border-bottom:1px solid var(--border);
    text-align:center; padding:6rem 0;
}
.cta-fin h2 { font-size:clamp(2rem,5vw,3.2rem); margin-bottom:1rem; }
.cta-fin p  { color:var(--text-2); font-size:1rem; margin-bottom:2.25rem; max-width:500px; margin-left:auto; margin-right:auto; }
.cta-fin-btns { display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* ─── FOOTER ─── */
footer { background:var(--bg-1); padding:4rem 0 2rem; border-top:1px solid var(--border); }
.footer-top { display:grid; grid-template-columns:2fr repeat(4,1fr); gap:2.5rem; margin-bottom:3rem; }
.footer-brand p { color:var(--text-2); font-size:0.88rem; margin:0.85rem 0 1.25rem; line-height:1.7; }
.footer-social { display:flex; gap:0.6rem; }
.footer-social a {
    width:38px; height:38px; border-radius:50%; background:var(--bg-3);
    border:1px solid var(--border); display:flex; align-items:center;
    justify-content:center; color:var(--text-2); text-decoration:none; transition:all 0.25s;
}
.footer-social a:hover { background:var(--gradient); color:#000; border-color:transparent; transform:translateY(-2px); }
.footer-col h4 { font-size:0.82rem; font-weight:700; color:var(--text-1); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:1rem; }
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:0.65rem; }
.footer-col a  { color:var(--text-2); text-decoration:none; font-size:0.88rem; transition:color 0.2s; display:inline-flex; align-items:center; gap:0.3rem; }
.footer-col a:hover { color:var(--cyan); }
.footer-bot { border-top:1px solid var(--border); padding-top:2rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.footer-bot p { color:var(--text-3); font-size:0.82rem; }
.footer-legal { display:flex; gap:1.25rem; }
.footer-legal a { color:var(--text-3); text-decoration:none; font-size:0.82rem; transition:color 0.2s; }
.footer-legal a:hover { color:var(--text-2); }

/* ─── SCROLL ANIMATIONS ─── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.65s cubic-bezier(0.4,0,0.2,1), transform 0.65s cubic-bezier(0.4,0,0.2,1); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }

/* ─── UTILITY / MISC ─── */
.testimonials-bg { background: var(--bg-1); }
.newsletter-section { background: var(--bg-1); padding: 3rem 0; }
.cmp-muted { color: var(--text-2); }
.link-cyan { color: var(--cyan); }
.speed-p { color: var(--text-2); font-size: 0.95rem; line-height: 1.75; margin-bottom: 1.5rem; }
.speed-note { font-size: 0.75rem; color: var(--text-3); margin-top: 1rem; }
.price-note { text-align: center; margin-top: 2rem; font-size: 0.85rem; color: var(--text-2); }
.cta-label { display: inline-flex; margin-bottom: 1.25rem; }
.cta-sub-note { margin-top: 1.5rem; font-size: 0.8rem; color: var(--text-3); }
.dl-badge-disabled { opacity: 0.45; cursor: not-allowed; }

/* ─── CUSTOM SCROLLBAR ─── */
::-webkit-scrollbar       { width:6px; }
::-webkit-scrollbar-track { background:var(--bg-1); }
::-webkit-scrollbar-thumb { background:var(--bg-3); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:rgba(0,245,255,0.3); }

/* ─── RESPONSIVE ─── */
@media(max-width:1024px) {
    .feat-card.col-5,.feat-card.col-7,
    .feat-card.col-4,.feat-card.col-3 { grid-column:span 6; }
    .speed-grid  { grid-template-columns:1fr; }
    .globe-stage { min-height:500px; }
    .globe-wrap  { width:min(100%, 560px); }
    .footer-top  { grid-template-columns:1fr 1fr; }
}

@media(max-width:768px) {
    nav, .hdr-actions  { display:none; }
    .hamburger         { display:flex; }
    .hero-inner        { grid-template-columns:1fr; text-align:center; }
    .hero-sub          { margin-left:auto; margin-right:auto; }
    .hero-cta          { justify-content:center; }
    .hero-trust        { justify-content:center; }
    .hero-stats        { justify-content:center; }
    .hero-visual       { order:-1; }
    .vpn-orb-wrap      { width:260px; height:260px; }
    .orb-btn           { width:140px; height:140px; }
    .feat-card.col-5,.feat-card.col-7,
    .feat-card.col-4,.feat-card.col-3 { grid-column:span 12; }
    .price-card.best      { transform:none; }
    .price-card.best:hover{ transform:translateY(-4px); }
    .map-wrap    { padding:1rem; }
    .globe-stage { min-height:440px; padding:0.75rem 0.25rem; }
    .globe-wrap  { width:min(100%, 460px); }
    .globe-labels { display:none; }
    .footer-top  { grid-template-columns:1fr; }
    .footer-bot  { flex-direction:column; text-align:center; }
    .footer-legal{ justify-content:center; }
    .dl-banner   { flex-direction:column; text-align:center; }
    .dl-badges   { justify-content:center; }
    .newsletter-wrap { flex-direction:column; }
}

@media(max-width:480px) {
    .container     { padding:0 1rem; }
    .hero-cta      { flex-direction:column; }
    .hero-cta .btn { width:100%; justify-content:center; }
    .vpn-orb-wrap  { width:220px; height:220px; }
    .orb-btn       { width:120px; height:120px; }
    .orb-pill      { display:none; }
    .map-wrap      { padding:0.75rem; }
    .globe-stage   { min-height:400px; padding:0.5rem 0; }
    .globe-wrap    { width:min(100%, 92vw); }
    .cta-fin-btns  { flex-direction:column; align-items:center; }
    .announce-bar  { font-size:0.75rem; }
}