:root {
  --bg-primary: #09090B;
  --bg-secondary: #121215;
  --bg-elevated: #1A1A1F;
  --accent-primary: #38BDF8;
  --accent-color: #38BDF8;
  --accent-rgb: 56, 189, 248;
  --accent-glow: 0 0 24px color-mix(in srgb, var(--accent-color) 18%, transparent);
  --text-primary: #F8FAFC;
  --text-muted: #94A3B8;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

*::-webkit-scrollbar {
  width: 0px;
  height: 0px;
  display: none;
}

html, body {
  margin: 0;
  padding: 0;
  background-color: #09090B;
  color: var(--text-primary);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  max-width: 100vw;
}

/* Neutral Carbon / Obsidian Background with Subtle Studio Accent Light & Carbon Weave */
body {
  background-color: #0A0A0C;
  background-image:
    radial-gradient(ellipse 90% 45% at 50% 0%, color-mix(in srgb, var(--accent-color) 20%, transparent) 0%, transparent 72%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.025) 0px, rgba(255, 255, 255, 0.025) 1px, transparent 1px, transparent 4px),
    repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.025) 0px, rgba(255, 255, 255, 0.025) 1px, transparent 1px, transparent 4px);
  min-height: 100vh;
}

/* Mobile-First 480px App Shell */
.app-shell {
  width: 100%;
  max-width: 480px;
  min-height: 100vh;
  margin: 0 auto;
  position: relative;
  padding-bottom: 124px;
  background-color: #0A0A0C;
  background-image:
    radial-gradient(ellipse 90% 45% at 50% 0%, color-mix(in srgb, var(--accent-color) 20%, transparent) 0%, transparent 72%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.025) 0px, rgba(255, 255, 255, 0.025) 1px, transparent 1px, transparent 4px),
    repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.025) 0px, rgba(255, 255, 255, 0.025) 1px, transparent 1px, transparent 4px);
  border-left: 1px solid rgba(255, 255, 255, 0.06);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 0 90px rgba(0, 0, 0, 0.92);
}

/* Step 0: Full-Viewport Edge-to-Edge Hero Landing Mode */
.app-shell.is-step-0 {
  padding-bottom: 0 !important;
}

.app-shell.is-step-0 .glass-header {
  display: none !important;
}

.app-shell.is-step-0 main {
  padding: 0 !important;
}

/* Sticky Top-Lit Frosted Carbon Header */
.glass-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(18, 18, 21, 0.86);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Carbon Dark Minimalist Cards */
.glass-card {
  background: linear-gradient(180deg, #17171B 0%, #101013 100%);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 18px;
  box-shadow: 0 10px 28px -12px rgba(0, 0, 0, 0.72);
  transition: all 0.26s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-card-interactive {
  cursor: pointer;
  user-select: none;
  position: relative;
  overflow: hidden;
  pointer-events: auto;
}

.car-size-card,
.condition-card {
  cursor: pointer;
  pointer-events: auto;
  position: relative;
  z-index: 10;
}

.car-size-card svg,
.condition-card svg {
  pointer-events: none;
}

.glass-card-interactive:hover {
  background: #1A1A1F;
  border-color: rgba(255, 255, 255, 0.16);
  border-top-color: rgba(255, 255, 255, 0.24);
  transform: translateY(-1px);
}

.glass-card-interactive:active {
  transform: scale(0.985);
}

/* Active Selection State */
.glass-card-active {
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent-color) 14%, #1A1A1F) 0%, #121215 100%) !important;
  border-color: var(--accent-color) !important;
  box-shadow: 0 0 22px color-mix(in srgb, var(--accent-color) 18%, transparent), inset 0 1px 16px rgba(255, 255, 255, 0.05) !important;
}

/* Dynamic Accent Helpers */
.text-accent {
  color: var(--accent-color);
}

.bg-accent {
  background-color: #FFFFFF;
}

.border-accent {
  border-color: rgba(255, 255, 255, 0.55);
}

/* Apple-Style High-Contrast Stark White Primary CTA Button */
.btn-primary-glow {
  background: #FFFFFF;
  color: #000000;
  font-weight: 700;
  border-radius: 9999px;
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.2);
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.btn-primary-glow:hover {
  background: #F1F5F9;
  box-shadow: 0 10px 28px rgba(255, 255, 255, 0.28);
  transform: translateY(-1px);
}

.btn-primary-glow:active {
  transform: scale(0.97);
}

/* Luxury Dark Glass WhatsApp Button (Step 3) */
.whatsapp-glass-btn {
  background: linear-gradient(180deg, rgba(24, 28, 38, 0.75) 0%, rgba(15, 18, 24, 0.85) 100%);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.4);
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.whatsapp-glass-btn:hover {
  background: linear-gradient(180deg, rgba(28, 33, 46, 0.82) 0%, rgba(18, 21, 29, 0.92) 100%);
  border-color: rgba(255, 255, 255, 0.18);
  border-top-color: rgba(255, 255, 255, 0.35);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5), 0 0 20px rgba(16, 185, 129, 0.15);
  transform: translateY(-1px);
}

.whatsapp-glass-btn:active {
  transform: scale(0.985);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4), 0 0 16px rgba(16, 185, 129, 0.20);
}

/* Accent WhatsApp Sticker Badge (Left Icon) */
.whatsapp-badge {
  background: rgba(16, 185, 129, 0.14);
  border: 1px solid rgba(16, 185, 129, 0.35);
  color: #10B981;
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.25);
  transition: all 0.2s ease;
}

.whatsapp-glass-btn:hover .whatsapp-badge {
  box-shadow: 0 0 16px rgba(16, 185, 129, 0.4);
  border-color: rgba(16, 185, 129, 0.55);
}

/* Top Progress Bar Fill (Ice-Blue to White) */
.progress-track {
  height: 2px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent-color) 0%, #FFFFFF 100%);
  box-shadow: 0 0 14px color-mix(in srgb, var(--accent-color) 45%, transparent);
  transition: width 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Language & Stage Mode Switcher Pills */
.pill-toggle {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 9999px;
  padding: 2px;
  display: inline-flex;
  align-items: center;
}

.pill-btn {
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 9999px;
  color: var(--text-muted);
  transition: all 0.2s ease;
  cursor: pointer;
}

.pill-btn.active {
  background: #FFFFFF;
  color: #000000;
  box-shadow: 0 2px 10px rgba(255, 255, 255, 0.22);
}

/* =====================================================
   STEP 2: DYNAMIC 3/4 STUDIO TURNTABLE STAGE & HOTSPOTS
   ===================================================== */
.blueprint-stage {
  background:
    radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--accent-color) 22%, transparent) 0%, transparent 70%),
    linear-gradient(180deg, rgba(26, 26, 31, 0.85) 0%, rgba(9, 9, 11, 0.98) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 22px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 44px -12px rgba(0, 0, 0, 0.78);
}

/* 3/4 Car Passive Visual Preview Zones (non-interactive base shell) */
.car-zone {
  cursor: default;
  pointer-events: none;
  transition: all 0.36s cubic-bezier(0.16, 1, 0.3, 1);
  fill: rgba(255, 255, 255, 0.015);
  stroke: rgba(255, 255, 255, 0.12);
  stroke-width: 1.1px;
}

/* =====================================================
   BEFORE / AFTER PAINT & HYDROPHOBIC SCANNER
   ===================================================== */
.scanner-stage {
  position: relative;
  width: 100%;
  height: 196px;
  border-radius: 16px;
  overflow: hidden;
  user-select: none;
  cursor: ew-resize;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: #09090B;
  touch-action: pan-y;
}

.scanner-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.scanner-after {
  background:
    radial-gradient(circle at 68% 35%, color-mix(in srgb, var(--accent-color) 22%, transparent) 0%, transparent 56%),
    linear-gradient(125deg, #09090B 0%, #121215 45%, #0D0D10 75%, #09090B 100%);
}

.scanner-before {
  background:
    radial-gradient(circle at 30% 45%, rgba(255, 255, 255, 0.06) 0%, transparent 60%),
    linear-gradient(135deg, #1A1A1F 0%, #121215 50%, #18181D 100%);
  clip-path: inset(0 50% 0 0);
}

.scanner-laser-divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background: #FFFFFF;
  box-shadow: 0 0 16px 2px color-mix(in srgb, var(--accent-color) 80%, transparent);
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 15;
}

.scanner-handle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  background: #FFFFFF;
  border: 2px solid #FFFFFF;
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 70%, transparent);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000000;
  font-size: 12px;
  font-weight: 900;
}

/* =====================================================
   PROTECTION & GLOSS METERS WIDGET (Accent & White)
   ===================================================== */
.meter-track {
  width: 100%;
  height: 5px;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.07);
  overflow: hidden;
}

.meter-fill {
  height: 100%;
  border-radius: 9999px;
  background: linear-gradient(90deg, var(--accent-color) 0%, #FFFFFF 100%);
  box-shadow: 0 0 12px color-mix(in srgb, var(--accent-color) 45%, transparent);
  transition: width 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Package Cashback / Warranty Value Pill */
.value-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 9999px;
  font-size: 10px;
  font-weight: 700;
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  color: var(--accent-color);
  border: 1px solid color-mix(in srgb, var(--accent-color) 32%, transparent);
}

/* Zone Tag Pill inside Custom Service Cards */
.service-zone-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1.5px 7px;
  border-radius: 6px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.05);
  color: #9CA3AF;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.glass-card-active .service-zone-tag {
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  color: var(--accent-color);
  border-color: color-mix(in srgb, var(--accent-color) 35%, transparent);
}

/* Step 0: Dedicated Studio Welcome Screen — Neutral Carbon Landing Container */
#step-0 {
  display: none;
  width: 100%;
  min-height: 100dvh;
  min-height: 100vh;
  padding: max(32px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));
  box-sizing: border-box;
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  border: none !important;
  background-color: #09090B;
  background-image: radial-gradient(ellipse 80% 50% at 50% 19%, color-mix(in srgb, var(--accent-color) 20%, transparent) 0%, color-mix(in srgb, var(--accent-color) 6%, transparent) 45%, transparent 72%);
}

#step-0.active {
  display: flex !important;
  flex-direction: column;
  justify-content: space-between;
  gap: 0;
  animation: cockpitFadeIn 0.28s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.welcome-ambient-light {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: transparent;
  z-index: 1;
}

.studio-logo-glow {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.65), 0 0 18px color-mix(in srgb, var(--accent-color) 28%, transparent);
  border-color: rgba(255, 255, 255, 0.08);
}

/* Lightweight Frosted Glass Status & Rating Pill */
.hero-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 11px;
  padding: 5px 12px;
  border-radius: 9999px;
  color: #E2E8F0;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Porsche Cinematic Showcase Stage (Interactive Tap-To-Wake) */
.hero-showcase-stage {
  position: relative;
  width: 100%;
  height: clamp(180px, 28vh, 230px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  user-select: none;
  border: none !important;
  background: transparent;
  cursor: pointer;
  outline: none;
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

/* "O studiu" Bottom Sheet Drawer Styles */
#studioSheetBackdrop {
  transition: opacity 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}

#studioBottomSheet {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

#studioBottomSheet.is-open {
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

#studioSheetBackdrop.is-open {
  opacity: 1 !important;
  pointer-events: auto !important;
}

.hero-showcase-stage:hover {
  transform: translateY(-2px);
}

.hero-showcase-stage:active {
  transform: scale(0.99);
}

/* Tap Hint Pill */
.hero-tap-hint-pill {
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 15;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 9999px;
  background: rgba(18, 18, 21, 0.84);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  font-size: 10px;
  font-weight: 700;
  color: #9CA3AF;
  letter-spacing: 0.02em;
  white-space: nowrap;
  pointer-events: none;
  transition: all 0.26s ease;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
}

.hero-showcase-stage:hover .hero-tap-hint-pill,
.hero-showcase-stage.car-awake .hero-tap-hint-pill {
  color: var(--accent-color);
  border-color: color-mix(in srgb, var(--accent-color) 40%, transparent);
  background: #1A1A1F;
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 25%, transparent);
}

/* 1. Synchronized 5.5-Second Animation Cycle (4.0s ON / 1.5s OFF) & Interactive Lighting */
.hero-headlight-cluster,
#car-headlights,
.headlight-overlay {
  opacity: 1;
  filter: none;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), filter 0.4s ease;
}

.hero-headlight-housing {
  fill: #121215;
  stroke: #64748B;
  stroke-width: 1.6;
  filter: none;
  transition: stroke 0.4s ease, filter 0.4s ease, fill 0.4s ease;
}

.hero-led-dot {
  opacity: 0.85;
  fill: #94A3B8;
  stroke: #475569;
  stroke-width: 0.5px;
  filter: none;
  transition: opacity 0.4s ease, fill 0.4s ease, filter 0.4s ease, stroke 0.4s ease;
}

.hero-light-beam {
  transform-origin: 48px 88px;
  pointer-events: none;
  opacity: 0;
  transform: scaleX(0.12);
  transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-caliper {
  opacity: 0.35;
  filter: none;
  transition: opacity 0.4s ease, filter 0.4s ease;
}

.hero-taillight-blade {
  opacity: 0.15;
  fill: #7F1D1D;
  stroke: #991B1B;
  filter: none;
  transition: opacity 0.4s ease, fill 0.4s ease, filter 0.4s ease;
}

.hero-floor-underglow,
.car-ground-glow {
  opacity: 0.22;
  filter: blur(8px);
  transition: opacity 0.45s ease, filter 0.45s ease;
}

.hero-floor-ring,
.car-ground-ring {
  opacity: 0.35;
  transition: opacity 0.45s ease, border-color 0.45s ease;
}

.hero-ceramic-shimmer,
#car-glimmer,
.glimmer-overlay {
  pointer-events: none;
}

.glimmer-sparkles {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  pointer-events: none;
}

/* 2. Wheel Spokes Transform Origins (Cayenne Crossover Coordinates: cx=126 cy=150, cx=402 cy=150) */
.hero-wheel-spokes,
.wheel-rim {
  transform-box: view-box;
}

#heroFrontSpokes,
.front-wheel.wheel-rim,
.front-wheel .wheel-rim {
  transform-origin: 126px 150px;
}

#heroRearSpokes,
.rear-wheel.wheel-rim,
.rear-wheel .wheel-rim {
  transform-origin: 402px 150px;
}

/* 3. SYNCHRONIZED 5.5s CYCLE KEYFRAMES (4.0s ON [0%-72%] -> 1.5s OFF [76%-96%] -> LOOP) */
@keyframes headlightHousingSync {
  0%, 5% {
    stroke: #FFFFFF;
    fill: #121215;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.85)) drop-shadow(0 0 22px rgba(226, 232, 240, 0.45));
  }
  72% {
    stroke: #FFFFFF;
    fill: #121215;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.85)) drop-shadow(0 0 22px rgba(226, 232, 240, 0.45));
  }
  76%, 96% {
    stroke: #64748B;
    fill: #121215;
    filter: none;
  }
  100% {
    stroke: #FFFFFF;
    fill: #121215;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.85)) drop-shadow(0 0 22px rgba(226, 232, 240, 0.45));
  }
}

@keyframes ledDotsSync {
  0%, 5% {
    fill: #FFFFFF;
    stroke: #FFFFFF;
    stroke-width: 0.5px;
    opacity: 1;
    filter: drop-shadow(0 0 6px #FFFFFF) drop-shadow(0 0 12px var(--accent-color, var(--accent-primary, #38BDF8)));
  }
  72% {
    fill: #FFFFFF;
    stroke: #FFFFFF;
    stroke-width: 0.5px;
    opacity: 1;
    filter: drop-shadow(0 0 6px #FFFFFF) drop-shadow(0 0 12px var(--accent-color, var(--accent-primary, #38BDF8)));
  }
  76%, 96% {
    fill: #94A3B8;
    stroke: #475569;
    stroke-width: 0.5px;
    opacity: 0.85;
    filter: none;
  }
  100% {
    fill: #FFFFFF;
    stroke: #FFFFFF;
    stroke-width: 0.5px;
    opacity: 1;
    filter: drop-shadow(0 0 6px #FFFFFF) drop-shadow(0 0 12px var(--accent-color, var(--accent-primary, #38BDF8)));
  }
}

@keyframes beamSync {
  0%, 5% {
    opacity: 1;
    transform: scaleX(1);
  }
  72% {
    opacity: 1;
    transform: scaleX(1);
  }
  76%, 96% {
    opacity: 0;
    transform: scaleX(0.12);
  }
  100% {
    opacity: 1;
    transform: scaleX(1);
  }
}

@keyframes taillightSync {
  0%, 5% {
    opacity: 1;
    fill: #EF4444;
    filter: drop-shadow(0 0 14px rgba(239, 68, 68, 0.95));
  }
  72% {
    opacity: 1;
    fill: #EF4444;
    filter: drop-shadow(0 0 14px rgba(239, 68, 68, 0.95));
  }
  76%, 96% {
    opacity: 0.15;
    fill: #7F1D1D;
    filter: none;
  }
  100% {
    opacity: 1;
    fill: #EF4444;
    filter: drop-shadow(0 0 14px rgba(239, 68, 68, 0.95));
  }
}

@keyframes underglowSync {
  0%, 5% {
    opacity: 0.95;
    filter: blur(6px) drop-shadow(0 0 20px rgba(var(--accent-rgb, 56, 189, 248), 0.55));
  }
  72% {
    opacity: 0.95;
    filter: blur(6px) drop-shadow(0 0 20px rgba(var(--accent-rgb, 56, 189, 248), 0.55));
  }
  76%, 96% {
    opacity: 0.25;
    filter: blur(8px);
  }
  100% {
    opacity: 0.95;
    filter: blur(6px) drop-shadow(0 0 20px rgba(var(--accent-rgb, 56, 189, 248), 0.55));
  }
}

@keyframes wheelSpinSync {
  0% {
    transform: rotate(0deg);
  }
  22% {
    transform: rotate(360deg);
  }
  72%, 100% {
    transform: rotate(360deg);
  }
}

@keyframes bodySheenSweep {
  0% {
    transform: translateX(0) skewX(-20deg);
    opacity: 0;
  }
  6% {
    opacity: 0.95;
  }
  32% {
    transform: translateX(950px) skewX(-20deg);
    opacity: 0.95;
  }
  36%, 100% {
    transform: translateX(950px) skewX(-20deg);
    opacity: 0;
  }
}

@keyframes sparklesTwinkleSync {
  0% {
    opacity: 0;
    transform: scale(0.2);
  }
  10% {
    opacity: 1;
    transform: scale(1.3);
  }
  24% {
    opacity: 0.9;
    transform: scale(1.0);
  }
  34%, 100% {
    opacity: 0;
    transform: scale(0.2);
  }
}

/* 4. ACTIVE SYNCHRONIZED RUNNER (.car-sync-active) */
.hero-showcase-stage.car-sync-active .hero-headlight-cluster,
.hero-showcase-stage.car-sync-active #car-headlights {
  opacity: 1;
}

.hero-showcase-stage.car-sync-active .hero-headlight-housing {
  animation: headlightHousingSync 5.5s infinite ease-in-out;
}

.hero-showcase-stage.car-sync-active .hero-led-dot {
  animation: ledDotsSync 5.5s infinite ease-in-out;
}

.hero-showcase-stage.car-sync-active .hero-light-beam {
  animation: beamSync 5.5s infinite ease-in-out;
}

.hero-showcase-stage.car-sync-active .hero-caliper {
  opacity: 1;
  filter: drop-shadow(0 0 10px var(--accent-color, var(--accent-primary, #38BDF8)));
}

.hero-showcase-stage.car-sync-active .hero-taillight-blade {
  animation: taillightSync 5.5s infinite ease-in-out;
}

.hero-showcase-stage.car-sync-active .hero-floor-underglow,
.hero-showcase-stage.car-sync-active .car-ground-glow {
  animation: underglowSync 5.5s infinite ease-in-out;
}

.hero-showcase-stage.car-sync-active .hero-floor-ring,
.hero-showcase-stage.car-sync-active .car-ground-ring {
  opacity: 0.85;
}

.hero-showcase-stage.car-sync-active #heroFrontSpokes {
  animation: wheelSpinSync 5.5s infinite cubic-bezier(0.25, 0.8, 0.25, 1);
}

.hero-showcase-stage.car-sync-active #heroRearSpokes {
  animation: wheelSpinSync 5.5s infinite cubic-bezier(0.25, 0.8, 0.25, 1);
}

.hero-showcase-stage.car-sync-active .hero-ceramic-shimmer,
.hero-showcase-stage.car-sync-active #car-glimmer {
  animation: bodySheenSweep 5.5s infinite ease-in-out;
}

.hero-showcase-stage.car-sync-active .glimmer-sparkles {
  animation: sparklesTwinkleSync 5.5s infinite ease-in-out;
}

/* Lights Forced Off / Paused via User Click (.car-lights-off) */
.hero-showcase-stage.car-lights-off .hero-headlight-cluster,
.hero-showcase-stage.car-lights-off #car-headlights {
  opacity: 1 !important;
  filter: none !important;
  animation: none !important;
}

.hero-showcase-stage.car-lights-off .hero-headlight-housing {
  stroke: #64748B !important;
  fill: #121215 !important;
  filter: none !important;
  animation: none !important;
}

.hero-showcase-stage.car-lights-off .hero-led-dot {
  fill: #94A3B8 !important;
  stroke: #475569 !important;
  stroke-width: 0.5px !important;
  opacity: 0.85 !important;
  filter: none !important;
  animation: none !important;
}

.hero-showcase-stage.car-lights-off .hero-light-beam {
  opacity: 0 !important;
  transform: scaleX(0.12) !important;
  animation: none !important;
}

.hero-showcase-stage.car-lights-off .hero-taillight-blade {
  opacity: 0.15 !important;
  fill: #7F1D1D !important;
  filter: none !important;
  animation: none !important;
}

.hero-showcase-stage.car-lights-off .hero-floor-underglow {
  opacity: 0.2 !important;
  filter: blur(8px) !important;
  animation: none !important;
}

.hero-showcase-stage.car-lights-off .hero-ceramic-shimmer,
.hero-showcase-stage.car-lights-off #car-glimmer,
.hero-showcase-stage.car-lights-off .glimmer-sparkles,
.hero-showcase-stage.car-lights-off #heroFrontSpokes,
.hero-showcase-stage.car-lights-off #heroRearSpokes {
  animation: none !important;
}

/* Floating Glass Dropdown Menu for Languages */
.lang-dropdown-menu {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 6px;
  z-index: 100;
  min-width: 130px;
  padding: 6px;
  border-radius: 14px;
  background: rgba(18, 18, 21, 0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.72);
  display: flex;
  flex-direction: column;
  gap: 2px;
  pointer-events: auto !important;
}

.lang-dropdown-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 10px;
  border-radius: 9px;
  font-size: 12px;
  font-weight: 600;
  color: #CBD5E1;
  background: transparent;
  border: none;
  cursor: pointer;
  pointer-events: auto !important;
  transition: background 0.16s ease, color 0.16s ease;
}

.lang-dropdown-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
}

.lang-dropdown-item.active {
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  color: var(--accent-color);
}

.welcome-cta-btn {
  width: 100%;
  height: 54px;
  border-radius: 9999px;
  background: #FFFFFF;
  color: #000000;
  font-weight: 700;
  font-size: 16px;
  box-shadow: 0 10px 30px rgba(255, 255, 255, 0.25);
  border: none;
  outline: none;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.welcome-cta-btn:hover {
  background: #F1F5F9;
  box-shadow: 0 12px 36px rgba(255, 255, 255, 0.35);
  transform: translateY(-1px);
}

.welcome-cta-btn:active {
  transform: scale(0.98);
}

.welcome-cta-btn:hover {
  background: #F1F5F9;
  box-shadow: 0 12px 36px rgba(255, 255, 255, 0.35);
  transform: translateY(-1px);
}

.welcome-cta-btn:active {
  transform: scale(0.98);
}

/* Step 2: Metallic Car Paint Color Swatches & Zone Inspector Bar */
.paint-swatch {
  width: 18px;
  height: 18px;
  border-radius: 9999px;
  border: 1.5px solid rgba(255, 255, 255, 0.32);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 0;
  position: relative;
}

.paint-swatch:hover {
  transform: scale(1.15);
  border-color: #FFFFFF;
}

.paint-swatch.active {
  border: 2px solid #FFFFFF;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-color) 65%, transparent), 0 0 10px color-mix(in srgb, var(--accent-color) 55%, transparent);
  transform: scale(1.12);
}

.zone-inspector-pill {
  background: linear-gradient(90deg, #16161A 0%, #121215 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: inset 0 1px 10px color-mix(in srgb, var(--accent-color) 6%, transparent);
  transition: all 0.24s ease;
}

.zone-inspector-pill.inspector-flash {
  border-color: color-mix(in srgb, var(--accent-color) 55%, transparent);
  box-shadow: 0 0 18px color-mix(in srgb, var(--accent-color) 22%, transparent);
}

/* =====================================================
   EXPANDABLE GLASS ACCORDIONS & QUICK BUNDLES (STEP 2)
   ===================================================== */
.quick-packages-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
}

.quick-packages-bar::-webkit-scrollbar {
  display: none;
}

.quick-package-pill {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  min-width: 145px;
  padding: 8px 11px;
  border-radius: 14px;
  background: #121215;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
  flex-shrink: 0;
  user-select: none;
}

.quick-package-pill:hover {
  background: #1A1A1F;
  border-color: rgba(255, 255, 255, 0.18);
}

.quick-package-pill.active {
  background: #1A1A1F !important;
  border-color: var(--accent-color) !important;
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 22%, transparent) !important;
}

/* Accordion Groups */
.accordion-group {
  border-radius: 18px;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.accordion-header {
  cursor: pointer;
  user-select: none;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  border: none;
  outline: none;
  transition: background 0.18s ease;
}

.accordion-header:hover {
  background: rgba(255, 255, 255, 0.03);
}

.accordion-chevron {
  transition: transform 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}

.accordion-group.is-collapsed .accordion-chevron {
  transform: rotate(-90deg);
}

.accordion-group.is-collapsed .accordion-body {
  display: none;
}

.section-counter-badge {
  display: inline-flex;
  align-items: center;
  padding: 1.5px 7px;
  border-radius: 9999px;
  font-size: 10px;
  font-weight: 800;
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  color: var(--accent-color);
  border: 1px solid color-mix(in srgb, var(--accent-color) 38%, transparent);
}

/* Service Selection Item Cards (Inside Accordions) */
.service-selection-card {
  padding: 10px 12px;
  border-radius: 14px;
  background: #121215;
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
  user-select: none;
}

.service-selection-card:hover {
  background: #1A1A1F;
  border-color: rgba(255, 255, 255, 0.16);
  transform: translateY(-1px);
}

.service-selection-card.is-selected {
  background: color-mix(in srgb, var(--accent-color) 12%, #1A1A1F) !important;
  border-color: color-mix(in srgb, var(--accent-color) 50%, transparent) !important;
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 16%, transparent) !important;
}

.service-radio-circle {
  width: 18px;
  height: 18px;
  border-radius: 9999px;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.18s ease;
}

.service-selection-card.is-selected .service-radio-circle {
  border-color: var(--accent-color);
  background: color-mix(in srgb, var(--accent-color) 18%, transparent);
}

.service-radio-inner {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: #FFFFFF;
  opacity: 0;
  transform: scale(0.4);
  transition: all 0.18s ease;
}

.service-selection-card.is-selected .service-radio-inner {
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 0 6px var(--accent-color);
}

.service-check-box {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.18s ease;
}

.service-selection-card.is-selected .service-check-box {
  background: #FFFFFF;
  border-color: #FFFFFF;
}

.service-check-icon {
  width: 13px;
  height: 13px;
  color: #000000;
  opacity: 0;
  transition: opacity 0.18s ease;
}

.service-selection-card.is-selected .service-check-icon {
  opacity: 1;
}

/* =====================================================
   MULTI-TIER SEGMENTED SELECTOR PILLS INSIDE CARDS
   ===================================================== */
.tier-selector-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.tier-option-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 12px;
  background: #121215;
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.18s ease;
  cursor: pointer;
}

.tier-option-row:hover {
  background: #1A1A1F;
  border-color: rgba(255, 255, 255, 0.16);
}

.tier-option-row.tier-active {
  background: linear-gradient(90deg, color-mix(in srgb, var(--accent-color) 16%, transparent) 0%, #1A1A1F 100%);
  border-color: color-mix(in srgb, var(--accent-color) 50%, transparent);
  box-shadow: 0 0 16px color-mix(in srgb, var(--accent-color) 14%, transparent);
}

.tier-radio-outer {
  width: 15px;
  height: 15px;
  border-radius: 9999px;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.18s ease;
}

.tier-option-row.tier-active .tier-radio-outer {
  border-color: var(--accent-color);
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
}

.tier-radio-inner {
  width: 7px;
  height: 7px;
  border-radius: 9999px;
  background: #FFFFFF;
  opacity: 0;
  transform: scale(0.5);
  transition: all 0.18s ease;
}

.tier-option-row.tier-active .tier-radio-inner {
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 0 6px var(--accent-color);
}

/* All-in-One Bundle Highlight Card */
.bundle-highlight-card {
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-color) 12%, transparent) 0%, #16161A 60%, #121215 100%);
  border-color: color-mix(in srgb, var(--accent-color) 28%, transparent);
  border-top-color: color-mix(in srgb, var(--accent-color) 45%, transparent);
}

/* =====================================================
   REVOLUT FLOATING ISLAND BOTTOM DOCK
   ===================================================== */
#bottom-dock,
#floatingDock,
.floating-dock {
  position: fixed;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 24px);
  max-width: 456px;
  z-index: 50;
  pointer-events: auto;
  border-radius: 22px;
  background: rgba(18, 18, 21, 0.92);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.72);
}

#bottom-dock button,
#floatingDock button,
.floating-dock button,
#nextStepBtn,
#prevStepBtn {
  position: relative;
  z-index: 51;
  pointer-events: auto;
  cursor: pointer;
}

/* Impulse Upsell Card */
.upsell-card {
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-color) 10%, transparent) 0%, #121215 70%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 16px;
  transition: all 0.25s ease;
}

.upsell-card.upsell-selected {
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-color) 18%, transparent) 0%, #1A1A1F 75%);
  border-color: color-mix(in srgb, var(--accent-color) 55%, transparent);
  box-shadow: 0 0 24px color-mix(in srgb, var(--accent-color) 16%, transparent);
}

/* Form Inputs (Compact) */
.cockpit-input {
  width: 100%;
  background: #1A1A1F;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  padding: 9px 12px;
  color: var(--text-primary);
  font-size: 13px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cockpit-input::placeholder {
  color: rgba(156, 163, 175, 0.55);
}

.cockpit-input:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 18%, transparent);
}

/* Step Transition Animation */
.step-panel {
  display: none;
  animation: cockpitFadeIn 0.28s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.step-panel.active {
  display: block;
}

@keyframes cockpitFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Price Counter Flash Animation */
@keyframes pricePulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); color: var(--accent-color); }
  100% { transform: scale(1); }
}

.price-bump {
  animation: pricePulse 0.26s ease;
}

/* Step 3 Apple Receipt-Style Card */
.receipt-card {
  background: linear-gradient(180deg, #16161A 0%, #121215 100%);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 16px 36px -12px rgba(0, 0, 0, 0.72);
}

/* Step 3 Segmented Control for Booking Preferences */
.segmented-control {
  background: #121215;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.segmented-btn {
  background: transparent;
  border: 1px solid transparent;
  color: #94A3B8;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
}

.segmented-btn:hover {
  color: #F8FAFC;
  background: rgba(255, 255, 255, 0.04);
}

.segmented-btn.active {
  background: rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* Back Link Button */
.btn-back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #94A3B8;
  font-size: 12px;
  font-weight: 600;
  transition: color 0.18s ease;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 6px 0;
}

.btn-back-link:hover {
  color: var(--accent-color);
}

/* ==========================================================================
   STEP 3: VIEWPORT ALIGNMENT & RESPONSIVE MOBILE LAYOUT
   ========================================================================== */
.app-shell:has(#step-3.active) {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  padding-bottom: 0 !important;
}

.app-shell:has(#step-3.active) main {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding-bottom: 0 !important;
}

#step-3 {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  padding-bottom: max(16px, env(safe-area-inset-bottom));
  overflow-y: auto;
  overflow-x: hidden;
}

.app-shell:has(#step-3.active) #step-3 {
  flex: 1;
  min-height: 0;
}

#step-3:not(.active) {
  display: none !important;
}

/* Pin Return Action to Bottom */
#step-3 .return-to-configurator,
#step-3 a[href*="step-2"],
#step-3 .back-action {
  margin-top: auto;
  padding-top: 24px;
  padding-bottom: 8px;
  display: block;
  text-align: center;
}

/* ==========================================================================
   ADMIN QUICK-SWITCHER DEVBAR (&admin=1)
   ========================================================================== */
.admin-devbar {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  background: rgba(18, 18, 21, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 9999px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.68), 0 0 18px color-mix(in srgb, var(--accent-color) 24%, transparent);
  font-family: inherit;
  font-size: 11px;
  color: #FFFFFF;
}

.admin-devbar-tag {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 2px 6px;
  border-radius: 6px;
  background: #E11D48;
  color: #FFFFFF;
  text-transform: uppercase;
}

.admin-devbar-select {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  color: #FFFFFF;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 600;
  outline: none;
  cursor: pointer;
  max-width: 170px;
}

.admin-devbar-select option {
  background: #121215;
  color: #FFFFFF;
}

.admin-devbar-btn {
  background: var(--accent-color);
  border: none;
  border-radius: 8px;
  color: #09090B;
  padding: 4px 9px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.admin-devbar-btn:hover {
  filter: brightness(1.15);
  transform: translateY(-1px);
}

.admin-devbar-warn {
  font-size: 10px;
  font-weight: 600;
  color: #F59E0B;
  background: rgba(245, 158, 11, 0.15);
  padding: 2px 6px;
  border-radius: 6px;
}

/* Tenant & Neutral Carbon Dynamic Accent Overrides */
[data-tenant-accent] .text-sky-300,
[data-tenant-accent] .text-sky-400,
[data-tenant-accent] .text-sky-500,
[data-tenant-accent] .group:hover .group-hover\:text-sky-300 {
  color: var(--accent-color) !important;
}

[data-tenant-accent] .bg-sky-400 {
  background-color: var(--accent-color) !important;
}

[data-tenant-accent] .bg-sky-400\/15,
[data-tenant-accent] .bg-sky-400\/20 {
  background-color: color-mix(in srgb, var(--accent-color) 16%, transparent) !important;
}

[data-tenant-accent] .border-sky-400 {
  border-color: var(--accent-color) !important;
}

[data-tenant-accent] .border-sky-400\/30,
[data-tenant-accent] .border-sky-400\/35 {
  border-color: color-mix(in srgb, var(--accent-color) 35%, transparent) !important;
}

[data-tenant-accent] .focus\:border-sky-400\/60:focus {
  border-color: color-mix(in srgb, var(--accent-color) 65%, transparent) !important;
}

[data-tenant-accent] .service-selection-card.is-selected {
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 18%, transparent) !important;
}

[data-tenant-accent] .service-selection-card.is-selected .service-radio-circle {
  border-color: var(--accent-color) !important;
  background: color-mix(in srgb, var(--accent-color) 18%, transparent) !important;
}

[data-tenant-accent] .meter-fill {
  background: linear-gradient(90deg, var(--accent-color) 0%, #FFFFFF 100%) !important;
  box-shadow: 0 0 12px color-mix(in srgb, var(--accent-color) 45%, transparent) !important;
}

/* =====================================================
   STEP 2 ENHANCEMENTS: SAFE PADDING & ADAPTIVE CATALOG
   ===================================================== */
#step-2 {
  padding-bottom: calc(115px + env(safe-area-inset-bottom, 16px));
}

/* Flat Category Header (Compact Layout <= 8 services) */
.category-flat-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 4px 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #9CA3AF;
}

.category-flat-header::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
}

/* Subgroup Dividers (Inside categories with > 8 services) */
.subgroup-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 4px 4px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #71717A;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  margin-top: 6px;
}

/* Unit Badge (auto, element, para, kpl.) */
.service-unit-tag {
  font-size: 9px;
  font-weight: 600;
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.06);
  color: #9CA3AF;
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: inline-block;
}

/* Included in Package Badge */
.service-in-package-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 6px;
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  color: var(--accent-color);
  border: 1px solid color-mix(in srgb, var(--accent-color) 35%, transparent);
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

/* Quick Package Scroller Pills */
.quick-package-pill {
  flex: 0 0 160px;
  min-width: 150px;
  background: #121215;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 8px 10px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
}

.quick-package-pill:hover {
  background: #1A1A1F;
  border-color: rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
}

.quick-package-pill.active {
  background: color-mix(in srgb, var(--accent-color) 14%, #1A1A1F);
  border-color: var(--accent-color);
  box-shadow: 0 0 16px color-mix(in srgb, var(--accent-color) 24%, transparent);
}


/* =====================================================
   EXPANDED CATALOG & MOBILE SERVICE CONFIG BOTTOM SHEET
   ===================================================== */
#serviceConfigSheet.is-open {
  transform: translateY(0);
  pointer-events: auto;
}

#serviceConfigSheetBackdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* Family Card (Step 2 Row) */
.family-card {
  background: #121215;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 12px 14px;
  cursor: pointer;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.family-card:hover {
  background: #1A1A1F;
  border-color: rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
}

.family-card.is-active {
  border-color: var(--accent-color);
  background: color-mix(in srgb, var(--accent-color) 14%, #1A1A1F);
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 18%, transparent);
}

.family-icon-box {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #1A1A1F;
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-color);
  flex-shrink: 0;
  transition: all 0.2s ease;
}

.family-card.is-active .family-icon-box {
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  border-color: color-mix(in srgb, var(--accent-color) 38%, transparent);
  color: #FFFFFF;
}

/* Custom Quote / Individual Request Accordion Card */
#customRequestCard {
  border-color: rgba(255, 255, 255, 0.08);
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

#customRequestCard.is-active {
  border-color: var(--accent-color);
  background: color-mix(in srgb, var(--accent-color) 12%, #121215);
  box-shadow: 0 0 20px color-mix(in srgb, var(--accent-color) 18%, transparent);
}

.custom-req-icon-box {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  background: #1A1A1F;
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-color);
  transition: all 0.2s ease;
}

#customRequestCard.is-active .custom-req-icon-box {
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  border-color: color-mix(in srgb, var(--accent-color) 40%, transparent);
  color: #FFFFFF;
}

.custom-req-chip {
  padding: 5px 10px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 600;
  color: #D4D4D8;
  background: #1A1A1F;
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.18s ease;
  cursor: pointer;
}

.custom-req-chip:hover {
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.2);
}

.custom-req-chip.is-used {
  color: #FFFFFF;
  background: color-mix(in srgb, var(--accent-color) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent-color) 48%, transparent);
}

.custom-req-textarea {
  background: #1A1A1F;
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: border-color 0.2s ease, background 0.2s ease;
}

.custom-req-textarea:focus {
  background: #09090B;
  border-color: var(--accent-color);
}

/* Sheet Selection Chips & Buttons */
.sheet-chip {
  padding: 8px 12px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  background: #1A1A1F;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #D4D4D8;
  transition: all 0.18s ease;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  user-select: none;
}

.sheet-chip:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
}

.sheet-chip.active {
  background: color-mix(in srgb, var(--accent-color) 18%, transparent);
  border-color: var(--accent-color);
  color: #FFFFFF;
  box-shadow: 0 0 12px color-mix(in srgb, var(--accent-color) 22%, transparent);
}

/* Variant Row Card in Bottom Sheet */
.sheet-variant-card {
  padding: 10px 12px;
  border-radius: 14px;
  background: #1A1A1F;
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: all 0.18s ease;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.sheet-variant-card:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
}

.sheet-variant-card.active {
  background: color-mix(in srgb, var(--accent-color) 16%, #1A1A1F);
  border-color: var(--accent-color);
}

.sheet-multi-check {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.04);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: transparent;
  transition: all 0.16s ease;
}

.sheet-variant-card.active .sheet-multi-check,
.sheet-chip.active .sheet-multi-check {
  background: var(--accent-color);
  border-color: var(--accent-color);
  color: #09090B;
  box-shadow: 0 0 10px color-mix(in srgb, var(--accent-color) 35%, transparent);
}

.sheet-chip.has-multi-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.sheet-chip.has-multi-check .sheet-multi-check {
  width: 15px;
  height: 15px;
  border-radius: 5px;
}

/* Damage Beacon Marker Pulse */
@keyframes pulse-damage {
  0% {
    transform: scale(0.9);
    opacity: 0.9;
  }
  100% {
    transform: scale(2.4);
    opacity: 0;
  }
}

.damage-beacon-marker .animate-ping {
  animation: pulse-damage 1.8s cubic-bezier(0.22, 1, 0.36, 1) infinite;
  transform-box: fill-box;
  transform-origin: center;
}

/* Smooth SVG Preview Animations */
@keyframes svgFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.svg-panel-highlight {
  transition: fill 0.3s ease, stroke 0.3s ease, opacity 0.3s ease;
  animation: svgFadeIn 0.25s ease-out;
}

.svg-fullbody-glow {
  filter: drop-shadow(0 0 10px rgba(var(--accent-rgb, 56, 189, 248), 0.42));
  transition: fill 0.3s ease, stroke 0.3s ease, opacity 0.3s ease;
  animation: svgFadeIn 0.28s ease-out;
}

@keyframes svgRouteDashFlow {
  to {
    stroke-dashoffset: -28;
  }
}

@keyframes svgRouteTraveler {
  0% {
    transform: translateX(0px);
    opacity: 0;
  }
  12% {
    opacity: 1;
  }
  88% {
    opacity: 1;
  }
  100% {
    transform: translateX(444px);
    opacity: 0;
  }
}

.svg-route-flow {
  animation: svgRouteDashFlow 1.4s linear infinite;
}

.svg-route-traveler {
  animation: svgRouteTraveler 3.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes svgCameraFlash {
  0%, 68%, 100% {
    opacity: 0;
    transform: scale(0.5);
  }
  74% {
    opacity: 0.95;
    transform: scale(1.25);
  }
  84% {
    opacity: 0;
    transform: scale(1.5);
  }
}

@keyframes svgViewfinderPulse {
  0%, 100% {
    opacity: 0.72;
  }
  50% {
    opacity: 1;
  }
}

.svg-camera-flash {
  animation: svgCameraFlash 3.6s ease-out infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.svg-camera-flash-delayed {
  animation: svgCameraFlash 3.6s ease-out 1.8s infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.svg-viewfinder-bracket {
  animation: svgViewfinderPulse 2.8s ease-in-out infinite;
}

@keyframes svgOzoneWave {
  0% {
    transform: scale(0.7);
    opacity: 0.85;
  }
  100% {
    transform: scale(1.55);
    opacity: 0;
  }
}

.svg-ozone-wave {
  animation: svgOzoneWave 2.6s cubic-bezier(0.16, 1, 0.3, 1) infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.svg-ozone-wave-2 {
  animation: svgOzoneWave 2.6s cubic-bezier(0.16, 1, 0.3, 1) 0.85s infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.svg-ozone-wave-3 {
  animation: svgOzoneWave 2.6s cubic-bezier(0.16, 1, 0.3, 1) 1.7s infinite;
  transform-box: fill-box;
  transform-origin: center;
}

@keyframes svgDropletGlint {
  0%, 100% {
    opacity: 0.75;
  }
  50% {
    opacity: 1;
  }
}

.svg-droplet-glint {
  animation: svgDropletGlint 2.4s ease-in-out infinite;
}

/* Safe area inset bottom on modern iPhones */
.safe-bottom {
  padding-bottom: max(14px, env(safe-area-inset-bottom, 14px));
}

/* Step 3 Compact VAT (Brutto / Netto) Toggle */
.vat-toggle-btn {
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 9.5px;
  line-height: 1.2;
  font-weight: 700;
  color: #94A3B8;
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.16s ease;
  white-space: nowrap;
}

.vat-toggle-btn:hover {
  color: #E2E8F0;
}

.vat-toggle-btn.active {
  background: color-mix(in srgb, var(--accent-color) 16%, transparent);
  border-color: color-mix(in srgb, var(--accent-color) 45%, transparent);
  color: #FFFFFF;
}

@media (prefers-reduced-motion: reduce) {
  .damage-beacon-marker .animate-ping,
  .svg-route-flow,
  .svg-route-traveler,
  .svg-camera-flash,
  .svg-camera-flash-delayed,
  .svg-viewfinder-bracket,
  .svg-ozone-wave,
  .svg-ozone-wave-2,
  .svg-ozone-wave-3,
  .svg-droplet-glint {
    animation: none !important;
    opacity: 0.7;
  }
}
