/* 
   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: 2.5rem;
  --spacing-xxl: 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);
}

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-xxl) 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: 80px;
  background-color: var(--bg-navbar);
  border-bottom: 1px solid var(--border-color);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 1000;
  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;
}

/* Actual abbmatica-technology-logo image — used in header & abbmatica-technology-footer */
.abbmatica-technology-logo-img {
  height: 42px;
  width: auto;
  display: block;
  object-fit: contain;
  /* Slight filter so abbmatica-technology-logo always pops on dark backgrounds */
  filter: drop-shadow(0 0 6px rgba(255, 107, 0, 0.2));
  transition: filter 0.2s ease, transform 0.2s ease;
}

.abbmatica-technology-logo-img:hover {
  filter: drop-shadow(0 0 10px rgba(255, 107, 0, 0.5));
  transform: scale(1.03);
}

/* Footer abbmatica-technology-logo — bigger for brand visibility */
.abbmatica-technology-footer-brand .abbmatica-technology-logo-img {
  height: 60px;
}

.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: var(--spacing-sm) 0;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 4px;
}

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

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

.abbmatica-technology-nav-link:hover svg {
  transform: translateY(2px);
}

/* 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(--bg-tertiary);
  color: var(--color-orange);
}

/* 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.7rem 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;
  min-height: 95vh;
  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: 80px; /* offset abbmatica-technology-navbar */
  padding-bottom: var(--spacing-xxl);
  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%;
  min-height: 75vh;
  display: flex;
  align-items: center;
}

.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;
}

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

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

.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.95rem 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.95rem 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: 54px;
  height: 54px;
  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: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: 25px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 12px;
  z-index: 10;
}

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

.abbmatica-technology-slider-dot.active {
  width: 32px;
  border-radius: 6px;
  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 {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .abbmatica-technology-hero-buttons {
    justify-content: center;
  }
  .abbmatica-technology-hero-desc {
    margin: 0 auto 2rem auto;
  }
  .abbmatica-technology-supreme-dashboard {
    margin: 0 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: 160px;
  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 {
  background: var(--bg-primary);
  border-top: 1px solid var(--border-color);
  padding: var(--spacing-xxl) 0 var(--spacing-lg);
  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: var(--spacing-xxl);
}

.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: var(--spacing-lg);
  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: 120px;
    padding-bottom: var(--spacing-xl);
  }
  .abbmatica-technology-hero-slider-container {
    min-height: auto;
  }
  .abbmatica-technology-hero-slide {
    position: relative;
    opacity: 0;
    display: none;
  }
  .abbmatica-technology-hero-slide.active {
    display: flex;
  }
  .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 {
    grid-template-columns: 1fr;
    height: auto;
  }
  .abbmatica-technology-sim-canvas {
    height: 320px;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
  }
  .abbmatica-technology-sim-logs-panel {
    height: 280px;
  }
  /* 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: 2rem;
  }
  .abbmatica-technology-nav-links, .abbmatica-technology-nav-actions .abbmatica-technology-btn-contact {
    display: none;
  }
  .abbmatica-technology-mobile-toggle {
    display: block;
  }
  .abbmatica-technology-proof-layout {
    grid-template-columns: repeat(2, 1fr);
  }
  .abbmatica-technology-solutions-grid {
    grid-template-columns: 1fr;
  }
  .abbmatica-technology-cta-title {
    font-size: 2rem;
  }
  .abbmatica-technology-cta-buttons {
    flex-direction: column;
  }
  .abbmatica-technology-footer-grid {
    grid-template-columns: 1fr;
  }
  .abbmatica-technology-footer-bottom {
    flex-direction: column;
    gap: var(--spacing-sm);
    text-align: center;
  }
  .abbmatica-technology-slider-arrow {
    width: 44px;
    height: 44px;
  }
  .abbmatica-technology-arrow-prev {
    left: 8px;
  }
  .abbmatica-technology-arrow-next {
    right: 8px;
  }
}

/* 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; }
}
