/* ══════════════════════════════════════
   HOME — CPU-FIRST RENDERING
   No filter, no blur, no will-change,
   no transform animations on orbs.
   Hover = opacity/color/border only.
   fadeUp = opacity only (no translateY).
   All compositor-layer promotions removed.
══════════════════════════════════════ */

/* ── Hero shell ── */
.hero {
  min-height: calc(100vh - var(--nav-h));
  display: flex; align-items: center; justify-content: center;
  padding: 80px 32px 60px;
  overflow: hidden; position: relative;
  background: #0a140c; text-align: center;
}

/* ── Video background — NO filter, clean and sharp ── */
.hero-bg-img { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.hero-bg-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  opacity: 0.72;
}

/* Overlay — darker so text reads on bright video */
.hero-bg-img-overlay {
  position: absolute; inset: 0;
  background: rgba(6,12,8,0.48);
}

/* ── Map grid — static ── */
.hero-map-grid {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image:
    repeating-linear-gradient(0deg,  transparent, transparent 60px, rgba(120,220,150,0.028) 60px, rgba(120,220,150,0.028) 61px),
    repeating-linear-gradient(90deg, transparent, transparent 60px, rgba(100,180,220,0.028) 60px, rgba(100,180,220,0.028) 61px);
}

/* ── Orbs — static, no animation, no blur ── */
.hero-orbs { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.hero-orb  { position: absolute; border-radius: 50%; }
.orb-1 {
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(42,99,50,0.12) 0%, transparent 68%);
  top: -80px; right: -60px;
}
.orb-2 {
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(26,90,150,0.09) 0%, transparent 68%);
  bottom: -60px; left: -70px;
}

/* ── Reduced-motion ── */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ── Hero center ── */
.hero-center {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center;
  max-width: 820px; width: 100%;
}

/* ══ FIX 2: .hero-brand styles removed — block deleted from HTML.
   Hero starts directly with .hero-title now. ══ */

/* ══ TITLE ══ */
.hero-title {
  font-family: 'DM Serif Display', serif;
  font-size: clamp(2.9rem, 7vw, 5.6rem);
  font-weight: 400; line-height: 1.04; letter-spacing: -0.015em;
  color: #fff; margin-bottom: 18px;
  display: flex; flex-direction: column; gap: 3px;
}
.title-line1 { color: #fff; animation: fadeIn 0.6s 0.05s ease both; }
.title-geo   { color: rgba(120,215,148,0.95); animation: fadeIn 0.6s 0.18s ease both; }
.title-italic {
  font-style: italic; color: rgba(234,193,110,0.85);
  font-size: 0.52em; letter-spacing: 0.05em;
  animation: fadeIn 0.6s 0.3s ease both;
}

/* ══ Typewriter ══ */
.hero-typewriter {
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px; height: 28px; overflow: hidden;
  animation: fadeIn 0.6s 0.42s ease both;
}
.htw-static {
  font-family: 'Space Mono', monospace; font-size: 0.72rem;
  letter-spacing: 0.1em; color: rgba(160,225,190,0.55); font-weight: 700;
  text-transform: uppercase;
}
.htw-cursor-wrap { display: inline-flex; align-items: center; gap: 1px; }
.htw-word {
  font-family: 'Space Mono', monospace; font-size: 0.72rem;
  letter-spacing: 0.1em; color: rgba(120,215,155,0.92); font-weight: 700;
  text-transform: uppercase;
  transition: opacity 0.22s ease;
}
.htw-word.fade-out { opacity: 0; }
.htw-cursor {
  font-family: 'Space Mono', monospace; font-size: 0.72rem;
  color: rgba(120,215,155,0.75); font-weight: 400;
  animation: blink 1.1s step-end infinite;
  margin-left: 1px;
}
@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:0;} }

/* ══ Description ══ */
.hero-desc {
  font-size: clamp(0.9rem, 1.6vw, 1.02rem);
  color: rgba(205,225,215,0.76); max-width: 560px; line-height: 1.8;
  margin-bottom: 32px;
  animation: fadeIn 0.6s 0.54s ease both;
}
.hero-desc strong { color: rgba(255,255,255,0.96); font-weight: 700; }

/* ══ CTA buttons ══ */
.hero-cta {
  display: flex; gap: 14px; flex-wrap: wrap; justify-content: center;
  margin-bottom: 44px;
  animation: fadeIn 0.6s 0.64s ease both;
}

.cta-hero-primary {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 13px 30px; border-radius: 40px;
  background: var(--green); color: #fff;
  font-weight: 700; font-size: 0.88rem; letter-spacing: 0.04em;
  border: 2px solid var(--green);
  transition: background 0.2s, border-color 0.2s, opacity 0.2s;
}
.cta-hero-primary:hover { background: var(--green-l); border-color: var(--green-l); opacity: 0.9; }

.cta-hero-secondary {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 13px 28px; border-radius: 40px;
  background: var(--teal); color: #fff;
  font-size: 0.88rem; letter-spacing: 0.04em; font-weight: 600;
  border: 2px solid var(--teal);
  transition: background 0.2s, border-color 0.2s, opacity 0.2s;
}
.cta-hero-secondary:hover { background: var(--teal-l); border-color: var(--teal-l); opacity: 0.9; }
.cta-hero-secondary svg { flex-shrink: 0; }

/* ══ Stats bar ══ */
.hero-stats {
  display: flex; align-items: stretch; justify-content: center;
  margin-bottom: 22px;
  border-radius: 14px; overflow: hidden;
  border: 1px solid rgba(140,210,170,0.16);
  background: rgba(6,16,10,0.55);
  animation: fadeIn 0.6s 0.74s ease both;
}
.stat { display:flex;flex-direction:column;align-items:center;padding:15px 22px;flex:1; }
.stat + .stat { border-left: 1px solid rgba(140,210,170,0.12); }
.stat-n { font-family:'DM Serif Display',serif;font-size:1.85rem;font-weight:400;color:rgba(234,203,115,0.95);line-height:1; }
.stat-l { font-size:0.58rem;color:rgba(185,210,200,0.55);margin-top:4px;letter-spacing:0.1em;font-weight:600;text-transform:uppercase;font-family:'Space Mono',monospace; }
.stat-sep { display:none; }

/* ══ Trust bar ══ */
.hero-trust-bar {
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  animation: fadeIn 0.6s 0.84s ease both;
}
.trust-item { font-size:0.65rem;color:rgba(135,210,168,0.65);font-weight:700;letter-spacing:0.07em;font-family:'Space Mono',monospace; }
.trust-sep  { color:rgba(140,200,160,0.18); }

/* ══════════════════════════════════════
   HOME — SERVICES (4 cards)
   Big box style — centered icons, equal heights
══════════════════════════════════════ */
.services-preview-sec { background: var(--bg2); }
.services-grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 18px; max-width: 1200px; margin: 0 auto;
}
.srv-card {
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background:var(--card);border:1.5px solid var(--border);border-radius:var(--r);
  padding:36px 22px 24px;position:relative;overflow:hidden;
  cursor:pointer;text-decoration:none;
  transition:border-color 0.2s, opacity 0.2s;
}
.srv-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  opacity:0;transition:opacity 0.2s;
}
.srv-card:hover { opacity: 0.9; }
.srv-card:hover::before{opacity:1;}
.card-green::before{background:linear-gradient(90deg,var(--green),var(--teal));}
.card-green:hover{border-color:rgba(58,125,68,0.35);}
.card-blue::before{background:linear-gradient(90deg,var(--blue),var(--teal));}
.card-blue:hover{border-color:rgba(46,109,164,0.35);}
.card-teal::before{background:linear-gradient(90deg,var(--teal),var(--blue));}
.card-teal:hover{border-color:rgba(30,138,120,0.35);}
.card-amber::before{background:linear-gradient(90deg,var(--amber),var(--orange));}
.card-amber:hover{border-color:rgba(160,120,32,0.35);}
.card-coral::before{background:linear-gradient(90deg,var(--coral),var(--orange));}
.card-coral:hover{border-color:rgba(184,64,80,0.35);}
.card-orange::before{background:linear-gradient(90deg,var(--orange),var(--amber));}
.card-orange:hover{border-color:rgba(192,105,42,0.35);}

/* Icon container — guarantees all icons occupy identical space */
.srv-icon-box {
  width: 150px;
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  flex-shrink: 0;
}
.srv-icon-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.srv-icon-emoji {
  font-size: 3.2rem;
  line-height: 1;
  display: block;
}
/* Keep old .srv-icon for backward compatibility on other pages */
.srv-icon {
  font-size: 1.8rem;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.srv-card h3{
  font-family:'DM Serif Display',serif;font-size:0.98rem;font-weight:400;
  color:var(--text);margin-bottom:6px;line-height:1.3;
}
.srv-card p{
  font-size:0.79rem;color:var(--muted);line-height:1.6;margin-bottom:14px;flex:1;
}
.srv-link{
  font-size:0.74rem;font-weight:700;color:var(--teal);letter-spacing:0.05em;
  transition:color 0.2s;margin-top:auto;
}
.srv-card:hover .srv-link{color:var(--green);}

/* ══════════════════════════════════════
   HOME — FEATURED SLIDER
══════════════════════════════════════ */
.featured-sec { background: var(--bg); }
.featured-sec .sec-head { margin-bottom: 32px; }

.feat-slider-wrap { position:relative; padding:0 52px; }
.feat-prev,.feat-next {
  position:absolute;top:50%;transform:translateY(-50%);
  width:40px;height:40px;border-radius:50%;z-index:10;
  border:1.5px solid var(--border);background:var(--card);
  color:var(--teal);font-size:0.9rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background 0.2s, color 0.2s, border-color 0.2s;
}
.feat-prev{left:4px;} .feat-next{right:4px;}
.feat-prev:hover,.feat-next:hover{background:var(--teal);color:#fff;border-color:var(--teal);}

.feat-track-outer{overflow:hidden;padding:8px 0 12px;}
.feat-track{
  display:flex;gap:20px;
  transition:transform 0.4s ease;
}

.feat-card {
  flex-shrink:0; width:calc(33.333% - 14px);
  background:var(--card);border:1.5px solid var(--border);border-radius:var(--r2);
  overflow:hidden; cursor:pointer;
  transition:border-color 0.2s, opacity 0.2s;
}
.feat-card:hover { border-color:rgba(20,104,88,0.28); opacity: 0.95; }

.feat-thumb{position:relative;height:185px;overflow:hidden;background:var(--bg3);}
.feat-thumb img{
  width:100%;height:100%;object-fit:cover;object-position:center;
}
.feat-card:hover .feat-thumb img{ opacity: 0.92; }

.feat-tag{position:absolute;top:10px;right:10px;padding:3px 11px;border-radius:40px;background:rgba(20,104,88,0.92);color:#fff;font-size:0.63rem;font-weight:700;letter-spacing:0.08em;font-family:'Space Mono',monospace;}

.feat-hover-cta {
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(10,30,18,0.52);
  color:#fff;font-size:0.8rem;font-weight:700;letter-spacing:0.06em;
  font-family:'Space Mono',monospace;
  opacity:0;transition:opacity 0.22s;
  pointer-events:none;
}
.feat-card:hover .feat-hover-cta{opacity:1;}

.feat-body{padding:17px 17px 19px;}
.feat-body h3{font-family:'DM Serif Display',serif;font-size:0.98rem;font-weight:400;color:var(--text);margin-bottom:5px;line-height:1.3;}
.feat-body p{font-size:0.79rem;color:var(--muted);line-height:1.6;}

.feat-dots{display:flex;justify-content:center;gap:7px;margin-top:18px;}
.feat-dot{width:7px;height:7px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:background 0.2s;padding:0;}
.feat-dot.active{background:var(--green);}

/* ══════════════════════════════════════
   HOME — ARTICLES PREVIEW
══════════════════════════════════════ */
.articles-preview-sec{background:var(--bg2);}
.articles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;}
.art-card{
  display:block;background:var(--card);border:1.5px solid var(--border);border-radius:var(--r2);
  padding:28px 26px;text-decoration:none;
  transition:border-color 0.2s, opacity 0.2s;
  position:relative;overflow:hidden;
}
.art-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--green));opacity:0;transition:opacity 0.2s;}
.art-card:hover{border-color:rgba(20,104,88,0.28); opacity: 0.95;}
.art-card:hover::after{opacity:1;}
.art-cat{display:inline-block;font-family:'Space Mono',monospace;font-size:0.62rem;font-weight:700;color:var(--teal);letter-spacing:0.14em;text-transform:uppercase;margin-bottom:12px;padding:3px 10px;border-radius:40px;background:rgba(20,104,88,0.08);border:1px solid rgba(20,104,88,0.2);}
.art-card h3{font-family:'DM Serif Display',serif;font-size:1.05rem;font-weight:400;color:var(--text);margin-bottom:10px;line-height:1.32;}
.art-card p{font-size:0.8rem;color:var(--muted);line-height:1.65;margin-bottom:14px;}
.art-read{font-size:0.75rem;font-weight:700;color:var(--teal);letter-spacing:0.04em;}
.art-card:hover .art-read{color:var(--green);}

/* ══════════════════════════════════════
   KEYFRAMES — opacity only
══════════════════════════════════════ */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media (max-width:1100px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:960px){
  .hero{padding:60px 20px 48px;min-height:calc(100svh - var(--nav-h));}
  .hero-title{font-size:clamp(2.4rem,8vw,3.8rem);}
  .hero-stats .stat{padding:14px 16px;}
  .feat-card{width:calc(50% - 10px);}
  .feat-slider-wrap{padding:0 44px;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .hero{padding:40px 16px 32px;}
  .hero-trust-bar .trust-sep{display:none;}
  .trust-item{display:block;}
  .hero-stats .stat{padding:12px 12px;}
  .stat-n{font-size:1.55rem;}
  .feat-card{width:100%;}
  .feat-slider-wrap{padding:0 38px;}
  .services-grid{grid-template-columns:1fr;}
  .cta-hero-primary,.cta-hero-secondary{padding:11px 22px;font-size:0.84rem;}
}