/* ══════════════════════════════════════════════════════════
   GARANTA GROUP — Theme v2  (dark premium + globe + trucks)
   Подключается ПОСЛЕ style.css и animations.css.
   Откат: убрать <link rel="stylesheet" href="css/theme-v2.css">
   ══════════════════════════════════════════════════════════ */

/* ── 0. Доп. переменные ── */
:root {
  --dark-bg:   #060C18;
  --dark-bg2:  #07111E;
  --glass:     rgba(255,255,255,.052);
  --glass-b:   rgba(255,255,255,.10);
  --glass-h:   rgba(255,255,255,.082);
  --txt-light: #EEF3FF;
  --txt-muted: rgba(175,200,235,.62);
  --glow-r:    rgba(230,57,70,.28);
  --glow-b:    rgba(96,165,250,.22);
}

/* ════════════════════════════════════════
   1. HERO  — глобус + усиленный фон
   ════════════════════════════════════════ */

/* Богаче орбы — интенсивнее цвет */
.hero-orb-1 {
  background: radial-gradient(circle, rgba(19,64,168,.90) 0%, transparent 70%);
  opacity: .55;
}
.hero-orb-2 {
  background: radial-gradient(circle, rgba(230,57,70,.70) 0%, transparent 70%);
  opacity: .50;
}
.hero-orb-3 {
  background: radial-gradient(circle, rgba(37,211,102,.38) 0%, transparent 70%);
  opacity: .45;
}

/* hero-visual — якорь для глобуса */
.hero-visual {
  position: relative;
  min-height: 480px;
}

/* Обёртка глобуса (вставляется JS) */
.hero-planet-wrap {
  position: absolute;
  width: 460px;
  height: 460px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  pointer-events: none;
}

/* Атмосферное свечение вокруг планеты */
.hero-planet-wrap::before {
  content: '';
  position: absolute;
  inset: -28px;
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(19,64,168,.22) 45%,
    rgba(230,57,70,.08) 68%,
    transparent 80%);
  pointer-events: none;
  animation: planetGlow 5s ease-in-out infinite;
}
@keyframes planetGlow {
  0%,100% { opacity: .85; transform: scale(1); }
  50%     { opacity: 1;   transform: scale(1.04); }
}

.hero-globe-svg {
  width: 100%;
  height: 100%;
  opacity: 0;               /* GSAP раскрывает */
  overflow: visible;
}

/* dcard выше глобуса */
.dcard { z-index: 2; position: relative; }

/* Пилюли поверх глобуса */
.hero-pill { z-index: 3; }

/* ════════════════════════════════════════
   1b. DCARD — полный редизайн
   ════════════════════════════════════════ */

/* Карточка: тёмное стекло */
.dcard {
  background: rgba(6, 14, 32, 0.82) !important;
  border: 1.5px solid rgba(255,255,255,.13) !important;
  box-shadow:
    0 0 0 1px rgba(19,64,168,.18),
    0 32px 80px rgba(0,0,0,.55),
    0 8px 24px rgba(0,0,0,.3),
    inset 0 1px 0 rgba(255,255,255,.09) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-radius: 22px !important;
  overflow: hidden;
  padding: 24px 26px 20px !important;
}

/* Цветная полоска сверху */
.dcard::before {
  background: linear-gradient(90deg, #E63946, #1340A8, #25D366) !important;
  height: 2.5px !important;
}

/* Шапка */
.dcard-top {
  margin-bottom: 20px !important;
}
.dcard-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .7rem !important;
  font-weight: 700 !important;
  color: rgba(200,215,245,.75) !important;
  text-transform: uppercase;
  letter-spacing: 1.2px;
}
.dcard-live {
  background: rgba(37,211,102,.12) !important;
  border-color: rgba(37,211,102,.25) !important;
  color: #4ade80 !important;
  font-size: .72rem !important;
}

/* ── Глобус + города ── */
.dcard-airports {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

/* Строка городов под глобусом */
.dcard-city-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 8px;
}

.dcard-airport {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 0 0 auto;
  min-width: 70px;
}
.dcard-airport-r {
  align-items: flex-end;
  text-align: right;
}

.dcard-iata {
  font-size: 1.75rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -1px;
  line-height: 1;
  margin-bottom: 4px;
  font-family: 'Russo One', 'Montserrat', sans-serif;
}

.dcard-airport-city {
  font-size: .82rem;
  font-weight: 700;
  color: rgba(220,235,255,.9);
  margin-bottom: 3px;
}

.dcard-airport-country {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .68rem;
  color: rgba(150,175,220,.6);
  font-weight: 600;
}
.dcard-airport-r .dcard-airport-country { flex-direction: row-reverse; }

/* Флаги в новом стиле */
.dcard-flag.kz {
  background: linear-gradient(135deg, rgba(0,174,239,.25), rgba(0,174,239,.1)) !important;
  color: #38bdf8 !important;
  border-color: rgba(0,174,239,.35) !important;
  font-size: .62rem !important;
  width: 30px !important; height: 18px !important;
  border-radius: 4px !important;
}
.dcard-flag.ru {
  background: linear-gradient(135deg, rgba(230,57,70,.25), rgba(230,57,70,.1)) !important;
  color: #f87171 !important;
  border-color: rgba(230,57,70,.35) !important;
  font-size: .62rem !important;
  width: 30px !important; height: 18px !important;
  border-radius: 4px !important;
}

/* Мини-глобус внутри dcard */
.dcard-mini-globe {
  border-radius: 50%;
  display: block;
  box-shadow:
    0 0 32px rgba(19,64,168,.5),
    0 0 70px rgba(19,64,168,.2),
    0 0 0 1.5px rgba(96,165,250,.25);
}

/* Строка ETA между городами */
.dcard-route-eta {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: .68rem;
  font-weight: 700;
  color: rgba(180,210,255,.8);
  text-transform: uppercase;
  letter-spacing: .6px;
  flex: 1;
  justify-content: center;
  white-space: nowrap;

  /* старые стили ниже */
  border-radius: 6px;
  padding: 3px 6px;
  margin-top: 2px;
  background: rgba(96,165,250,.1);
  padding: 3px 10px;
  border-radius: 8px;
  border: 1px solid rgba(96,165,250,.18);
}

/* ── Таймлайн статуса ── */
.dcard-timeline {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 18px;
  padding: 14px 16px;
  background: rgba(255,255,255,.04);
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.07);
}

.dct-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}
.dct-step span {
  font-size: .65rem;
  font-weight: 700;
  color: rgba(150,175,220,.55);
  text-transform: uppercase;
  letter-spacing: .5px;
  white-space: nowrap;
}

.dct-line {
  flex: 1;
  margin: 0 6px;
  margin-bottom: 18px; /* align to dot row */
}

.dct-dot {
  width: 28px; height: 28px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.dct-done .dct-dot {
  background: linear-gradient(135deg, #25D366, #16a34a);
  box-shadow: 0 0 14px rgba(37,211,102,.4);
}
.dct-done span { color: #4ade80; }

.dct-dot-pulse {
  background: linear-gradient(135deg, #1340A8, #E63946);
  box-shadow: 0 0 18px rgba(230,57,70,.45), 0 0 0 0 rgba(230,57,70,.3);
  animation: dcPulse 1.8s ease-in-out infinite;
}
.dct-active span { color: rgba(255,255,255,.9); }

@keyframes dcPulse {
  0%,100% { box-shadow: 0 0 18px rgba(230,57,70,.45), 0 0 0 0 rgba(230,57,70,0); }
  50%      { box-shadow: 0 0 24px rgba(230,57,70,.6), 0 0 0 8px rgba(230,57,70,0); }
}

.dct-dot-empty {
  background: transparent;
  border: 2px solid rgba(255,255,255,.18);
  width: 28px; height: 28px;
  border-radius: 50%;
}

/* ── Нижние статы ── */
.dcard-stats {
  background: rgba(255,255,255,.04) !important;
  border-color: rgba(255,255,255,.08) !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
}
.dst-val {
  color: #fff !important;
  font-size: 1.15rem !important;
}
.dst-lbl {
  color: rgba(150,175,220,.55) !important;
}
.dst-div {
  background: rgba(255,255,255,.1) !important;
}

/* ════════════════════════════════════════
   2. TICKER — чуть темнее + акцент
   ════════════════════════════════════════ */
.ticker-section {
  background: #0B1425;
  border-top-color:    rgba(255,255,255,.06);
  border-bottom-color: rgba(255,255,255,.06);
}
.ticker-label { color: rgba(148,170,210,.7); border-right-color: rgba(255,255,255,.08); }
.ti     { color: rgba(190,210,245,.85); }
.ti-dot { color: rgba(96,165,250,.4); opacity: 1; }

/* ════════════════════════════════════════
   3. ABOUT  — светлый, но с сеткой
   ════════════════════════════════════════ */
.about-section {
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%, rgba(19,64,168,.055), transparent),
    #F4F7FF;
}
.as-item {
  background: #fff;
  border-left-color: var(--blue2);
  box-shadow: 0 2px 12px rgba(10,36,99,.06);
}
.as-item:hover { border-left-color: var(--red); }
.acard { background: #fff; }

/* ════════════════════════════════════════
   4. SERVICES — ТЁМНЫЙ + GLASSMORPHISM
   ════════════════════════════════════════ */
.services-section {
  background:
    radial-gradient(ellipse 70% 55% at 85% 15%, rgba(19,64,168,.18), transparent),
    radial-gradient(ellipse 50% 40% at 10% 85%, rgba(230,57,70,.10), transparent),
    var(--dark-bg);
  position: relative;
}

/* Декоративная сетка для тёмной секции */
.services-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}

/* Заголовки секции — белые */
.services-section .section-tag {
  background: rgba(96,165,250,.12);
  color: #93c5fd;
  border-color: rgba(96,165,250,.2);
}
.services-section .section-title { color: var(--txt-light); }
.services-section .section-subtitle { color: var(--txt-muted); }
.services-section .title-underline { background: linear-gradient(90deg, var(--red), #60a5fa); }

/* Стеклянные карточки услуг */
.scard {
  background: var(--glass);
  border-color: var(--glass-b);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 4px 24px rgba(0,0,0,.25);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
/* Сброс белой карточки */
.scard::before {
  background: linear-gradient(90deg, var(--red), #60a5fa);
  transform: none !important;
  opacity: 0;
  transition: opacity .35s ease;
}
.scard:hover::before { opacity: 1; transform: none !important; }
.scard:hover {
  background: var(--glass-h);
  border-color: rgba(230,57,70,.32);
  box-shadow:
    0 0 0 1px rgba(230,57,70,.14),
    0 24px 60px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.10);
  transform: translateY(-7px);
}

.scard h3      { color: var(--txt-light); }
.scard p       { color: var(--txt-muted); }
.scard-link    { color: #60a5fa; }
.scard-link:hover { color: #ff7d87; }

/* ════════════════════════════════════════
   5. NUMBERS — усиленный глобус-маршрут
   ════════════════════════════════════════ */
.numbers-section {
  background: linear-gradient(145deg, #091838 0%, #0d2463 50%, #091838 100%);
}
.number-ring {
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.07);
  box-shadow: 0 0 24px rgba(19,64,168,.35);
}
.number-item:hover .number-ring {
  border-color: rgba(230,57,70,.5);
  box-shadow: 0 0 32px rgba(230,57,70,.3);
}

/* ════════════════════════════════════════
   6. DIRECTIONS — светлый, маршруты
   ════════════════════════════════════════ */
.directions-section { background: #F2F6FF; }
.dir-tabs { background: #E6EDFF; border-color: rgba(19,64,168,.1); }
.dir-tab.active { box-shadow: 0 3px 16px rgba(10,36,99,.13); }

.routes-list li {
  background: #fff;
  border-color: rgba(10,36,99,.08);
  transition:
    border-color .28s, background .28s,
    transform .28s, box-shadow .28s,
    opacity .38s ease;
}
.routes-list li:hover {
  border-color: var(--red);
  background: #fff8f8;
  box-shadow: 0 6px 24px rgba(230,57,70,.1);
  transform: translateX(6px);
}
.routes-list li:hover .route-arr { color: var(--red); transform: translateX(5px); }

/* ════════════════════════════════════════
   7. ADVANTAGES — ТЁМНЫЙ + GLASSMORPHISM
   ════════════════════════════════════════ */
.advantages-section {
  background:
    radial-gradient(ellipse 60% 50% at 20% 20%, rgba(19,64,168,.16), transparent),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(230,57,70,.08), transparent),
    var(--dark-bg2);
  position: relative;
}
.advantages-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events: none;
}

.advantages-section .section-tag {
  background: rgba(230,57,70,.14);
  color: #ff9aa2;
  border-color: rgba(230,57,70,.22);
}
.advantages-section .section-title { color: var(--txt-light); }

/* Стеклянные карточки преимуществ */
.adv-card {
  background: var(--glass);
  border-color: var(--glass-b);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.adv-card:hover {
  background: var(--glass-h);
  border-color: rgba(96,165,250,.28);
  box-shadow:
    0 0 0 1px rgba(96,165,250,.12),
    0 28px 64px rgba(0,0,0,.6),
    inset 0 1px 0 rgba(255,255,255,.10);
  transform: translateY(-6px);
}

.adv-card h3   { color: var(--txt-light); }
.adv-card p    { color: var(--txt-muted); }
.adv-num       { color: rgba(255,255,255,.035); }
.adv-icon      {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.1);
}
.adv-card:hover .adv-icon { background: rgba(255,255,255,.15); }

/* Иконки adv-card — белые на тёмном фоне */
.adv-card .adv-icon svg path,
.adv-card .adv-icon svg circle,
.adv-card .adv-icon svg rect,
.adv-card .adv-icon svg line,
.adv-card .adv-icon svg polyline {
  stroke: rgba(210,225,255,.88) !important;
}

/* ════════════════════════════════════════
   8. CLIENTS — светлый, усиленные карточки
   ════════════════════════════════════════ */
.clients-section { background: #F4F7FF; }
.cl-card {
  background: #fff;
  box-shadow: 0 2px 16px rgba(10,36,99,.06);
}
.cl-card:hover {
  box-shadow: 0 20px 48px rgba(10,36,99,.14);
  transform: translateY(-5px);
}
.clients-more {
  background: #fff;
  box-shadow: 0 2px 12px rgba(10,36,99,.06);
}

/* ════════════════════════════════════════
   9. ФОРМА  — темнее + акценты
   ════════════════════════════════════════ */
.form-section {
  background: linear-gradient(145deg, #040D1C 0%, #091838 50%, #0a1f4e 100%);
}
.form-section::before {
  background: rgba(230,57,70,.06);
  width: 700px; height: 700px;
}
.form-section::after {
  background: rgba(19,64,168,.08);
}
.form-card {
  box-shadow:
    0 0 0 1px rgba(255,255,255,.07),
    0 40px 100px rgba(0,0,0,.5),
    0 8px 24px rgba(0,0,0,.2);
}

/* ════════════════════════════════════════
   10. FOOTER
   ════════════════════════════════════════ */
.site-footer {
  background: #030912;
  border-top: 1px solid rgba(255,255,255,.05);
}

/* ════════════════════════════════════════
   11. HEADER  — тоньше, более glassmorphism
   ════════════════════════════════════════ */
.site-header {
  background: rgba(4,10,24,.85);
  border-bottom-color: rgba(255,255,255,.07);
}
.site-header.scrolled {
  background: rgba(4,10,24,.97) !important;
  backdrop-filter: blur(28px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(180%) !important;
  border-bottom-color: rgba(255,255,255,.09) !important;
}

.logo-brand { color: var(--txt-light) !important; }
.logo-sub   { color: rgba(150,175,215,.55) !important; }

.main-nav a {
  color: rgba(200,215,245,.8);
}
.main-nav a:hover,
.main-nav a.active {
  background: rgba(255,255,255,.08);
  color: var(--txt-light);
}

.header-phone { color: rgba(200,215,245,.85); }
.header-phone:hover { color: #ff7d87; }

.burger span { background: rgba(200,215,245,.85); }

/* Мобильное меню на тёмном хедере */
@media (max-width: 860px) {
  .main-nav {
    background: #04101f;
    border-bottom: 1px solid rgba(255,255,255,.07);
  }
  .main-nav a { border-bottom-color: rgba(255,255,255,.05); color: rgba(190,210,245,.8); }
}

/* ════════════════════════════════════════
   12. КНОПКИ  — усиленный glow
   ════════════════════════════════════════ */
.btn-red:hover {
  box-shadow:
    0 12px 36px rgba(230,57,70,.55),
    0 0 0 1.5px rgba(230,57,70,.35) !important;
}
.btn-green:hover {
  box-shadow:
    0 12px 36px rgba(37,211,102,.5),
    0 0 0 1.5px rgba(37,211,102,.3) !important;
}

/* ════════════════════════════════════════
   13. SECTION-TAG — лёгкое свечение
   ════════════════════════════════════════ */
.section-tag:hover {
  box-shadow: 0 0 0 3px rgba(19,64,168,.12);
}

/* ════════════════════════════════════════
   14. ФУРА НА ГЛОБУСЕ — CSS-анимации
   ════════════════════════════════════════ */

/* Пульсирующие города на глобусе */
@keyframes cityPulse {
  0%,100% { r: 4; opacity: 1; }
  50%     { r: 7; opacity: 0.55; }
}
.globe-city-dot { animation: cityPulse 2.4s ease-in-out infinite; }
.globe-city-dot-b { animation: cityPulse 2.9s ease-in-out infinite; }

/* Линия маршрута — бегущий dash */
.globe-route-line { animation: globeRouteDash 3.5s linear infinite; }
@keyframes globeRouteDash {
  from { stroke-dashoffset: 0; }
  to   { stroke-dashoffset: -56; }
}

/* Дополнительные линии маршрута */
.globe-route-line2 { animation: globeRouteDash 4.8s linear infinite reverse; }

/* Слабое вращение сетки для иллюзии движения */
.globe-grid {
  transform-origin: 210px 210px;
  animation: globeGridShift 40s linear infinite;
}
@keyframes globeGridShift {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ════════════════════════════════════════
   15. SCROLL PROGRESS BAR
   ════════════════════════════════════════ */
.scroll-progress {
  background: linear-gradient(90deg, #E63946, #60a5fa, #E63946);
  background-size: 200% 100%;
  animation: progressGradient 3s linear infinite;
  box-shadow: 0 0 10px rgba(230,57,70,.7) !important;
}
@keyframes progressGradient {
  from { background-position: 0% 0%; }
  to   { background-position: 200% 0%; }
}

/* ════════════════════════════════════════
   16. ЧИСЛА — кольца с красивым свечением
   ════════════════════════════════════════ */
.numbers-section.visible .number-ring {
  animation: ringReveal .6s cubic-bezier(.34,1.56,.64,1) both,
             numberRingGlow 3s ease-in-out infinite 1s !important;
}
@keyframes numberRingGlow {
  0%,100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
  50%     { box-shadow: 0 0 20px 4px rgba(230,57,70,.2); }
}

/* ════════════════════════════════════════
   17. ПЛАВАЮЩИЕ ПИЛЮЛИ — usиленный glass
   ════════════════════════════════════════ */
.hero-pill {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.18);
  color: rgba(240,248,255,.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.hp1 { box-shadow: 0 8px 28px rgba(10,36,99,.25), 0 0 0 1px rgba(255,255,255,.12); }
.hp2 { box-shadow: 0 8px 28px rgba(96,165,250,.3), 0 0 0 1px rgba(255,255,255,.1); }
.hp3 { box-shadow: 0 8px 28px rgba(230,57,70,.2),  0 0 0 1px rgba(255,255,255,.1); }
.hp4 { box-shadow: 0 8px 28px rgba(37,211,102,.25), 0 0 0 1px rgba(255,255,255,.1); }

/* ════════════════════════════════════════
   18. HERO STATS BAR — ярче
   ════════════════════════════════════════ */
.hero-stats-bar {
  background: rgba(0,0,0,.35);
  border-top-color: rgba(255,255,255,.1);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.hero-stat-num {
  background: linear-gradient(120deg, #fff 40%, #93c5fd 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ════════════════════════════════════════
   19. ИНТЕРАКТИВНЫЙ ГЛОБУС — 2-колонный лейаут
   ════════════════════════════════════════ */
.dir-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
  margin-top: 40px;
}

.dir-globe-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  position: sticky;
  top: 100px;
}

.dir-globe-col canvas {
  border-radius: 50%;
  box-shadow:
    0 0 60px rgba(19,64,168,.35),
    0 0 120px rgba(19,64,168,.15),
    0 0 0 1px rgba(96,165,250,.18);
  max-width: 100%;
  height: auto;
}

.dir-globe-label {
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: .03em;
  text-align: center;
  padding: 6px 20px;
  background: rgba(19,64,168,.35);
  border: 1px solid rgba(96,165,250,.28);
  border-radius: 30px;
  backdrop-filter: blur(10px);
  transition: transform .3s ease, background .3s ease;
}
.dir-globe-label.globe-label-active {
  transform: scale(1.06);
  background: rgba(230,57,70,.32);
  border-color: rgba(230,57,70,.4);
}

.dir-globe-hint {
  font-size: .78rem;
  color: rgba(150,185,240,.5);
  text-align: center;
  margin: 0;
}

.dir-routes-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Tabs */
.dir-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.dir-tab {
  padding: 8px 18px;
  border-radius: 24px;
  border: 1.5px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: rgba(200,220,255,.75);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .25s, border-color .25s, color .25s, transform .2s;
}
.dir-tab:hover {
  background: rgba(255,255,255,.11);
  color: #fff;
  transform: translateY(-1px);
}
.dir-tab.active {
  background: rgba(19,64,168,.55);
  border-color: rgba(96,165,250,.45);
  color: #fff;
}

/* Panels */
.dir-panel { display: none; }
.dir-panel.active { display: block; }

/* Active route highlight in list */
.routes-list li.route-active {
  background: rgba(19,64,168,.25) !important;
  border-color: rgba(96,165,250,.45) !important;
}

/* Responsive: stack on mobile */
@media (max-width: 900px) {
  .dir-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .dir-globe-col {
    position: static;
  }
  .dir-globe-col canvas {
    width: 280px;
    height: 280px;
  }
}
