/* 
   Aabmatica CSS Style Sheet - Slider and Responsiveness Update
   Designed for premium high-impact aesthetic, dynamic light/dark mode support,
   fluid simulation animations, and responsive slides.
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');

:root {
  /* Brand Constants */
  --color-orange: #FF6B00;
  --color-orange-hover: #E05E00;
  --color-orange-rgb: 255, 107, 0;
  --color-charcoal-pure: #121214;
  --color-charcoal-card: #1A1A22;

  /* Global Fonts */
  --font-primary: 'Outfit', 'Inter', sans-serif;
  --font-mono: 'SFMono-Regular', Consolas, "Liberation Mono", Menlo, monospace;

  /* Spacing */
  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 1.8rem;
  --spacing-xxl: 2.5rem;

  /* Border Radii */
  --border-radius-sm: 6px;
  --border-radius-md: 12px;
  --border-radius-lg: 18px;
  --border-radius-xl: 30px;

  /* Animation Timings */
  --transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Dark Theme (Default) */
[data-theme="dark"],
:root:not([data-theme="light"]) {
  --bg-primary: #0A0A0C;
  --bg-secondary: #121216;
  --bg-tertiary: #191922;
  --bg-navbar: rgba(10, 10, 12, 0.8);

  --text-primary: #F3F4F6;
  --text-secondary: #9CA3AF;
  --text-muted: #6B7280;

  --border-color: #24242F;
  --border-light: #1D1D26;
  --card-bg: rgba(18, 18, 22, 0.7);
  --card-border: rgba(36, 36, 47, 0.7);
  --card-hover-border: rgba(255, 107, 0, 0.4);
  --card-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
  --shadow-glow: 0 0 25px rgba(255, 107, 0, 0.25);

  --status-success: #10B981;
  --status-info: #3B82F6;
  --status-warning: #F59E0B;
  --status-danger: #EF4444;
  --card-hover-shadow: 0 20px 40px rgba(0, 0, 0, 0.5), 0 0 20px rgba(255, 107, 0, 0.2);

  --simulation-road: #131317;
  --simulation-road-line: rgba(255, 255, 255, 0.3);
  --simulation-sky: #0F0F14;
  --simulation-sensor-glow: rgba(255, 107, 0, 0.6);
  --simulation-bg: #0A0A0C;
  --chart-grid: #1A1A22;
  --chart-line: rgba(255, 107, 0, 0.4);

  --gradient-hero: linear-gradient(135deg, #121216 0%, #0A0A0C 100%);
  --hero-glow: radial-gradient(circle at 80% 20%, rgba(255, 107, 0, 0.1) 0%, transparent 60%);
  --accent-glow: radial-gradient(circle at 20% 80%, rgba(255, 107, 0, 0.05) 0%, transparent 50%);

  /* GIS Map HUD variables */
  --gis-plane-fill: rgba(255, 255, 255, 0.015);
  --gis-plane-stroke: rgba(255, 255, 255, 0.12);
  --gis-grid-stroke: rgba(255, 255, 255, 0.06);
  --gis-hud-bg-color: rgba(18, 18, 22, 0.85);
  --gis-hud-border-color: rgba(255, 255, 255, 0.15);

  /* World map variables */
  --gis-continent-fill: rgba(255, 107, 0, 0.03);
  --gis-continent-stroke: rgba(255, 255, 255, 0.12);
}

/* Light Theme */
[data-theme="light"] {
  --bg-primary: #F8F9FA;
  --bg-secondary: #FFFFFF;
  --bg-tertiary: #F0F2F5;
  --bg-navbar: rgba(248, 249, 250, 0.85);

  --text-primary: #121216;
  --text-secondary: #4B5563;
  --text-muted: #9CA3AF;

  --border-color: #E2E8F0;
  --border-light: #EDF2F7;
  --card-bg: rgba(255, 255, 255, 0.85);
  --card-border: rgba(226, 232, 240, 0.8);
  --card-hover-border: rgba(255, 107, 0, 0.5);
  --card-shadow: 0 8px 24px rgba(148, 163, 184, 0.12);
  --shadow-glow: 0 0 25px rgba(255, 107, 0, 0.15);

  --status-success: #10B981;
  --status-info: #3B82F6;
  --status-warning: #F59E0B;
  --status-danger: #EF4444;
  --card-hover-shadow: 0 20px 30px rgba(148, 163, 184, 0.18), 0 0 20px rgba(255, 107, 0, 0.15);

  --simulation-road: #E2E8F0;
  --simulation-road-line: rgba(18, 18, 22, 0.2);
  --simulation-sky: #EDF2F7;
  --simulation-sensor-glow: rgba(255, 107, 0, 0.7);
  --simulation-bg: #F0F2F5;
  --chart-grid: #E2E8F0;
  --chart-line: rgba(255, 107, 0, 0.6);

  --gradient-hero: linear-gradient(135deg, #FFFFFF 0%, #F8F9FA 100%);
  --hero-glow: radial-gradient(circle at 80% 20%, rgba(255, 107, 0, 0.06) 0%, transparent 55%);
  --accent-glow: radial-gradient(circle at 20% 80%, rgba(255, 107, 0, 0.03) 0%, transparent 50%);

  /* GIS Map HUD variables */
  --gis-plane-fill: rgba(18, 18, 22, 0.02);
  --gis-plane-stroke: rgba(18, 18, 22, 0.12);
  --gis-grid-stroke: rgba(18, 18, 22, 0.06);
  --gis-hud-bg-color: rgba(255, 255, 255, 0.85);
  --gis-hud-border-color: rgba(18, 18, 22, 0.15);

  /* World map variables */
  --gis-continent-fill: rgba(255, 107, 0, 0.04);
  --gis-continent-stroke: rgba(18, 18, 22, 0.15);
}

/* Reset and Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-primary);
  background-color: var(--bg-primary);
  color: var(--text-primary);
  line-height: 1.6;
  overflow-x: hidden;
  transition: background-color var(--transition-normal), color var(--transition-normal);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color var(--transition-fast);
}

ul {
  list-style: none;
}

button {
  background: none;
  border: none;
  font-family: inherit;
  cursor: pointer;
  outline: none;
}

.abbmatica-technology-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--spacing-lg);
}

/* Section Common Layout */
section {
  padding: var(--spacing-xl) 0;
  position: relative;
}

/* Glowing backgrounds */
.abbmatica-technology-glow-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.abbmatica-technology-glow-circle-1 {
  position: absolute;
  top: 10%;
  right: -5%;
  width: 600px;
  height: 600px;
  background: var(--hero-glow);
}

.abbmatica-technology-glow-circle-2 {
  position: absolute;
  bottom: 10%;
  left: -5%;
  width: 500px;
  height: 500px;
  background: var(--accent-glow);
}

/* Typography elements */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  line-height: 1.25;
  color: var(--text-primary);
}

.section-tag {
  color: var(--color-orange);
  text-transform: uppercase;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 2px;
  margin-bottom: var(--spacing-sm);
  display: inline-block;
}

.section-title {
  font-size: 2.5rem;
  margin-bottom: var(--spacing-md);
}

.section-subtitle {
  color: var(--text-secondary);
  font-size: 1.125rem;
  max-width: 700px;
  margin-bottom: var(--spacing-xl);
}

/* Navbar */
.abbmatica-technology-navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 95px;
  background-color: var(--bg-navbar);
  border-bottom: 1px solid var(--border-color);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 999999;
  overflow: visible;
  transition: background-color var(--transition-normal), border-color var(--transition-normal);
}

.abbmatica-technology-navbar .abbmatica-technology-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
}

.abbmatica-technology-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-size: 1.6rem;
  letter-spacing: -0.5px;
  text-decoration: none;
  overflow: visible;
}

/* Actual abbmatica-technology-logo image — used in header & footer */
/* Dark theme uses aab-logo-black.png (white+orange letters — visible on dark bg) */
/* Light theme uses aab-logo-white.png (dark+orange letters — visible on white bg) */
.abbmatica-technology-logo-img {
  height: 85px;
  width: auto;
  max-width: 330px;
  display: block;
  object-fit: contain;
  object-position: left center;
  transition: opacity 0.25s ease, transform 0.25s ease;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: high-quality;
}

.abbmatica-technology-logo-img:hover {
  opacity: 0.88;
  transform: scale(1.03);
}

/* Light theme (default) — original logo colors */
.abbmatica-technology-logo-img {
  filter: none;
}

/* Dark theme — logo turns completely orange */
[data-theme="dark"] .abbmatica-technology-logo-img {
  filter: brightness(0) saturate(100%) invert(47%) sepia(97%) saturate(1200%) hue-rotate(3deg) brightness(102%) contrast(105%);
}

/* Footer logo — 100% identical size & position as header logo */
.abbmatica-technology-footer-brand .abbmatica-technology-logo-img {
  height: 85px;
  width: auto;
  max-width: 330px;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.abbmatica-technology-logo-orange {
  color: var(--color-orange);
}

.abbmatica-technology-logo-icon {
  width: 32px;
  height: 32px;
  background: var(--color-orange);
  border-radius: var(--border-radius-sm);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 900;
  box-shadow: 0 0 15px rgba(255, 107, 0, 0.4);
}

.abbmatica-technology-logo-icon::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border: 2px solid var(--color-orange);
  border-radius: var(--border-radius-sm);
  top: -4px;
  left: -4px;
  opacity: 0.5;
}

.abbmatica-technology-nav-links {
  display: flex;
  gap: var(--spacing-xl);
}

.abbmatica-technology-nav-item {
  position: relative;
}

.abbmatica-technology-nav-link {
  font-weight: 500;
  font-size: 0.95rem;
  padding: 0.5rem 1rem;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
  border-radius: var(--border-radius-md);
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.abbmatica-technology-nav-link:hover,
.abbmatica-technology-nav-item:hover .abbmatica-technology-nav-link {
  color: #ffffff;
  background: var(--color-orange);
}

.abbmatica-technology-nav-link svg {
  transition: transform var(--transition-fast);
}

.abbmatica-technology-nav-link:hover svg,
.abbmatica-technology-nav-item:hover .abbmatica-technology-nav-link svg {
  transform: translateY(2px);
  stroke: #ffffff;
}

/* Dropdown Menu styling */
.abbmatica-technology-nav-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  width: 260px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-md);
  box-shadow: var(--card-shadow);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);
  z-index: 110;
}

.abbmatica-technology-nav-item:hover .abbmatica-technology-nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.abbmatica-technology-dropdown-item {
  display: block;
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--border-radius-sm);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-secondary);
  transition: background var(--transition-fast), color var(--transition-fast);
}

.abbmatica-technology-dropdown-item:hover {
  background: var(--color-orange);
  color: #ffffff;
}

/* Utility buttons in Navbar */
.abbmatica-technology-nav-actions {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
}

.abbmatica-technology-theme-toggle-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  background: var(--bg-secondary);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition-fast);
  box-shadow: var(--shadow-sm);
}

.abbmatica-technology-theme-toggle-btn:hover {
  border-color: var(--color-orange);
  color: var(--color-orange);
  transform: rotate(15deg);
}

.abbmatica-technology-theme-toggle-btn .abbmatica-technology-sun-icon {
  display: none;
}

[data-theme="light"] .abbmatica-technology-theme-toggle-btn .abbmatica-technology-moon-icon {
  display: none;
}

[data-theme="light"] .abbmatica-technology-theme-toggle-btn .abbmatica-technology-sun-icon {
  display: block;
}

.abbmatica-technology-btn-contact {
  padding: 0.5rem 1.4rem;
  background: var(--color-orange);
  color: #FFF;
  border-radius: var(--border-radius-md);
  font-size: 0.95rem;
  font-weight: 600;
  box-shadow: var(--shadow-glow);
  transition: all var(--transition-fast);
}

.abbmatica-technology-btn-contact:hover {
  background: var(--color-orange-hover);
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(255, 107, 0, 0.4);
}

/* Mobile Toggle Hamburger */
.abbmatica-technology-mobile-toggle {
  display: none;
  font-size: 1.5rem;
  color: var(--text-primary);
}

/* Hero Slider Wrapper */
.abbmatica-technology-hero-section {
  position: relative;
  height: auto;
  min-height: auto;
  display: flex;
  align-items: center;
  /* Premium Midnight Blue / Charcoal base with orange/blue/violet ambient mesh layers */
  background: radial-gradient(circle at 10% 20%, rgba(255, 107, 0, 0.08) 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(59, 130, 246, 0.08) 0%, transparent 45%),
    radial-gradient(circle at 50% 50%, rgba(139, 92, 246, 0.05) 0%, transparent 50%),
    linear-gradient(135deg, #09090E 0%, #11101A 40%, #0D0C14 100%) !important;
  padding-top: 90px;
  /* offset abbmatica-technology-navbar */
  padding-bottom: 0;
  overflow: hidden;
}

[data-theme="light"] .abbmatica-technology-hero-section {
  background: radial-gradient(circle at 15% 15%, rgba(255, 107, 0, 0.06) 0%, transparent 35%),
    radial-gradient(circle at 85% 85%, rgba(59, 130, 246, 0.06) 0%, transparent 40%),
    radial-gradient(circle at 50% 50%, rgba(139, 92, 246, 0.03) 0%, transparent 45%),
    linear-gradient(135deg, #F8FAFC 0%, #EFF6FF 50%, #F1F5F9 100%) !important;
}

/* Floating background glow elements */
.hero-bg-glow {
  position: absolute;
  width: 450px;
  height: 450px;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.18;
  z-index: 0;
  pointer-events: none;
  mix-blend-mode: screen;
}

.hero-bg-glow-1 {
  background: radial-gradient(circle, rgba(255, 107, 0, 0.6) 0%, rgba(239, 68, 68, 0.1) 80%);
  top: -100px;
  left: -100px;
  animation: floating-glow-1 15s ease-in-out infinite alternate;
}

.hero-bg-glow-2 {
  background: radial-gradient(circle, rgba(59, 130, 246, 0.6) 0%, rgba(139, 92, 246, 0.1) 80%);
  bottom: -150px;
  right: -50px;
  animation: floating-glow-2 18s ease-in-out infinite alternate;
}

[data-theme="light"] .hero-bg-glow {
  opacity: 0.22;
  mix-blend-mode: multiply;
}

@keyframes floating-glow-1 {
  0% {
    transform: translate(0, 0) scale(1);
  }

  100% {
    transform: translate(60px, 40px) scale(1.15);
  }
}

@keyframes floating-glow-2 {
  0% {
    transform: translate(0, 0) scale(1.1);
  }

  100% {
    transform: translate(-50px, -60px) scale(0.9);
  }
}

.abbmatica-technology-hero-slider-container {
  position: relative;
  width: 100%;
  aspect-ratio: 2992 / 972;
  max-height: 600px;
  height: auto;
  min-height: auto;
  overflow: hidden;
}

.abbmatica-technology-hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transform: translateY(15px);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
  z-index: 1;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.slide-blur-bg {
  position: absolute;
  top: -10%;
  left: -10%;
  width: 120%;
  height: 120%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: blur(25px) brightness(0.45);
  z-index: 1;
  pointer-events: none;
}

.slide-content-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
}

.slide-center-image {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.abbmatica-technology-hero-slide[data-slide="1"] .slide-blur-bg,
.abbmatica-technology-hero-slide[data-slide="1"] .slide-center-image {
  background-image: url('assets/images/hero_speed_desktop.png');
}

.abbmatica-technology-hero-slide[data-slide="2"] .slide-blur-bg,
.abbmatica-technology-hero-slide[data-slide="2"] .slide-center-image {
  background-image: url('assets/images/hero_rlvd_desktop.png');
}

.abbmatica-technology-hero-slide[data-slide="3"] .slide-blur-bg,
.abbmatica-technology-hero-slide[data-slide="3"] .slide-center-image {
  background-image: url('assets/images/hero_anpr_desktop.png');
}

.abbmatica-technology-hero-slide[data-slide="4"] .slide-blur-bg,
.abbmatica-technology-hero-slide[data-slide="4"] .slide-center-image {
  background-image: url('assets/images/hero_traffic_cases_desktop.png');
}

.hero-slide-hud-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

.hud-svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Premium Hero HUD Animations */
.hud-radar-sweep {
  transform-origin: 500px 300px;
  animation: radar-sweep-rotate 5s linear infinite;
}

@keyframes radar-sweep-rotate {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.hud-radar-ring {
  transform-origin: 500px 300px;
  animation: radar-ring-spin 30s linear infinite;
}

@keyframes radar-ring-spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.hud-radar-target-ring {
  animation: hud-target-pulse 1.5s ease-in-out infinite alternate;
}

@keyframes hud-target-pulse {
  0% {
    opacity: 0.35;
  }

  100% {
    opacity: 0.95;
  }
}

.hud-target-group-1 {
  transform-origin: 420px 240px;
  animation: hud-scale-pulse 2.5s ease-in-out infinite alternate;
}

.hud-target-group-2 {
  transform-origin: 560px 350px;
  animation: hud-scale-pulse 2.5s ease-in-out infinite alternate 0.8s;
}

@keyframes hud-scale-pulse {
  0% {
    transform: scale(0.96);
  }

  100% {
    transform: scale(1.04);
  }
}

.hud-blink {
  animation: hud-blink-anim 1.6s step-end infinite;
}

.hud-blink-fast {
  animation: hud-blink-anim 0.8s step-end infinite;
}

@keyframes hud-blink-anim {
  50% {
    opacity: 0;
  }
}

.hud-pulse-box {
  animation: hud-pulse-box-anim 2s ease-in-out infinite alternate;
}

@keyframes hud-pulse-box-anim {
  0% {
    opacity: 0.5;
  }

  100% {
    opacity: 1;
  }
}

.hud-flash-red {
  animation: hud-flash-red-anim 1.2s infinite alternate;
}

@keyframes hud-flash-red-anim {
  0% {
    stroke: #EF4444;
    opacity: 0.4;
  }

  100% {
    stroke: #EF4444;
    opacity: 1;
  }
}

.hud-flash-red-bg {
  animation: hud-flash-red-bg-anim 1.2s infinite alternate;
}

@keyframes hud-flash-red-bg-anim {
  0% {
    fill: #EF4444;
    fill-opacity: 0.1;
  }

  100% {
    fill: #EF4444;
    fill-opacity: 0.35;
  }
}

.hud-flash-red-border {
  animation: hud-flash-red-border-anim 1.2s infinite alternate;
}

@keyframes hud-flash-red-border-anim {
  0% {
    stroke: #EF4444;
    opacity: 0.4;
  }

  100% {
    stroke: #EF4444;
    opacity: 1;
  }
}

.hud-flash-yellow-border {
  animation: hud-flash-yellow-border-anim 1.2s infinite alternate;
}

@keyframes hud-flash-yellow-border-anim {
  0% {
    stroke: #F59E0B;
    opacity: 0.4;
  }

  100% {
    stroke: #F59E0B;
    opacity: 1;
  }
}

.hud-flash-yellow-bg {
  animation: hud-flash-yellow-bg-anim 1.2s infinite alternate;
}

@keyframes hud-flash-yellow-bg-anim {
  0% {
    fill: #F59E0B;
    fill-opacity: 0.1;
  }

  100% {
    fill: #F59E0B;
    fill-opacity: 0.35;
  }
}

.hud-scan-line-vertical {
  animation: hud-scan-vertical-anim 2.5s ease-in-out infinite alternate;
}

@keyframes hud-scan-vertical-anim {
  0% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(140px);
  }
}

.hud-scan-line-vertical-short {
  animation: hud-scan-vertical-short-anim 2s ease-in-out infinite alternate;
}

@keyframes hud-scan-vertical-short-anim {
  0% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(65px);
  }
}

.hud-expand-wave {
  transform-origin: 340px 300px;
  animation: hud-wave-grow 2s infinite linear;
}

.hud-expand-wave-delay {
  transform-origin: 690px 320px;
  animation: hud-wave-grow 2s infinite linear 1s;
}

@keyframes hud-wave-grow {
  0% {
    transform: scale(1);
    opacity: 0.85;
  }

  100% {
    transform: scale(3.5);
    opacity: 0;
  }
}


.abbmatica-technology-hero-slide.active {
  position: absolute;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  z-index: 5;
}

.abbmatica-technology-hero-layout {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: var(--spacing-xl);
  width: 100%;
}

.abbmatica-technology-hero-text-side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  z-index: 5;
  animation: textFadeIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes textFadeIn {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.abbmatica-technology-hero-visual-side {
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 5;
  width: 100%;
  animation: visualFadeIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes visualFadeIn {
  from {
    opacity: 0;
    transform: translateX(30px) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

/* Custom Metrics Strip */
.abbmatica-technology-hero-v-stats-strip {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  margin-top: var(--spacing-lg);
  padding: var(--spacing-sm) var(--spacing-md);
  background: rgba(18, 18, 22, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: var(--border-radius-md);
  width: fit-content;
}

[data-theme="light"] .abbmatica-technology-hero-v-stats-strip {
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.v-stats-strip-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.v-stats-strip-divider {
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.1);
}

[data-theme="light"] .v-stats-strip-divider {
  background: rgba(0, 0, 0, 0.1);
}

.v-stats-lbl {
  font-size: 0.68rem;
  color: var(--text-muted);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.v-stats-val {
  font-size: 0.85rem;
  font-weight: 700;
  font-family: var(--font-mono);
}

.abbmatica-technology-hero-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
}

/* Glassmorphic card overlay for slides */
.abbmatica-technology-hero-glass-card {
  background: rgba(10, 10, 12, 0.45);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--border-radius-lg);
  padding: var(--spacing-xl) var(--spacing-xxl);
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  animation: cardFadeIn 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-theme="light"] .abbmatica-technology-hero-glass-card {
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

@keyframes cardFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.abbmatica-technology-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 107, 0, 0.1);
  border: 1px solid rgba(255, 107, 0, 0.25);
  border-radius: 50px;
  padding: var(--spacing-xs) var(--spacing-md);
  color: var(--color-orange);
  font-weight: 600;
  font-size: 0.85rem;
  margin-bottom: var(--spacing-md);
}

.abbmatica-technology-hero-badge-dot {
  width: 8px;
  height: 8px;
  background: var(--color-orange);
  border-radius: 50%;
  animation: pulse-orange 1.8s infinite;
}

.abbmatica-technology-hero-title {
  font-size: 3.8rem;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: var(--spacing-md);
  letter-spacing: -1.5px;
}

.abbmatica-technology-hero-title span {
  background: linear-gradient(135deg, var(--color-orange) 0%, #FFB076 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.abbmatica-technology-hero-desc {
  color: var(--text-secondary);
  font-size: 1.2rem;
  line-height: 1.65;
  margin-bottom: var(--spacing-xl);
  max-width: 620px;
}

.abbmatica-technology-hero-buttons {
  display: flex;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-md);
}

.abbmatica-technology-btn-primary {
  padding: 0.65rem 2rem;
  background: var(--color-orange);
  color: #FFF;
  border-radius: var(--border-radius-md);
  font-weight: 600;
  font-size: 1rem;
  box-shadow: var(--shadow-glow);
  transition: all var(--transition-fast);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.abbmatica-technology-btn-primary:hover {
  background: var(--color-orange-hover);
  transform: translateY(-3px);
  box-shadow: 0 6px 25px rgba(255, 107, 0, 0.45);
}

.abbmatica-technology-btn-outline {
  padding: 0.65rem 2rem;
  border: 1px solid var(--border-color);
  background: var(--bg-secondary);
  color: var(--text-primary);
  border-radius: var(--border-radius-md);
  font-weight: 600;
  font-size: 1rem;
  transition: all var(--transition-fast);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.abbmatica-technology-btn-outline:hover {
  border-color: var(--color-orange);
  color: var(--color-orange);
  transform: translateY(-3px);
}

/* Slider arrows */
.abbmatica-technology-slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--card-shadow);
  cursor: pointer;
  z-index: 10;
  transition: all var(--transition-fast);
  opacity: 0.75;
}

.abbmatica-technology-slider-arrow svg {
  width: 20px;
  height: 20px;
  display: block;
}

.abbmatica-technology-slider-arrow:hover {
  opacity: 1;
  border-color: var(--color-orange);
  color: var(--color-orange);
  transform: translateY(-50%) scale(1.06);
}

.abbmatica-technology-arrow-prev {
  left: 25px;
}

.abbmatica-technology-arrow-next {
  right: 25px;
}

/* Slider dots */
.abbmatica-technology-slider-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}

.abbmatica-technology-slider-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--border-color);
  cursor: pointer;
  transition: all var(--transition-normal);
}

.abbmatica-technology-slider-dot.active {
  width: 20px;
  border-radius: 4px;
  background: var(--color-orange);
  box-shadow: 0 0 10px rgba(255, 107, 0, 0.4);
}

/* Hero visual dashboard mockup style */
.abbmatica-technology-hero-visual {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
}

/* Supreme Animated Dashboards */
.abbmatica-technology-supreme-dashboard {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius-xl);
  width: 100%;
  max-width: 480px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: var(--card-shadow);
  overflow: hidden;
  position: relative;
  transform: perspective(1000px) rotateY(-5deg) rotateX(2deg);
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.5s ease, background 0.3s, border-color 0.3s;
}

.abbmatica-technology-supreme-dashboard::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
  pointer-events: none;
}

.abbmatica-technology-hero-slide.active .abbmatica-technology-supreme-dashboard {
  transform: perspective(1000px) rotateY(0deg) rotateX(0deg);
  box-shadow: var(--card-shadow), 0 0 40px rgba(255, 107, 0, 0.15);
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.5s ease, border-color 0.3s;
}

.abbmatica-technology-hero-slide.active .abbmatica-technology-supreme-dashboard:hover {
  transform: perspective(1000px) translateY(-6px) scale(1.02);
  box-shadow: var(--card-shadow), 0 20px 45px rgba(255, 107, 0, 0.35);
  border-color: var(--card-hover-border);
}

.abbmatica-technology-dash-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 24px;
  background: var(--bg-tertiary);
  border-bottom: 1px solid var(--border-light);
}

.abbmatica-technology-dash-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.5px;
  color: var(--text-primary);
}

.abbmatica-technology-pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.abbmatica-technology-pulse-dot.red {
  background: var(--status-danger);
  box-shadow: 0 0 10px var(--status-danger);
  animation: pulse-red 1.5s infinite;
}

.abbmatica-technology-pulse-dot.blue {
  background: var(--status-info);
  box-shadow: 0 0 10px var(--status-info);
  animation: pulse-blue 1.5s infinite;
}

.abbmatica-technology-pulse-dot.green {
  background: var(--status-success);
  box-shadow: 0 0 10px var(--status-success);
  animation: pulse-green 1.5s infinite;
}

@keyframes pulse-red {
  0% {
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(239, 68, 68, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
  }
}

@keyframes pulse-blue {
  0% {
    box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
  }
}

.abbmatica-technology-dash-metrics {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--text-muted);
}

.abbmatica-technology-dash-body {
  padding: 24px;
}

/* Slide 1 Specifics */
.abbmatica-technology-dash-main-view {
  position: relative;
  background: var(--simulation-road);
  border-radius: 8px;
  border: 1px solid var(--border-color);
  overflow: hidden;
  height: 180px;
  margin-bottom: 20px;
}

.abbmatica-technology-radar-scan-svg {
  width: 100%;
  height: 100%;
}

.vehicle {
  transform-origin: center;
  will-change: transform;
  animation-fill-mode: both;
}

.vehicle-bike {
  animation: vehicle-move-lane1 3.2s linear infinite 1.2s;
}

.vehicle-car-1 {
  animation: vehicle-move-lane2 4.5s linear infinite;
}

.vehicle-bus {
  animation: vehicle-move-lane3 6.5s linear infinite 2s;
}

.vehicle-car-2 {
  animation: vehicle-move-lane1 4.2s linear infinite 3.5s;
}

@keyframes vehicle-move-lane1 {
  0% {
    transform: translate(130px, 220px);
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  92% {
    opacity: 1;
  }

  100% {
    transform: translate(130px, -50px);
    opacity: 0;
  }
}

@keyframes vehicle-move-lane2 {
  0% {
    transform: translate(200px, 220px);
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  92% {
    opacity: 1;
  }

  100% {
    transform: translate(200px, -60px);
    opacity: 0;
  }
}

@keyframes vehicle-move-lane3 {
  0% {
    transform: translate(270px, 230px);
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  92% {
    opacity: 1;
  }

  100% {
    transform: translate(270px, -80px);
    opacity: 0;
  }
}

.scanner-beam {
  animation: scan-vertical 3s ease-in-out infinite alternate;
}

@keyframes scan-vertical {
  0% {
    transform: translateY(15px);
  }

  100% {
    transform: translateY(185px);
  }
}

.scan-overlay-text {
  position: absolute;
  top: 10px;
  right: 10px;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--status-danger);
  animation: blink 1s step-end infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}

.abbmatica-technology-dash-sidebar {
  display: flex;
  gap: 16px;
}

.abbmatica-technology-data-feed-box {
  flex: 1;
  background: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 12px;
  transition: transform 0.3s var(--transition-fast), border-color 0.3s, box-shadow 0.3s;
}

.abbmatica-technology-data-feed-box:hover {
  transform: translateY(-4px);
  border-color: var(--card-hover-border);
  box-shadow: 0 8px 20px rgba(255, 107, 0, 0.15);
}

.abbmatica-technology-feed-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.abbmatica-technology-feed-value {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text-primary);
}

.abbmatica-technology-feed-value.plate-number {
  font-family: var(--font-mono);
  letter-spacing: 1px;
}

.abbmatica-technology-feed-status {
  font-size: 0.8rem;
  margin-top: 4px;
  font-weight: 600;
}

.text-danger {
  color: var(--status-danger);
}

.text-green {
  color: var(--status-success);
}

.text-orange {
  color: var(--color-orange);
}

.text-blue {
  color: var(--status-info);
}

.abbmatica-technology-progress-bar {
  width: 100%;
  height: 4px;
  background: var(--border-color);
  border-radius: 2px;
  margin-top: 8px;
  overflow: hidden;
}

.abbmatica-technology-progress-bar .fill {
  height: 100%;
  border-radius: 2px;
}

/* Slide 2 Specifics */
.abbmatica-technology-tolling-layout {
  display: flex;
  align-items: center;
  gap: 24px;
}

.abbmatica-technology-tolling-sensor-ring {
  position: relative;
  width: 120px;
  height: 120px;
  flex-shrink: 0;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  cursor: pointer;
}

.abbmatica-technology-tolling-sensor-ring:hover {
  transform: scale(1.1) rotate(15deg);
}

.abbmatica-technology-ring-svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.abbmatica-technology-ring-progress {
  animation: circle-fill 2s ease-out forwards;
}

@keyframes circle-fill {
  from {
    stroke-dashoffset: 264;
  }

  to {
    stroke-dashoffset: 60;
  }
}

.abbmatica-technology-ring-center-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(59, 130, 246, 0.1);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 15px rgba(59, 130, 246, 0.2);
}

.abbmatica-technology-tolling-data-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.abbmatica-technology-data-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 8px;
  border-bottom: 1px solid var(--border-color);
  transition: transform 0.25s ease, background-color 0.25s ease;
  border-radius: 4px;
}

.abbmatica-technology-data-row:last-child {
  border-bottom: none;
}

.abbmatica-technology-data-row:hover {
  transform: translateX(6px);
  background: rgba(59, 130, 246, 0.05);
  border-color: rgba(59, 130, 246, 0.2);
}

.row-lbl {
  font-size: 0.85rem;
  color: var(--text-secondary);
  font-weight: 500;
}

.abbmatica-technology-badge {
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
  font-family: var(--font-mono);
}

.abbmatica-technology-badge.blue {
  background: rgba(59, 130, 246, 0.15);
  color: #3b82f6;
  border: 1px solid rgba(59, 130, 246, 0.3);
}

.abbmatica-technology-badge.gray {
  background: var(--bg-tertiary);
  color: var(--text-primary);
  border: 1px solid var(--border-color);
}

.abbmatica-technology-badge.green {
  background: rgba(16, 185, 129, 0.15);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.3);
}

/* Slide 3 Specifics */
.abbmatica-technology-map-3d-container {
  height: 180px;
  background: var(--simulation-sky);
  background-image: radial-gradient(circle at center, rgba(var(--color-orange-rgb), 0.04) 0%, transparent 70%);
  border-radius: var(--border-radius-md);
  border: 1px solid var(--border-color);
  margin-bottom: 20px;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
}

.abbmatica-technology-city-map-svg {
  width: 100%;
  height: 100%;
}

.abbmatica-technology-data-stream-line {
  animation: dash-flow 1.5s linear infinite;
}

@keyframes dash-flow {
  to {
    stroke-dashoffset: -8;
  }
}

/* Premium GIS Hologram Map Styles */
.gis-base-plane {
  fill: var(--gis-plane-fill);
  stroke: var(--gis-plane-stroke);
  stroke-dasharray: 60, 5, 5, 5;
  stroke-width: 1.5;
  transition: all var(--transition-normal);
}

.gis-grid-line {
  stroke: var(--gis-grid-stroke);
  stroke-dasharray: 2, 4;
  stroke-width: 0.8;
  transition: all var(--transition-normal);
}

.gis-projection-line {
  stroke-dasharray: 2, 3;
  stroke-width: 1.2;
  stroke-linecap: round;
  opacity: 0.7;
}

.gis-projection-line.green {
  stroke: var(--status-success);
}

.gis-projection-line.orange {
  stroke: var(--color-orange);
}

.gis-projection-line.blue {
  stroke: var(--status-info);
}

.gis-radar-ring {
  fill: none;
  stroke-width: 1.5;
  transform-origin: center;
}

.gis-radar-ring.green {
  stroke: var(--status-success);
  animation: radar-pulse 3s cubic-bezier(0.1, 0.8, 0.3, 1) infinite;
  transform-origin: 200px 95px;
}

.gis-radar-ring.green.delayed {
  animation-delay: 1.5s;
}

.gis-radar-ring.orange {
  stroke: var(--color-orange);
  animation: radar-pulse-small 2.2s ease-out infinite;
  transform-origin: 130px 115px;
}

.gis-radar-ring.blue {
  stroke: var(--status-info);
  animation: radar-pulse-small 2.7s ease-out infinite;
  transform-origin: 270px 115px;
}

@keyframes radar-pulse {
  0% {
    r: 10px;
    opacity: 1;
    stroke-width: 2;
  }

  100% {
    r: 75px;
    opacity: 0;
    stroke-width: 0.5;
  }
}

@keyframes radar-pulse-small {
  0% {
    r: 4px;
    opacity: 1;
    stroke-width: 1.5;
  }

  100% {
    r: 24px;
    opacity: 0;
    stroke-width: 0.5;
  }
}

.gis-floating-node {
  animation: floating-bounce 3.5s ease-in-out infinite;
}

.gis-floating-node.green {
  fill: var(--status-success);
  animation-delay: 0s;
}

.gis-floating-node.orange {
  fill: var(--color-orange);
  animation-delay: 0.6s;
}

.gis-floating-node.blue {
  fill: var(--status-info);
  animation-delay: 1.2s;
}

@keyframes floating-bounce {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-4px);
  }
}

/* Floating labels */
.gis-hud-label {
  animation: floating-bounce 3.5s ease-in-out infinite;
  opacity: 0.85;
}

.gis-hud-label.green {
  animation-delay: 0s;
}

.gis-hud-label.orange {
  animation-delay: 0.6s;
}

.gis-hud-label.blue {
  animation-delay: 1.2s;
}

.gis-hud-bg {
  fill: var(--gis-hud-bg-color);
  stroke: var(--gis-hud-border-color);
  stroke-width: 0.75;
}

.gis-hud-text {
  font-family: var(--font-mono);
  font-size: 7px;
  font-weight: 700;
  fill: var(--text-primary);
}

.stream-green {
  stroke: var(--status-success);
  opacity: 0.6;
}

.stream-blue {
  stroke: var(--status-info);
  opacity: 0.6;
}

/* Premium Metric Cards Layout */
.abbmatica-technology-city-metrics-row {
  display: flex;
  gap: 12px;
}

.abbmatica-technology-metric-card {
  flex: 1;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: 14px 16px;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
  box-shadow: var(--card-shadow);
}

.metric-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  width: 100%;
}

.metric-icon {
  opacity: 0.85;
}

.metric-card-green {
  border-left: 3px solid var(--status-success);
}

.metric-card-green:hover {
  transform: translateY(-4px);
  border-color: var(--status-success);
  box-shadow: 0 8px 24px rgba(16, 185, 129, 0.15);
}

.metric-card-orange {
  border-left: 3px solid var(--color-orange);
}

.metric-card-orange:hover {
  transform: translateY(-4px);
  border-color: var(--color-orange);
  box-shadow: 0 8px 24px rgba(255, 107, 0, 0.15);
}

.metric-card-blue {
  border-left: 3px solid var(--status-info);
}

.metric-card-blue:hover {
  transform: translateY(-4px);
  border-color: var(--status-info);
  box-shadow: 0 8px 24px rgba(59, 130, 246, 0.15);
}

.abbmatica-technology-metric-val {
  font-size: 1.6rem;
  font-weight: 800;
  font-family: var(--font-primary);
  line-height: 1.1;
  letter-spacing: -0.5px;
}

.abbmatica-technology-metric-lbl {
  font-size: 0.72rem;
  text-transform: uppercase;
  color: var(--text-secondary);
  font-weight: 700;
  letter-spacing: 0.8px;
}

/* Dashboard SVG Light Mode Overrides */
#abbmatica-technology-grid-1 path {
  stroke: var(--chart-grid);
  transition: stroke var(--transition-normal);
}

.abbmatica-technology-radar-scan-svg>path {
  stroke: var(--simulation-road-line);
  transition: stroke var(--transition-normal);
}

.abbmatica-technology-radar-scan-svg .bounding-box {
  stroke: var(--text-primary);
  transition: stroke var(--transition-normal);
}

.abbmatica-technology-ring-svg circle:first-of-type {
  stroke: var(--border-color);
  transition: stroke var(--transition-normal);
}

.abbmatica-technology-city-map-svg>path {
  stroke: var(--border-color);
  transition: stroke var(--transition-normal);
}

.abbmatica-technology-city-map-svg>path:first-of-type {
  fill: var(--bg-tertiary);
  opacity: 0.4;
  transition: fill var(--transition-normal), stroke var(--transition-normal);
}

/* Responsive adjustments */
@media (max-width: 900px) {
  .abbmatica-technology-hero-layout {
    text-align: center;
  }

  .abbmatica-technology-hero-glass-card {
    padding: var(--spacing-lg) var(--spacing-md);
    margin: 0 var(--spacing-md);
  }

  .abbmatica-technology-hero-title {
    font-size: 2.2rem;
  }

  .abbmatica-technology-hero-buttons {
    justify-content: center;
  }

  .abbmatica-technology-hero-desc {
    margin: 0 auto 2rem auto;
  }
}

.abbmatica-technology-hero-v-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border-light);
  padding-bottom: var(--spacing-md);
  margin-bottom: var(--spacing-md);
}

.abbmatica-technology-hero-v-title {
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

.abbmatica-technology-hero-v-dot {
  width: 8px;
  height: 8px;
  background: var(--status-success);
  border-radius: 50%;
  animation: pulse-green 1.5s infinite;
}

.abbmatica-technology-hero-v-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-lg);
}

.abbmatica-technology-hero-stat-box {
  background: var(--bg-tertiary);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-md);
  text-align: center;
}

.abbmatica-technology-hero-stat-val {
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--color-orange);
  line-height: 1;
  margin-bottom: var(--spacing-xs);
}

.abbmatica-technology-hero-stat-lbl {
  font-size: 0.75rem;
  color: var(--text-secondary);
  font-weight: 600;
  text-transform: uppercase;
}

.abbmatica-technology-hero-feed-preview {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.abbmatica-technology-hero-feed-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--bg-tertiary);
  border-radius: var(--border-radius-sm);
  font-size: 0.825rem;
  border-left: 3px solid var(--color-orange);
}

.abbmatica-technology-hero-feed-details {
  display: flex;
  flex-direction: column;
}

.abbmatica-technology-hero-feed-plate {
  font-family: var(--font-mono);
  font-weight: 700;
  color: var(--text-primary);
}

.abbmatica-technology-hero-feed-viol {
  color: var(--status-danger);
  font-weight: 600;
}

.abbmatica-technology-hero-feed-time {
  color: var(--text-muted);
  font-size: 0.75rem;
}

/* Proof Strip */
.abbmatica-technology-proof-strip {
  background: var(--bg-secondary);
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  padding: var(--spacing-xl) 0;
  position: relative;
  z-index: 5;
}

.abbmatica-technology-proof-layout {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-xl);
  text-align: center;
}

.abbmatica-technology-proof-item {
  display: flex;
  flex-direction: column;
}

.abbmatica-technology-proof-number {
  font-size: 3rem;
  font-weight: 800;
  color: var(--color-orange);
  line-height: 1.1;
  margin-bottom: var(--spacing-xs);
}

.abbmatica-technology-proof-label {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-secondary);
}

.abbmatica-technology-proof-desc {
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* ==============================================
   SIMULATOR SECTION — BREAKOUT LAYOUT
   Road canvas bleeds out to the right on desktop
   ============================================== */
.abbmatica-technology-simulator-section {
  background: var(--bg-primary);
  overflow: hidden;
  /* clip the road breakout at section level */
}

/* Breakout wrapper: left panel inside abbmatica-technology-container,
   road canvas floats right and bleeds to viewport edge */
.abbmatica-technology-sim-breakout-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 0;
  /* Extend to the right edge of the viewport */
  margin-right: calc(-1 * (100vw - 100%) / 2);
  /* Keep a subtle left alignment */
  border-radius: var(--border-radius-lg) 0 0 var(--border-radius-lg);
  border: 1px solid var(--border-color);
  border-right: none;
  background: var(--bg-secondary);
  box-shadow: var(--card-shadow);
  min-height: 520px;
  overflow: hidden;
}

/* Left content panel: tabs + logs, inside abbmatica-technology-container */
.abbmatica-technology-sim-left-panel {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--border-color);
  overflow: hidden;
}

/* Tab buttons row */
.abbmatica-technology-sim-tabs-row {
  display: flex;
  border-bottom: 1px solid var(--border-color);
  background: var(--bg-tertiary);
  flex-shrink: 0;
}

.abbmatica-technology-simulator-controls {
  display: flex;
  justify-content: center;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-xl);
}

.abbmatica-technology-sim-btn {
  padding: 0.85rem 1.6rem;
  border: 1px solid var(--border-color);
  background: var(--bg-secondary);
  color: var(--text-secondary);
  border-radius: var(--border-radius-md);
  font-weight: 600;
  font-size: 1.05rem;
  transition: all var(--transition-fast);
  display: flex;
  align-items: center;
  gap: 10px;
}

.abbmatica-technology-sim-btn svg {
  stroke: var(--text-secondary);
  transition: stroke var(--transition-fast);
}

.abbmatica-technology-sim-btn.active {
  border-color: var(--color-orange);
  color: var(--color-orange);
  background: rgba(255, 107, 0, 0.05);
  box-shadow: 0 4px 15px rgba(255, 107, 0, 0.1);
}

.abbmatica-technology-sim-btn.active svg {
  stroke: var(--color-orange);
}

.abbmatica-technology-sim-btn:hover:not(.active) {
  border-color: var(--text-secondary);
  color: var(--text-primary);
}

.abbmatica-technology-sim-display-card {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--card-shadow);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  height: 540px;
  max-height: 540px;
  position: relative;
}

/* ---- RIGHT-SIDE ROAD CANVAS (breakout) ---- */
/* The road canvas that breaks out to the right of the abbmatica-technology-container */
.abbmatica-technology-sim-road-breakout {
  position: relative;
  overflow: hidden;
  background: #111827;
  display: none;
  /* hidden by default — shown only on desktop */
}

/* Left Canvas Panel */
.abbmatica-technology-sim-canvas {
  background: var(--simulation-bg);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  justify-content: center;
  border-right: 1px solid var(--border-color);
  width: 100%;
}

/* Enforcement road visual mockup */
.abbmatica-technology-sim-road-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: stretch;
  pointer-events: none;
}

/* Simulator HUD Panels */
.abbmatica-technology-sim-hud-panel {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 24px;
  background: var(--bg-tertiary);
  border-bottom: 1px solid var(--border-color);
  font-family: var(--font-mono);
  pointer-events: auto;
  z-index: 12;
}

.abbmatica-technology-sim-hud-panel.abbmatica-technology-hud-bottom {
  border-bottom: none;
  border-top: 1px solid var(--border-color);
}

.abbmatica-technology-hud-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.abbmatica-technology-hud-lbl {
  font-size: 0.65rem;
  color: var(--text-muted);
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.abbmatica-technology-hud-val {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-primary);
}

/* ==============================================
   PROPER ROAD VISUAL
   ============================================== */
.abbmatica-technology-sim-road {
  height: 360px;
  width: 100%;
  /* Rich asphalt surface */
  background:
    repeating-linear-gradient(90deg,
      transparent 0px,
      transparent 3px,
      rgba(255, 255, 255, 0.008) 3px,
      rgba(255, 255, 255, 0.008) 4px),
    linear-gradient(180deg,
      #1a1a1a 0%,
      #1e2020 35%,
      #1c1c1c 65%,
      #1a1a1a 100%);
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  /* Road kerb / edge shadow */
  box-shadow:
    inset 0 0 0 6px #0a0a0a,
    inset 0 12px 30px rgba(0, 0, 0, 0.5),
    inset 0 -12px 30px rgba(0, 0, 0, 0.5);
}

/* Top kerb */
.abbmatica-technology-sim-road::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 10px;
  background: repeating-linear-gradient(90deg,
      #e5e7eb 0px, #e5e7eb 18px,
      #1f2937 18px, #1f2937 36px);
  z-index: 2;
  opacity: 0.9;
}

/* Bottom kerb */
.abbmatica-technology-sim-road::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 10px;
  background: repeating-linear-gradient(90deg,
      #e5e7eb 0px, #e5e7eb 18px,
      #1f2937 18px, #1f2937 36px);
  z-index: 2;
  opacity: 0.9;
}

/* Lane dividers — animated dashed white lines moving left */
.abbmatica-technology-road-lane-line {
  position: absolute;
  left: 0;
  width: 200%;
  height: 0;
  border-bottom: 3px dashed rgba(255, 255, 255, 0.55);
  pointer-events: none;
  animation: lane-scroll 1.2s linear infinite;
}

/* Dashed animated center divider — matches lane line style */
.abbmatica-technology-road-center-line {
  position: absolute;
  left: 0;
  top: 50%;
  width: 200%;
  height: 0;
  border-bottom: 3px dashed rgba(255, 255, 255, 0.65);
  pointer-events: none;
  z-index: 4;
  animation: lane-scroll 1.2s linear infinite;
}

@keyframes lane-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

/* Place lane lines at 33% and 66% of road height */
.abbmatica-technology-road-lane-line:nth-child(1) {
  top: 33%;
}

.abbmatica-technology-road-lane-line:nth-child(2) {
  top: 66%;
}

/* Road side markers — vertical white lines on edges */
.abbmatica-technology-road-edge-line {
  position: absolute;
  top: 10px;
  bottom: 10px;
  width: 3px;
  background: rgba(255, 255, 255, 0.35);
  z-index: 3;
}

.abbmatica-technology-road-edge-line.left {
  left: 14px;
}

.abbmatica-technology-road-edge-line.right {
  right: 14px;
}

/* ==============================================
   PREMIUM GANTRY — AABMATICA TECHNOLOGIES ANPR
   ============================================== */

/* Main gantry wrapper — sits inside .abbmatica-technology-sim-road */
.abbmatica-technology-premium-gantry {
  position: absolute;
  left: 58%;
  top: 0;
  height: 100%;
  width: 80px;
  /* wide enough for signals + pillar */
  z-index: 10;
  pointer-events: none;
}

/* ---- Crossbar (horizontal top beam) ---- */
.abbmatica-technology-gantry-crossbar {
  position: absolute;
  top: 0;
  left: 7px;
  width: 8px;
  height: 100%;
  background: linear-gradient(to bottom, #374151, #4B5563, #374151);
  border-radius: 4px;
  box-shadow: 2px 0 12px rgba(0, 0, 0, 0.45);
}

/* ==============================================
   ROAD BRAND LABEL — TOP-LEFT CORNER OF ROAD
   Positioned directly inside .abbmatica-technology-sim-road
   ============================================== */
.abbmatica-technology-road-brand-label {
  position: absolute;
  top: 14px;
  left: 36px;
  z-index: 2;
  background: rgba(10, 12, 18, 0.92);
  border: 1px solid rgba(255, 107, 0, 0.65);
  border-radius: 5px;
  padding: 5px 10px;
  box-shadow: 0 0 12px rgba(255, 107, 0, 0.25), inset 0 0 8px rgba(0, 0, 0, 0.5);
  pointer-events: none;
}

.abbmatica-technology-road-brand-label .abbmatica-technology-brand-sign-inner {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.abbmatica-technology-road-brand-label .abbmatica-technology-brand-sign-inner span:first-of-type {
  font-family: var(--font-mono);
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  line-height: 1.3;
  color: #FF6B00;
  white-space: nowrap;
  text-transform: uppercase;
}

.abbmatica-technology-road-brand-label .abbmatica-technology-brand-sign-sub {
  font-family: var(--font-mono) !important;
  font-size: 0.43rem !important;
  font-weight: 500 !important;
  color: rgba(255, 107, 0, 0.55) !important;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

/* ---- Vertical Pillar ---- */
.abbmatica-technology-gantry-pillar {
  position: absolute;
  top: 0;
  height: 100%;
  width: 8px;
}

.abbmatica-technology-gantry-pillar-left {
  left: 7px;
}

/* same as crossbar */

/* ---- Signal Unit (per lane) ---- */
.abbmatica-technology-signal-unit {
  position: absolute;
  left: -62px;
  /* offset to the left of pillar */
  display: flex;
  align-items: center;
  gap: 6px;
}

/* 3-bulb traffic signal housing */
.abbmatica-technology-signal-housing {
  background: #111827;
  border: 1.5px solid #374151;
  border-radius: 6px;
  padding: 5px 4px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), inset 0 0 4px rgba(0, 0, 0, 0.3);
  width: 22px;
}

/* Individual signal bulb */
.abbmatica-technology-signal-lens {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  margin: 0 auto;
  opacity: 0.25;
  /* OFF state */
  transition: opacity 0.3s, box-shadow 0.3s;
}

/* Colours */
.abbmatica-technology-signal-lens.red {
  background: #EF4444;
}

.abbmatica-technology-signal-lens.yellow {
  background: #F59E0B;
}

.abbmatica-technology-signal-lens.green {
  background: #10B981;
}

/* Active green — lit up & glowing */
.abbmatica-technology-signal-lens.abbmatica-technology-active-green {
  opacity: 1;
  box-shadow: 0 0 10px #10B981, 0 0 20px rgba(16, 185, 129, 0.5);
  animation: green-pulse 2s ease-in-out infinite;
}

@keyframes green-pulse {

  0%,
  100% {
    opacity: 1;
    box-shadow: 0 0 10px #10B981, 0 0 20px rgba(16, 185, 129, 0.5);
  }

  50% {
    opacity: 0.7;
    box-shadow: 0 0 6px #10B981;
  }
}

/* ---- Camera Housing beside signal ---- */
.abbmatica-technology-camera-housing {
  position: relative;
  width: 20px;
  height: 20px;
  background: #1F2937;
  border: 1.5px solid #4B5563;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

.abbmatica-technology-camera-lens {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #60A5FA, #1E3A5F);
  border: 1.5px solid #3B82F6;
  box-shadow: 0 0 6px rgba(59, 130, 246, 0.6);
}

.abbmatica-technology-camera-ir-ring {
  position: absolute;
  inset: 1px;
  border-radius: 3px;
  border: 1px solid rgba(255, 107, 0, 0.3);
  pointer-events: none;
  transition: all 0.25s ease;
}

/* ---- Laser Scan Line ---- */
.abbmatica-technology-gantry-scan-line {
  position: absolute;
  left: 7px;
  top: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(to bottom, transparent, rgba(255, 107, 0, 0.9), transparent);
  box-shadow: 0 0 20px rgba(255, 107, 0, 1);
  z-index: 12;
  opacity: 0;
  transition: opacity 0.12s ease;
}

.abbmatica-technology-gantry-scan-line.scanning {
  opacity: 1;
}

@keyframes signal-blink {
  50% {
    opacity: 0.3;
  }
}

/* Simulated Vehicles */
.abbmatica-technology-sim-vehicle {
  position: absolute;
  left: -110px;
  z-index: 5;
  transition: filter 0.15s ease;
}

.abbmatica-technology-sim-vehicle.abbmatica-technology-scanning-active {
  filter: drop-shadow(0 0 14px var(--color-orange));
}

.abbmatica-technology-sim-vehicle.normal-scan {
  filter: drop-shadow(0 0 16px #10B981) !important;
}

.abbmatica-technology-sim-vehicle.violator-scan {
  filter: drop-shadow(0 0 16px #EF4444) !important;
}

/* Infrared CCTV scan beam projection */
.abbmatica-technology-ir-beam-cone {
  position: absolute;
  height: 65px;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  filter: blur(2.5px);
  pointer-events: none;
  z-index: 9;
  opacity: 0;
  transform-origin: right center;
  transition: opacity 0.1s ease;
}

.abbmatica-technology-ir-beam-cone.active {
  opacity: 1;
  animation: ir-beam-glow 0.6s ease-out forwards;
}

@keyframes ir-beam-glow {
  0% {
    opacity: 0;
    transform: scaleY(0.4) scaleX(0.7);
  }

  20% {
    opacity: 1;
    transform: scaleY(1.1) scaleX(1);
  }

  40% {
    opacity: 1;
    transform: scaleY(1) scaleX(1);
  }

  100% {
    opacity: 0;
    transform: scaleY(0.6) scaleX(1);
  }
}

.abbmatica-technology-camera-ir-ring.active-scan {
  border-color: #EF4444 !important;
  background: rgba(239, 68, 68, 0.5) !important;
  box-shadow: 0 0 12px #EF4444, inset 0 0 6px #EF4444 !important;
  animation: ir-flash-blink 0.15s infinite alternate;
}

@keyframes ir-flash-blink {
  from {
    opacity: 0.5;
  }

  to {
    opacity: 1;
  }
}

.abbmatica-technology-sim-bounding-box {
  position: absolute;
  border: 2px solid var(--color-orange);
  pointer-events: none;
  z-index: 6;
  display: none;
}

.abbmatica-technology-sim-bounding-box-label {
  position: absolute;
  top: -24px;
  left: -2px;
  background: var(--color-orange);
  color: white;
  padding: 2px 6px;
  font-size: 0.65rem;
  font-weight: 700;
  border-radius: 4px;
  white-space: nowrap;
}

/* ICCC Canvas dashboard style */
.abbmatica-technology-iccc-dashboard {
  width: 100%;
  height: 100%;
  padding: var(--spacing-lg);
  display: grid;
  grid-template-rows: auto 1fr;
  gap: var(--spacing-md);
  background: var(--bg-secondary);
}

.abbmatica-technology-iccc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.abbmatica-technology-iccc-status-strip {
  display: flex;
  gap: var(--spacing-md);
}

.abbmatica-technology-iccc-status-pill {
  padding: 4px 10px;
  border-radius: 4px;
  background: var(--bg-tertiary);
  font-size: 0.75rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
}

.abbmatica-technology-iccc-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.abbmatica-technology-iccc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1.2fr 0.8fr;
  gap: var(--spacing-md);
}

.abbmatica-technology-iccc-map-panel {
  background: var(--simulation-bg);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  position: relative;
  overflow: hidden;
  grid-column: span 2;
  display: flex;
  align-items: center;
  justify-content: center;
}

.abbmatica-technology-iccc-map-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  /* Allow SVG to control its own opacity layers */
  pointer-events: none;
  /* Let clicks pass through to nodes */
}

.abbmatica-technology-map-node {
  position: absolute;
  width: 12px;
  height: 12px;
  background: var(--color-orange);
  border-radius: 50%;
  cursor: pointer;
}

.abbmatica-technology-map-node::after {
  content: '';
  position: absolute;
  top: -6px;
  left: -6px;
  right: -6px;
  bottom: -6px;
  border: 2px solid var(--color-orange);
  border-radius: 50%;
  animation: pulse-orange 1.5s infinite;
  opacity: 0;
}

.abbmatica-technology-map-node.active::after {
  opacity: 1;
}

.abbmatica-technology-map-node-1 {
  top: 30%;
  left: 25%;
}

.abbmatica-technology-map-node-2 {
  top: 55%;
  left: 70%;
}

.abbmatica-technology-map-node-3 {
  top: 75%;
  left: 40%;
}

.abbmatica-technology-map-node-popover {
  position: absolute;
  background: var(--bg-tertiary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-sm);
  padding: var(--spacing-sm);
  font-size: 0.75rem;
  pointer-events: none;
  display: none;
  z-index: 100;
  box-shadow: var(--card-shadow);
  width: 180px;
}

.abbmatica-technology-iccc-chart-panel {
  background: var(--simulation-bg);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-sm);
  display: flex;
  flex-direction: column;
}

.abbmatica-technology-iccc-panel-title {
  font-size: 0.8rem;
  color: var(--text-secondary);
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: var(--spacing-xs);
}

.abbmatica-technology-iccc-svg-chart {
  width: 100%;
  height: 100%;
  display: block;
}

.abbmatica-technology-iccc-sensor-status {
  background: var(--simulation-bg);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-sm);
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}

.abbmatica-technology-sensor-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.75rem;
}

.abbmatica-technology-sensor-indicator {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
}

/* Right Logs Panel */
.abbmatica-technology-sim-logs-panel {
  padding: var(--spacing-lg);
  display: flex;
  flex-direction: column;
  /* Must be explicit so flex child overflow works correctly */
  height: 100%;
  max-height: 100%;
  overflow: hidden;
  /* hard-clamps panel to its grid cell */
  background: var(--bg-tertiary);
}

.abbmatica-technology-logs-header {
  border-bottom: 1px solid var(--border-color);
  padding-bottom: var(--spacing-md);
  margin-bottom: var(--spacing-md);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
  /* never collapses when list fills up */
}

.abbmatica-technology-logs-title {
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

.abbmatica-technology-logs-pulse {
  width: 8px;
  height: 8px;
  background: var(--color-orange);
  border-radius: 50%;
  animation: pulse-orange 1.2s infinite;
}

.abbmatica-technology-logs-clear {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.abbmatica-technology-logs-list {
  flex-grow: 1;
  /* min-height: 0 is critical — without it, flex items refuse to shrink
     below their content size, breaking overflow-y: auto scroll */
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  padding-right: 4px;
}

/* Scrollbar styles */
.abbmatica-technology-logs-list::-webkit-scrollbar {
  width: 4px;
}

.abbmatica-technology-logs-list::-webkit-scrollbar-track {
  background: transparent;
}

.abbmatica-technology-logs-list::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 2px;
}

.abbmatica-technology-log-card {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-sm);
  padding: 8px 12px;
  position: relative;
  animation: slide-in 0.25s ease-out;
  border-left: 3px solid var(--status-success);
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
  /* Prevents cards from vertically squishing when list fills up */
}

.abbmatica-technology-log-card.danger {
  border-left-color: var(--status-danger);
}

.abbmatica-technology-log-card.warning {
  border-left-color: var(--status-warning);
}

.abbmatica-technology-log-card.info {
  border-left-color: var(--status-info);
}

/* Status abbmatica-technology-badge (replaces .abbmatica-technology-log-meta) */
.abbmatica-technology-log-type {
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  padding: 1px 5px;
  border-radius: 3px;
  white-space: nowrap;
  flex-shrink: 0;
}

.abbmatica-technology-log-type.danger {
  color: var(--status-danger);
  background: rgba(239, 68, 68, 0.1);
}

.abbmatica-technology-log-type.warning {
  color: var(--status-warning);
  background: rgba(245, 158, 11, 0.1);
}

.abbmatica-technology-log-type.success {
  color: var(--status-success);
  background: rgba(16, 185, 129, 0.1);
}

.abbmatica-technology-log-type.info {
  color: var(--status-info);
  background: rgba(59, 130, 246, 0.1);
}

/* .abbmatica-technology-log-meta */
.abbmatica-technology-log-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.abbmatica-technology-log-time {
  font-size: 0.6rem;
  color: var(--text-muted);
  white-space: nowrap;
}

/* Main message */
.abbmatica-technology-log-body {
  font-size: 0.72rem;
  color: var(--text-primary);
  font-weight: 500;
  margin: 0;
  line-height: 1.3;
}

/* Pills row */
.abbmatica-technology-log-details {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.abbmatica-technology-log-pill {
  background: var(--bg-tertiary);
  border: 1px solid var(--border-color);
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 0.6rem;
  color: var(--text-secondary);
  white-space: nowrap;
}

.abbmatica-technology-log-pill-bold {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 0.65rem;
  color: var(--text-primary);
}


/* Solutions Pillar Cards */
.abbmatica-technology-solutions-section {
  background: var(--bg-secondary);
}

.abbmatica-technology-solutions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-lg);
}

.abbmatica-technology-solution-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius-xl);
  padding: 0 !important;
  position: relative;
  overflow: hidden;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease, border-color 0.4s ease, background var(--transition-normal);
  display: flex;
  flex-direction: column;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: var(--card-shadow);
}

.abbmatica-technology-solution-card::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: conic-gradient(from 0deg, transparent 70%, rgba(255, 107, 0, 0.4) 80%, transparent 100%);
  animation: rotate-glow 6s linear infinite;
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
  z-index: 0;
}

@keyframes rotate-glow {
  100% {
    transform: rotate(360deg);
  }
}

.abbmatica-technology-solution-card::after {
  content: '';
  position: absolute;
  inset: 1px;
  background: var(--bg-secondary);
  border-radius: calc(var(--border-radius-xl) - 1px);
  z-index: 1;
  transition: background var(--transition-normal);
}

.abbmatica-technology-solution-card>* {
  position: relative;
  z-index: 2;
}

.abbmatica-technology-solution-card:hover {
  transform: translateY(-8px) scale(1.02);
  border-color: var(--card-hover-border);
  box-shadow: var(--card-hover-shadow);
}

.abbmatica-technology-solution-card:hover::before {
  opacity: 1;
}

/* Solutions Card Cover Images */
.abbmatica-technology-solution-image-wrapper {
  width: 100%;
  height: 240px;
  overflow: hidden;
  border-bottom: 1px solid var(--border-color);
  border-top-left-radius: calc(var(--border-radius-xl) - 1px);
  border-top-right-radius: calc(var(--border-radius-xl) - 1px);
  position: relative;
  z-index: 2;
}

.abbmatica-technology-solution-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.abbmatica-technology-solution-card:hover .abbmatica-technology-solution-card-img {
  transform: scale(1.08);
}

.abbmatica-technology-solution-card-content {
  padding: var(--spacing-lg);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  position: relative;
  z-index: 2;
}

.abbmatica-technology-solution-title-link {
  font-size: 1.4rem;
  margin-bottom: var(--spacing-sm);
  display: block;
}

.abbmatica-technology-solution-desc {
  color: var(--text-secondary);
  font-size: 0.95rem;
  margin-bottom: var(--spacing-lg);
  flex-grow: 1;
}

.abbmatica-technology-solution-features {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  margin-bottom: var(--spacing-lg);
}

.abbmatica-technology-solution-feat-item {
  font-size: 0.85rem;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 8px;
}

.abbmatica-technology-solution-feat-item svg {
  stroke: var(--color-orange);
}

.abbmatica-technology-solution-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-orange);
  font-weight: 600;
  font-size: 0.9rem;
  margin-top: auto;
}

.abbmatica-technology-solution-more svg {
  transition: transform var(--transition-fast);
}

.abbmatica-technology-solution-card:hover .abbmatica-technology-solution-more svg {
  transform: translateX(4px);
}

/* Platform Workflow Section */
.abbmatica-technology-workflow-section {
  background: var(--bg-primary);
}

.abbmatica-technology-workflow-layout {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--spacing-md);
  margin-top: var(--spacing-xxl);
  position: relative;
}

/* Connector line between steps */
.abbmatica-technology-workflow-layout::after {
  content: '';
  position: absolute;
  top: 35px;
  left: 10%;
  right: 10%;
  height: 2px;
  background: dashed var(--border-color);
  z-index: 1;
}

.abbmatica-technology-workflow-step {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 var(--spacing-md);
}

.abbmatica-technology-workflow-circle {
  width: 70px;
  height: 70px;
  background: var(--bg-secondary);
  border: 2px solid var(--border-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: var(--spacing-md);
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-normal);
}

.abbmatica-technology-workflow-step:hover .abbmatica-technology-workflow-circle {
  border-color: var(--color-orange);
  color: var(--color-orange);
  transform: scale(1.08);
  box-shadow: var(--shadow-glow);
}

.abbmatica-technology-workflow-step-title {
  font-size: 1.15rem;
  margin-bottom: var(--spacing-xs);
}

.abbmatica-technology-workflow-step-desc {
  color: var(--text-secondary);
  font-size: 0.85rem;
  max-width: 240px;
}

/* Interactive References & Map */
.abbmatica-technology-references-section {
  background: var(--bg-secondary);
}

.abbmatica-technology-references-layout {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--spacing-xxl);
  align-items: center;
}

/* Interactive map visualization */
.abbmatica-technology-references-map-container {
  position: relative;
  background: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-lg);
  padding: var(--spacing-lg);
  height: 400px;
  overflow: hidden;
  box-shadow: var(--card-shadow);
}

.abbmatica-technology-references-map-svg {
  width: 100%;
  height: 100%;
  opacity: 0.75;
  /* higher opacity for extreme clarity in light/dark modes */
  transition: all var(--transition-normal);
}

.gis-continent {
  fill: var(--gis-continent-fill);
  stroke: var(--gis-continent-stroke);
  stroke-width: 1.2;
  stroke-linejoin: round;
  transition: all var(--transition-normal);
}

/* Country map markers */
.abbmatica-technology-map-marker {
  position: absolute;
  cursor: pointer;
  z-index: 10;
}

.abbmatica-technology-map-marker-dot {
  width: 14px;
  height: 14px;
  background: var(--color-orange);
  border-radius: 50%;
  position: relative;
  box-shadow: 0 0 10px var(--color-orange);
}

.abbmatica-technology-map-marker-dot::after {
  content: '';
  position: absolute;
  top: -8px;
  left: -8px;
  width: 26px;
  height: 26px;
  border: 2px solid var(--color-orange);
  border-radius: 50%;
  animation: pulse-orange 2s infinite;
}

.abbmatica-technology-map-marker-card {
  position: absolute;
  bottom: 24px;
  left: -90px;
  width: 200px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-md);
  box-shadow: var(--card-shadow);
  display: none;
  z-index: 100;
  pointer-events: none;
  animation: fade-in 0.2s ease-out;
}

.abbmatica-technology-map-marker-card h4 {
  font-size: 0.95rem;
  color: var(--color-orange);
  margin-bottom: 2px;
}

.abbmatica-technology-map-marker-card p {
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.abbmatica-technology-map-marker:hover .abbmatica-technology-map-marker-card {
  display: block;
}

.abbmatica-technology-marker-india {
  top: 48%;
  left: 62%;
}

.abbmatica-technology-marker-uae {
  top: 45%;
  left: 52%;
}

.abbmatica-technology-marker-singapore {
  top: 62%;
  left: 72%;
}

.abbmatica-technology-marker-kenya {
  top: 60%;
  left: 45%;
}

/* Client abbmatica-technology-logo marquee strip */
.abbmatica-technology-logos-strip-title {
  font-size: 0.95rem;
  color: var(--text-muted);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 2px;
  text-align: center;
  margin-bottom: var(--spacing-lg);
}

.abbmatica-technology-logo-marquee-wrapper {
  overflow: hidden;
  position: relative;
  width: 100%;
  mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
}

.abbmatica-technology-logo-marquee {
  display: flex;
  gap: var(--spacing-xxl);
  width: max-content;
  animation: marquee 30s linear infinite;
}

.abbmatica-technology-client-logo-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-muted);
  opacity: 0.6;
  transition: opacity var(--transition-fast);
}

.abbmatica-technology-client-logo-item:hover {
  opacity: 0.95;
}

/* Call To Action Block */
.abbmatica-technology-cta-section {
  background: var(--gradient-hero);
  position: relative;
  overflow: hidden;
}

.abbmatica-technology-cta-box {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-xl);
  padding: var(--spacing-xxl) var(--spacing-xl);
  text-align: center;
  position: relative;
  z-index: 2;
  box-shadow: var(--card-shadow);
  overflow: hidden;
}

.abbmatica-technology-cta-box::after {
  content: '';
  position: absolute;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(255, 107, 0, 0.12) 0%, transparent 70%);
  top: -150px;
  right: -150px;
  border-radius: 50%;
}

.abbmatica-technology-cta-title {
  font-size: 2.8rem;
  font-weight: 800;
  margin-bottom: var(--spacing-md);
  letter-spacing: -1px;
}

.abbmatica-technology-cta-title span {
  color: var(--color-orange);
}

.abbmatica-technology-cta-desc {
  font-size: 1.15rem;
  color: var(--text-secondary);
  max-width: 650px;
  margin: 0 auto var(--spacing-xl);
}

.abbmatica-technology-cta-buttons {
  display: flex;
  justify-content: center;
  gap: var(--spacing-md);
}

/* Footer layout */
.abbmatica-technology-footer {
  display: block;
  background: var(--bg-primary);
  border-top: 1px solid var(--border-color);
  padding: 48px 0 20px 0;
  color: var(--text-secondary);
  font-size: 0.9rem;
}

.abbmatica-technology-footer-grid {
  display: grid;
  grid-template-columns: 1.2fr repeat(4, 0.7fr);
  gap: var(--spacing-xl);
  margin-bottom: 28px;
}

.abbmatica-technology-footer-brand {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
}

.abbmatica-technology-footer-desc {
  font-size: 0.85rem;
  color: var(--text-muted);
  max-width: 260px;
}

.abbmatica-technology-footer-title {
  font-size: 1rem;
  color: var(--text-primary);
  font-weight: 600;
  margin-bottom: var(--spacing-md);
}

.abbmatica-technology-footer-links {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.abbmatica-technology-footer-link:hover {
  color: var(--color-orange);
}

.abbmatica-technology-footer-bottom {
  border-top: 1px solid var(--border-color);
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
  color: var(--text-muted);
}

.abbmatica-technology-footer-bottom-links {
  display: flex;
  gap: var(--spacing-md);
}

/* Animations */
@keyframes pulse-orange {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 107, 0, 0.4);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(255, 107, 0, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(255, 107, 0, 0);
  }
}

@keyframes pulse-green {
  0% {
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4);
  }

  70% {
    box-shadow: 0 0 0 8px rgba(16, 185, 129, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}

@keyframes slide-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

/* Mobile Responsiveness */
@media (max-width: 1024px) {
  .abbmatica-technology-hero-section {
    min-height: auto;
    padding-top: 90px;
    padding-bottom: 0;
  }

  .abbmatica-technology-hero-slider-container {
    aspect-ratio: 2992 / 972;
    height: auto;
    min-height: auto;
    position: relative;
    width: 100%;
  }

  .abbmatica-technology-hero-layout,
  .abbmatica-technology-references-layout {
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
  }

  .abbmatica-technology-hero-visual {
    order: -1;
  }

  .abbmatica-technology-solutions-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .abbmatica-technology-sim-display-card {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr;
    height: auto;
  }

  .abbmatica-technology-sim-canvas {
    position: relative !important;
    height: auto !important;
    min-height: 380px !important;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
  }

  .abbmatica-technology-sim-logs-panel {
    height: 280px;
    width: 100%;
  }

  /* Hide road brand label on tablet/mobile — too cramped */
  .abbmatica-technology-road-brand-label {
    display: none;
  }

  .abbmatica-technology-workflow-layout {
    flex-direction: column;
    gap: var(--spacing-xl);
    align-items: center;
  }

  .abbmatica-technology-workflow-layout::after {
    display: none;
  }

  .abbmatica-technology-footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  :root {
    --spacing-xxl: 3rem;
  }

  .abbmatica-technology-hero-title {
    font-size: 2.8rem;
  }

  .section-title {
    font-size: clamp(0.85rem, 4vw, 1.8rem) !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .abbmatica-technology-nav-links,
  .abbmatica-technology-nav-actions .abbmatica-technology-btn-contact {
    display: none;
  }

  .abbmatica-technology-mobile-toggle {
    display: block;
  }

  .abbmatica-technology-logo-img {
    height: 64px;
  }

  /* Mobile: reduce top & bottom padding to 2px only */
  .abbmatica-technology-navbar {
    padding-top: 2px;
    padding-bottom: 2px;
    height: auto;
    min-height: unset;
  }

  .abbmatica-technology-navbar .abbmatica-technology-container {
    height: auto;
    padding-top: 2px;
    padding-bottom: 2px;
  }

  /* Fix hero top gap: match exact mobile navbar height (logo=55px + nav-padding=4px + container-padding=4px + border=1px = 64px) */
  .abbmatica-technology-hero-section {
    padding-top: 64px !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
  }


  .abbmatica-technology-proof-layout {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-md);
  }

  /* Hide description paragraph on mobile — show only number + label */
  .abbmatica-technology-proof-desc {
    display: none;
  }

  .abbmatica-technology-proof-number {
    font-size: 2.2rem;
  }

  .abbmatica-technology-proof-label {
    font-size: 0.82rem;
  }

  .abbmatica-technology-solutions-grid {
    grid-template-columns: 1fr;
  }

  .abbmatica-technology-cta-title {
    font-size: clamp(0.72rem, 3.6vw, 1.8rem) !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .abbmatica-technology-cta-buttons {
    flex-direction: row !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .abbmatica-technology-cta-buttons .abbmatica-technology-btn-primary,
  .abbmatica-technology-cta-buttons .abbmatica-technology-btn-outline {
    flex: 1 !important;
    padding: 8px 4px !important;
    font-size: clamp(0.58rem, 2.4vw, 0.9rem) !important;
    white-space: nowrap !important;
    justify-content: center !important;
    gap: 4px !important;
  }

  .abbmatica-technology-cta-buttons .abbmatica-technology-btn-primary svg,
  .abbmatica-technology-cta-buttons .abbmatica-technology-btn-outline svg {
    display: none !important;
    /* Hide button icons on mobile to make room for text */
  }

  .abbmatica-technology-footer-grid {
    grid-template-columns: 1fr;
  }

  .abbmatica-technology-footer-bottom {
    flex-direction: column;
    gap: var(--spacing-sm);
    text-align: center;
  }

  .abbmatica-technology-hero-slider-container {
    aspect-ratio: 9 / 16;
    height: auto;
    min-height: auto;
    max-height: none;
  }

  .abbmatica-technology-hero-slide[data-slide="1"] .slide-blur-bg,
  .abbmatica-technology-hero-slide[data-slide="1"] .slide-center-image {
    background-image: url('assets/images/hero_speed_mobile.png');
  }

  .abbmatica-technology-hero-slide[data-slide="2"] .slide-blur-bg,
  .abbmatica-technology-hero-slide[data-slide="2"] .slide-center-image {
    background-image: url('assets/images/hero_rlvd_mobile.png');
  }

  .abbmatica-technology-hero-slide[data-slide="3"] .slide-blur-bg,
  .abbmatica-technology-hero-slide[data-slide="3"] .slide-center-image {
    background-image: url('assets/images/hero_anpr_mobile.png');
  }

  .abbmatica-technology-hero-slide[data-slide="4"] .slide-blur-bg,
  .abbmatica-technology-hero-slide[data-slide="4"] .slide-center-image {
    background-image: url('assets/images/hero_traffic_cases_mobile.png');
  }

  /* Mobile: arrows slightly below center, dots stay at bottom */
  .abbmatica-technology-slider-arrow {
    width: 28px;
    height: 28px;
    top: 62%;
    bottom: auto;
    transform: translateY(-50%);
    opacity: 0.85;
    padding: 0;
  }

  .abbmatica-technology-slider-arrow:hover {
    transform: translateY(-50%) scale(1.05);
    opacity: 1;
  }

  .abbmatica-technology-slider-arrow svg {
    width: 13px;
    height: 13px;
  }

  .abbmatica-technology-arrow-prev {
    left: 6px;
  }

  .abbmatica-technology-arrow-next {
    right: 6px;
  }

  /* Mobile: dots at same level as arrows — center at 14 + 2.5 = 16.5px from bottom */
  .abbmatica-technology-slider-dots {
    top: auto;
    bottom: 14px;          /* dot center = 14 + 2.5 = 16.5px from bottom ≈ arrow center */
    transform: translateX(-50%);
    gap: 5px;
  }

  .abbmatica-technology-slider-dot {
    width: 5px;
    height: 5px;
  }

  .abbmatica-technology-slider-dot.active {
    width: 14px;
    height: 5px;
  }
}

/* CCTV Camera Simulation Graphic Animations */
.cctv-metal-structure {
  color: var(--border-color);
  fill: var(--border-color);
}

[data-theme="light"] .cctv-metal-structure {
  color: #CBD5E1;
  fill: #CBD5E1;
}

.cctv-status-led {
  animation: cctv-led-blink 1.2s step-end infinite;
}

@keyframes cctv-led-blink {
  50% {
    opacity: 0.2;
  }
}

.cctv-ir-beam {
  transform-origin: 297px 84px;
  animation: cctv-beam-pulse 2.5s ease-in-out infinite alternate;
}

@keyframes cctv-beam-pulse {
  0% {
    opacity: 0.7;
    transform: scale(0.96);
  }

  100% {
    opacity: 1;
    transform: scale(1.04);
  }
}

.cctv-sim-car {
  /* No transform animation here to allow Javascript to translate the group */
}

.cctv-car-inner-vibe {
  animation: cctv-car-engine-vibe 0.12s ease-in-out infinite;
}

@keyframes cctv-car-engine-vibe {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-0.8px);
  }
}

.cctv-hud-target {
  /* No transform animation here to allow Javascript to translate the group */
}

.cctv-hud-target-inner {
  animation: cctv-hud-hover 3s ease-in-out infinite alternate;
}

@keyframes cctv-hud-hover {
  0% {
    transform: translateY(0);
    opacity: 0.9;
  }

  100% {
    transform: translateY(-3px);
    opacity: 1;
  }
}

.cctv-live-feed-card {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* --- 6. AI Incident & Accident Detection Simulator Section --- */
.abbmatica-technology-incident-section {
  padding: 80px 0;
  background: var(--bg-primary);
  border-top: 1px solid var(--border-color);
  overflow: hidden;
}

.abbmatica-technology-incident-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--spacing-xxl);
  align-items: center;
}

@media (max-width: 991px) {
  .abbmatica-technology-incident-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
  }
}

.abbmatica-technology-incident-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Incident logs box */
.abbmatica-technology-incident-logs-card {
  width: 100%;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  margin-top: var(--spacing-md);
}

.incident-logs-header {
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  gap: 10px;
}

.incident-logs-header h4 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.pulse-indicator {
  width: 8px;
  height: 8px;
  background: #10B981;
  border-radius: 50%;
  box-shadow: 0 0 8px #10B981;
  animation: log-pulse 1.8s infinite;
}

@keyframes log-pulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}

.pulse-indicator.incident-active {
  background: #EF4444 !important;
  box-shadow: 0 0 8px #EF4444 !important;
  animation: log-pulse-red 1.2s infinite !important;
}

@keyframes log-pulse-red {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.8);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 8px rgba(239, 68, 68, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
  }
}

.incident-logs-body {
  padding: 16px;
}

.incident-log-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.85rem;
}

.log-status {
  padding: 3px 8px;
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
}

.log-status.status-normal {
  background: rgba(16, 185, 129, 0.15);
  color: #10B981;
  border: 0.8px solid rgba(16, 185, 129, 0.3);
}

.log-status.status-danger {
  background: rgba(239, 68, 68, 0.15);
  color: #EF4444;
  border: 0.8px solid rgba(239, 68, 68, 0.3);
  animation: status-blink 1s ease infinite alternate;
}

@keyframes status-blink {
  0% {
    opacity: 0.7;
  }

  100% {
    opacity: 1;
    filter: drop-shadow(0 0 2px #EF4444);
  }
}

.log-desc {
  color: var(--text-secondary);
}

.incident-details-box {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1.2px dashed var(--border-color);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  animation: details-slide-in 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes details-slide-in {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.detail-item {
  font-size: 0.82rem;
  color: var(--text-secondary);
}

.detail-item strong {
  color: var(--text-primary);
  margin-right: 4px;
}

.detail-item span {
  font-family: var(--font-mono);
}

/* Floating LED VMS sign overlay */
.aid-vms-display {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 140px;
  background: #0D0E12;
  border: 2px solid #374151;
  border-radius: 6px;
  padding: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6);
  font-family: monospace;
  text-align: center;
  z-index: 10;
  opacity: 0.2;
  transform: scale(0.95);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  pointer-events: none;
}

.aid-vms-display.vms-warning-active {
  opacity: 1;
  transform: scale(1);
  border-color: #F59E0B;
  box-shadow: 0 0 14px rgba(245, 158, 11, 0.35);
  animation: vms-alert-pulse 1.2s infinite alternate;
}

@keyframes vms-alert-pulse {
  0% {
    border-color: #D97706;
  }

  100% {
    border-color: #FBBF24;
  }
}

.vms-header {
  font-size: 7.5px;
  color: #EF4444;
  font-weight: 900;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.vms-body {
  font-size: 10px;
  color: #F59E0B;
  font-weight: bold;
  line-height: 1.3;
  letter-spacing: 0.2px;
  text-shadow: 0 0 4px rgba(245, 158, 11, 0.6);
}

/* Emergency red flashing animation for the incident simulator rings */
@keyframes incident-ring-pulse {
  0% {
    transform: scale(0.5);
    opacity: 0.8;
  }

  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

.aid-alert-active-ring {
  animation: incident-ring-pulse 1.5s cubic-bezier(0.1, 0.8, 0.3, 1) infinite;
}

/* Wireless signal transmission waves from camera dome */
.aid-wave {
  opacity: 0;
}

.aid-wave-active-1 {
  animation: wave-spread 1.2s infinite;
}

.aid-wave-active-2 {
  animation: wave-spread 1.2s infinite 0.3s;
}

.aid-wave-active-3 {
  animation: wave-spread 1.2s infinite 0.6s;
}

@keyframes wave-spread {
  0% {
    r: 4px;
    opacity: 0.95;
    stroke-width: 1.5;
  }

  100% {
    r: 35px;
    opacity: 0;
    stroke-width: 0.5;
  }
}

/* Flashing emergency sirens on Responder vehicles */
.aid-siren-blue {
  animation: siren-flash-blue 0.3s infinite alternate;
}

.aid-siren-red {
  animation: siren-flash-red 0.3s infinite alternate;
}

@keyframes siren-flash-blue {
  0% {
    fill: #3B82F6;
    filter: drop-shadow(0 0 2px #3B82F6);
  }

  100% {
    fill: #1E3A8A;
  }
}

@keyframes siren-flash-red {
  0% {
    fill: #991B1B;
  }

  100% {
    fill: #EF4444;
    filter: drop-shadow(0 0 2px #EF4444);
  }
}

/* AID Console Alert Animations */
.aid-console-alert-bg {
  animation: console-bg-flash 0.5s infinite alternate;
}

.aid-console-alert-text {
  animation: console-text-flash 0.5s infinite alternate;
}

.aid-console-alert-border {
  animation: console-border-flash 0.5s infinite alternate;
}

@keyframes console-bg-flash {
  0% {
    fill: #450A0A;
  }

  100% {
    fill: #991B1B;
  }
}

@keyframes console-text-flash {
  0% {
    fill: #FBBF24;
    opacity: 0.7;
  }

  100% {
    fill: #EF4444;
    opacity: 1;
  }
}

@keyframes console-border-flash {
  0% {
    stroke: #EF4444;
    opacity: 0.5;
  }

  100% {
    stroke: #FBBF24;
    opacity: 1;
  }
}

/* ==========================================================================
   Aabmatica Homepage Updates - New Sections Styling
   ========================================================================== */

/* 1. Core Solutions Grid (Point 1) */
.abbmatica-technology-core-solutions-section {
  position: relative;
  background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
  border-bottom: 1px solid var(--border-color);
}

.core-solutions-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-lg);
  margin-top: var(--spacing-xl);
}

@media (max-width: 1200px) {
  .core-solutions-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 650px) {
  .core-solutions-grid {
    grid-template-columns: 1fr;
  }
}

.core-solution-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius-lg);
  padding: 0;
  overflow: hidden;
  transition: all var(--transition-normal);
  display: flex;
  flex-direction: column;
  box-shadow: var(--card-shadow);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  min-height: 340px;
}

.core-solution-card:hover {
  border-color: var(--color-orange);
  transform: translateY(-6px);
  box-shadow: var(--card-hover-shadow);
}

.core-solution-card:hover .core-solution-image-wrapper img {
  transform: scale(1.06);
}

.core-solution-card .card-icon-wrapper {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 107, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

.core-solution-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.4;
}

.core-solution-card .category-description {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

.core-solution-card .solution-item-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.core-solution-card .solution-item-list li {
  font-size: 0.9rem;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 8px;
}

.core-solution-card .solution-item-list li::before {
  content: "✔";
  color: var(--color-orange);
  font-weight: bold;
}

/* 2. Experience & Stats Section (Point 2) */
.abbmatica-experience-stats-section {
  position: relative;
  background: var(--bg-primary);
  border-bottom: 1px solid var(--border-color);
}

.experience-stats-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: var(--spacing-xl);
  align-items: center;
}

.iso-logos-strip {
  display: flex;
  gap: var(--spacing-sm);
  flex-wrap: wrap;
  margin-top: var(--spacing-md);
}

.iso-badge {
  background: var(--bg-tertiary);
  border: 1px solid var(--border-color);
  padding: 6px 12px;
  border-radius: var(--border-radius-sm);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-secondary);
}

.experience-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-md);
}

.stat-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius-lg);
  padding: var(--spacing-lg);
  transition: all var(--transition-normal);
  box-shadow: var(--card-shadow);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}

.stat-card:hover {
  border-color: var(--card-hover-border);
  transform: translateY(-5px);
  box-shadow: var(--card-hover-shadow);
}

.stat-number {
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--color-orange);
  line-height: 1.1;
}

.stat-label {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}

.stat-desc {
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* 3. Interactive Presence Map Section */
.presence-map-container {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--spacing-lg);
  margin-top: var(--spacing-xl);
  height: 520px;
  overflow: hidden;
}

@media (max-width: 900px) {
  .presence-map-container {
    grid-template-columns: 1fr;
    height: auto;
    overflow: visible;
  }
}

.presence-sidebar {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-lg);
  padding: var(--spacing-md);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
  max-height: 100%;
  overflow-y: auto;
  box-shadow: var(--card-shadow);
}

.presence-search-box {
  position: relative;
  width: 100%;
}

.presence-search-box input {
  width: 100%;
  padding: 10px 36px 10px 12px;
  background: var(--bg-tertiary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-sm);
  color: var(--text-primary);
  font-size: 0.85rem;
  outline: none;
  transition: border-color 0.25s ease;
}

.presence-search-box input:focus {
  border-color: var(--color-orange);
}

.presence-search-box .search-icon {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  stroke: var(--text-muted);
  pointer-events: none;
}

.presence-location-groups {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.location-group-header {
  font-size: 0.72rem;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 8px 4px 4px 4px;
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 4px;
}

.presence-list-item {
  padding: 8px 12px;
  font-size: 0.9rem;
  color: var(--text-secondary);
  border-radius: var(--border-radius-sm);
  cursor: pointer;
  transition: all 0.25s ease;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.presence-list-item:hover {
  background: rgba(255, 107, 0, 0.08);
  color: var(--color-orange);
}

.presence-list-item.active {
  background: var(--color-orange);
  color: #FFFFFF;
  font-weight: 600;
  box-shadow: 0 4px 10px rgba(255, 107, 0, 0.2);
}

.india-cities-list-collapsed {
  display: none;
  flex-direction: column;
  gap: 2px;
  padding-left: 12px;
}

.india-cities-list-expanded {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-left: 12px;
  animation: slideDown 0.3s ease forwards;
}

@keyframes slideDown {
  from {
    opacity: 0;
    max-height: 0;
  }

  to {
    opacity: 1;
    max-height: 1000px;
  }
}

.city-item {
  font-size: 0.825rem;
  padding: 6px 10px;
}

.presence-map-canvas-wrapper {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-lg);
  overflow: hidden;
  position: relative;
  box-shadow: var(--card-shadow);
  height: 520px;
}

/* Clip only the map canvas itself, not the overlay panels */
.presence-map-canvas-wrapper #map-canvas {
  border-radius: var(--border-radius-lg);
  overflow: hidden;
}

@media (max-width: 900px) {
  .presence-map-canvas-wrapper {
    height: 400px;
  }
}

.map-viewport {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  cursor: grab;
  background: #ffffff;
}

.map-viewport:active {
  cursor: grabbing;
}

.map-zoom-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: 50% 50%;
  transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.map-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  z-index: 1;
  transition: opacity 0.4s ease-in-out;
  pointer-events: none;
}

.map-bg-img.active {
  opacity: 1;
  z-index: 2;
}

.map-pins-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
}

.map-pin {
  position: absolute;
  width: 16px;
  height: 16px;
  background: var(--color-orange);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  cursor: pointer;
  z-index: 10;
  box-shadow: 0 0 6px var(--color-orange);
  transition: opacity 0.3s ease, transform 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  font-size: 0.5rem;
  font-weight: 800;
  font-family: var(--font-primary);
  border: 1.5px solid rgba(255, 255, 255, 0.8);
  user-select: none;
}

.map-pin::after {
  content: '';
  position: absolute;
  top: -4px;
  left: -4px;
  width: 24px;
  height: 24px;
  border: 1px solid var(--color-orange);
  border-radius: 50%;
  animation: map-pin-pulse 1.8s infinite;
  pointer-events: none;
}

.map-pin.pin-india-city {
  width: 6px;
  height: 6px;
  font-size: 0;
  border-width: 1px;
}

.map-pin.pin-india-city::after {
  width: 12px;
  height: 12px;
  top: -3px;
  left: -3px;
}

.map-pin.pin-india {

  opacity: 0;
  pointer-events: none;
}

.map-pin.pin-india.visible {
  opacity: 1;
  pointer-events: auto;
}

.map-pin.pin-global {
  opacity: 1;
  pointer-events: auto;
}

.map-pin.pin-global.hidden {
  opacity: 0;
  pointer-events: none;
}

.map-pin:hover,
.map-pin.active {
  background: var(--color-orange);
  border-color: #FFFFFF;
  transform: translate(-50%, -50%) scale(1.2);
  box-shadow: 0 0 20px var(--color-orange);
}

.pin-india-cluster {
  width: 20px;
  height: 20px;
  background: var(--color-orange);
  border: 1.5px solid #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  font-size: 0.5rem;
  font-weight: 800;
  box-shadow: 0 0 8px var(--color-orange);
}

.pin-india-cluster::after {
  width: 30px;
  height: 30px;
  top: -6px;
  left: -6px;
}

@keyframes map-pin-pulse {
  0% {
    transform: scale(0.5);
    opacity: 1;
  }

  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

.map-zoom-controls {
  position: absolute;
  bottom: 20px;
  left: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  z-index: 50000;
}

.map-zoom-controls button {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  transition: all 0.25s ease;
}

.map-zoom-controls button:hover {
  background: var(--color-orange);
  color: #FFFFFF;
  border-color: var(--color-orange);
}

.map-tooltip {
  position: absolute;
  background: rgba(10, 12, 18, 0.95);
  border: 1px solid var(--color-orange);
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 0.75rem;
  font-family: var(--font-primary);
  color: #FFFFFF;
  pointer-events: none;
  display: none;
  z-index: 50000;
  transform: translate(-50%, -100%) translateY(-10px);
  white-space: nowrap;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

/* Leaflet marker icon box override */
.leaflet-div-icon {
  background: transparent !important;
  border: none !important;
}

.map-details-panel {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 340px;
  background: rgba(10, 10, 14, 0.97);
  border: 1px solid rgba(255, 107, 0, 0.3);
  border-radius: 12px;
  padding: var(--spacing-md);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
  transform: translateX(380px);
  transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
  z-index: 50000;
  overflow: visible;
}

.map-details-panel.active {
  transform: translateX(0);
}

.close-details-btn {
  position: absolute;
  top: 10px;
  right: 12px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 1.3rem;
  cursor: pointer;
  transition: color 0.2s ease;
}

.close-details-btn:hover {
  color: #FFFFFF;
}

.details-content h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-orange);
  margin-bottom: 2px;
  white-space: nowrap;
}

.details-content .details-subtitle {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.65);
  display: block;
  margin-bottom: 8px;
  white-space: nowrap;
}

.details-divider {
  border: 0;
  height: 1px;
  background: rgba(255, 255, 255, 0.15);
  margin-bottom: 8px;
}

.details-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 8px;
}

.detail-stat-item {
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  padding: 8px 10px;
  text-align: center;
  white-space: nowrap;
}

.detail-stat-item .stat-lbl {
  font-size: 0.6rem;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.detail-stat-item .stat-val {
  font-size: 0.88rem;
  font-weight: 700;
  color: #FFFFFF;
  margin-top: 3px;
  white-space: nowrap;
}

.details-content p {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.80);
  line-height: 1.5;
}

/* 4. Enhanced ICCC Simulation Dashboard Styles */
.iccc-kpi-card {
  transition: all 0.25s ease;
}

.iccc-kpi-card:hover {
  border-color: var(--color-orange) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 107, 0, 0.15);
}

.iccc-counter-box {
  transition: all 0.2s ease;
}

.iccc-counter-box:hover {
  border-color: var(--color-orange) !important;
  background: rgba(255, 107, 0, 0.04) !important;
}

.iccc-node {
  transform-origin: center;
}

.iccc-node.active-flash {
  animation: iccc-node-flash-anim 0.3s infinite alternate !important;
}

@keyframes iccc-node-flash-anim {
  from {
    fill: #EF4444;
    filter: drop-shadow(0 0 12px #EF4444);
    r: 8px;
  }

  to {
    fill: #EF4444;
    filter: drop-shadow(0 0 2px #EF4444);
    r: 6px;
  }
}

.congestion-bar-item .bar-fill.green {
  background: var(--status-success) !important;
}

.congestion-bar-item .bar-fill.orange {
  background: var(--color-orange) !important;
}

/* 4. Infinite Running Marquees (Point 4 & 7) */
.abbmatica-clients-marquee-section,
.abbmatica-partners-marquee-section {
  padding: var(--spacing-xl) 0;
  background: var(--bg-primary);
  border-bottom: 1px solid var(--border-color);
  overflow: hidden;
}

.abbmatica-partners-marquee-section {
  background: var(--bg-secondary);
}

.marquee-wrapper {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding: var(--spacing-lg) 0;
  display: flex;
}

.marquee-content {
  display: flex;
  gap: 10px;
  width: max-content;
  will-change: transform;
  align-items: center;
}

.marquee-clients {
  animation: marquee-scroll 35s linear infinite;
}

.marquee-partners {
  animation: marquee-scroll 20s linear infinite;
}

.marquee-wrapper:hover .marquee-content {
  animation-play-state: paused;
}

/* ══════════════════════════════════════════
   LOGO MARQUEE — NO CARD, RAW LOGO ONLY
══════════════════════════════════════════ */
.marquee-logo-item {
  /* No fixed size — logo controls size */
  height: auto;
  width: auto;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  cursor: pointer;

  /* ─ NO background, NO border, NO shadow ─ */
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;

  transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

/* Remove all overrides — all themes same */
.marquee-partners .marquee-logo-item,
[data-theme="dark"] .marquee-logo-item,
[data-theme="light"] .marquee-logo-item {
  background: transparent;
  border: none;
  box-shadow: none;
}

/* No pseudo-element decorations */
.marquee-logo-item::before,
.marquee-logo-item::after {
  display: none;
}

/* ── Logo image — original, full color ── */
.marquee-logo-item img {
  height: auto;
  max-height: inherit;
  width: auto;
  max-width: inherit;
  object-fit: contain;
  display: block;
  position: relative;

  /* Original logo — no filter at all */
  filter: none;
  opacity: 1;
  transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1),
    opacity 0.3s ease;
}

/* All theme overrides — no filter */
[data-theme="light"] .marquee-logo-item img,
[data-theme="dark"] .marquee-logo-item img,
[data-theme="light"] .marquee-partners .marquee-logo-item img {
  filter: none;
  opacity: 1;
}

/* Hover — subtle scale up only */
.marquee-logo-item:hover {
  transform: scale(1.12) translateY(-4px);
  background: transparent;
  box-shadow: none;
  border: none;
}

.marquee-logo-item:hover img,
[data-theme="dark"] .marquee-logo-item:hover img,
[data-theme="light"] .marquee-partners .marquee-logo-item:hover img {
  filter: none;
  opacity: 1;
  transform: none;
}

@keyframes marquee-scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

/* 5. Gantry Simulation Radar & Cameras (Point 5 Corrections) */
.speed-camera-housing {
  position: relative;
  width: 40px;
  height: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.speed-radar-housing {
  position: relative;
  width: 40px;
  height: 20px;
  margin-top: -6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.camera-status-flash {
  transition: fill var(--transition-fast), filter var(--transition-fast);
}

.radar-speed-readout {
  font-family: var(--font-mono);
  font-weight: 700;
  transition: fill var(--transition-fast);
}

/* 6. Data Center Simulation UI (Point 5 Data Center Correction) */
.data-center-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  grid-template-rows: auto auto;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
  background: var(--bg-primary);
}

.dc-counters-panel {
  grid-column: 1 / 3;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-md);
}

.dc-panel-subtitle {
  font-size: 0.75rem;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 700;
  margin-bottom: var(--spacing-sm);
  letter-spacing: 0.5px;
}

.dc-counters-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-sm);
}

.dc-counter-box {
  background: var(--bg-tertiary);
  border: 1px solid var(--border-light);
  border-radius: var(--border-radius-sm);
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  transition: border-color 0.2s ease;
}

.dc-counter-box:hover {
  border-color: var(--color-orange);
}

.dc-counter-title {
  font-size: 0.7rem;
  color: var(--text-secondary);
  font-weight: 600;
}

.dc-counter-number {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-orange);
  font-family: var(--font-mono);
}

.dc-graph-panel {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-md);
  display: flex;
  flex-direction: column;
}

.dc-sync-panel {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-md);
}

.dc-sync-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dc-sync-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.status-indicator {
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: 600;
}

.status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.status-dot.green {
  background: var(--status-success);
  box-shadow: 0 0 6px var(--status-success);
}

/* Responsive Overrides */
@media (max-width: 992px) {
  .experience-stats-layout {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .presence-map-layout {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .data-center-grid {
    grid-template-columns: 1fr;
  }

  .dc-counters-panel {
    grid-column: 1 / 2;
  }

  .dc-counters-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 576px) {
  .experience-stats-grid {
    grid-template-columns: 1fr;
  }

  .dc-counters-grid {
    grid-template-columns: 1fr;
  }
}


/* Mission & Vision Section */
.abbmatica-mission-vision-section {
  position: relative;
  padding: var(--spacing-xxl) 0;
  background: radial-gradient(circle at 50% 0%, rgba(255, 107, 0, 0.04) 0%, transparent 60%),
    radial-gradient(circle at 10% 80%, rgba(59, 130, 246, 0.03) 0%, transparent 50%),
    var(--bg-primary);
  border-bottom: 1px solid var(--border-color);
  overflow: hidden;
}

.mission-vision-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-xl);
  margin-top: var(--spacing-xl);
  position: relative;
  z-index: 2;
}

.mission-vision-card {
  position: relative;
  background: var(--card-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--card-border);
  border-radius: 20px;
  padding: 2.5rem var(--spacing-xl);
  transition: all var(--transition-normal);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
  overflow: hidden;
}

.mission-vision-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(255, 107, 0, 0.05) 0%, transparent 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.mission-vision-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--card-hover-shadow);
  border-color: rgba(255, 107, 0, 0.35);
}

.mission-vision-card:hover::after {
  opacity: 1;
}

.card-icon-wrapper {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(255, 107, 0, 0.1);
  box-shadow: 0 0 15px rgba(255, 107, 0, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--spacing-xs);
  transition: transform var(--transition-normal);
}

.mission-vision-card:hover .card-icon-wrapper {
  transform: scale(1.1) rotate(5deg);
}

.mission-vision-card h3 {
  font-size: 1.5rem;
  color: var(--text-primary);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.mission-vision-card p {
  color: var(--text-secondary);
  font-size: 0.95rem;
  line-height: 1.65;
}

.card-bullets {
  list-style: none;
  padding: 0;
  margin: var(--spacing-sm) 0 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.card-bullets li {
  font-size: 0.9rem;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid rgba(255, 255, 255, 0.03);
  padding: 8px 14px;
  border-radius: 8px;
  transition: all var(--transition-fast);
}

[data-theme="light"] .card-bullets li {
  background: rgba(0, 0, 0, 0.015);
  border: 1px solid rgba(0, 0, 0, 0.03);
}

.mission-vision-card:hover .card-bullets li {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
}

[data-theme="light"] .mission-vision-card:hover .card-bullets li {
  background: rgba(0, 0, 0, 0.03);
  border-color: rgba(0, 0, 0, 0.05);
}

.card-bullets li span {
  color: var(--color-orange);
  font-weight: bold;
}


/* Staggered Isometric Enforcement Programs Section */
.abbmatica-programs-section {
  position: relative;
  padding: var(--spacing-xxl) 0;
  background-color: var(--bg-primary);
  /* Light diagonal grid texture */
  background-image:
    linear-gradient(30deg, rgba(255, 255, 255, 0.015) 25%, transparent 25%),
    linear-gradient(-30deg, rgba(255, 255, 255, 0.015) 25%, transparent 25%),
    linear-gradient(30deg, transparent 75%, rgba(255, 255, 255, 0.015) 75%),
    linear-gradient(-30deg, transparent 75%, rgba(255, 255, 255, 0.015) 75%);
  background-size: 60px 104px;
  background-position: 0 0;
  border-bottom: 1px solid var(--border-color);
  overflow: hidden;
}

[data-theme="light"] .abbmatica-programs-section {
  background-image:
    linear-gradient(30deg, rgba(0, 0, 0, 0.008) 25%, transparent 25%),
    linear-gradient(-30deg, rgba(0, 0, 0, 0.008) 25%, transparent 25%),
    linear-gradient(30deg, transparent 75%, rgba(0, 0, 0, 0.008) 75%),
    linear-gradient(-30deg, transparent 75%, rgba(0, 0, 0, 0.008) 75%);
}

.programs-layout {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 80px;
  align-items: center;
}

/* Symmetrical Staggered Isometric Diamond Grid - No Shadow */
.isometric-grid {
  position: relative;
  width: 550px;
  height: 530px;
  margin: 0 auto;
}

.isometric-card {
  position: absolute;
  width: 350px;
  height: 200px;
  transition: all 0.4s cubic-bezier(0.25, 1, 0.22, 1);
  cursor: pointer;
}

.isometric-card-inner {
  width: 100%;
  height: 100%;
  position: relative;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  background: #090a0d;
  overflow: hidden;
}

.isometric-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.55;
  transition: all 0.5s cubic-bezier(0.25, 1, 0.22, 1);
}

.isometric-card .card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(9, 10, 13, 0.5) 0%, rgba(9, 10, 13, 0.75) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s ease;
  z-index: 2;
}

/* Glassmorphism Title Badge inside Card */
.glass-header-badge {
  background: rgba(10, 11, 16, 0.45);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  padding: 10px 24px;
  border-radius: 40px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
  transition: all 0.3s ease;
}

.glass-header-badge h4 {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 800;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0;
  padding: 0;
}

.badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 8px var(--accent-color);
  animation: badgeDotPulse 2s ease-in-out infinite alternate;
}

@keyframes badgeDotPulse {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }

  100% {
    transform: scale(1.3);
    opacity: 1;
    box-shadow: 0 0 12px var(--accent-color);
  }
}

/* Crawling dash glowing segment around diamond borders */
.hud-dash-polygon {
  stroke-dasharray: 40 240;
  stroke-dashoffset: 0;
  animation: hudBorderCrawl 8s linear infinite;
  filter: drop-shadow(0 0 5px var(--accent-color));
}

@keyframes hudBorderCrawl {
  to {
    stroke-dashoffset: -280;
  }
}

/* Sweep Shine Hover Effect */
.shine-sweep {
  position: absolute;
  top: 0;
  left: -150%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
      transparent 0%,
      rgba(255, 255, 255, 0.15) 30%,
      rgba(255, 255, 255, 0.35) 50%,
      rgba(255, 255, 255, 0.15) 70%,
      transparent 100%);
  transform: skewX(-25deg);
  transition: none;
  z-index: 3;
  pointer-events: none;
}

/* Floating Animations (Alternating opposite-phase motions) */
@keyframes floatCardRight {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-10px);
  }
}

@keyframes floatCardLeft {

  0%,
  100% {
    transform: translateY(-10px);
  }

  50% {
    transform: translateY(0);
  }
}

/* Symmetrical Grid Coordinates & Animations (2 fly at a time) */
.isometric-card-1 {
  top: 0px;
  left: 200px;
  z-index: 1;
  animation: floatCardRight 6s ease-in-out infinite;
}

.isometric-card-2 {
  top: 110px;
  left: 0px;
  z-index: 2;
  animation: floatCardLeft 6s ease-in-out infinite;
}

.isometric-card-3 {
  top: 220px;
  left: 200px;
  z-index: 3;
  animation: floatCardRight 6s ease-in-out infinite;
}

.isometric-card-4 {
  top: 330px;
  left: 0px;
  z-index: 4;
  animation: floatCardLeft 6s ease-in-out infinite;
}

/* Hover behaviors */
.isometric-card:hover {
  animation-play-state: paused;
  transform: translateY(-15px) scale(1.04);
  z-index: 10 !important;
}

.isometric-card:hover img {
  opacity: 0.75;
  transform: scale(1.1);
}

.isometric-card:hover .card-overlay {
  background: linear-gradient(135deg, rgba(9, 10, 13, 0.35) 0%, rgba(9, 10, 13, 0.65) 100%);
}

.isometric-card:hover .glass-header-badge {
  background: rgba(10, 11, 16, 0.65);
  border-color: rgba(255, 255, 255, 0.15);
  transform: translateY(-2px);
}

.isometric-card:hover .shine-sweep {
  left: 150%;
  transition: all 0.85s cubic-bezier(0.1, 0.8, 0.3, 1);
}

/* Right content styles */
.programs-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--spacing-md);
  text-align: left;
}

.glow-badge {
  display: inline-block;
  padding: 6px 18px;
  background: rgba(255, 107, 0, 0.06);
  border: 1px solid rgba(255, 107, 0, 0.25);
  border-radius: 30px;
  margin-bottom: var(--spacing-xs);
  box-shadow: 0 0 15px rgba(255, 107, 0, 0.1);
}

.glow-badge span {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--color-orange);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.programs-content h2 {
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.25;
  margin: 0;
}

.programs-content p {
  font-size: 1.05rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin: 0;
}

.programs-btn {
  display: inline-block;
  padding: 12px 32px;
  border: 1.5px solid var(--color-orange);
  color: var(--color-orange);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: all 0.3s ease;
  margin-top: 15px;
  background: transparent;
}

.programs-btn:hover {
  background: var(--color-orange);
  color: #fff;
  box-shadow: 0 4px 15px rgba(255, 107, 0, 0.35);
}

.animated-btn {
  display: flex;
  align-items: center;
  gap: 12px;
}

.animated-btn svg {
  transition: transform 0.3s cubic-bezier(0.25, 1, 0.25, 1);
}

.animated-btn:hover svg {
  transform: translateX(6px);
}

/* Responsiveness */
@media (max-width: 991px) {
  .programs-layout {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .programs-content {
    align-items: center;
    text-align: center;
  }

  .isometric-grid {
    width: 340px;
    height: 320px;
    margin-bottom: 20px;
  }

  .isometric-card {
    width: 220px;
    height: 125px;
    /* Disable animation keyframes on mobile */
    animation: none !important;
  }

  .isometric-card-1 {
    top: 0px;
    left: 120px;
  }

  .isometric-card-2 {
    top: 65px;
    left: 0px;
  }

  .isometric-card-3 {
    top: 130px;
    left: 120px;
  }

  .isometric-card-4 {
    top: 195px;
    left: 0px;
  }
}


/* FAQ Section */
.abbmatica-faq-section {
  padding: var(--spacing-xxl) 0;
  background: radial-gradient(circle at 10% 10%, rgba(255, 107, 0, 0.03) 0%, transparent 40%),
    var(--bg-secondary);
  border-bottom: 1px solid var(--border-color);
}

.faq-accordion-wrapper {
  max-width: 800px;
  margin: var(--spacing-xl) auto 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.faq-item {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 14px;
  overflow: hidden;
  transition: all var(--transition-normal);
}

.faq-item[open] {
  border-color: var(--card-hover-border);
  box-shadow: var(--card-shadow), 0 0 15px rgba(255, 107, 0, 0.05);
  background: var(--card-bg);
}

.faq-summary {
  padding: var(--spacing-md) var(--spacing-xl);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  user-select: none;
  transition: color var(--transition-fast), background var(--transition-fast);
}

.faq-summary::-webkit-details-marker {
  display: none;
}

.faq-summary:hover {
  color: var(--color-orange);
  background: rgba(255, 255, 255, 0.01);
}

[data-theme="light"] .faq-summary:hover {
  background: rgba(0, 0, 0, 0.01);
}

.faq-arrow {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  color: var(--text-muted);
}

.faq-item[open] .faq-summary {
  color: var(--color-orange);
}

.faq-item[open] .faq-arrow {
  transform: rotate(180deg);
  color: var(--color-orange);
}

.faq-content {
  padding: 0 var(--spacing-xl) var(--spacing-md) var(--spacing-xl);
  border-top: 1px solid transparent;
  color: var(--text-secondary);
  font-size: 0.95rem;
  line-height: 1.7;
}

.faq-item[open] .faq-content {
  border-top-color: rgba(255, 255, 255, 0.05);
}

[data-theme="light"] .faq-item[open] .faq-content {
  border-top-color: rgba(0, 0, 0, 0.05);
}

@media (max-width: 768px) {
  .mission-vision-grid {
    grid-template-columns: 1fr;
  }
}

/* Case Studies Section */
.abbmatica-case-studies-section {
  padding: var(--spacing-xxl) 0;
  background: var(--bg-primary);
  border-bottom: 1px solid var(--border-color);
}

.case-studies-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: var(--spacing-xl);
  margin-top: var(--spacing-xl);
}

.case-studies-right-grid {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: var(--spacing-xl);
}

.case-studies-bottom-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-xl);
}

.case-card {
  position: relative;
  border-radius: var(--border-radius-xl);
  overflow: hidden;
  border: 1px solid var(--card-border);
  box-shadow: var(--card-shadow);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 240px;
  cursor: pointer;
  transition: all var(--transition-normal);
}

.large-card {
  min-height: 500px;
}

.case-card-image-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1;
}

.case-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(9, 9, 14, 0.15) 0%, rgba(9, 9, 14, 0.5) 45%, rgba(9, 9, 14, 0.92) 100%);
  z-index: 2;
  transition: opacity var(--transition-normal);
}

[data-theme="light"] .case-card-overlay {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(9, 9, 14, 0.4) 40%, rgba(9, 9, 14, 0.9) 100%);
}

.case-card-content {
  position: relative;
  z-index: 3;
  padding: var(--spacing-xl);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.case-card-tag {
  align-self: flex-start;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-orange);
  letter-spacing: 0.05em;
  background: rgba(255, 107, 0, 0.12);
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255, 107, 0, 0.25);
}

.case-card h3 {
  font-size: 1.15rem;
  color: #FFFFFF;
  /* keep white on dark gradient for visibility */
  font-weight: 600;
  line-height: 1.45;
  margin: 0;
  letter-spacing: -0.01em;
  transition: color var(--transition-fast);
}

.large-card h3 {
  font-size: 1.4rem;
}

.case-card-link {
  font-size: 0.8rem;
  font-weight: 700;
  color: #FFFFFF;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  transition: transform var(--transition-fast), color var(--transition-fast);
}

.case-card-link svg {
  transition: transform var(--transition-fast);
}

.case-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--card-hover-shadow);
  border-color: var(--color-orange);
}

.case-card:hover .case-card-image-bg {
  transform: scale(1.06);
}

.case-card:hover h3 {
  color: var(--color-orange);
}

.case-card:hover .case-card-link {
  color: var(--color-orange);
}

.case-card:hover .case-card-link svg {
  transform: translateX(4px);
}

@media (max-width: 991px) {
  .case-studies-grid {
    grid-template-columns: 1fr;
  }

  .case-card.large-card {
    min-height: 400px;
  }
}

@media (max-width: 768px) {
  .case-studies-bottom-row {
    grid-template-columns: 1fr;
  }

  /* Mobile: compact case card text — tighter line-height, smaller font */
  .case-card h3 {
    font-size: 1rem;
    line-height: 1.2;
  }

  .large-card h3 {
    font-size: 1.1rem;
    line-height: 1.2;
  }

  .case-card-content {
    padding: var(--spacing-md);
    gap: var(--spacing-xs);
  }

  /* Ensure Read More link stays visible on mobile */
  .case-card-link {
    display: inline-flex;
    font-size: 0.75rem;
    margin-top: 2px;
  }

  .case-card.large-card {
    min-height: 320px;
  }
}

/* Testimonials Section */
.abbmatica-testimonials-section {
  padding: var(--spacing-xxl) 0;
  background: var(--bg-secondary);
  border-bottom: 1px solid var(--border-color);
}

.testimonials-marquee-wrapper {
  overflow: hidden;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-lg);
  padding: var(--spacing-xl) 0;
  position: relative;
}

.testimonials-marquee-row {
  display: flex;
  width: 100%;
  overflow: visible;
  padding: 10px 0;
}

.marquee-track {
  display: flex;
  gap: var(--spacing-xl);
  width: max-content;
  overflow: visible;
}

.marquee-left .marquee-track {
  animation: marquee-scroll-left 55s linear infinite;
}

.marquee-right .marquee-track {
  animation: marquee-scroll-right 55s linear infinite;
}

/* Stop scrolling when hovering */
.testimonials-marquee-row:hover .marquee-track {
  animation-play-state: paused;
}

.testimonials-marquee-row .testimonial-card {
  width: 420px;
  flex-shrink: 0;
}

.testimonial-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius-xl);
  padding: var(--spacing-xl);
  position: relative;
  transition: all var(--transition-normal);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
  box-shadow: var(--card-shadow);
}

.testimonial-header {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
}

.testimonial-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #FFFFFF;
  font-size: 0.9rem;
  flex-shrink: 0;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.testimonial-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  overflow: hidden;
}

.testimonial-meta h4 {
  font-size: 0.95rem;
  color: var(--text-primary);
  font-weight: 600;
  margin: 0;
}

.testimonial-meta p {
  font-size: 0.76rem;
  color: var(--text-muted);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 320px;
}

.testimonial-text {
  font-size: 0.88rem;
  line-height: 1.6;
  color: var(--text-secondary);
  font-style: italic;
  margin: 0;
  flex-grow: 1;
}

.testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18), 0 0 20px rgba(255, 107, 0, 0.08);
  border-color: rgba(255, 107, 0, 0.35);
}

@keyframes marquee-scroll-left {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(calc(-50% - 12px));
  }
}

@keyframes marquee-scroll-right {
  0% {
    transform: translateX(calc(-50% - 12px));
  }

  100% {
    transform: translateX(0);
  }
}

/* Responsive Grid Adapters */
@media (max-width: 992px) {
  .case-studies-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .case-studies-bottom-row {
    grid-template-columns: 1fr;
  }

  .large-card {
    min-height: 380px;
  }

  .testimonials-marquee-row {
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 20px 0 !important;
    width: 100% !important;
  }

  .testimonials-marquee-row::-webkit-scrollbar {
    display: none !important;
  }

  .testimonials-marquee-row .marquee-track {
    animation: none !important;
    display: flex !important;
    width: max-content !important;
    gap: var(--spacing-md) !important;
    padding: 0 var(--spacing-lg) !important;
  }

  .testimonials-marquee-row .testimonial-card {
    width: calc(100vw - 64px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: center !important;
    margin: 0 !important;
  }
}

/* Responsive HTML HUD Overlay Cards */
.hero-hud-card {
  position: absolute;
  z-index: 15;
  background: rgba(18, 18, 22, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--border-radius-md);
  padding: 12px 18px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
  pointer-events: none;
  font-family: var(--font-primary);
  min-width: 220px;
}

.hero-hud-card.top-left {
  top: 100px;
  left: 5%;
}

.hero-hud-card.top-right {
  top: 100px;
  right: 5%;
}

.hud-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding-bottom: 6px;
  margin-bottom: 6px;
}

.hud-card-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.hud-card-dot.orange-dot {
  background: var(--color-orange);
  box-shadow: 0 0 8px var(--color-orange);
}

.hud-card-dot.green-dot {
  background: var(--status-success);
  box-shadow: 0 0 8px var(--status-success);
}

.hud-card-dot.red-dot {
  background: var(--status-danger);
  box-shadow: 0 0 8px var(--status-danger);
}

.hud-card-dot.blue-dot {
  background: var(--status-info);
  box-shadow: 0 0 8px var(--status-info);
}

.hud-card-title {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1px;
}

.text-orange {
  color: var(--color-orange);
}

.text-green {
  color: var(--status-success);
}

.text-red {
  color: var(--status-danger);
}

.text-blue {
  color: var(--status-info);
}

.hud-card-body {
  font-size: 0.95rem;
  font-weight: 500;
  color: #FFFFFF;
}

/* Slide 2 Center Warning */
.hero-hud-center-warning {
  position: absolute;
  top: 72%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 15;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid #EF4444;
  border-radius: var(--border-radius-sm);
  padding: 8px 16px;
  color: #EF4444;
  font-family: var(--font-primary);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  box-shadow: 0 0 15px rgba(239, 68, 68, 0.3);
  pointer-events: none;
}

/* Slide 3 Plate Box */
.hero-hud-plate-box {
  position: absolute;
  top: 70%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 15;
  background: rgba(18, 18, 22, 0.95);
  border: 1.5px solid var(--color-orange);
  border-radius: var(--border-radius-md);
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 15px rgba(255, 107, 0, 0.2);
  pointer-events: none;
}

.hero-hud-plate-number {
  font-family: var(--font-mono);
  font-size: 1.25rem;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 2px;
}

.hero-hud-plate-confidence {
  background: var(--color-orange);
  color: #FFFFFF;
  font-family: var(--font-primary);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 4px;
}

/* Responsive HUD Card Positions */
@media (max-width: 1024px) {
  .hero-hud-card {
    min-width: 180px;
    padding: 8px 12px;
  }

  .hero-hud-card.top-left {
    top: 90px;
    left: 20px;
  }

  .hero-hud-card.top-right {
    top: 90px;
    right: 20px;
  }

  .hero-hud-plate-box {
    top: 72%;
    padding: 8px 16px;
  }

  .hero-hud-plate-number {
    font-size: 1.1rem;
  }
}

@media (max-width: 768px) {
  .hero-hud-card {
    min-width: 150px;
    padding: 6px 10px;
  }

  .hud-card-title {
    font-size: 0.6rem;
  }

  .hud-card-body {
    font-size: 0.8rem;
  }

  .hero-hud-card.top-left {
    top: 90px;
    left: 15px;
  }

  .hero-hud-card.top-right {
    display: none;
    /* Hide secondary HUD card on mobile to avoid overcrowding */
  }

  .hero-hud-plate-box {
    top: 75%;
    gap: 10px;
    padding: 6px 12px;
  }

  .hero-hud-plate-number {
    font-size: 0.95rem;
    letter-spacing: 1px;
  }

  .hero-hud-plate-confidence {
    font-size: 0.65rem;
    padding: 2px 5px;
  }

  /* Responsive styles for new Map footprint on mobile */
  .presence-map-container {
    grid-template-columns: 1fr !important;
    height: auto !important;
  }

  .presence-sidebar {
    display: none !important;  /* Hide sidebar list on mobile — full-width clean map */
  }

  .presence-map-canvas-wrapper {
    height: 320px !important;
    border-radius: 12px;
    overflow: hidden;
  }

  .map-details-panel {
    display: none !important;   /* No black popup on mobile — only pin ping */
  }

  .iso-logos-strip {
    flex-wrap: nowrap !important;
    gap: 6px !important;
    justify-content: space-between !important;
  }

  .iso-badge {
    padding: 4px 6px !important;
    font-size: clamp(0.5rem, 2.5vw, 0.8rem) !important;
    white-space: nowrap !important;
    text-align: center !important;
    flex: 1 !important;
  }

  .abbmatica-technology-simulator-controls {
    gap: 6px !important;
    padding: 0 var(--spacing-sm) !important;
    margin-bottom: var(--spacing-lg) !important;
  }

  .abbmatica-technology-sim-btn {
    padding: 6px 8px !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    gap: 4px !important;
    flex: 1 !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
    letter-spacing: -0.2px !important;
    border-radius: var(--border-radius-sm) !important;
  }

  .abbmatica-technology-sim-btn svg {
    width: 14px !important;
    height: 14px !important;
  }

  .abbmatica-technology-logos-strip-title {
    font-size: clamp(0.7rem, 3.2vw, 0.95rem) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    letter-spacing: 1px !important;
  }
}

/* Dynamic Traffic Intersection Map Animations */
@keyframes car-east {
  0% {
    transform: translate(-20px, 0);
  }

  100% {
    transform: translate(320px, 0);
  }
}

@keyframes car-west {
  0% {
    transform: translate(320px, 0);
  }

  100% {
    transform: translate(-20px, 0);
  }
}

@keyframes car-south {
  0% {
    transform: translate(0, -20px);
  }

  100% {
    transform: translate(0, 150px);
  }
}

@keyframes car-north {
  0% {
    transform: translate(0, 150px);
  }

  100% {
    transform: translate(0, -20px);
  }
}

/* Who We Do It For Section CSS */
.who-we-do-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 40px;
  align-items: center;
}

@media (max-width: 992px) {
  .who-we-do-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

.stat-metric-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 14px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: var(--card-shadow);
  transition: all 0.3s ease;
}

.stat-metric-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 107, 0, 0.25);
  box-shadow: var(--card-hover-shadow);
}

.stat-icon {
  color: var(--color-orange);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 107, 0, 0.08);
  align-self: flex-start;
}

.stat-val {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--color-orange);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.stat-lbl {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.35;
}

.map-pin-container {
  position: absolute;
  transform: translate(-50%, -100%);
}

.map-pin-marker {
  width: 24px;
  height: 24px;
  background: #ef4444;
  color: #ffffff;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  z-index: 5;
  transition: all 0.3s ease;
}

.map-pin-marker span {
  transform: rotate(45deg);
  font-size: 0.62rem;
  font-weight: 700;
  display: block;
}

.map-pin-container:hover .map-pin-marker {
  background: var(--color-orange);
  transform: rotate(-45deg) scale(1.1);
  box-shadow: 0 0 12px rgba(255, 107, 0, 0.4);
}

.map-pin-tooltip {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 12px;
  padding: 12px 16px;
  width: 220px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 15;
  pointer-events: none;
}

.map-pin-container:hover .map-pin-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.map-pin-tooltip h4 {
  margin: 0 0 4px 0;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-primary);
}

.tooltip-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.7rem;
  color: var(--color-orange);
  margin-bottom: 6px;
}

.tooltip-dot {
  width: 5px;
  height: 5px;
  background: var(--color-orange);
  border-radius: 50%;
  display: inline-block;
}

.tooltip-count {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 2px;
}

.tooltip-desc {
  margin: 0;
  font-size: 0.65rem;
  color: var(--text-secondary);
  line-height: 1.3;
}

/* SVG US Map Styling */
.us-map-svg {
  width: 100%;
  height: auto;
  display: block;
}

.us-map-svg path {
  fill: #0c1222 !important;
  /* Dark slate inactive states matching dark theme */
  stroke: #1e293b !important;
  /* State borders */
  stroke-width: 1px;
  transition: all 0.3s ease;
}

[data-theme="light"] .us-map-svg path {
  fill: #f1f5f9 !important;
  stroke: #cbd5e1 !important;
}

/* Active states in screenshot */
.us-map-svg path.wa,
.us-map-svg path.or,
.us-map-svg path.ca,
.us-map-svg path.nv,
.us-map-svg path.ut,
.us-map-svg path.co,
.us-map-svg path.nm,
.us-map-svg path.mn,
.us-map-svg path.ia,
.us-map-svg path.mo,
.us-map-svg path.il,
.us-map-svg path.in,
.us-map-svg path.oh,
.us-map-svg path.pa,
.us-map-svg path.ny,
.us-map-svg path.ma,
.us-map-svg path.nj,
.us-map-svg path.md,
.us-map-svg path.va,
.us-map-svg path.nc,
.us-map-svg path.sc,
.us-map-svg path.fl,
.us-map-svg path.ga,
.us-map-svg path.tn,
.us-map-svg path.ky,
.us-map-svg path.wv {
  fill: #4f46e5 !important;
  /* Purple active states */
}

[data-theme="light"] .us-map-svg path.wa,
[data-theme="light"] .us-map-svg path.or,
[data-theme="light"] .us-map-svg path.ca,
[data-theme="light"] .us-map-svg path.nv,
[data-theme="light"] .us-map-svg path.ut,
[data-theme="light"] .us-map-svg path.co,
[data-theme="light"] .us-map-svg path.nm,
[data-theme="light"] .us-map-svg path.mn,
[data-theme="light"] .us-map-svg path.ia,
[data-theme="light"] .us-map-svg path.mo,
[data-theme="light"] .us-map-svg path.il,
[data-theme="light"] .us-map-svg path.in,
[data-theme="light"] .us-map-svg path.oh,
[data-theme="light"] .us-map-svg path.pa,
[data-theme="light"] .us-map-svg path.ny,
[data-theme="light"] .us-map-svg path.ma,
[data-theme="light"] .us-map-svg path.nj,
[data-theme="light"] .us-map-svg path.md,
[data-theme="light"] .us-map-svg path.va,
[data-theme="light"] .us-map-svg path.nc,
[data-theme="light"] .us-map-svg path.sc,
[data-theme="light"] .us-map-svg path.fl,
[data-theme="light"] .us-map-svg path.ga,
[data-theme="light"] .us-map-svg path.tn,
[data-theme="light"] .us-map-svg path.ky,
[data-theme="light"] .us-map-svg path.wv {
  fill: #818cf8 !important;
  /* Lighter purple active states for light theme */
}

/* Hover effect on states */
.us-map-svg path.wa:hover,
.us-map-svg path.or:hover,
.us-map-svg path.ca:hover,
.us-map-svg path.nv:hover,
.us-map-svg path.ut:hover,
.us-map-svg path.co:hover,
.us-map-svg path.nm:hover,
.us-map-svg path.mn:hover,
.us-map-svg path.ia:hover,
.us-map-svg path.mo:hover,
.us-map-svg path.il:hover,
.us-map-svg path.in:hover,
.us-map-svg path.oh:hover,
.us-map-svg path.pa:hover,
.us-map-svg path.ny:hover,
.us-map-svg path.ma:hover,
.us-map-svg path.nj:hover,
.us-map-svg path.md:hover,
.us-map-svg path.va:hover,
.us-map-svg path.nc:hover,
.us-map-svg path.sc:hover,
.us-map-svg path.fl:hover,
.us-map-svg path.ga:hover,
.us-map-svg path.tn:hover,
.us-map-svg path.ky:hover,
.us-map-svg path.wv:hover {
  fill: var(--color-orange) !important;
  /* Orange highlight on hover */
  cursor: pointer;
}

/* ============================================================
   Map Location Search Bar & Modal
   ============================================================ */

/* --- Search Bar (above map, next to heading) --- */
.map-location-search-bar {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--bg-tertiary);
  border: 1.5px solid var(--border-color);
  border-radius: 50px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  min-width: 220px;
}

.map-location-search-bar:focus-within {
  border-color: var(--color-orange);
  box-shadow: 0 0 0 3px rgba(var(--color-orange-rgb), 0.18), 0 2px 16px rgba(0, 0, 0, 0.15);
}

.map-location-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 10px 16px;
  font-family: var(--font-primary);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-primary);
  cursor: pointer;
  min-width: 0;
}

.map-location-search-input::placeholder {
  color: var(--text-muted);
  font-weight: 400;
}

.map-location-search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: none;
  border-left: 1.5px solid var(--border-color);
  background: linear-gradient(135deg, var(--color-orange), #E05E00);
  color: #fff;
  cursor: pointer;
  border-radius: 0 50px 50px 0;
  transition: background var(--transition-fast), transform var(--transition-fast);
  flex-shrink: 0;
}

.map-location-search-btn:hover {
  background: linear-gradient(135deg, #E05E00, #c94f00);
  transform: scale(1.08);
}

.map-location-search-btn:active {
  transform: scale(0.97);
}

/* --- Modal Overlay --- */
.map-location-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease;
}

.map-location-modal-overlay.open {
  opacity: 1;
  pointer-events: all;
}

/* --- Modal Box --- */
.map-location-modal {
  background: var(--bg-secondary);
  border: 1.5px solid var(--border-color);
  border-radius: var(--border-radius-lg);
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 107, 0, 0.08);
  width: 100%;
  max-width: 680px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(28px) scale(0.97);
  transition: transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.28s ease;
  opacity: 0;
}

.map-location-modal-overlay.open .map-location-modal {
  transform: translateY(0) scale(1);
  opacity: 1;
}

/* --- Modal Header --- */
.map-location-modal-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-color);
  background: var(--bg-tertiary);
  flex-shrink: 0;
}

.map-location-modal-search-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  background: var(--bg-primary);
  border: 1.5px solid var(--border-color);
  border-radius: 30px;
  padding: 9px 16px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.map-location-modal-search-wrap:focus-within {
  border-color: var(--color-orange);
  box-shadow: 0 0 0 3px rgba(var(--color-orange-rgb), 0.15);
}

.map-modal-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--font-primary);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--text-primary);
  min-width: 0;
}

.map-modal-search-input::placeholder {
  color: var(--text-muted);
  font-weight: 400;
}

.map-location-modal-close {
  width: 36px;
  height: 36px;
  border: 1.5px solid var(--border-color);
  background: var(--bg-primary);
  color: var(--text-secondary);
  border-radius: 50%;
  font-size: 1.3rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
  flex-shrink: 0;
}

.map-location-modal-close:hover {
  background: var(--color-orange);
  color: #fff;
  border-color: var(--color-orange);
}

/* --- Modal Body (scrollable cards grid) --- */
.map-location-modal-body {
  overflow-y: auto;
  padding: 20px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  grid-auto-rows: max-content;
  gap: 12px;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
}

.map-location-modal-body::-webkit-scrollbar {
  width: 5px;
}

.map-location-modal-body::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}

/* --- Individual Location Card --- */
.map-loc-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 14px 12px;
  background: var(--bg-tertiary);
  border: 1.5px solid var(--border-color);
  border-radius: var(--border-radius-md);
  cursor: pointer;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), background var(--transition-fast);
  position: relative;
  overflow: hidden;
}

.map-loc-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(var(--color-orange-rgb), 0.07), transparent 60%);
  opacity: 0;
  transition: opacity var(--transition-fast);
}

.map-loc-card:hover {
  border-color: var(--color-orange);
  box-shadow: 0 4px 20px rgba(var(--color-orange-rgb), 0.2);
  transform: translateY(-2px);
}

.map-loc-card:hover::before {
  opacity: 1;
}

.map-loc-card:active {
  transform: translateY(0) scale(0.98);
}

.map-loc-card-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(var(--color-orange-rgb), 0.18), rgba(var(--color-orange-rgb), 0.06));
  border: 1px solid rgba(var(--color-orange-rgb), 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-orange);
}

.map-loc-card-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.3;
}

.map-loc-card-sub {
  font-size: 0.73rem;
  color: var(--text-muted);
  font-weight: 400;
  line-height: 1.3;
}

.map-loc-card-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-top: 2px;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-orange);
  background: rgba(var(--color-orange-rgb), 0.1);
  border: 1px solid rgba(var(--color-orange-rgb), 0.2);
  border-radius: 20px;
  padding: 2px 8px;
}

/* No results message */
.map-loc-no-results {
  grid-column: 1 / -1;
  text-align: center;
  padding: 40px 20px;
  color: var(--text-muted);
  font-size: 0.9rem;
}

/* Responsive */
@media (max-width: 600px) {
  .map-location-search-bar {
    min-width: 160px;
  }

  .map-location-modal-body {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }
}

/* ============================================================
   INNER PAGE SHARED STYLES (MIGRATED FROM INNER_HEADER)
   ============================================================ */

/* Hero Banner */
.inner-hero {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--bg-primary);
  border-bottom: 1px solid var(--border-color);
}

.inner-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.3) saturate(0.8);
  transition: transform 8s ease;
}

.inner-hero:hover .inner-hero-bg {
  transform: scale(1.04);
}

.inner-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255, 107, 0, 0.18) 0%, transparent 60%),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
}

.inner-hero-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
  padding: 80px 0 60px;
}

.inner-hero-tag {
  display: inline-block;
  background: rgba(255, 107, 0, 0.15);
  border: 1px solid rgba(255, 107, 0, 0.4);
  color: var(--color-orange);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 20px;
}

.inner-hero h1 {
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 18px 0;
}

.inner-hero h1 span {
  color: var(--color-orange);
}

.inner-hero-subtitle {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.65;
  max-width: 640px;
  margin-bottom: 32px;
}

.inner-hero-btns {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* Breadcrumb */
.inner-breadcrumb {
  position: relative;
  z-index: 10;
  background: var(--bg-secondary);
  border-bottom: 1px solid var(--border-color);
  padding: 12px 0;
}

.inner-breadcrumb-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--text-muted);
}

.inner-breadcrumb-inner a {
  color: var(--text-muted);
  text-decoration: none;
  transition: color 0.2s;
}

.inner-breadcrumb-inner a:hover {
  color: var(--color-orange);
}

.inner-breadcrumb-inner .sep {
  opacity: 0.4;
}

.inner-breadcrumb-inner .current {
  color: var(--color-orange);
  font-weight: 600;
}

/* Section shared */
.ip-section {
  padding: 40px 0;
  border-bottom: 1px solid var(--border-color);
}

.ip-section:last-of-type {
  border-bottom: none;
}

.ip-section-alt {
  background: var(--bg-secondary);
}

/* Card grid */
.ip-card-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.ip-card-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.ip-card-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

@media (max-width: 900px) {

  .ip-card-grid-2,
  .ip-card-grid-3,
  .ip-card-grid-4 {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 600px) {

  .ip-card-grid-2,
  .ip-card-grid-3 {
    grid-template-columns: 1fr;
  }

  .ip-card-grid-4 {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .about-stat-card {
    padding: 16px 6px !important;
  }

  .about-stat-card .stat-number {
    font-size: 1.6rem !important;
    margin-bottom: 2px !important;
  }

  .about-stat-card .stat-card-label,
  .about-stat-card div:last-child {
    font-size: clamp(0.64rem, 2.6vw, 0.76rem) !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    line-height: 1.1 !important;
    letter-spacing: -0.2px !important;
  }

  .inner-hero h1 {
    font-size: 2rem;
  }
}

/* Feature card */
.ip-feature-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 28px;
  transition: transform 0.25s, border-color 0.25s, box-shadow 0.25s;
}

.ip-feature-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 107, 0, 0.3);
  box-shadow: 0 12px 40px rgba(255, 107, 0, 0.08);
}

.ip-feature-card-icon {
  width: 48px;
  height: 48px;
  background: rgba(255, 107, 0, 0.1);
  border: 1px solid rgba(255, 107, 0, 0.2);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  color: var(--color-orange);
}

.ip-feature-card h3 {
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 10px 0;
}

.ip-feature-card p {
  font-size: 0.88rem;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0;
}

/* Image card */
.ip-image-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.25s, box-shadow 0.25s;
}

.ip-image-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);
}

.ip-image-card-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.ip-image-card:hover .ip-image-card-img {
  transform: scale(1.04);
}

.ip-image-card-body {
  padding: 22px;
}

.ip-image-card-tag {
  display: inline-block;
  background: rgba(255, 107, 0, 0.1);
  color: var(--color-orange);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
}

.ip-image-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 10px 0;
  line-height: 1.4;
}

.ip-image-card p {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0 0 16px 0;
}

.ip-image-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--color-orange);
  text-decoration: none;
  transition: gap 0.2s;
}

.ip-image-card-link:hover {
  gap: 10px;
}

/* Spec tags */
.ip-spec-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}

.ip-spec-tag {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-secondary);
  padding: 4px 10px;
}

/* Feature bullets */
.ip-feature-bullets {
  list-style: none;
  padding: 0;
  margin: 14px 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ip-feature-bullets li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: var(--text-secondary);
}

.ip-feature-bullets li::before {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--color-orange);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Timeline */
.ip-timeline {
  position: relative;
  padding-left: 32px;
}

.ip-timeline::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--color-orange), transparent);
}

.ip-timeline-item {
  position: relative;
  margin-bottom: 36px;
  padding-left: 24px;
}

.ip-timeline-item::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 6px;
  width: 12px;
  height: 12px;
  background: var(--color-orange);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(255, 107, 0, 0.15);
}

.ip-timeline-year {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--color-orange);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.ip-timeline-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 6px;
}

.ip-timeline-desc {
  font-size: 0.87rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* Contact cards */
.ip-contact-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 32px;
}

.ip-contact-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 20px 0;
}

.ip-contact-info-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}

.ip-contact-icon {
  width: 36px;
  height: 36px;
  background: rgba(255, 107, 0, 0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-orange);
}

.ip-contact-info-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-muted);
  margin-bottom: 3px;
}

.ip-contact-info-val {
  font-size: 0.92rem;
  color: var(--text-primary);
  font-weight: 500;
}

/* Form */
.ip-form-group {
  margin-bottom: 18px;
}

.ip-form-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 7px;
}

.ip-form-input,
.ip-form-textarea,
.ip-form-select {
  width: 100%;
  background: var(--card-bg);
  border: 1.5px solid var(--border-color);
  color: var(--text-primary);
  border-radius: 10px;
  padding: 12px 16px;
  font-family: var(--font-primary);
  font-size: 0.9rem;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  box-sizing: border-box;
}

.ip-form-input:focus,
.ip-form-textarea:focus {
  border-color: var(--color-orange);
  box-shadow: 0 0 0 3px rgba(255, 107, 0, 0.1);
}

.ip-form-textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.6;
}

.ip-form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 600px) {
  .ip-form-grid-2 {
    grid-template-columns: 1fr;
  }
}

/* Case studies filter */
.ip-filter-bar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}

.ip-filter-btn {
  background: var(--card-bg);
  border: none;
  color: var(--text-secondary);
  border-radius: 25px;
  padding: 8px 18px;
  font-family: var(--font-primary);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.ip-filter-btn:hover,
.ip-filter-btn.active {
  background: rgba(255, 107, 0, 0.1);
  border-color: var(--color-orange);
  color: var(--color-orange);
}

/* Solutions detail card */
.ip-solution-detail-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}

.ip-solution-detail-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
  border-color: rgba(255, 107, 0, 0.25);
}

.ip-solution-img-wrap {
  position: relative;
  height: 210px;
  overflow: hidden;
}

.ip-solution-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.ip-solution-detail-card:hover .ip-solution-img-wrap img {
  transform: scale(1.06);
}

.ip-solution-overlay-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255, 107, 0, 0.9);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
}

.ip-solution-detail-body {
  padding: 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.ip-solution-detail-body h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 10px 0;
}

.ip-solution-detail-body p {
  font-size: 0.87rem;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0 0 16px 0;
  flex: 1;
}

/* Certifications */
.ip-cert-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 24px;
  text-align: center;
  transition: transform 0.25s;
}

.ip-cert-card:hover {
  transform: translateY(-3px);
}

.ip-cert-card img {
  height: 60px;
  object-fit: contain;
  margin-bottom: 14px;
}

.ip-cert-card h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 8px 0;
}

.ip-cert-card p {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* ============================================================
   ABOUT US HERO BANNER (CUSTOM SPLIT SLANTED DESIGN)
   ============================================================ */
.about-hero-section {
  position: relative;
  min-height: var(--about-hero-height-desktop, 480px);
  margin-top: 90px;
  /* starts below the fixed header */
  /* Rich logo-inspired gradient: deep charcoal base + warm amber-orange glows */
  background:
    radial-gradient(ellipse 60% 90% at 0% 50%, rgba(245, 166, 35, 0.13) 0%, transparent 55%),
    radial-gradient(ellipse 40% 60% at 100% 10%, rgba(255, 107, 0, 0.09) 0%, transparent 50%),
    radial-gradient(ellipse 50% 70% at 55% 100%, rgba(245, 166, 35, 0.06) 0%, transparent 55%),
    linear-gradient(135deg, #0D0C10 0%, #16140E 35%, #1A160A 60%, #111010 100%);
  display: flex;
  align-items: center;
  overflow: hidden;
  border-bottom: 1px solid rgba(245, 166, 35, 0.35);
}

.about-hero-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    /* Strong amber warm glow on the left — echoes the 'B' orange in the logo */
    radial-gradient(ellipse 55% 85% at 8% 50%, rgba(245, 166, 35, 0.28) 0%, rgba(255, 107, 0, 0.10) 45%, transparent 70%),
    /* Subtle orange haze upper-right — gives depth behind the image panel */
    radial-gradient(ellipse 35% 55% at 90% 15%, rgba(255, 107, 0, 0.10) 0%, transparent 60%),
    /* Faint gold shimmer sweep — diagonal brand stripe */
    linear-gradient(118deg, rgba(245, 166, 35, 0.06) 0%, transparent 40%, rgba(255, 107, 0, 0.04) 80%, transparent 100%);
  pointer-events: none;
  z-index: 1;
}

.about-hero-section::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 3px;
  /* Two-tone brand accent line: deep orange → amber → deep orange */
  background: linear-gradient(90deg, transparent 0%, #FF6B00 20%, #F5A623 50%, #FF6B00 80%, transparent 100%);
  z-index: 20;
}

.about-hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 10;
}

.about-hero-content {
  max-width: 44%;
  padding: 60px 0;
}

.about-hero-content h1 {
  font-family: var(--font-primary);
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 20px 0;
  line-height: 1.1;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.about-hero-content p {
  font-size: clamp(0.85rem, 1.2vw, 0.95rem);
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.6;
  margin: 0 0 32px 0;
  max-width: 100%;
}

.about-hero-btn {
  display: inline-block;
  font-family: var(--font-primary);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  color: #ffffff;
  background: transparent;
  border: 2px solid var(--color-orange);
  padding: 14px 34px;
  transition: all var(--transition-normal);
  cursor: pointer;
  box-shadow: 0 0 16px rgba(255, 133, 0, 0.25);
}

.about-hero-btn:hover {
  background: var(--color-orange);
  color: #ffffff;
  border-color: var(--color-orange);
  box-shadow: 0 0 30px rgba(255, 133, 0, 0.55), 0 4px 20px rgba(0, 0, 0, 0.3);
  transform: translateY(-2px);
}

.about-hero-image-wrap {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 56%;
  z-index: 5;
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
  /* Warm dark fade matching the main section base */
  background: linear-gradient(135deg, #0D0C10 0%, #16140E 50%, #111010 100%);
}

.about-hero-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Responsiveness for About Us Custom Hero */
@media (max-width: 991px) {
  .about-hero-content {
    max-width: 60%;
  }

  .about-hero-content p {
    white-space: normal;
  }

  .about-hero-image-wrap {
    width: 50%;
    clip-path: polygon(15% 0, 100% 0, 100% 100%, 0 100%);
  }
}

@media (max-width: 768px) {
  .about-hero-section {
    position: relative !important;
    min-height: 380px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    margin-top: 64px !important;
    overflow: hidden !important;
    padding: 0 !important;
  }

  .about-hero-image-wrap {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    clip-path: none !important;
    z-index: 1 !important;
  }

  .about-hero-image-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Black dark gradient overlay over background image so text is 100% readable */
  .about-hero-image-wrap::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(9, 9, 14, 0.82) 0%, rgba(9, 9, 14, 0.65) 50%, rgba(9, 9, 14, 0.88) 100%) !important;
    z-index: 2 !important;
  }

  .about-hero-container {
    position: relative !important;
    z-index: 10 !important;
    width: 100% !important;
    padding: 0 20px !important;
  }

  .about-hero-content {
    position: relative !important;
    z-index: 10 !important;
    max-width: 100% !important;
    padding: 50px 10px !important;
    text-align: center !important;
    background: transparent !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .about-hero-content > div,
  .about-hero-content div[style*="display:flex"] {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 auto !important;
  }

  .about-hero-content h1 {
    font-size: clamp(1.6rem, 5.8vw, 2.2rem) !important;
    color: #ffffff !important;
    margin: 0 0 14px 0 !important;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.9) !important;
    white-space: normal !important;
    line-height: 1.2 !important;
  }

  .about-hero-content p {
    color: rgba(255, 255, 255, 0.92) !important;
    font-size: 0.9rem !important;
    line-height: 1.55 !important;
    margin: 0 auto 24px auto !important;
    max-width: 90% !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.9) !important;
  }

  .about-hero-btn {
    background: rgba(0, 0, 0, 0.5) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    border: 2px solid var(--color-orange) !important;
    color: #ffffff !important;
    padding: 8px 20px !important;
    font-size: clamp(0.72rem, 3.0vw, 0.80rem) !important;
    border-radius: 25px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6) !important;
    display: inline-block !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  .about-story-grid,
  .solution-details-row {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .about-story-grid img {
    height: 250px !important;
    width: 100% !important;
    object-fit: cover !important;
  }
}

/* About Us Story Grid Layout (Desktop Default) */
.about-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

/* ── About Us Stats Cards Hover Glow Styling ── */
.about-stat-card {
  transition: transform 0.12s ease-out, box-shadow 0.12s ease-out, border-color 0.2s ease !important;
  transform-style: preserve-3d !important;
}

.about-stat-card:hover {
  border-color: rgba(255, 107, 0, 0.45) !important;
}

.about-stat-card:hover .stat-number {
  text-shadow: 0 10px 25px rgba(255, 107, 0, 0.3) !important;
}

/* ── About Us Team Section Styling ── */
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.team-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
  position: relative;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.team-card:hover {
  transform: translateY(-8px);
  border-color: var(--color-orange);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}

.team-image-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #0f0e15;
}

.team-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.team-card:hover .team-image {
  transform: scale(1.08);
}

.team-social-overlay {
  position: absolute;
  inset: 0;
  background: rgba(13, 12, 17, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 2;
}

.team-card:hover .team-social-overlay {
  opacity: 1;
}

.team-social-links {
  display: flex;
  gap: 14px;
  transform: translateY(15px);
  transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.team-card:hover .team-social-links {
  transform: translateY(0);
}

.team-social-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.15);
  transition: all 0.25s ease;
  text-decoration: none;
}

.team-social-icon:hover {
  background: var(--color-orange);
  border-color: var(--color-orange);
  color: #ffffff;
  transform: scale(1.1);
}

.team-info {
  padding: 20px;
  text-align: center;
}

.team-info h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 5px 0;
}

.team-info p {
  font-size: 0.82rem;
  color: var(--text-secondary);
  margin: 0;
}

/* Responsive Team Section */
@media (max-width: 991px) {
  .team-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 575px) {
  .team-grid {
    grid-template-columns: 1fr;
    max-width: 340px;
    margin: 0 auto;
  }
}

/* Ensure Leaflet maps stay below the header z-index (1000) */
.leaflet-top, 
.leaflet-bottom {
  z-index: 900 !important;
}
.leaflet-pane {
  z-index: 800 !important;
}

/* ICCC Command & Control Centre Dashboard & Simulator Mobile Responsiveness */
@media (max-width: 768px) {
  .abbmatica-technology-sim-display-card {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }

  .abbmatica-technology-sim-canvas {
    position: relative !important;
    height: auto !important;
    min-height: 480px !important;
    max-height: none !important;
    overflow: hidden !important;
    border-radius: var(--border-radius-lg) !important;
    border: 1px solid var(--border-color) !important;
    background: var(--bg-secondary) !important;
    width: 100% !important;
  }

  /* Mode A: AI Traffic Enforcement Panel & 3-Lane Animated Road */
  .abbmatica-technology-sim-road-container {
    position: relative !important;
    height: 480px !important;
    min-height: 480px !important;
    width: 100% !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  /* Ensure hidden tab panels are 100% hidden on tab switch */
  #abbmatica-technology-sim-panel-enforcement[style*="display: none"],
  #abbmatica-technology-sim-panel-command[style*="display: none"] {
    display: none !important;
  }

  .abbmatica-technology-sim-road {
    height: 360px !important;
    width: 100% !important;
  }

  /* Fully align all 3 speed enforcement camera/radar gantry units in the dead-center of each lane */
  .abbmatica-technology-gantry-pillar-left .abbmatica-technology-signal-unit:nth-child(1),
  .abbmatica-technology-gantry-pillar-left > div:nth-child(1) {
    top: 16.66% !important;
    transform: translateY(-50%) !important;
  }

  .abbmatica-technology-gantry-pillar-left .abbmatica-technology-signal-unit:nth-child(2),
  .abbmatica-technology-gantry-pillar-left > div:nth-child(2) {
    top: 50% !important;
    transform: translateY(-50%) !important;
  }

  .abbmatica-technology-gantry-pillar-left .abbmatica-technology-signal-unit:nth-child(3),
  .abbmatica-technology-gantry-pillar-left > div:nth-child(3) {
    top: 83.33% !important;
    transform: translateY(-50%) !important;
  }

  .abbmatica-technology-sim-hud-panel {
    padding: 10px 12px !important;
  }

  .abbmatica-technology-hud-lbl {
    font-size: 0.58rem !important;
  }

  .abbmatica-technology-hud-val {
    font-size: 0.72rem !important;
  }

  /* Operation Alert Feed (Logs Panel) - Expanded height on mobile to show 5+ alert cards */
  .abbmatica-technology-sim-logs-panel {
    width: 100% !important;
    height: 480px !important;
    max-height: 520px !important;
    padding: 14px 12px !important;
    margin-top: 12px !important;
    border-radius: var(--border-radius-lg) !important;
    border: 1px solid var(--border-color) !important;
    background: var(--bg-secondary) !important;
    box-sizing: border-box !important;
  }

  .abbmatica-technology-logs-list {
    height: 400px !important;
    max-height: 420px !important;
    overflow-y: auto !important;
    min-height: 0 !important;
  }

  .abbmatica-technology-log-card {
    padding: 6px 10px !important;
    gap: 4px !important;
  }

  /* Mode B: ICCC Dashboard Layout */
  .abbmatica-technology-iccc-dashboard {
    padding: 12px 8px !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .abbmatica-technology-iccc-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
  }

  .abbmatica-technology-iccc-header .iccc-title-area {
    width: 100% !important;
  }

  .abbmatica-technology-iccc-status-strip {
    width: 100% !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
  }

  .iccc-kpi-row {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
    height: auto !important;
  }

  .iccc-kpi-card {
    height: auto !important;
    min-height: 65px !important;
    padding: 8px 6px 4px 6px !important;
  }

  .iccc-main-grid {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    gap: 12px !important;
    margin-bottom: 10px !important;
  }

  .iccc-map-container {
    width: 100% !important;
    height: 200px !important;
    min-height: 180px !important;
    flex: none !important;
    border-radius: 8px !important;
  }

  .iccc-map-svg-wrapper {
    height: 170px !important;
    width: 100% !important;
  }

  .iccc-chart-container {
    width: 100% !important;
    height: 280px !important;
    min-height: 280px !important;
    flex: none !important;
    border-radius: 8px !important;
    position: relative !important;
    overflow: hidden !important;
  }

  #iccc-mini-map {
    width: 100% !important;
    height: 280px !important;
    min-height: 280px !important;
    border-radius: 8px !important;
  }

  .iccc-counters-row {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    width: 100% !important;
  }

  .iccc-counter-box {
    padding: 6px 4px !important;
  }

  /* Mobile Global Presence Header: Heading on left, slim search box on right */
  .presence-header-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
    width: 100% !important;
  }

  .presence-header-row h2.section-title {
    font-size: clamp(1rem, 4.5vw, 1.35rem) !important;
    margin: 0 !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }

  .map-location-search-bar {
    min-width: 0 !important;
    width: 145px !important;
    max-width: 160px !important;
    height: 32px !important;
    border-radius: 40px !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.1) !important;
  }

  .map-location-search-input {
    padding: 2px 8px !important;
    font-size: 0.7rem !important;
    height: 32px !important;
    line-height: 32px !important;
  }

  .map-location-search-btn {
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    border-radius: 0 40px 40px 0 !important;
  }

  .map-location-search-btn svg {
    width: 14px !important;
    height: 14px !important;
  }

  /* Location Search Modal Popup: 100% width, centered vertically & horizontally (never sticks to top) */
  .map-location-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px 12px !important;
    box-sizing: border-box !important;
  }

  .map-location-modal {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 75vh !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
    transform: none !important;
    align-self: center !important;
  }

  .map-location-modal-overlay.open .map-location-modal {
    transform: scale(1) !important;
    opacity: 1 !important;
  }

  .map-location-modal-header {
    padding: 10px 12px !important;
    gap: 8px !important;
  }

  .map-location-modal-search-wrap {
    padding: 5px 12px !important;
    border-radius: 20px !important;
    gap: 6px !important;
  }

  .map-modal-search-input {
    font-size: 0.8rem !important;
    height: 28px !important;
  }

  .map-location-modal-close {
    width: 30px !important;
    height: 30px !important;
    font-size: 1.2rem !important;
  }

  /* Mobile Map Zoom Controls: Smaller side-by-side horizontal row (+ - reset) on right side */
  .map-zoom-controls {
    bottom: 14px !important;
    right: 32px !important;
    left: auto !important;
    flex-direction: row !important;
    gap: 6px !important;
    top: auto !important;
    z-index: 5000 !important;
  }

  .map-zoom-controls button {
    width: 28px !important;
    height: 28px !important;
    font-size: 0.85rem !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
  }

/* Solution Details Title & Subtitle Styling */
.solution-subtitle-tag {
  color: #FF6B00;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 12px;
  display: block;
}

.solution-title-heading {
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--text-primary);
  margin: 0 0 20px 0;
  font-family: var(--font-primary);
  letter-spacing: -0.5px;
}

@media (max-width: 768px) {
  /* Site-wide Clean Responsive Section Headings on Mobile */
  h1.section-title,
  h2.section-title,
  h3.section-title,
  .section-title,
  .abbmatica-technology-section-title,
  .hero-slide-title,
  .inner-hero h1,
  .about-hero-content h1,
  .ip-section h2,
  .abbmatica-global-presence-section h2,
  .abbmatica-programs-section h2,
  .abbmatica-mission-vision-section h2,
  .solution-details-text h2,
  .solution-details-text > h2,
  .solution-details-section h2,
  .solution-detail-showcase h2,
  .showcase-grid-layout h2,
  .solution-grid-section h2,
  .solution-grid-title,
  .solution-title-heading {
    font-size: clamp(1.15rem, 4.4vw, 1.45rem) !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
    display: block !important;
    margin-bottom: 10px !important;
  }

  /* Site-wide Sleek Compact Subtitles on Mobile */
  .section-subtitle,
  .abbmatica-technology-section-subtitle,
  .solution-details-text span,
  .solution-details-section span,
  .solution-detail-showcase span,
  .showcase-grid-layout span,
  .solution-subtitle-tag {
    font-size: clamp(0.70rem, 2.6vw, 0.82rem) !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: 0.3px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
    display: block !important;
    margin-bottom: 12px !important;
  }

  /* Center-align brochure ribbons, section text, and compact button padding on mobile */
  .solution-brochure-ribbon,
  .solution-brochure-ribbon .abbmatica-technology-container > div {
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    gap: 14px !important;
  }

  .solution-brochure-ribbon h3 {
    text-align: center !important;
    font-size: clamp(1.2rem, 5.2vw, 1.55rem) !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
  }

  .solution-details-text,
  .solution-details-text p,
  .showcase-grid-layout > div {
    text-align: center !important;
  }

  .solution-details-text > div {
    display: flex !important;
    justify-content: center !important;
  }

  /* Compact button padding on mobile */
  .brochure-request-btn {
    padding: 10px 22px !important;
    font-size: clamp(0.72rem, 3.0vw, 0.82rem) !important;
    letter-spacing: 1px !important;
    margin: 0 auto !important;
    display: inline-block !important;
  }

  .abbmatica-technology-btn-primary {
    padding: 10px 22px !important;
    font-size: clamp(0.75rem, 3.2vw, 0.85rem) !important;
    margin: 0 auto !important;
  }
}

/* Mobile Navigation Dropdown Submenu Styling */
@media (max-width: 991px) {
  .abbmatica-technology-nav-dropdown {
    position: static !important;
    transform: none !important;
    width: 100% !important;
    opacity: 0 !important;
    visibility: hidden !important;
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .abbmatica-technology-nav-dropdown.mobile-dropdown-active {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    padding: 6px 0 6px 14px !important;
    margin-top: 6px !important;
    background: rgba(255, 107, 0, 0.05) !important;
    border-left: 3px solid var(--color-orange) !important;
    border-radius: var(--border-radius-sm) !important;
  }

  .abbmatica-technology-nav-link.mobile-link-active svg {
    transform: rotate(180deg) !important;
    stroke: var(--color-orange) !important;
  }

  .abbmatica-technology-dropdown-item {
    padding: 8px 12px !important;
    font-size: 0.88rem !important;
  }
}

@media (max-width: 480px) {
  .iccc-counters-row {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

