/* ════════════════════════════════════════════════════════════
   components.css — Buttons, cards, badges, and reusable sections
   Geo Aerial Consulting
   ════════════════════════════════════════════════════════════ */

/* ─── BUTTONS ────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;border-radius:8px;padding:11px 22px;transition:all .18s;white-space:nowrap;cursor:pointer}
.btn-cta{background:var(--cta);color:#fff;box-shadow:0 2px 8px rgba(249,115,22,.3)}
.btn-cta:hover{background:var(--cta-hover);transform:translateY(-1px);box-shadow:0 4px 16px rgba(249,115,22,.35)}
.btn-outline-white{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.32)}
.btn-outline-white:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.65)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-hover);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--text-muted);border:1.5px solid var(--border)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}
.btn-lg{padding:14px 30px;font-size:15px}

/* ─── HERO (homepage) ────────────────────────────────────── */
.hero{background:var(--bg-dark);padding:80px 0 96px;position:relative;overflow:hidden}
.hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 65% 40%,rgba(17,85,204,.28) 0%,transparent 70%),
    radial-gradient(ellipse 40% 50% at 90% 75%,rgba(15,143,122,.22) 0%,transparent 60%);
  pointer-events:none;
}
.hero-grid{display:grid;grid-template-columns:1fr 360px;gap:64px;align-items:center;position:relative;z-index:1}
.hero-tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.3px;color:var(--accent2);margin-bottom:22px}
.hero-tag-dot{width:6px;height:6px;border-radius:50%;background:var(--accent2)}
.hero h1{font-size:clamp(34px,4vw,52px);font-weight:900;color:#fff;line-height:1.1;margin-bottom:22px;letter-spacing:-.8px}
.hero h1 .hl{color:#4dd8cf}
.hero-desc{font-size:17px;color:var(--hero-muted);line-height:1.78;margin-bottom:36px;max-width:500px}
.hero-ctas{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:52px}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hero-border);padding-top:40px}
.hero-stat{padding-right:24px;border-right:1px solid var(--hero-border)}
.hero-stat:not(:first-child){padding-left:24px}
.hero-stat:last-child{border-right:none}
.hero-stat-n{font-size:32px;font-weight:900;color:#fff;line-height:1}
.hero-stat-l{font-size:12px;color:rgba(255,255,255,.42);margin-top:5px;font-weight:500}

/* Hero panel */
.hero-panel{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:28px;backdrop-filter:blur(12px)}
.hero-panel-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.38);margin-bottom:18px}
.sector-list{display:flex;flex-direction:column;gap:7px}
.sector-row{display:flex;align-items:center;gap:12px;padding:10px 13px;border-radius:8px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.04);cursor:pointer;transition:all .15s}
.sector-row:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16)}
.sector-row-icon{width:30px;height:30px;border-radius:6px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sector-row-icon svg{width:14px;height:14px;stroke:rgba(255,255,255,.8);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sector-row-name{font-size:13px;font-weight:500;color:rgba(255,255,255,.82)}
.sector-row-arr{margin-left:auto;opacity:.3}
.sector-row-arr svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hero-panel-divider{height:1px;background:rgba(255,255,255,.08);margin:16px 0}
.hero-panel-chips{display:flex;gap:8px}
.hpc{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:11px;text-align:center;cursor:pointer;transition:all .15s}
.hpc:hover{background:rgba(255,255,255,.11)}
.hpc-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:rgba(255,255,255,.35)}
.hpc-val{font-size:16px;font-weight:800;color:#fff;margin-top:3px}

/* ─── TRUST / CLIENT LOGOS ───────────────────────────────── */
.trust{padding:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg);overflow:hidden}
.trust-inner{display:flex;align-items:center;gap:32px}
.trust-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-light);flex-shrink:0;white-space:nowrap;padding-right:8px;border-right:1px solid var(--border)}
.trust-marquee{flex:1;overflow:hidden;position:relative}
.trust-marquee::before,.trust-marquee::after{content:'';position:absolute;top:0;bottom:0;width:60px;z-index:2;pointer-events:none}
.trust-marquee::before{left:0;background:linear-gradient(to right,var(--bg),transparent)}
.trust-marquee::after{right:0;background:linear-gradient(to left,var(--bg),transparent)}
.trust-track{display:flex;align-items:center;gap:32px;width:max-content;animation:marquee 28s linear infinite}
.trust-track:hover{animation-play-state:paused}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.trust-logo{height:36px;width:auto;max-width:120px;object-fit:contain;flex-shrink:0;filter:var(--client-logo-filter);transition:filter .2s;cursor:pointer}
.trust-logo:hover{filter:var(--client-logo-filter-hover)}
.trust-logo-fallback{font-size:12px;font-weight:600;color:var(--text-light);padding:5px 14px;border:1px solid var(--border);border-radius:5px;white-space:nowrap;flex-shrink:0}

/* ─── SERVICES GRID ──────────────────────────────────────── */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{background:var(--card);border:1.5px solid var(--card-border);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:14px;transition:all .2s;cursor:pointer}
.service-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.service-card-media{margin:-28px -28px 4px;height:168px;overflow:hidden;border-radius:11px 11px 0 0;background:var(--bg-alt)}
.service-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}
.service-card:hover .service-card-media img{transform:scale(1.05)}
.service-icon{width:46px;height:46px;border-radius:10px;background:var(--accent-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.service-icon svg{width:21px;height:21px;stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.service-icon.teal{background:var(--accent2-light)}
.service-icon.teal svg{stroke:var(--accent2)}
.service-card h3{font-size:16.5px;font-weight:700}
.service-card p{font-size:14px;color:var(--text-muted);line-height:1.65;flex:1}
.service-tags{display:flex;flex-wrap:wrap;gap:5px}
.stag{font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-light);padding:3px 8px;border-radius:4px}
.service-link{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--accent);margin-top:2px}
.service-link svg{width:13px;height:13px;stroke:var(--accent);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.service-card:hover .service-link svg{transform:translateX(4px)}
.service-card.dark-card{background:var(--bg-dark);border-color:transparent}
.service-card.dark-card h3{color:#fff}
.service-card.dark-card p{color:rgba(255,255,255,.6)}
.service-card.dark-card .btn-cta{margin-top:auto;align-self:flex-start}

/* ─── PROCESS ────────────────────────────────────────────── */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.process-line{position:absolute;top:22px;left:12.5%;right:12.5%;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));z-index:0;border-radius:2px}
.process-step{text-align:center;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px}
.process-num{width:44px;height:44px;border-radius:50%;background:var(--bg);border:2.5px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:var(--accent);box-shadow:0 0 0 6px var(--bg);transition:background .25s,box-shadow .25s}
.process-step h4{font-size:15px;font-weight:700}
.process-step p{font-size:13.5px;color:var(--text-muted);line-height:1.65}

/* ─── GEOVIEW PANEL ──────────────────────────────────────── */
.geoview-wrap{background:var(--bg-dark);border-radius:16px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;min-height:360px}
.geoview-content{padding:52px 48px;display:flex;flex-direction:column;justify-content:center;gap:0}
.geoview-content h2{font-size:clamp(22px,2.5vw,32px);font-weight:800;color:#fff;margin-bottom:14px}
.geoview-content p{font-size:15.5px;color:rgba(255,255,255,.62);line-height:1.78;margin-bottom:28px;max-width:360px}
.geoview-map{position:relative;overflow:hidden;background:linear-gradient(160deg,#071628 0%,#0a2240 100%)}
.map-svg-bg{position:absolute;inset:0;opacity:.08}
.map-pins{position:absolute;inset:0}
.map-pin{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--accent2);box-shadow:0 0 0 5px rgba(31,139,87,.2)}
.map-pin::after{content:'';position:absolute;inset:-8px;border-radius:50%;border:1.5px solid rgba(0,168,156,.3);animation:ping 2.4s ease-in-out infinite}
.map-pin:nth-child(2)::after{animation-delay:.6s}
.map-pin:nth-child(3)::after{animation-delay:1.2s}
@keyframes ping{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.2);opacity:0}}
.map-center-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;opacity:.35}
.map-center-icon svg{width:64px;height:64px;stroke:#fff;fill:none;stroke-width:.8;stroke-linecap:round;stroke-linejoin:round}
.map-order-btn{position:absolute;bottom:20px;right:20px;z-index:5;background:rgba(11,23,40,.78);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:12px;font-weight:600;padding:8px 16px;border-radius:7px;cursor:pointer;transition:all .15s;font-family:inherit}
.map-order-btn:hover{background:rgba(11,23,40,.95)}

/* ─── REAL LEAFLET MAP (GeoView teaser) ──────────────────── */
.geoview-leaflet{position:absolute;inset:0;z-index:0;background:#0a1a2f}
.geoview-map .leaflet-container{width:100%;height:100%;background:#0a1a2f;font-family:inherit}
.map-badge{position:absolute;top:14px;left:14px;z-index:5;display:inline-flex;align-items:center;gap:7px;background:rgba(11,23,40,.78);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:11.5px;font-weight:600;padding:6px 12px;border-radius:20px;pointer-events:none}
.map-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--accent2);box-shadow:0 0 0 3px rgba(31,139,87,.3)}
.geoview-map--failed{display:flex;align-items:center;justify-content:center}
.geoview-map--failed::after{content:'Map unavailable offline';color:rgba(255,255,255,.5);font-size:13px}
/* Popup styling to match the brand */
.leaflet-popup-content-wrapper{border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.leaflet-popup-content{margin:12px 14px;font-family:inherit}
.gv-popup{display:flex;flex-direction:column;gap:3px}
.gv-popup strong{font-size:13.5px;font-weight:700;color:#0b1728;line-height:1.35}
.gv-popup-loc{font-size:12px;color:#475569}
.gv-popup-meta{font-size:11px;font-weight:600;color:#1155cc;text-transform:uppercase;letter-spacing:.4px;margin-top:2px}

/* ─── CASES ──────────────────────────────────────────────── */
.cases-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:20px}
.case-card{border-radius:12px;overflow:hidden;border:1.5px solid var(--card-border);background:var(--card);display:flex;flex-direction:column;transition:all .2s;cursor:pointer}
.case-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:transparent}
.case-img{width:100%;overflow:hidden;background:var(--bg-alt)}
.case-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.case-card:hover .case-img img{transform:scale(1.04)}
.case-img-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-alt),var(--border))}
.case-img-ph svg{width:36px;height:36px;stroke:var(--text-light);fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:.5}
.case-main .case-img{height:220px}
.case-side .case-img{height:150px}
.case-body{padding:20px;flex:1;display:flex;flex-direction:column;gap:8px}
.case-pill{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--accent);background:var(--accent-light);padding:3px 8px;border-radius:4px;display:inline-block}
.case-pill.teal{color:var(--accent2);background:var(--accent2-light)}
.case-body h3{font-size:15.5px;font-weight:700;line-height:1.4}
.case-body p{font-size:13.5px;color:var(--text-muted);line-height:1.65;flex:1}
.case-meta{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:12px;color:var(--text-light)}
.case-dot{width:3px;height:3px;border-radius:50%;background:var(--border-strong)}

/* ─── TEAM (preview cards) ───────────────────────────────── */
.team-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.team-card{border-radius:12px;overflow:hidden;border:1.5px solid var(--card-border);background:var(--card);text-align:center;transition:all .2s;cursor:pointer}
.team-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--accent)}
.team-photo{width:100%;aspect-ratio:1;overflow:hidden;background:var(--bg-alt)}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s}
.team-card:hover .team-photo img{transform:scale(1.05)}
.team-photo-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--accent-light),var(--accent2-light))}
.team-photo-ph svg{width:38px;height:38px;stroke:var(--accent);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.6}
.team-info{padding:14px 12px}
.team-name{font-size:14px;font-weight:700}
.team-role{font-size:11.5px;color:var(--text-muted);margin-top:3px;line-height:1.4}
.team-socials{display:flex;justify-content:center;gap:6px;margin-top:10px}
.team-soc{width:26px;height:26px;border-radius:5px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all .15s}
.team-soc:hover{border-color:var(--accent);background:var(--accent-light)}
.team-soc svg{width:12px;height:12px;stroke:var(--text-muted);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.team-soc:hover svg{stroke:var(--accent)}

/* ─── TESTIMONIALS ───────────────────────────────────────── */
.testi-section{background:var(--bg-dark);padding:88px 0}
.testi-section .section-title{color:#fff}
.testi-section .section-sub{color:rgba(255,255,255,.52)}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.testi-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:26px;display:flex;flex-direction:column;gap:16px}
.testi-stars{display:flex;gap:3px}
.testi-stars svg{width:13px;height:13px;fill:#f59e0b;stroke:none}
.testi-quote{font-size:14.5px;color:rgba(255,255,255,.75);line-height:1.78;font-style:italic;flex:1}
.testi-author{display:flex;align-items:center;gap:12px}
.testi-av{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center}
.testi-av img{width:100%;height:100%;object-fit:cover}
.testi-av svg{width:18px;height:18px;stroke:rgba(255,255,255,.38);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.testi-name{font-size:13px;font-weight:700;color:#fff}
.testi-org{font-size:11.5px;color:rgba(255,255,255,.4);margin-top:2px}

/* ─── BLOG (cards) ───────────────────────────────────────── */
.blog-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:20px}
.blog-card{border-radius:12px;overflow:hidden;border:1.5px solid var(--card-border);background:var(--card);cursor:pointer;transition:all .2s;display:flex;flex-direction:column}
.blog-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:transparent}
.blog-img{width:100%;overflow:hidden;background:var(--bg-alt)}
.blog-img img,.blog-img-ph{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.blog-card:hover .blog-img img{transform:scale(1.04)}
.blog-img-ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-light),var(--bg-alt))}
.blog-img-ph svg{width:34px;height:34px;stroke:var(--accent);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;opacity:.5}
.blog-card-featured .blog-img{height:200px}
.blog-card-side .blog-img{height:150px}
.blog-body{padding:20px;flex:1}
.blog-cat{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin-bottom:8px}
.blog-body h3{font-size:15.5px;font-weight:700;line-height:1.4;margin-bottom:8px}
.blog-body p{font-size:13.5px;color:var(--text-muted);line-height:1.65}
.blog-footer{padding:0 20px 18px;display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.blog-date{font-size:12px;color:var(--text-light)}
.blog-read{font-size:12px;font-weight:600;color:var(--accent);display:flex;align-items:center;gap:4px}
.blog-read svg{width:11px;height:11px;stroke:var(--accent);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

/* ─── BLOG (text-only cards) ─────────────────────────────── */
.blog-text-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.blog-post-card{display:flex;flex-direction:column;gap:12px;background:var(--card);border:1.5px solid var(--card-border);border-radius:12px;padding:26px 26px 24px;transition:all .2s}
a.blog-post-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.blog-post-card.is-soon{opacity:.92}
.blog-post-meta{display:flex;align-items:center;gap:9px;font-size:11.5px}
.blog-post-cat{font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent)}
.blog-post-dot{width:3px;height:3px;border-radius:50%;background:var(--border-strong)}
.blog-post-date{color:var(--text-light);font-weight:500}
.blog-post-card h3{font-size:18px;font-weight:700;line-height:1.4;color:var(--text)}
.blog-post-card p{font-size:14px;color:var(--text-muted);line-height:1.7;flex:1}
.blog-post-read{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--accent);margin-top:2px}
.blog-post-read svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
a.blog-post-card:hover .blog-post-read svg{transform:translateX(4px)}
.blog-post-soon{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-light);background:var(--bg-alt);border:1px solid var(--border);padding:4px 10px;border-radius:20px;align-self:flex-start}
.blog-post-card.is-hidden,.blog-featured-text.is-hidden{display:none}
/* Featured text post (Blog page) */
.blog-featured-text{display:flex;flex-direction:column;gap:14px;background:linear-gradient(135deg,var(--accent-light),var(--bg-alt));border:1.5px solid var(--card-border);border-radius:16px;padding:40px 42px;margin-bottom:40px;transition:all .2s}
.blog-featured-text:hover{box-shadow:var(--shadow-lg);border-color:var(--accent)}
.blog-featured-text .blog-post-cat{font-size:12px}
.blog-featured-text h2{font-size:clamp(22px,2.4vw,30px);font-weight:800;line-height:1.25;color:var(--text);max-width:760px}
.blog-featured-text p{font-size:15.5px;color:var(--text-muted);line-height:1.75;max-width:760px}
.blog-featured-text .blog-featured-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-light)}
@media(max-width:960px){.blog-text-grid{grid-template-columns:1fr}}
@media(max-width:640px){.blog-featured-text{padding:28px 24px}}

/* ─── NEWSLETTER ─────────────────────────────────────────── */
.newsletter-wrap{background:linear-gradient(120deg,var(--accent),var(--accent2));border-radius:16px;padding:52px 56px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.newsletter-wrap h2{font-size:24px;font-weight:800;color:#fff;margin-bottom:8px}
.newsletter-wrap p{font-size:15px;color:rgba(255,255,255,.72)}
.newsletter-form{display:flex;gap:8px;flex-shrink:0;min-width:360px}
.newsletter-input{flex:1;background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.25);border-radius:8px;padding:12px 16px;font-size:14px;color:#fff;outline:none;font-family:inherit;transition:all .2s}
.newsletter-input::placeholder{color:rgba(255,255,255,.5)}
.newsletter-input:focus{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.2)}
.newsletter-btn{background:#fff;color:var(--accent);font-size:14px;font-weight:700;border-radius:8px;padding:12px 24px;cursor:pointer;white-space:nowrap;transition:all .15s;border:none;font-family:inherit}
.newsletter-btn:hover{background:rgba(255,255,255,.92);transform:translateY(-1px)}
.newsletter-msg{font-size:14px;font-weight:600;color:#fff;margin-top:12px;display:none}
.newsletter-msg.show{display:block}

/* ─── CTA SECTION ────────────────────────────────────────── */
.cta-section{background:var(--bg-dark);padding:88px 0;text-align:center}
.cta-section h2{font-size:clamp(28px,3vw,42px);font-weight:900;color:#fff;margin-bottom:16px;letter-spacing:-.5px}
.cta-section p{font-size:17px;color:rgba(255,255,255,.6);margin-bottom:36px;max-width:500px;margin-left:auto;margin-right:auto;line-height:1.75}
.cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ─── VALUE / FEATURE CARDS (shared) ─────────────────────── */
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.value-card{background:var(--card);border:1.5px solid var(--card-border);border-radius:12px;padding:26px;transition:all .2s}
.value-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.value-icon{width:46px;height:46px;border-radius:10px;background:var(--accent-light);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.value-icon svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.value-icon.teal{background:var(--accent2-light)}
.value-icon.teal svg{stroke:var(--accent2)}
.value-card h3{font-size:16px;font-weight:700;margin-bottom:8px}
.value-card p{font-size:13.5px;color:var(--text-muted);line-height:1.65}

/* ─── STATS STRIP (shared) ───────────────────────────────── */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat-box{text-align:center;padding:28px 16px;background:var(--card);border:1.5px solid var(--card-border);border-radius:12px}
.stat-box-n{font-size:clamp(28px,3vw,40px);font-weight:900;color:var(--accent);line-height:1}
.stat-box-l{font-size:13px;color:var(--text-muted);margin-top:8px;font-weight:500}

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr}.hero-panel{display:none}
  .services-grid{grid-template-columns:1fr 1fr}
  .process-grid{grid-template-columns:1fr 1fr}.process-line{display:none}
  .cases-grid,.blog-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .testi-grid{grid-template-columns:1fr}
  .geoview-wrap{grid-template-columns:1fr}.geoview-map{min-height:220px}
  .newsletter-wrap{flex-direction:column}.newsletter-form{min-width:0;width:100%}
  .value-grid{grid-template-columns:1fr 1fr}
  .stats-strip{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .services-grid,.team-grid{grid-template-columns:1fr 1fr}
  .hero-stats{grid-template-columns:1fr 1fr;gap:20px 0}
  .hero-stat{border:none!important;padding:0!important}
  .value-grid,.stats-strip{grid-template-columns:1fr 1fr}
  .newsletter-wrap{padding:36px 28px}
  .geoview-content{padding:36px 28px}
}
