
:root {
    --bg:       #060d0f;
    --bg2:      #0a1614;
    --card:     #0e1e1b;
    --border:   rgba(255,255,255,.07);
    --blue:     #1565c0;
    --blue-l:   #1e88e5;
    --green:    #2e7d32;
    --green-l:  #43a047;
    --green-b:  #66bb6a;
    --text:     #dce8e0;
    --muted:    #5c7a6a;
    --radius:   10px;
    --fh:       'Rajdhani', sans-serif;
    --fb:       'Mulish', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--text); font-family: var(--fb); font-size: 16px; line-height: 1.65; overflow-x: hidden; }
h1,h2,h3,h4,h5,h6 { font-family: var(--fh); letter-spacing: .5px; }
a { color: var(--green-b); text-decoration: none; }
a:hover { color: #fff; }

/* BLOBS */
.blob { position:absolute; border-radius:50%; filter:blur(130px); opacity:.2; pointer-events:none; z-index:0; }
.blob-1 { width:680px; height:680px; background:var(--blue);   top:-220px; left:-180px; }
.blob-2 { width:480px; height:480px; background:var(--green);  top:80px;   right:-140px; }
.blob-3 { width:340px; height:340px; background:var(--green-b);bottom:-80px; left:35%; opacity:.1; }

/* NAVBAR */
.navbar {
    background: rgba(6,13,15,.85);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border);
    padding: 13px 0;
    position: sticky; top: 0; z-index: 999;
    transition: background .3s;
}
.brand-logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand-globe {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 14px rgba(67,160,71,.4);
    flex-shrink: 0;
    overflow: hidden;
}

.brand-globe img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.brand-text { font-family:var(--fh); font-size:1.55rem; font-weight:700; color:#fff; letter-spacing:1.5px; line-height:1; }
.brand-text span { color:var(--green-b); }
.nav-link {
    color: var(--muted) !important;
    font-family: var(--fh); font-size:1rem; font-weight:600;
    letter-spacing:.5px; text-transform:uppercase;
    transition: color .2s; padding: 6px 14px !important;
}
.nav-link:hover { color: var(--green-b) !important; }
.btn-nav {
    background: linear-gradient(135deg, var(--green), var(--green-b));
    color: #fff !important; font-family:var(--fh); font-weight:700;
    font-size:1rem; letter-spacing:.5px; text-transform:uppercase;
    border-radius:6px; padding:8px 22px !important;
    transition: box-shadow .2s, opacity .2s;
}
.btn-nav:hover { opacity:.88; box-shadow:0 0 18px rgba(102,187,106,.4); }
.navbar-toggler { border:1px solid var(--border); }
.navbar-toggler-icon { filter:invert(1); }

/* HERO */
.hero {
    position:relative; overflow:hidden; padding:120px 0 90px;
    background: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(21,101,192,.2) 0%, transparent 65%);
}
.hero::after {
    content:''; position:absolute; inset:0; pointer-events:none;
    background:
    repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(255,255,255,.018) 40px),
    repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(255,255,255,.018) 40px);
}
.badge-pill {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(102,187,106,.1); border:1px solid rgba(102,187,106,.3);
    color:var(--green-b); font-family:var(--fh); font-size:.8rem; font-weight:600;
    padding:5px 14px; border-radius:4px; margin-bottom:24px;
    letter-spacing:1px; text-transform:uppercase;
}
.hero h1 {
    font-size:clamp(2.8rem,6.5vw,5.2rem); font-weight:700;
    line-height:1.0; color:#fff; letter-spacing:1.5px; text-transform:uppercase;
}
.hl {
    background: linear-gradient(90deg, var(--green-b), var(--blue-l));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.hero p.lead { font-size:1.1rem; color:var(--muted); max-width:520px; margin:18px 0 34px; }
.btn-primary-custom {
    background: linear-gradient(135deg, var(--green), var(--green-b));
    border:none; color:#fff; font-family:var(--fh); font-weight:700;
    font-size:1.05rem; letter-spacing:1px; text-transform:uppercase;
    padding:13px 32px; border-radius:6px;
    transition:transform .2s, box-shadow .2s;
    box-shadow:0 0 30px rgba(46,125,50,.4);
}
.btn-primary-custom:hover { transform:translateY(-2px); box-shadow:0 0 50px rgba(102,187,106,.5); color:#fff; }
.btn-outline-custom {
    border:1.5px solid rgba(102,187,106,.3); color:var(--text);
    font-family:var(--fh); font-weight:600; font-size:1.05rem;
    letter-spacing:1px; text-transform:uppercase; padding:13px 32px;
    border-radius:6px; background:transparent;
    transition:border-color .2s, background .2s;
}
.btn-outline-custom:hover { border-color:var(--green-b); background:rgba(102,187,106,.07); color:#fff; }

/* STATS */
.stats-strip { background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:36px 0; }
.stat-item { text-align:center; }
.stat-item .num { font-family:var(--fh); font-size:2.4rem; font-weight:700; color:#fff; letter-spacing:1px; }
.stat-item .num span { color:var(--green-b); }
.stat-item .lbl { font-size:.8rem; color:var(--muted); margin-top:2px; text-transform:uppercase; letter-spacing:1.5px; }

/* SECTION TITLES */
.section-label { font-family:var(--fh); font-size:.78rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--green-b); margin-bottom:10px; }
.section-title { font-size:clamp(2rem,4.5vw,3rem); font-weight:700; color:#fff; line-height:1.1; letter-spacing:1.5px; text-transform:uppercase; }
.section-title .blue { color:var(--blue-l); }
.section-sub { color:var(--muted); font-size:1rem; max-width:520px; margin:14px auto 0; }

/* PRICING */
section { padding:90px 0; }
.pricing-card {
    background:var(--card); border:1px solid var(--border);
    border-radius:var(--radius); padding:36px 28px;
    position:relative; transition:transform .25s, border-color .25s, box-shadow .25s; height:100%;
}
.pricing-card:hover { transform:translateY(-6px); border-color:rgba(102,187,106,.2); box-shadow:0 20px 60px rgba(0,0,0,.5); }
.pricing-card.featured { border-color:var(--green-b); box-shadow:0 0 0 1px var(--green-b), 0 20px 60px rgba(102,187,106,.12); }
.badge-featured {
    position:absolute; top:-14px; left:50%; transform:translateX(-50%);
    background:linear-gradient(90deg, var(--green), var(--green-b));
    color:#fff; font-family:var(--fh); font-weight:700; font-size:.72rem;
    letter-spacing:2px; text-transform:uppercase; padding:4px 16px; border-radius:4px; white-space:nowrap;
}
.plan-name { font-family:var(--fh); font-weight:700; font-size:.85rem; color:var(--muted); text-transform:uppercase; letter-spacing:2px; }
.price { font-family:var(--fh); font-size:3.2rem; font-weight:700; color:#fff; line-height:1; margin:10px 0 4px; letter-spacing:1px; }
.price sup { font-size:1.1rem; vertical-align:top; margin-top:12px; color:var(--muted); }
.price small { font-size:.85rem; color:var(--muted); font-family:var(--fb); }
.speed { font-family:var(--fh); font-size:1.6rem; font-weight:700; color:var(--green-b); letter-spacing:1px; margin-bottom:20px; }
.pricing-card.business .speed { color:var(--blue-l); }
.pricing-card ul { list-style:none; padding:0; margin:0 0 26px; }
.pricing-card ul li { display:flex; align-items:center; gap:10px; padding:8px 0; font-size:.9rem; border-bottom:1px solid var(--border); color:var(--text); }
.pricing-card ul li:last-child { border-bottom:none; }
.chk { color:var(--green-b) !important; font-size:1rem; flex-shrink:0; }
.pricing-card.business .chk { color:var(--blue-l) !important; }
.dash { color:var(--muted) !important; font-size:1rem; flex-shrink:0; }
.btn-plan {
    width:100%; padding:12px; border-radius:6px; font-family:var(--fh);
    font-weight:700; font-size:1rem; letter-spacing:1px; text-transform:uppercase;
    border:1.5px solid rgba(102,187,106,.25); background:transparent;
    color:var(--text); transition:all .2s;
}
.btn-plan:hover { background:rgba(102,187,106,.1); border-color:var(--green-b); color:#fff; }
.pricing-card.featured .btn-plan { background:linear-gradient(135deg,var(--green),var(--green-b)); border-color:transparent; color:#fff; }

/* FEATURES */
.features-section { background:var(--bg2); }
.feature-card {
    background:var(--card); border:1px solid var(--border);
    border-radius:var(--radius); padding:30px 26px; height:100%;
    transition:border-color .25s, transform .25s; position:relative; overflow:hidden;
}
.feature-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--green),var(--blue-l)); opacity:0; transition:opacity .25s; }
.feature-card:hover { border-color:rgba(102,187,106,.2); transform:translateY(-4px); }
.feature-card:hover::before { opacity:1; }
.feature-icon { width:48px; height:48px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:1.35rem; margin-bottom:18px; }
.fi-green { background:rgba(102,187,106,.1); color:var(--green-b); }
.fi-blue  { background:rgba(30,136,229,.1);  color:var(--blue-l); }
.feature-card h5 { font-size:1.15rem; font-weight:700; color:#fff; margin-bottom:8px; letter-spacing:.5px; text-transform:uppercase; }
.feature-card p { font-size:.88rem; color:var(--muted); }

/* COVERAGE */
.coverage-section { background:var(--bg); }
.map-placeholder {
    background:var(--card); border:1px solid var(--border); border-radius:var(--radius);
    height:360px; display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:12px; color:var(--muted);
}
.map-placeholder i { font-size:3rem; color:var(--green-b); opacity:.5; }

/* TESTIMONIALS */
.testimonials-section { background:var(--bg2); }
.tcard { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:28px; height:100%; }
.tcard .stars { color:#fbbf24; font-size:.85rem; margin-bottom:14px; }
.tcard q { font-size:.93rem; color:var(--text); line-height:1.75; }
.tcard .author { margin-top:20px; display:flex; align-items:center; gap:12px; }
.tcard .avatar { width:42px; height:42px; border-radius:6px; background:linear-gradient(135deg,var(--blue),var(--green-b)); display:flex; align-items:center; justify-content:center; font-family:var(--fh); font-weight:700; color:#fff; font-size:.9rem; letter-spacing:1px; }
.tcard .aname { font-family:var(--fh); font-weight:600; font-size:.95rem; color:#fff; letter-spacing:.5px; }
.tcard .role { font-size:.78rem; color:var(--muted); }

/* CTA */
.cta-section { position:relative; overflow:hidden; background:linear-gradient(135deg,rgba(21,101,192,.25),rgba(46,125,50,.25)); border-top:1px solid var(--border); border-bottom:1px solid var(--border); text-align:center; padding:90px 0; }
.cta-section h2 { font-size:clamp(2rem,4.5vw,3rem); font-weight:700; color:#fff; text-transform:uppercase; letter-spacing:2px; }

/* CONTACT */
.contact-section { background:var(--bg); }
.contact-card { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:40px; }
.form-control, .form-select { background:rgba(255,255,255,.04) !important; border:1px solid var(--border) !important; color:var(--text) !important; border-radius:6px !important; padding:11px 15px !important; font-family:var(--fb); }
.form-control::placeholder { color:var(--muted) !important; }
.form-control:focus, .form-select:focus { box-shadow:0 0 0 3px rgba(102,187,106,.15) !important; border-color:var(--green-b) !important; }
.form-label { font-family:var(--fh); font-size:.82rem; letter-spacing:.5px; color:var(--muted); margin-bottom:5px; text-transform:uppercase; }
.form-select option { background:#0e1e1b; }

/* FOOTER */
footer { background:var(--bg2); border-top:1px solid var(--border); padding:60px 0 32px; }
.footer-divider { border-color:var(--border); margin:36px 0 24px; }
.social-links a { width:36px; height:36px; border:1px solid var(--border); border-radius:6px; display:inline-flex; align-items:center; justify-content:center; color:var(--muted); font-size:1rem; transition:all .2s; }
.social-links a:hover { color:var(--green-b); border-color:var(--green-b); background:rgba(102,187,106,.07); }
.footer-links h6 { font-family:var(--fh); font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:2px; color:var(--muted); margin-bottom:14px; }
.footer-links ul { list-style:none; padding:0; }
.footer-links ul li { margin-bottom:8px; }
.footer-links ul li a { color:var(--muted); font-size:.88rem; transition:color .2s; }
.footer-links ul li a:hover { color:var(--green-b); }

/* ANIMATIONS */
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
.fade-up { animation:fadeUp .65s ease both; }
.d1{animation-delay:.08s} .d2{animation-delay:.2s} .d3{animation-delay:.32s}

/* PING */
.ping-wrap { display:inline-flex; align-items:center; gap:8px; }
.ping-dot { width:8px; height:8px; border-radius:50%; background:var(--green-b); box-shadow:0 0 0 0 rgba(102,187,106,.5); animation:ping 1.6s ease-in-out infinite; }
@keyframes ping { 0%,100%{box-shadow:0 0 0 0 rgba(102,187,106,.5)} 50%{box-shadow:0 0 0 8px rgba(102,187,106,0)} }

/* FAQ */
.faq-section { background: var(--bg); }
.faq-category-label {
    font-family: var(--fh); font-size: .75rem; font-weight: 700;
    letter-spacing: 2.5px; text-transform: uppercase;
    padding: 4px 12px; border-radius: 4px; display: inline-block;
    margin-bottom: 18px;
}
.faq-cat-green { background: rgba(102,187,106,.1); color: var(--green-b); border: 1px solid rgba(102,187,106,.25); }
.faq-cat-blue  { background: rgba(30,136,229,.1);  color: var(--blue-l);  border: 1px solid rgba(30,136,229,.25); }

.accordion-item {
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    margin-bottom: 8px;
    overflow: hidden;
}
.accordion-button {
    background: var(--card) !important;
    color: #fff !important;
    font-family: var(--fh) !important;
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    letter-spacing: .4px !important;
    padding: 18px 22px !important;
    box-shadow: none !important;
    border-radius: var(--radius) !important;
}
.accordion-button:not(.collapsed) {
    color: var(--green-b) !important;
    border-bottom: 1px solid var(--border) !important;
    border-radius: var(--radius) var(--radius) 0 0 !important;
}
.accordion-button::after {
    filter: invert(1) sepia(1) saturate(2) hue-rotate(85deg) !important;
}
.accordion-body {
    background: var(--card) !important;
    color: var(--muted) !important;
    font-size: .93rem !important;
    line-height: 1.75 !important;
    padding: 16px 22px 20px !important;
}
.accordion-body strong { color: var(--text); }
.faq-icon {
    width: 34px; height: 34px; border-radius: 8px; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1rem; margin-right: 12px;
}
.faq-icon-green { background: rgba(102,187,106,.1); color: var(--green-b); }
.faq-icon-blue  { background: rgba(30,136,229,.1);  color: var(--blue-l); }

a.btn-plan {
    display: block;
    text-align: center;
    text-decoration: none;
}
a.disabled-link {
    color: var(--muted) !important;
    cursor: not-allowed;
    opacity: .5;
    pointer-events: none;
}
.alert-success-custom {
    background: rgba(102,187,106,.1);
    border: 1px solid rgba(102,187,106,.3);
    color: var(--green-b);
    font-family: var(--fh);
    font-size: 1rem;
    padding: 14px 20px;
    border-radius: var(--radius);
    margin-bottom: 24px;
}
.alert-error-custom {
    background: rgba(239,68,68,.1);
    border: 1px solid rgba(239,68,68,.3);
    color: #f87171;
    font-family: var(--fh);
    font-size: 1rem;
    padding: 14px 20px;
    border-radius: var(--radius);
    margin-bottom: 24px;
}
.invalid-feedback-custom {
    color: #f87171;
    font-size: .82rem;
    margin-top: 4px;
}
.is-invalid {
    border-color: rgba(239,68,68,.5) !important;
}