/* =============================================================================
   THEME-NERDDEALERSHIP - Main Stylesheet
   Multi-brand automotive dealership theme with premium animations
   ============================================================================= */

/* =============================================================================
   0. FONT FACE DECLARATIONS
   ============================================================================= */

/* National Font Family (Honda) */
@font-face {
    font-family: 'National';
    src: url('../fonts/National-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'National';
    src: url('../fonts/National-Book.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'National';
    src: url('../fonts/National-Regular.ttf') format('truetype');
    font-weight: 450;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'National';
    src: url('../fonts/National-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'National';
    src: url('../fonts/National-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* Helvetica Neue Font Family (Honda fallback) */
@font-face {
    font-family: 'Helvetica Neue';
    src: url('../fonts/HelveticaNeue-Light.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Helvetica Neue';
    src: url('../fonts/HelveticaNeue.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Helvetica Neue';
    src: url('../fonts/HelveticaNeue-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* =============================================================================
   1. CSS CUSTOM PROPERTIES (Variables)
   ============================================================================= */

:root {
    /* -----------------------------------------
       COLORS - Generic Brand (Default)
       ----------------------------------------- */
    --brand-primary: #0f172a;
    --brand-secondary: #64748b;
    --brand-accent: #3b82f6;

    /* RGB versions for rgba() usage */
    --brand-accent-rgb: 59, 130, 246;
    --brand-primary-rgb: 15, 23, 42;

    /* Dark color for footer/dark sections */
    --brand-dark: #1a1a2e;
    --brand-dark-rgb: 26, 26, 46;

    /* Surfaces */
    --brand-bg: #ffffff;
    --brand-bg-alt: #f8fafc;
    --brand-surface: #ffffff;
    --brand-surface-hover: #f1f5f9;
    --brand-surface-elevated: #ffffff;

    /* Text colors */
    --brand-text: #0f172a;
    --brand-text-secondary: #475569;
    --brand-text-muted: #94a3b8;
    --brand-text-inverse: #ffffff;

    /* Borders */
    --brand-border: #e2e8f0;
    --brand-border-light: #f1f5f9;
    --brand-border-strong: #cbd5e1;

    /* Status colors */
    --color-success: #10b981;
    --color-warning: #f59e0b;
    --color-error: #ef4444;
    --color-info: #3b82f6;

    /* -----------------------------------------
       TYPOGRAPHY
       ----------------------------------------- */
    --font-heading: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-mono: 'SF Mono', 'Fira Code', monospace;

    --heading-weight: 700;
    --heading-line-height: 1.2;
    --heading-letter-spacing: -0.02em;

    --body-line-height: 1.6;
    --body-letter-spacing: 0;

    /* Font sizes (fluid typography) */
    --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.8125rem);
    --text-sm: clamp(0.8125rem, 0.75rem + 0.3vw, 0.875rem);
    --text-base: clamp(0.9375rem, 0.875rem + 0.3vw, 1rem);
    --text-lg: clamp(1.0625rem, 1rem + 0.3vw, 1.125rem);
    --text-xl: clamp(1.1875rem, 1.1rem + 0.4vw, 1.25rem);
    --text-2xl: clamp(1.375rem, 1.25rem + 0.6vw, 1.5rem);
    --text-3xl: clamp(1.625rem, 1.4rem + 1vw, 1.875rem);
    --text-4xl: clamp(2rem, 1.7rem + 1.5vw, 2.25rem);
    --text-5xl: clamp(2.5rem, 2rem + 2.5vw, 3rem);
    --text-6xl: clamp(3rem, 2.5rem + 3vw, 3.75rem);
    --text-7xl: clamp(3.5rem, 2.8rem + 4vw, 4.5rem);

    /* -----------------------------------------
       BORDER RADIUS
       ----------------------------------------- */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-full: 9999px;

    /* -----------------------------------------
       SHADOWS
       ----------------------------------------- */
    --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);

    /* Brand glow shadows */
    --shadow-brand: 0 4px 14px 0 rgba(var(--brand-accent-rgb), 0.25);
    --shadow-brand-lg: 0 8px 24px 0 rgba(var(--brand-accent-rgb), 0.3);

    /* -----------------------------------------
       SPACING
       ----------------------------------------- */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --space-32: 8rem;

    /* Section spacing */
    --section-py: clamp(4rem, 8vw, 7rem);
    --section-py-sm: clamp(3rem, 6vw, 5rem);
    --section-py-lg: clamp(5rem, 10vw, 9rem);

    /* -----------------------------------------
       TRANSITIONS
       ----------------------------------------- */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 350ms ease;
    --transition-slower: 500ms ease;

    /* Cubic bezier curves */
    --ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
    --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);

    /* -----------------------------------------
       Z-INDEX SCALE
       ----------------------------------------- */
    --z-dropdown: 1000;
    --z-sticky: 1020;
    --z-fixed: 1030;
    --z-modal-backdrop: 1040;
    --z-modal: 1050;
    --z-popover: 1060;
    --z-tooltip: 1070;

    /* -----------------------------------------
       LAYOUT
       ----------------------------------------- */
    --container-max: 1320px;
    --container-narrow: 720px;
    --container-wide: 1536px;

    --header-height: 80px;
    --header-height-scrolled: 64px;
}

/* =============================================================================
   2. HONDA BRAND PRESET
   Per Honda Brand Fundamentals - eCommerce Reference Guide (March 2024)
   ============================================================================= */

.brand-honda {
    /* Honda Primary Colors */
    --brand-primary: #E3173E;          /* Honda Red */
    --brand-primary-hover: #A21C1D;    /* Honda Red Hover */
    --brand-primary-bright: #FF2841;   /* Honda Red Bright */

    --brand-secondary: #1B1B1B;        /* Honda Black - for headlines */
    --brand-accent: #E3173E;           /* Honda Red */

    /* RGB versions for rgba() usage */
    --brand-accent-rgb: 227, 23, 62;
    --brand-primary-rgb: 227, 23, 62;

    /* Honda Text Colors */
    --brand-text: #1B1B1B;             /* Honda Black for headlines */
    --brand-text-secondary: #4A4A4A;   /* Honda Grey for body text */
    --brand-text-muted: #707070;       /* Honda Light Grey */

    /* Honda Dark (for footer/dark sections) */
    --brand-dark: #1B1B1B;             /* Honda Black */
    --brand-dark-rgb: 27, 27, 27;

    /* Honda Typography - National for headlines, Helvetica Neue for body */
    --font-heading: 'National', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-body: 'Helvetica Neue', Helvetica, Arial, sans-serif;

    /* Button styling per Honda standards */
    --btn-letter-spacing: 1px;
    --btn-font-size: 13px;
}

/* -----------------------------------------------------------------------------
   Honda Accessibility Best Practices (per Brand Fundamentals)
   - WCAG 2.1 AA compliance required
   - Color contrast must meet guidelines
   - Keyboard accessible
   - Alt text on images
   ----------------------------------------------------------------------------- */

.brand-honda :focus-visible {
    outline: 2px solid var(--brand-accent);
    outline-offset: 2px;
}

/* Ensure links have sufficient contrast */
.brand-honda a:not(.btn) {
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.brand-honda a:not(.btn):hover {
    text-decoration: underline;
}

/* Skip to content link for accessibility */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--brand-accent);
    color: #fff;
    padding: var(--space-2) var(--space-4);
    z-index: 9999;
    text-decoration: none;
    font-weight: 600;
}

.skip-link:focus {
    top: 0;
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* =============================================================================
   3. BASE RESET & FOUNDATION
   ============================================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: var(--body-line-height);
    color: var(--brand-text);
    background-color: var(--brand-bg);
    overflow-x: hidden;
}

/* Smooth scroll with Lenis support */
html.lenis,
html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

/* Selection color */
::selection {
    background-color: rgba(var(--brand-accent-rgb), 0.2);
    color: var(--brand-text);
}

/* Focus styles */
:focus-visible {
    outline: 2px solid var(--brand-accent);
    outline-offset: 2px;
}

:focus:not(:focus-visible) {
    outline: none;
}

/* Images */
img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

/* Form elements */
input,
button,
textarea,
select {
    font: inherit;
}

/* Links */
a {
    color: var(--brand-accent);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--brand-primary);
}

/* Lists */
ul,
ol {
    padding-left: 1.5rem;
}

/* Horizontal rule */
hr {
    border: 0;
    height: 1px;
    background-color: var(--brand-border);
    margin: var(--space-8) 0;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: var(--brand-bg-alt);
}

::-webkit-scrollbar-thumb {
    background: var(--brand-border-strong);
    border-radius: 5px;
    border: 2px solid var(--brand-bg-alt);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--brand-secondary);
}

/* Firefox scrollbar */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--brand-border-strong) var(--brand-bg-alt);
}

/* =============================================================================
   4. TYPOGRAPHY
   ============================================================================= */

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-heading);
    font-weight: var(--heading-weight);
    line-height: var(--heading-line-height);
    letter-spacing: var(--heading-letter-spacing);
    color: var(--brand-text);
    margin-top: 0;
    margin-bottom: 0.5em;
}

h1, .h1 { font-size: var(--text-5xl); }
h2, .h2 { font-size: var(--text-4xl); }
h3, .h3 { font-size: var(--text-3xl); }
h4, .h4 { font-size: var(--text-2xl); }
h5, .h5 { font-size: var(--text-xl); }
h6, .h6 { font-size: var(--text-lg); }

/* Display headings */
.display-1 {
    font-size: var(--text-7xl);
    font-weight: 800;
    letter-spacing: -0.03em;
}

.display-2 {
    font-size: var(--text-6xl);
    font-weight: 800;
    letter-spacing: -0.03em;
}

.display-3 {
    font-size: var(--text-5xl);
    font-weight: 700;
    letter-spacing: -0.02em;
}

/* Lead text */
.lead {
    font-size: var(--text-xl);
    line-height: 1.5;
    color: var(--brand-text-secondary);
}

/* Small text */
.small,
small {
    font-size: var(--text-sm);
}

.text-xs {
    font-size: var(--text-xs);
}

/* Text colors */
.text-muted { color: var(--brand-text-muted) !important; }
.text-secondary { color: var(--brand-text-secondary) !important; }
.text-brand { color: var(--brand-accent) !important; }
.text-primary-brand { color: var(--brand-primary) !important; }

/* Gradient text */
.text-gradient {
    background: linear-gradient(135deg, var(--brand-accent), var(--brand-primary));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Text transforms */
.text-uppercase {
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.text-capitalize {
    text-transform: capitalize;
}

/* Font weights */
.fw-medium { font-weight: 500; }
.fw-semibold { font-weight: 600; }
.fw-bold { font-weight: 700; }
.fw-extrabold { font-weight: 800; }

/* Line heights */
.lh-tight { line-height: 1.2; }
.lh-snug { line-height: 1.375; }
.lh-normal { line-height: 1.5; }
.lh-relaxed { line-height: 1.625; }

/* Letter spacing */
.tracking-tight { letter-spacing: -0.025em; }
.tracking-normal { letter-spacing: 0; }
.tracking-wide { letter-spacing: 0.05em; }
.tracking-wider { letter-spacing: 0.1em; }

/* Paragraphs */
p {
    margin-top: 0;
    margin-bottom: 1rem;
}

p:last-child {
    margin-bottom: 0;
}

/* Lists */
.list-unstyled {
    padding-left: 0;
    list-style: none;
}

.list-inline {
    padding-left: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

/* Blockquote */
blockquote,
.blockquote {
    font-size: var(--text-xl);
    font-style: italic;
    color: var(--brand-text-secondary);
    border-left: 4px solid var(--brand-accent);
    padding-left: var(--space-6);
    margin: var(--space-8) 0;
}

/* Code */
code {
    font-family: var(--font-mono);
    font-size: 0.875em;
    color: var(--brand-accent);
    background-color: var(--brand-bg-alt);
    padding: 0.125em 0.375em;
    border-radius: var(--radius-sm);
}

pre {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    background-color: var(--brand-bg-alt);
    padding: var(--space-4);
    border-radius: var(--radius-md);
    overflow-x: auto;
}

pre code {
    background: none;
    padding: 0;
}

/* Section titles */
.section-title {
    margin-bottom: var(--space-4);
}

.section-subtitle {
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-accent);
    margin-bottom: var(--space-3);
}

.section-description {
    font-size: var(--text-lg);
    color: var(--brand-text-secondary);
    max-width: 640px;
}

/* Eyebrow text */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-accent);
    margin-bottom: var(--space-4);
}

.eyebrow::before {
    content: '';
    width: 24px;
    height: 2px;
    background-color: var(--brand-accent);
}

/* Price styling */
.price {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--brand-text);
}

.price--large {
    font-size: var(--text-3xl);
}

.price--accent {
    color: var(--brand-accent);
}

.price .currency,
.price .cents {
    font-size: 0.65em;
    vertical-align: super;
}

.price .period {
    font-size: var(--text-sm);
    font-weight: 400;
    color: var(--brand-text-muted);
}

/* =============================================================================
   5. UTILITIES
   ============================================================================= */

/* Backgrounds */
.bg-default { background-color: var(--brand-bg) !important; }
.bg-brand { background-color: var(--brand-accent) !important; color: var(--brand-text-inverse); }
.bg-brand-primary { background-color: var(--brand-primary) !important; }
.bg-light { background-color: var(--brand-bg-alt) !important; }
.bg-dark { background-color: var(--brand-primary) !important; color: var(--brand-text-inverse); }
.bg-surface { background-color: var(--brand-surface) !important; }

/* Accent background (from mixin) */
.bg-accent {
    background-color: var(--brand-accent) !important;
    color: var(--brand-text-inverse);
}

/* Gradient backgrounds */
.bg-gradient {
    background: linear-gradient(135deg, var(--brand-accent), var(--brand-primary)) !important;
    color: var(--brand-text-inverse);
}

.bg-gradient-brand {
    background: linear-gradient(135deg, var(--brand-accent), var(--brand-primary)) !important;
    color: var(--brand-text-inverse);
}

.bg-gradient-dark {
    background: linear-gradient(180deg, var(--brand-primary), #000) !important;
    color: var(--brand-text-inverse);
}

/* Glass effect */
.bg-glass {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.bg-glass-dark {
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--brand-text-inverse);
}

/* Borders */
.border-brand { border-color: var(--brand-accent) !important; }
.border-light { border-color: var(--brand-border-light) !important; }

/* Shadows */
.shadow-brand { box-shadow: var(--shadow-brand) !important; }
.shadow-brand-lg { box-shadow: var(--shadow-brand-lg) !important; }

/* Section padding */
.section-py {
    padding-top: var(--section-py);
    padding-bottom: var(--section-py);
}

.section-py-sm {
    padding-top: var(--section-py-sm);
    padding-bottom: var(--section-py-sm);
}

.section-py-lg {
    padding-top: var(--section-py-lg);
    padding-bottom: var(--section-py-lg);
}

/* =============================================================================
   SPACING UTILITIES - For Offline.Boxes module spacing
============================================================================= */

/* Top Spacing */
.spacing-top-none { padding-top: 0 !important; }
.spacing-top-small { padding-top: var(--space-8) !important; }  /* 32px */
.spacing-top-default { padding-top: var(--space-16) !important; } /* 64px */
.spacing-top-large { padding-top: var(--space-24) !important; } /* 96px */
.spacing-top-xlarge { padding-top: var(--space-32) !important; } /* 128px */

/* Bottom Spacing */
.spacing-bottom-none { padding-bottom: 0 !important; }
.spacing-bottom-small { padding-bottom: var(--space-8) !important; }  /* 32px */
.spacing-bottom-default { padding-bottom: var(--space-16) !important; } /* 64px */
.spacing-bottom-large { padding-bottom: var(--space-24) !important; } /* 96px */
.spacing-bottom-xlarge { padding-bottom: var(--space-32) !important; } /* 128px */

/* Mobile adjustments for spacing */
@media (max-width: 768px) {
    .spacing-top-default { padding-top: var(--space-12) !important; }
    .spacing-top-large { padding-top: var(--space-16) !important; }
    .spacing-top-xlarge { padding-top: var(--space-20) !important; }

    .spacing-bottom-default { padding-bottom: var(--space-12) !important; }
    .spacing-bottom-large { padding-bottom: var(--space-16) !important; }
    .spacing-bottom-xlarge { padding-bottom: var(--space-20) !important; }
}

/* Containers */
.container-narrow {
    max-width: var(--container-narrow);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--space-4);
    padding-right: var(--space-4);
}

.container-wide {
    max-width: var(--container-wide);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--space-4);
    padding-right: var(--space-4);
}

/* =============================================================================
   SECTION BACKGROUNDS
============================================================================= */

/* Sections with backgrounds need relative positioning */
.section {
    position: relative;
}

/* Background container - absolute positioned behind content */
.section__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.section__bg-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.section__bg-overlay {
    position: absolute;
    inset: 0;
}

.section__bg-overlay--dark {
    background: rgba(0, 0, 0, 0.6);
}

.section__bg-overlay--light {
    background: rgba(255, 255, 255, 0.85);
}

.section__bg-overlay--gradient {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
}

.section__bg-overlay--brand {
    background: rgba(var(--brand-accent-rgb), 0.85);
}

/* Ensure section content is above background */
.section > .container {
    position: relative;
    z-index: 1;
}

/* Parallax background images need extra height to allow movement */
.section__bg-image.parallax-element {
    height: 130%;
    width: 100%;
    position: absolute;
    top: -15%;
    left: 0;
    will-change: transform;
    object-fit: cover;
}

/* Overlays */
.overlay {
    position: absolute;
    inset: 0;
}

.overlay-dark {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
}

.overlay-light {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.8) 100%);
}

.overlay-brand {
    background: linear-gradient(180deg, rgba(var(--brand-accent-rgb), 0.5) 0%, rgba(var(--brand-primary-rgb), 0.8) 100%);
}

.overlay-gradient-bottom {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, transparent 100%);
}

/* Aspect ratios */
.aspect-video { aspect-ratio: 16 / 9; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-4-3 { aspect-ratio: 4 / 3; }
.aspect-3-2 { aspect-ratio: 3 / 2; }

/* Object fit */
.object-cover {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.object-contain {
    object-fit: contain;
}

/* Visibility */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Transitions */
.transition-all { transition: all var(--transition-base); }
.transition-colors { transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast); }
.transition-transform { transition: transform var(--transition-base); }
.transition-opacity { transition: opacity var(--transition-base); }

/* Hover effects */
.hover-lift {
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.hover-scale {
    transition: transform var(--transition-base);
}

.hover-scale:hover {
    transform: scale(1.02);
}

.hover-scale-img {
    overflow: hidden;
}

.hover-scale-img img {
    transition: transform var(--transition-slow);
}

.hover-scale-img:hover img {
    transform: scale(1.08);
}

/* Dividers */
.divider {
    width: 100%;
    height: 1px;
    background-color: var(--brand-border);
}

.divider--brand {
    height: 3px;
    width: 60px;
    background-color: var(--brand-accent);
}

/* Badges */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25em 0.75em;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-full);
    background-color: var(--brand-bg-alt);
    color: var(--brand-text-secondary);
}

.badge--brand {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
}

.badge--success {
    background-color: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
}

.badge--new {
    background-color: var(--brand-accent);
    color: var(--brand-text-inverse);
}

.badge--used {
    background-color: var(--brand-secondary);
    color: var(--brand-text-inverse);
}

.badge--special {
    background-color: var(--color-error);
    color: var(--brand-text-inverse);
}

/* Icons */
.icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.icon--sm { width: 1rem; height: 1rem; }
.icon--md { width: 1.5rem; height: 1.5rem; }
.icon--lg { width: 2rem; height: 2rem; }
.icon--xl { width: 3rem; height: 3rem; }

.icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    background-color: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
}

.icon-box--lg {
    width: 64px;
    height: 64px;
    font-size: 1.5rem;
}

.icon-box--sm {
    width: 36px;
    height: 36px;
    font-size: 0.875rem;
}

/* Skeleton loading */
.skeleton {
    background: linear-gradient(90deg, var(--brand-bg-alt) 25%, var(--brand-border-light) 50%, var(--brand-bg-alt) 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: var(--radius-sm);
}

@keyframes skeleton-loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* =============================================================================
   6. BUTTONS
   ============================================================================= */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0.75rem 1.5rem;
    font-family: var(--font-heading, var(--font-body));
    font-size: var(--btn-font-size, var(--text-base));
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: var(--btn-letter-spacing, 0);
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    transition: all var(--transition-base) var(--ease-out-expo);
}

.btn:focus-visible {
    outline: 2px solid var(--brand-accent);
    outline-offset: 2px;
}

.btn:disabled,
.btn.disabled {
    opacity: 0.5;
    pointer-events: none;
}

.btn svg,
.btn .icon {
    width: 1.25em;
    height: 1.25em;
    flex-shrink: 0;
}

/* Size variants */
.btn-sm {
    padding: 0.5rem 1rem;
    font-size: var(--text-sm);
}

.btn-lg {
    padding: 1rem 2rem;
    font-size: var(--text-lg);
}

.btn-xl {
    padding: 1.25rem 2.5rem;
    font-size: var(--text-xl);
}

/* Icon only buttons */
.btn-icon {
    padding: 0.75rem;
    aspect-ratio: 1;
}

.btn-icon.btn-sm { padding: 0.5rem; }
.btn-icon.btn-lg { padding: 1rem; }

/* Primary / Brand button - Honda Red per Brand Fundamentals */
.btn-primary,
.btn-brand {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
    color: var(--brand-text-inverse);
}

.btn-primary:hover,
.btn-brand:hover {
    background-color: var(--brand-primary-hover, var(--brand-primary));
    border-color: var(--brand-primary-hover, var(--brand-primary));
    transform: translateY(-2px);
    box-shadow: var(--shadow-brand);
}

.btn-primary:focus-visible,
.btn-brand:focus-visible {
    outline: 1px solid var(--brand-accent);
    outline-offset: 2px;
}

.btn-primary:active,
.btn-brand:active {
    transform: translateY(0);
}

/* Disabled state per Honda guidelines */
.btn-primary:disabled,
.btn-brand:disabled,
.btn-primary.disabled,
.btn-brand.disabled {
    background-color: var(--brand-text-muted, #707070);
    border-color: var(--brand-text-muted, #707070);
    color: #fff;
    opacity: 1;
}

/* Gradient variant */
.btn-gradient {
    background: linear-gradient(135deg, var(--brand-accent), var(--brand-primary));
    border: none;
    color: var(--brand-text-inverse);
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.btn-gradient::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--brand-primary), var(--brand-accent));
    opacity: 0;
    transition: opacity var(--transition-base);
    z-index: -1;
}

.btn-gradient:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-brand-lg);
}

.btn-gradient:hover::before {
    opacity: 1;
}

/* Secondary button */
.btn-secondary {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
    color: var(--brand-text-inverse);
}

.btn-secondary:hover {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    transform: translateY(-2px);
}

/* Outline buttons */
.btn-outline,
.btn-outline-primary {
    background-color: transparent;
    border-color: var(--brand-accent);
    color: var(--brand-accent);
}

.btn-outline:hover,
.btn-outline-primary:hover {
    background-color: var(--brand-accent);
    color: var(--brand-text-inverse);
    transform: translateY(-2px);
}

.btn-outline-dark {
    background-color: transparent;
    border-color: var(--brand-primary);
    color: var(--brand-primary);
}

.btn-outline-dark:hover {
    background-color: var(--brand-primary);
    color: var(--brand-text-inverse);
}

.btn-outline-light {
    background-color: transparent;
    border-color: var(--brand-text-inverse);
    color: var(--brand-text-inverse);
}

.btn-outline-light:hover {
    background-color: var(--brand-text-inverse);
    color: var(--brand-primary);
}

/* Ghost / Link buttons */
.btn-ghost {
    background-color: transparent;
    border-color: transparent;
    color: var(--brand-accent);
}

.btn-ghost:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
}

.btn-link {
    background-color: transparent;
    border-color: transparent;
    color: var(--brand-accent);
    padding-left: 0;
    padding-right: 0;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.btn-link:hover {
    color: var(--brand-primary);
}

/* Light / Dark variants */
.btn-light {
    background-color: var(--brand-bg);
    border-color: var(--brand-border);
    color: var(--brand-text);
}

.btn-light:hover {
    background-color: var(--brand-bg-alt);
    border-color: var(--brand-border-strong);
}

.btn-dark {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: var(--brand-text-inverse);
}

.btn-dark:hover {
    background-color: #000;
    border-color: #000;
}

.btn-white {
    background-color: #fff;
    border-color: #fff;
    color: var(--brand-primary);
}

.btn-white:hover {
    background-color: var(--brand-bg-alt);
    border-color: var(--brand-bg-alt);
}

/* CTA Button */
.btn-cta {
    padding: 1rem 2rem;
    font-size: var(--text-lg);
    font-weight: 700;
    background: linear-gradient(135deg, var(--brand-accent), var(--brand-primary));
    border: none;
    color: var(--brand-text-inverse);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-brand);
    position: relative;
    overflow: hidden;
}

.btn-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--brand-primary), var(--brand-accent));
    opacity: 0;
    transition: opacity var(--transition-base);
}

.btn-cta span {
    position: relative;
    z-index: 1;
}

.btn-cta:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-brand-lg);
}

.btn-cta:hover::before {
    opacity: 1;
}

.btn-cta:active {
    transform: translateY(-1px);
}

/* =============================================================================
   7. FORMS
   ============================================================================= */

.form-group {
    margin-bottom: var(--space-5);
}

.form-label {
    display: block;
    margin-bottom: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text);
}

.form-label .required {
    color: var(--color-error);
    margin-left: 2px;
}

.form-control {
    display: block;
    width: 100%;
    padding: 0.75rem 1rem;
    font-family: inherit;
    font-size: var(--text-base);
    font-weight: 400;
    line-height: 1.5;
    color: var(--brand-text);
    background-color: var(--brand-surface);
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    appearance: none;
}

.form-control::placeholder {
    color: var(--brand-text-muted);
}

.form-control:hover {
    border-color: var(--brand-border-strong);
}

.form-control:focus {
    outline: none;
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb), 0.15);
}

.form-control:disabled,
.form-control[readonly] {
    background-color: var(--brand-bg-alt);
    opacity: 0.7;
    cursor: not-allowed;
}

.form-control.is-invalid {
    border-color: var(--color-error);
}

.form-control.is-invalid:focus {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}

.form-control.is-valid {
    border-color: var(--color-success);
}

.form-control.is-valid:focus {
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15);
}

/* Size variants */
.form-control-sm {
    padding: 0.5rem 0.75rem;
    font-size: var(--text-sm);
    border-radius: var(--radius-sm);
}

.form-control-lg {
    padding: 1rem 1.25rem;
    font-size: var(--text-lg);
    border-radius: var(--radius-lg);
}

/* Textarea */
textarea.form-control {
    min-height: 120px;
    resize: vertical;
}

/* Select */
.form-select {
    display: block;
    width: 100%;
    padding: 0.75rem 2.5rem 0.75rem 1rem;
    font-family: inherit;
    font-size: var(--text-base);
    font-weight: 400;
    line-height: 1.5;
    color: var(--brand-text);
    background-color: var(--brand-surface);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23475569' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1rem;
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    appearance: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.form-select:hover {
    border-color: var(--brand-border-strong);
}

.form-select:focus {
    outline: none;
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb), 0.15);
}

/* Checkbox & Radio */
.form-check {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}

.form-check-input {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    background-color: var(--brand-surface);
    border: 1.5px solid var(--brand-border-strong);
    appearance: none;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.form-check-input[type="checkbox"] {
    border-radius: var(--radius-sm);
}

.form-check-input[type="radio"] {
    border-radius: 50%;
}

.form-check-input:hover {
    border-color: var(--brand-accent);
}

.form-check-input:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb), 0.15);
}

.form-check-input:checked {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
}

.form-check-input:checked[type="checkbox"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

.form-check-input:checked[type="radio"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}

.form-check-label {
    font-size: var(--text-base);
    color: var(--brand-text);
    cursor: pointer;
}

/* Floating labels */
.form-floating {
    position: relative;
}

.form-floating .form-control {
    padding-top: 1.625rem;
    padding-bottom: 0.5rem;
}

.form-floating .form-control::placeholder {
    color: transparent;
}

.form-floating .form-label {
    position: absolute;
    top: 0;
    left: 1rem;
    height: 100%;
    padding: 1rem 0;
    pointer-events: none;
    transform-origin: left top;
    transition: all var(--transition-fast);
    color: var(--brand-text-muted);
    margin-bottom: 0;
}

.form-floating .form-control:focus ~ .form-label,
.form-floating .form-control:not(:placeholder-shown) ~ .form-label {
    transform: translateY(-0.5rem) scale(0.85);
    color: var(--brand-accent);
}

/* Feedback messages */
.form-text {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--text-sm);
    color: var(--brand-text-muted);
}

.invalid-feedback {
    display: none;
    margin-top: var(--space-2);
    font-size: var(--text-sm);
    color: var(--color-error);
}

.is-invalid ~ .invalid-feedback {
    display: block;
}

.valid-feedback {
    display: none;
    margin-top: var(--space-2);
    font-size: var(--text-sm);
    color: var(--color-success);
}

.is-valid ~ .valid-feedback {
    display: block;
}

/* =============================================================================
   8. CARDS
   ============================================================================= */

.card {
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: var(--brand-surface);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all var(--transition-base) var(--ease-out-expo);
}

/* Elevated card */
.card--elevated,
.card-elevated {
    box-shadow: var(--shadow-md);
}

.card--elevated:hover,
.card-elevated:hover {
    box-shadow: var(--shadow-xl);
    transform: translateY(-4px);
}

/* Flat card */
.card--flat,
.card-flat {
    box-shadow: none;
    border: 1px solid var(--brand-border);
}

/* Bordered card */
.card--bordered,
.card-bordered {
    box-shadow: none;
    border: 1px solid var(--brand-border);
}

.card--bordered:hover,
.card-bordered:hover {
    border-color: var(--brand-accent);
}

/* Glass card */
.card--glass,
.card-glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: var(--shadow-lg);
}

.card--glass:hover,
.card-glass:hover {
    background: rgba(255, 255, 255, 0.85);
}

/* Card components */
.card__image {
    position: relative;
    overflow: hidden;
}

.card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow) var(--ease-out-expo);
}

.card:hover .card__image img {
    transform: scale(1.05);
}

.card__badge {
    position: absolute;
    top: var(--space-3);
    left: var(--space-3);
    z-index: 2;
}

.card__body {
    flex: 1;
    padding: var(--space-5);
}

.card__title {
    font-size: var(--text-xl);
    font-weight: 600;
    margin-bottom: var(--space-2);
    color: var(--brand-text);
}

.card__title a {
    color: inherit;
    text-decoration: none;
}

.card__title a:hover {
    color: var(--brand-accent);
}

.card__subtitle {
    font-size: var(--text-sm);
    color: var(--brand-text-muted);
    margin-bottom: var(--space-3);
}

.card__text {
    color: var(--brand-text-secondary);
    margin-bottom: var(--space-4);
}

.card__footer {
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid var(--brand-border-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.card__meta {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    font-size: var(--text-sm);
    color: var(--brand-text-muted);
}

/* Feature card */
.card--feature {
    padding: var(--space-8);
    text-align: center;
}

.card--feature .card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto var(--space-5);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-lg);
    background: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
    font-size: 1.75rem;
    transition: all var(--transition-base);
}

.card--feature:hover .card__icon {
    background: var(--brand-accent);
    color: var(--brand-text-inverse);
    transform: scale(1.1);
}

.card--feature .card__title {
    font-size: var(--text-lg);
}

/* Stat card */
.card--stat {
    padding: var(--space-6);
    text-align: center;
}

.card--stat .card__value {
    font-size: var(--text-4xl);
    font-weight: 700;
    color: var(--brand-accent);
    line-height: 1;
    margin-bottom: var(--space-2);
}

.card--stat .card__label {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* =============================================================================
   9. NAVIGATION & HEADER
   ============================================================================= */

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--z-sticky);
    background-color: var(--brand-bg);
    transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
    will-change: transform;
}

.site-header.is-scrolled {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
}

.site-header.is-scrolled .header__inner {
    height: var(--header-height-scrolled);
}

.site-header.is-hidden {
    transform: translateY(-100%);
}

.header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--header-height);
    transition: height 0.3s ease;
}

/* Logo */
.header__logo {
    flex-shrink: 0;
}

.header__logo a {
    display: flex;
    align-items: center;
}

.header__logo img {
    height: 48px;
    width: auto;
    transition: height 0.3s ease;
}

.is-scrolled .header__logo img {
    height: 40px;
}

/* Main navigation */
.main-nav {
    display: none;
}

@media (min-width: 1200px) {
    .main-nav {
        display: flex;
        align-items: center;
        gap: var(--space-1);
    }
}

.nav-item {
    position: relative;
}

.nav-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-base);
    font-weight: 500;
    color: var(--brand-text);
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.nav-link:hover,
.nav-link.active {
    color: var(--brand-accent);
    background-color: rgba(var(--brand-accent-rgb), 0.05);
}

/* Navigation Dropdown menu (using .nav-dropdown to avoid Bootstrap conflict) */
.nav-item.has-dropdown {
    position: relative;
}

.nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    padding: var(--space-2);
    background-color: var(--brand-surface);
    border: 1px solid var(--brand-border-light);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all var(--transition-base) var(--ease-out-expo);
    list-style: none;
    margin: 0;
    z-index: var(--z-dropdown);
}

.nav-item.has-dropdown:hover > .nav-dropdown,
.nav-item.has-dropdown:focus-within > .nav-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-dropdown li {
    margin: 0;
}

.nav-dropdown a {
    display: block;
    padding: var(--space-3) var(--space-4);
    color: var(--brand-text);
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.nav-dropdown a:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
}

.dropdown-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-base);
    color: var(--brand-text);
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.dropdown-item:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
}

/* Header actions */
.header__actions {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.header__cta {
    display: none;
}

@media (min-width: 1200px) {
    .header__cta {
        display: flex;
        align-items: center;
        gap: var(--space-3);
    }
}

/* Mobile menu toggle */
.menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
}

@media (min-width: 1200px) {
    .menu-toggle {
        display: none;
    }
}

.menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--brand-text);
    transition: all var(--transition-fast);
}

.menu-toggle span:nth-child(1) {
    transform: translateY(-6px);
}

.menu-toggle span:nth-child(3) {
    transform: translateY(6px);
}

.menu-toggle.is-active span:nth-child(1) {
    transform: translateY(0) rotate(45deg);
}

.menu-toggle.is-active span:nth-child(2) {
    opacity: 0;
}

.menu-toggle.is-active span:nth-child(3) {
    transform: translateY(-2px) rotate(-45deg);
}

/* Mobile navigation */
.mobile-nav {
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--brand-bg);
    padding: var(--space-6);
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform var(--transition-base) var(--ease-out-expo);
    z-index: var(--z-fixed);
}

.mobile-nav.is-open {
    transform: translateX(0);
}

@media (min-width: 1200px) {
    .mobile-nav {
        display: none;
    }
}

.mobile-nav__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mobile-nav__item {
    border-bottom: 1px solid var(--brand-border-light);
}

.mobile-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) 0;
    font-size: var(--text-lg);
    font-weight: 500;
    color: var(--brand-text);
    text-decoration: none;
}

.mobile-nav__link:hover {
    color: var(--brand-accent);
}

.mobile-nav__cta {
    margin-top: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

/* Language switcher */
.lang-switcher {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    background-color: var(--brand-bg-alt);
    border-radius: var(--radius-md);
}

.lang-switcher__btn {
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.lang-switcher__btn:hover {
    color: var(--brand-text);
}

.lang-switcher__btn.active {
    background-color: var(--brand-surface);
    color: var(--brand-accent);
    box-shadow: var(--shadow-sm);
}

/* Transparent header for landing pages */
.header-transparent .site-header {
    background-color: transparent;
}

.header-transparent .site-header:not(.is-scrolled) .nav-link {
    color: var(--brand-text-inverse);
}

.header-transparent .site-header:not(.is-scrolled) .nav-link:hover {
    color: var(--brand-accent);
}

.header-transparent .site-header:not(.is-scrolled) .header__logo img {
    filter: brightness(0) invert(1);
}

.header-transparent .site-header:not(.is-scrolled) .menu-toggle span {
    background-color: var(--brand-text-inverse);
}

/* =============================================================================
   10. FOOTER
   ============================================================================= */

.site-footer {
    background-color: var(--brand-dark, #1a1a2e);
    color: var(--brand-text-inverse);
    padding-top: var(--space-16);
}

.footer__main {
    display: grid;
    grid-template-columns: 2fr repeat(3, 1fr);
    gap: var(--space-12);
    padding-bottom: var(--space-12);
}

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

@media (max-width: 576px) {
    .footer__main {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }
}

/* Footer brand */
.footer__brand .footer__logo {
    margin-bottom: var(--space-5);
}

.footer__brand .footer__logo img {
    height: 48px;
    width: auto;
    filter: brightness(0) invert(1);
}

.footer__brand .footer__description {
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: var(--space-6);
    line-height: 1.7;
}

.footer__social {
    display: flex;
    gap: var(--space-3);
}

.footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--brand-text-inverse);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.footer__social-link:hover {
    background-color: var(--brand-accent);
    transform: translateY(-2px);
}

.footer__social-link svg {
    width: 20px;
    height: 20px;
}

/* Footer columns */
.footer__column h5 {
    color: var(--brand-text-inverse);
    font-size: var(--text-base);
    font-weight: 600;
    margin-bottom: var(--space-5);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.footer__links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer__links li {
    margin-bottom: var(--space-3);
}

.footer__links a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    font-size: var(--text-base);
    transition: all var(--transition-fast);
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.footer__links a:hover {
    color: var(--brand-accent);
    transform: translateX(4px);
}

/* Footer contact info */
.footer__contact {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer__contact-item {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    color: rgba(255, 255, 255, 0.8);
}

.footer__contact-item .icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--brand-accent);
    margin-top: 2px;
}

.footer__contact-item a {
    color: inherit;
    text-decoration: none;
}

.footer__contact-item a:hover {
    color: var(--brand-accent);
}

/* Footer hours */
.footer__hours {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer__hours li {
    display: flex;
    justify-content: space-between;
    padding: var(--space-2) 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-size: var(--text-sm);
    color: rgba(255, 255, 255, 0.8);
}

.footer__hours li:last-child {
    border-bottom: none;
}

.footer__hours li strong {
    color: var(--brand-text-inverse);
}

/* Footer bottom bar */
.footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: var(--space-6) 0;
}

.footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
}

@media (max-width: 768px) {
    .footer__bottom-inner {
        flex-direction: column;
        text-align: center;
    }
}

.footer__copyright {
    color: rgba(255, 255, 255, 0.6);
    font-size: var(--text-sm);
}

.footer__copyright a {
    color: var(--brand-accent);
    text-decoration: none;
}

.footer__copyright a:hover {
    text-decoration: underline;
}

.footer__legal {
    display: flex;
    gap: var(--space-6);
}

.footer__legal a {
    color: rgba(255, 255, 255, 0.6);
    font-size: var(--text-sm);
    text-decoration: none;
}

.footer__legal a:hover {
    color: var(--brand-accent);
}

/* Back to top button */
.back-to-top {
    position: fixed;
    bottom: var(--space-8);
    right: var(--space-8);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--brand-accent);
    color: var(--brand-text-inverse);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all var(--transition-base);
    z-index: var(--z-fixed);
    box-shadow: var(--shadow-lg);
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-brand-lg);
}

.back-to-top svg {
    width: 24px;
    height: 24px;
}

/* =============================================================================
   11. VEHICLE CARD
   ============================================================================= */

.vehicle-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: var(--brand-surface);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all var(--transition-base) var(--ease-out-expo);
}

.vehicle-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
}

.vehicle-card:hover .vehicle-card__image img {
    transform: scale(1.08);
}

.vehicle-card:hover .vehicle-card__quick-view {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* Vehicle card image */
.vehicle-card__image {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: var(--brand-bg-alt);
}

.vehicle-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow) var(--ease-out-expo);
}

.vehicle-card__badges {
    position: absolute;
    top: var(--space-3);
    left: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    z-index: 2;
}

.vehicle-card__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-sm);
}

.vehicle-card__badge--new {
    background-color: var(--brand-accent);
    color: var(--brand-text-inverse);
}

.vehicle-card__badge--used {
    background-color: var(--brand-secondary);
    color: var(--brand-text-inverse);
}

.vehicle-card__badge--certified {
    background-color: var(--color-success);
    color: var(--brand-text-inverse);
}

.vehicle-card__badge--featured {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: var(--brand-text);
}

.vehicle-card__badge--reduced {
    background-color: var(--color-error);
    color: var(--brand-text-inverse);
}

.vehicle-card__favorite {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.9);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: all var(--transition-fast);
    z-index: 2;
}

.vehicle-card__favorite svg {
    width: 20px;
    height: 20px;
    color: var(--brand-text-muted);
    transition: all var(--transition-fast);
}

.vehicle-card__favorite:hover {
    background-color: #fff;
    transform: scale(1.1);
}

.vehicle-card__favorite:hover svg {
    color: var(--color-error);
}

.vehicle-card__favorite.is-active svg {
    color: var(--color-error);
    fill: var(--color-error);
}

.vehicle-card__gallery-count {
    position: absolute;
    bottom: var(--space-3);
    right: var(--space-3);
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: 0.25rem 0.5rem;
    background-color: rgba(0, 0, 0, 0.7);
    color: var(--brand-text-inverse);
    font-size: var(--text-xs);
    font-weight: 500;
    border-radius: var(--radius-sm);
    z-index: 2;
}

/* Vehicle card body */
.vehicle-card__body {
    flex: 1;
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
}

.vehicle-card__title {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: var(--space-1);
}

.vehicle-card__title a {
    color: var(--brand-text);
    text-decoration: none;
}

.vehicle-card__title a:hover {
    color: var(--brand-accent);
}

.vehicle-card__subtitle {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    margin-bottom: var(--space-4);
}

.vehicle-card__specs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--brand-border-light);
}

.vehicle-card__spec {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.vehicle-card__spec svg,
.vehicle-card__spec .icon {
    width: 1rem;
    height: 1rem;
    color: var(--brand-text-muted);
}

/* Vehicle card price */
.vehicle-card__price {
    margin-top: auto;
}

.vehicle-card__price-current {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--brand-accent);
    line-height: 1;
}

.vehicle-card__price-current .currency {
    font-size: 0.65em;
    vertical-align: super;
}

.vehicle-card__price-msrp {
    font-size: var(--text-sm);
    color: var(--brand-text-muted);
    text-decoration: line-through;
    margin-left: var(--space-2);
}

.vehicle-card__price-payment {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    margin-top: var(--space-1);
}

.vehicle-card__price-payment strong {
    color: var(--brand-text);
}

.vehicle-card__price-savings {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    margin-top: var(--space-2);
    padding: 0.25rem 0.5rem;
    font-size: var(--text-xs);
    font-weight: 600;
    background-color: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
    border-radius: var(--radius-sm);
}

/* Vehicle card actions */
.vehicle-card__actions {
    display: flex;
    gap: var(--space-3);
    padding-top: var(--space-4);
}

.vehicle-card__actions .btn {
    flex: 1;
}

/* Vehicle grid */
.vehicle-grid {
    display: grid;
    gap: var(--space-6);
}

.vehicle-grid--2 { grid-template-columns: repeat(2, 1fr); }
.vehicle-grid--3 { grid-template-columns: repeat(3, 1fr); }
.vehicle-grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1200px) {
    .vehicle-grid--4 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 992px) {
    .vehicle-grid--3,
    .vehicle-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 576px) {
    .vehicle-grid--2,
    .vehicle-grid--3,
    .vehicle-grid--4 { grid-template-columns: 1fr; }
}

/* =============================================================================
   12. HERO SECTION
   ============================================================================= */

.hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    overflow: hidden;
    background-color: var(--brand-primary);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.hero--small { min-height: 40vh; }
.hero--medium { min-height: 60vh; }
.hero--large { min-height: 80vh; }
.hero--full { min-height: 100vh; }

.hero--with-header {
    padding-top: var(--header-height);
}

/* Hero background */
.hero__background {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero__background img,
.hero__background video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Hero overlays */
.hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.hero__overlay--dark {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.8) 100%);
}

.hero__overlay--light {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.7) 100%);
}

.hero__overlay--brand {
    background: linear-gradient(135deg, rgba(var(--brand-accent-rgb), 0.7) 0%, rgba(var(--brand-primary-rgb), 0.9) 100%);
}

.hero__overlay--gradient-bottom {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, transparent 60%);
}

/* Hero content */
.hero__content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 900px;
    padding: var(--space-8);
}

.hero__content--left {
    text-align: left;
    margin-right: auto;
}

.hero__content--right {
    text-align: right;
    margin-left: auto;
}

.hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--brand-accent);
    margin-bottom: var(--space-4);
}

.hero__eyebrow::before,
.hero__eyebrow::after {
    content: '';
    width: 30px;
    height: 2px;
    background-color: currentColor;
}

.hero__title {
    font-size: var(--text-6xl);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
    margin-bottom: var(--space-6);
}

.text-light .hero__title {
    color: var(--brand-text-inverse);
}

.hero__subtitle {
    font-size: var(--text-xl);
    line-height: 1.5;
    margin-bottom: var(--space-8);
    opacity: 0.9;
}

.text-light .hero__subtitle {
    color: rgba(255, 255, 255, 0.9);
}

.hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    justify-content: center;
}

.hero__content--left .hero__cta {
    justify-content: flex-start;
}

.hero__content--right .hero__cta {
    justify-content: flex-end;
}

/* Hero scroll indicator */
.hero__scroll {
    position: absolute;
    bottom: var(--space-8);
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    color: var(--brand-text-inverse);
    text-decoration: none;
    opacity: 0.7;
    transition: opacity var(--transition-fast);
}

.hero__scroll:hover {
    opacity: 1;
}

.hero__scroll span {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.hero__scroll-mouse {
    width: 24px;
    height: 40px;
    border: 2px solid currentColor;
    border-radius: 12px;
    position: relative;
}

.hero__scroll-mouse::before {
    content: '';
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 8px;
    background-color: currentColor;
    border-radius: 2px;
    animation: scroll-indicator 2s ease-in-out infinite;
}

@keyframes scroll-indicator {
    0%, 100% {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
    50% {
        opacity: 0.3;
        transform: translateX(-50%) translateY(12px);
    }
}

/* =============================================================================
   13. SECTIONS & LAYOUT
   ============================================================================= */

/* Base section */
.section {
    position: relative;
    padding: var(--section-py) 0;
}

.section--sm { padding: var(--section-py-sm) 0; }
.section--lg { padding: var(--section-py-lg) 0; }
.section--no-padding { padding: 0; }
.section--no-padding-top { padding-top: 0; }
.section--no-padding-bottom { padding-bottom: 0; }

/* Section header */
.section__header {
    text-align: center;
    margin-bottom: var(--space-12);
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.section__header--left {
    text-align: left;
    margin-left: 0;
}

.section__title {
    font-size: var(--text-4xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
}

.section__description {
    font-size: var(--text-lg);
    color: var(--brand-text-secondary);
    line-height: 1.6;
}

/* Main content wrapper */
.main-content {
    min-height: calc(100vh - var(--header-height));
}

/* Page header */
.page-header {
    padding: var(--space-8) 0;
    background-color: var(--brand-bg-alt);
    border-bottom: 1px solid var(--brand-border);
}

.page-header__title {
    font-size: var(--text-4xl);
    margin-bottom: var(--space-2);
}

.page-header__breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.page-header__breadcrumb a {
    color: var(--brand-text-secondary);
    text-decoration: none;
}

.page-header__breadcrumb a:hover {
    color: var(--brand-accent);
}

.page-header__breadcrumb .separator {
    color: var(--brand-text-muted);
}

.page-header__breadcrumb .current {
    color: var(--brand-text);
}

/* Two column layout */
.layout-two-col {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: var(--space-12);
}

@media (max-width: 992px) {
    .layout-two-col {
        grid-template-columns: 1fr;
    }
}

.layout-two-col--reverse {
    grid-template-columns: 320px 1fr;
}

@media (max-width: 992px) {
    .layout-two-col--reverse {
        grid-template-columns: 1fr;
    }

    .layout-two-col--reverse .sidebar {
        order: 2;
    }
}

/* Sidebar */
.sidebar {
    order: 2;
}

@media (max-width: 992px) {
    .sidebar {
        order: 2;
    }
}

.sidebar__widget {
    background-color: var(--brand-surface);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    margin-bottom: var(--space-6);
    box-shadow: var(--shadow-sm);
}

.sidebar__widget:last-child {
    margin-bottom: 0;
}

.sidebar__title {
    font-size: var(--text-lg);
    font-weight: 600;
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 2px solid var(--brand-accent);
}

/* Card grid layouts */
.card-grid {
    display: grid;
    gap: var(--space-6);
}

.card-grid--2 { grid-template-columns: repeat(2, 1fr); }
.card-grid--3 { grid-template-columns: repeat(3, 1fr); }
.card-grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1200px) {
    .card-grid--4 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 992px) {
    .card-grid--3,
    .card-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 576px) {
    .card-grid--2,
    .card-grid--3,
    .card-grid--4 { grid-template-columns: 1fr; }
}

/* Centered content */
.content-center {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.content-wide {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

/* =============================================================================
   14. ANIMATIONS
   ============================================================================= */

/* AOS custom animations */
[data-aos="fade-up-sm"] {
    transform: translateY(30px);
    opacity: 0;
    transition-property: transform, opacity;
}

[data-aos="fade-up-sm"].aos-animate {
    transform: translateY(0);
    opacity: 1;
}

[data-aos="fade-up-lg"] {
    transform: translateY(80px);
    opacity: 0;
    transition-property: transform, opacity;
}

[data-aos="fade-up-lg"].aos-animate {
    transform: translateY(0);
    opacity: 1;
}

[data-aos="scale-up"] {
    transform: scale(0.9);
    opacity: 0;
    transition-property: transform, opacity;
}

[data-aos="scale-up"].aos-animate {
    transform: scale(1);
    opacity: 1;
}

/* GSAP reveal classes */
.gsap-reveal {
    opacity: 0;
    transform: translateY(50px);
}

.gsap-reveal-left {
    opacity: 0;
    transform: translateX(-50px);
}

.gsap-reveal-right {
    opacity: 0;
    transform: translateX(50px);
}

.gsap-scale {
    opacity: 0;
    transform: scale(0.8);
}

/* Shine effect */
.shine {
    position: relative;
    overflow: hidden;
}

.shine::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -100%;
    width: 50%;
    height: 200%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transform: skewX(-25deg);
}

.shine:hover::before {
    animation: shine-sweep 0.75s ease-out;
}

@keyframes shine-sweep {
    to { left: 150%; }
}

/* Glow pulse */
.glow-pulse {
    animation: glow-pulse 2s ease-in-out infinite;
}

@keyframes glow-pulse {
    0%, 100% { box-shadow: 0 0 20px rgba(var(--brand-accent-rgb), 0.3); }
    50% { box-shadow: 0 0 40px rgba(var(--brand-accent-rgb), 0.5); }
}

/* Spinner */
.spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--brand-border);
    border-top-color: var(--brand-accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Float animation */
@keyframes float {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(30px, 30px); }
}

/* Bounce animation */
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-8px); }
    60% { transform: translateX(-50%) translateY(-4px); }
}

/* Page transitions */
.page-transition-fade {
    animation: page-fade-in 0.5s ease-out;
}

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

.page-transition-slide {
    animation: page-slide-up 0.6s var(--ease-out-expo);
}

@keyframes page-slide-up {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =============================================================================
   15. RESPONSIVE UTILITIES
   ============================================================================= */

@media (max-width: 576px) {
    .d-none-sm { display: none !important; }
}

@media (max-width: 768px) {
    .d-none-md { display: none !important; }
}

@media (max-width: 992px) {
    .d-none-lg { display: none !important; }
}

@media (max-width: 1200px) {
    .d-none-xl { display: none !important; }
}

/* =============================================================================
   16. ADDITIONAL HEADER/NAV STYLES
   ============================================================================= */

/* Logo text fallback */
.header__logo-text {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--brand-text);
    text-decoration: none;
}

.header__logo-img {
    height: 48px;
    width: auto;
    transition: height 0.3s ease;
}

.is-scrolled .header__logo-img {
    height: 40px;
}

/* Nav menu reset */
.nav-menu {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Dropdown arrow */
.dropdown-arrow {
    margin-left: var(--space-1);
    transition: transform var(--transition-fast);
}

.nav-item.has-dropdown:hover .dropdown-arrow {
    transform: rotate(180deg);
}

/* Right-align dropdown for last nav items to prevent overflow */
.nav-item.has-dropdown:last-child > .nav-dropdown,
.nav-item.has-dropdown:nth-last-child(2) > .nav-dropdown {
    left: auto;
    right: 0;
}

/* Top bar styles */
.top-bar {
    background-color: var(--brand-primary);
    color: var(--brand-text-inverse);
    font-size: var(--text-sm);
    padding: var(--space-2) 0;
}

.top-bar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.top-bar__left,
.top-bar__right {
    display: flex;
    align-items: center;
    gap: var(--space-6);
}

.top-bar__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--brand-text-inverse);
    text-decoration: none;
    opacity: 0.9;
    transition: opacity var(--transition-fast);
}

.top-bar__item:hover {
    opacity: 1;
    color: var(--brand-text-inverse);
}

@media (max-width: 768px) {
    .top-bar__left {
        display: none;
    }
}

/* Mobile nav overlay */
.mobile-nav-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-base);
    z-index: var(--z-modal-backdrop);
}

.mobile-nav-overlay.is-active {
    opacity: 1;
    visibility: visible;
}

.mobile-nav-overlay .mobile-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 320px;
    max-width: 90vw;
    background-color: var(--brand-bg);
    transform: translateX(100%);
    transition: transform var(--transition-base) var(--ease-out-expo);
    display: flex;
    flex-direction: column;
    z-index: var(--z-modal);
    overflow-y: auto;
}

.mobile-nav-overlay.is-active .mobile-nav {
    transform: translateX(0);
}

.mobile-nav__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--brand-border-light);
}

.mobile-nav__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    color: var(--brand-text);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.mobile-nav__close:hover {
    background-color: var(--brand-bg-alt);
}

.mobile-nav__menu {
    flex: 1;
    padding: var(--space-4) 0;
}

.mobile-nav__menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-nav__menu > ul > li {
    border-bottom: 1px solid var(--brand-border-light);
}

.mobile-nav__menu > ul > li > a {
    display: block;
    padding: var(--space-4) var(--space-6);
    font-size: var(--text-lg);
    font-weight: 500;
    color: var(--brand-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.mobile-nav__menu > ul > li > a:hover {
    color: var(--brand-accent);
}

/* Mobile submenu */
.mobile-nav__menu .has-submenu {
    position: relative;
}

.mobile-nav__menu .has-submenu > a {
    padding-right: 60px;
}

.submenu-toggle {
    position: absolute;
    top: 0;
    right: 0;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    border-left: 1px solid var(--brand-border-light);
    color: var(--brand-text-muted);
    cursor: pointer;
    transition: all var(--transition-fast);
    z-index: 1;
}

.submenu-toggle:hover {
    color: var(--brand-accent);
    background-color: var(--brand-bg-alt);
}

.submenu-toggle svg {
    transition: transform var(--transition-fast);
}

.has-submenu.is-open > .submenu-toggle svg {
    transform: rotate(180deg);
}

.submenu {
    display: none;
    background-color: var(--brand-bg-alt);
}

.has-submenu.is-open .submenu {
    display: block;
}

.submenu li {
    border-bottom: none;
}

.submenu a {
    display: block;
    padding: var(--space-3) var(--space-6) var(--space-3) var(--space-8);
    font-size: var(--text-base);
    color: var(--brand-text-secondary);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.submenu a:hover {
    color: var(--brand-accent);
    background-color: rgba(var(--brand-accent-rgb), 0.05);
}

.mobile-nav__footer {
    padding: var(--space-6);
    border-top: 1px solid var(--brand-border-light);
    background-color: var(--brand-bg-alt);
}

.mobile-nav__contact {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    margin-bottom: var(--space-4);
    background-color: var(--brand-surface);
    border-radius: var(--radius-lg);
    color: var(--brand-accent);
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-fast);
}

.mobile-nav__contact:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
}

.mobile-nav__lang {
    margin-bottom: var(--space-4);
}

/* Body when menu is open */
body.menu-open {
    overflow: hidden;
}

/* Bootstrap display utilities that might be missing */
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-flex { display: flex !important; }
.d-inline-flex { display: inline-flex !important; }

@media (min-width: 992px) {
    .d-lg-none { display: none !important; }
    .d-lg-block { display: block !important; }
    .d-lg-flex { display: flex !important; }
    .d-lg-inline-flex { display: inline-flex !important; }
}

@media (min-width: 1200px) {
    .d-xl-none { display: none !important; }
    .d-xl-block { display: block !important; }
    .d-xl-flex { display: flex !important; }
    .d-xl-inline-flex { display: inline-flex !important; }
}

/* Padding for fixed header */
body {
    padding-top: var(--header-height);
}

/* Fix for transparent header pages */
.header-transparent body,
body.layout-landing {
    padding-top: 0;
}

/* Social links in header/footer */
.social-links {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.social-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: currentColor;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.social-links a:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
}

.social-links--small a {
    width: 28px;
    height: 28px;
}

.social-links--large a {
    width: 44px;
    height: 44px;
}

/* Header lang display helper */
.header__lang {
    margin-right: var(--space-3);
}

/* =============================================
   MEGA MENU STYLES - Premium Automotive Design
   ============================================= */

.nav-item.has-megamenu {
    position: static;
}

.megamenu {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: linear-gradient(180deg, var(--brand-surface) 0%, var(--brand-bg-alt) 100%);
    box-shadow: var(--shadow-2xl), 0 0 60px rgba(0, 0, 0, 0.1);
    border-top: 3px solid var(--brand-accent);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 400ms var(--ease-out-expo);
    z-index: var(--z-dropdown);
    overflow: hidden;
}

/* Animated accent line */
.megamenu::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg,
        var(--brand-accent) 0%,
        var(--brand-primary) 50%,
        var(--brand-accent) 100%);
    background-size: 200% 100%;
    animation: megamenu-shine 3s linear infinite;
}

@keyframes megamenu-shine {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Decorative background shapes */
.megamenu::after {
    content: '';
    position: absolute;
    bottom: -50%;
    right: -10%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(var(--brand-accent-rgb), 0.03) 0%, transparent 70%);
    pointer-events: none;
}

.nav-item.has-megamenu:hover > .megamenu,
.nav-item.has-megamenu:focus-within > .megamenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.megamenu__inner {
    position: relative;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: var(--space-6) var(--space-5);
    display: flex;
    gap: var(--space-6);
    /* Subtle background pattern for depth */
    background:
        radial-gradient(circle at 10% 90%, rgba(var(--brand-accent-rgb), 0.04) 0%, transparent 40%),
        radial-gradient(circle at 90% 10%, rgba(var(--brand-accent-rgb), 0.03) 0%, transparent 40%);
}

.megamenu__categories {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--space-5);
}

.megamenu__column {
    min-width: 0;
    /* Staggered entrance animation */
    animation: megamenu-column-enter 0.5s var(--ease-out-expo) backwards;
}

.megamenu__column:nth-child(1) { animation-delay: 0.05s; }
.megamenu__column:nth-child(2) { animation-delay: 0.1s; }
.megamenu__column:nth-child(3) { animation-delay: 0.15s; }
.megamenu__column:nth-child(4) { animation-delay: 0.2s; }
.megamenu__column:nth-child(5) { animation-delay: 0.25s; }
.megamenu__column:nth-child(6) { animation-delay: 0.3s; }

@keyframes megamenu-column-enter {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.megamenu__title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-accent);
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--brand-border-light);
}

.megamenu__title::before {
    content: '';
    display: block;
    width: 4px;
    height: 16px;
    background: linear-gradient(180deg, var(--brand-accent) 0%, var(--brand-primary) 100%);
    border-radius: 2px;
}

.megamenu__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.megamenu__item {
    margin: 0;
}

.megamenu__link {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
    border-radius: var(--radius-lg);
    color: var(--brand-text);
    text-decoration: none;
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid transparent;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

/* Accent line that reveals on hover */
.megamenu__link::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--brand-accent) 0%, var(--brand-primary) 100%);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 0 4px 4px 0;
}

/* Gradient overlay on hover */
.megamenu__link::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(var(--brand-accent-rgb), 0.06) 0%, transparent 60%);
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
}

.megamenu__link:hover {
    background: #fff;
    border-color: rgba(var(--brand-accent-rgb), 0.15);
    box-shadow:
        0 8px 25px -5px rgba(0, 0, 0, 0.1),
        0 4px 10px -5px rgba(var(--brand-accent-rgb), 0.15);
    transform: translateY(-3px);
}

.megamenu__link:hover::before {
    transform: scaleY(1);
}

.megamenu__link:hover::after {
    opacity: 1;
}

.megamenu__img-wrapper {
    position: relative;
    width: 90px;
    height: 55px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: linear-gradient(145deg, var(--brand-bg-alt) 0%, var(--brand-surface) 100%);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.megamenu__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s var(--ease-out-expo), filter 0.3s ease;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.12));
}

.megamenu__link:hover .megamenu__img {
    transform: scale(1.15) translateX(2px);
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.18));
}

.megamenu__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    position: relative;
    z-index: 1;
}

.megamenu__model {
    font-weight: 600;
    font-size: var(--text-base);
    color: var(--brand-text);
    transition: color 0.25s ease;
    line-height: 1.3;
}

.megamenu__link:hover .megamenu__model {
    color: var(--brand-accent);
}

.megamenu__price {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    font-weight: 500;
    line-height: 1.3;
    transition: color 0.25s ease;
}

.megamenu__link:hover .megamenu__price {
    color: var(--brand-text);
}

.megamenu__price::before {
    content: '';
    display: inline-block;
    width: 5px;
    height: 5px;
    background: var(--brand-accent);
    border-radius: 50%;
    opacity: 0.7;
    transition: transform 0.25s ease;
}

.megamenu__link:hover .megamenu__price::before {
    transform: scale(1.3);
}

/* Featured promo sidebar */
.megamenu__promo {
    width: 260px;
    flex-shrink: 0;
    background: linear-gradient(145deg, var(--brand-primary) 0%, color-mix(in srgb, var(--brand-primary) 75%, black) 100%);
    border-radius: var(--radius-xl);
    padding: var(--space-6);
    color: var(--brand-text-inverse);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    /* Entrance animation */
    animation: promo-enter 0.6s var(--ease-out-expo) 0.15s backwards;
}

@keyframes promo-enter {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Shimmer effect */
.megamenu__promo::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.08) 50%,
        transparent 100%
    );
    animation: promo-shimmer 3s ease-in-out infinite;
}

@keyframes promo-shimmer {
    0% { left: -100%; }
    50%, 100% { left: 100%; }
}

/* Floating orb decoration */
.megamenu__promo::after {
    content: '';
    position: absolute;
    top: -30%;
    right: -30%;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(255,255,255,0.12) 0%, transparent 60%);
    animation: promo-orb 6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes promo-orb {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-10px, 10px) scale(1.1); }
}

.megamenu__promo-content {
    position: relative;
    z-index: 1;
}

.megamenu__promo-eyebrow {
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    opacity: 0.8;
    margin-bottom: var(--space-2);
}

.megamenu__promo-title {
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: var(--space-3);
}

.megamenu__promo-text {
    font-size: var(--text-sm);
    opacity: 0.9;
    line-height: 1.6;
}

.megamenu__promo .btn {
    margin-top: var(--space-4);
    background: rgba(255, 255, 255, 0.95);
    border-color: transparent;
    color: var(--brand-primary);
    font-weight: 600;
    position: relative;
    z-index: 1;
    transition: all 0.3s ease;
}

.megamenu__promo .btn:hover {
    background: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* Footer CTA - Enhanced with promo */
.megamenu__footer {
    background: linear-gradient(90deg, var(--brand-bg-alt) 0%, var(--brand-surface) 50%, var(--brand-bg-alt) 100%);
    margin: var(--space-5) calc(var(--space-5) * -1) calc(var(--space-6) * -1);
    padding: var(--space-4) var(--space-5);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-4);
    border-top: 1px solid var(--brand-border);
    /* Entrance animation */
    animation: footer-enter 0.5s var(--ease-out-expo) 0.3s backwards;
}

@keyframes footer-enter {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.megamenu__footer-text {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    flex-shrink: 0;
}

.megamenu__footer-text strong {
    color: var(--brand-accent);
    font-weight: 700;
}

.megamenu__footer .btn {
    gap: var(--space-2);
    font-weight: 600;
}

.megamenu__footer .btn svg {
    transition: transform 200ms ease;
}

.megamenu__footer .btn:hover svg {
    transform: translateX(4px);
}

/* Arrow rotation */
.nav-item.has-megamenu:hover .dropdown-arrow {
    transform: rotate(180deg);
}

/* Hide mega menu on mobile */
@media (max-width: 991px) {
    .megamenu {
        display: none;
    }
}

@media (max-width: 1200px) {
    .megamenu__promo {
        display: none;
    }

    .megamenu__categories {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }

    .megamenu__footer-promo {
        display: none;
    }
}

/* =============================================
   MEGAMENU - Category Showcase Layout (Option B)
   ============================================= */

.megamenu--showcase {
    background: var(--brand-surface);
}

.megamenu--showcase .megamenu__inner {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: var(--space-4);
    background: none;
    display: block;
}

/* Megamenu Header */
.megamenu__header {
    text-align: center;
    margin-bottom: var(--space-4);
}

.megamenu__title {
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--brand-text);
    margin: 0;
}

/* Showcase Grid - Compact columns layout */
.megamenu__showcase-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-4);
}

/* Category Section */
.megamenu__category-section {
    flex: 1 1 260px;
    min-width: 240px;
    max-width: 300px;
    background: #fff;
    border-radius: var(--radius-xl);
    border: 1px solid var(--brand-border-light);
    overflow: hidden;
    transition: all 0.3s ease;
    animation: category-enter 0.5s var(--ease-out-expo) backwards;
    display: flex;
    flex-direction: column;
}

.megamenu__category-section:nth-child(1) { animation-delay: 0.05s; }
.megamenu__category-section:nth-child(2) { animation-delay: 0.1s; }
.megamenu__category-section:nth-child(3) { animation-delay: 0.15s; }
.megamenu__category-section:nth-child(4) { animation-delay: 0.2s; }
.megamenu__category-section:nth-child(5) { animation-delay: 0.25s; }
.megamenu__category-section:nth-child(6) { animation-delay: 0.3s; }

@keyframes category-enter {
    from {
        opacity: 0;
        transform: translateY(15px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.megamenu__category-section:hover {
    border-color: rgba(var(--brand-accent-rgb), 0.3);
    box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.15),
                0 0 0 1px rgba(var(--brand-accent-rgb), 0.1);
}

/* Category Header */
.megamenu__category-header {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-3);
    background: linear-gradient(135deg, var(--brand-bg-alt) 0%, var(--brand-surface) 100%);
    border-bottom: 1px solid var(--brand-border-light);
    min-height: 60px;
}

.megamenu__category-accent {
    width: 3px;
    min-height: 36px;
    height: 100%;
    background: linear-gradient(180deg, var(--brand-accent) 0%, var(--brand-primary) 100%);
    border-radius: 2px;
    flex-shrink: 0;
    align-self: stretch;
}

.megamenu__category-title {
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-text);
    margin: 0;
    flex: 1;
    min-width: 0;
    line-height: 1.3;
    /* Allow 2 lines max for long category names */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.megamenu__category-count {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--brand-text-secondary);
    background: var(--brand-surface);
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-full);
    flex-shrink: 0;
    white-space: nowrap;
}

/* Category Content */
.megamenu__category-content {
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    flex: 1;
}

/* Hero Card - Featured Vehicle */
.megamenu__hero-card {
    display: block;
    background: linear-gradient(145deg, var(--brand-bg-alt) 0%, #fff 100%);
    border-radius: var(--radius-md);
    padding: var(--space-2);
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--brand-border-light);
    position: relative;
    overflow: hidden;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.megamenu__hero-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-accent), var(--brand-primary));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s ease;
}

.megamenu__hero-card:hover {
    border-color: transparent;
    box-shadow: 0 15px 35px -10px rgba(var(--brand-accent-rgb), 0.2),
                0 5px 15px -5px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
}

.megamenu__hero-card:hover::before {
    transform: scaleX(1);
}

.megamenu__hero-image {
    width: 100%;
    height: 85px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-2);
}

.megamenu__hero-image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.12));
    transition: transform 0.5s var(--ease-out-expo);
}

.megamenu__hero-card:hover .megamenu__hero-image img {
    transform: scale(1.08) translateX(5px);
}

.megamenu__hero-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
    width: 100%;
}

.megamenu__hero-name {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--brand-text);
    transition: color 0.25s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.megamenu__hero-card:hover .megamenu__hero-name {
    color: var(--brand-accent);
}

.megamenu__hero-price {
    display: flex;
    flex-direction: column;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-text);
}

.megamenu__hero-price small {
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--brand-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.megamenu__hero-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    margin-top: var(--space-2);
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--brand-accent);
    opacity: 0;
    transform: translateX(-10px);
    transition: all 0.3s ease;
}

.megamenu__hero-card:hover .megamenu__hero-cta {
    opacity: 1;
    transform: translateX(0);
}

.megamenu__hero-cta svg {
    transition: transform 0.2s ease;
}

.megamenu__hero-card:hover .megamenu__hero-cta svg {
    transform: translateX(3px);
}

/* Models List - Other vehicles */
.megamenu__models-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.megamenu__model-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-sm);
    text-decoration: none;
    color: inherit;
    transition: all 0.25s ease;
    background: transparent;
}

.megamenu__model-link:hover {
    background: var(--brand-bg-alt);
}

.megamenu__model-thumb {
    width: 55px;
    height: 35px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.megamenu__model-thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
    transition: transform 0.3s ease;
}

.megamenu__model-link:hover .megamenu__model-thumb img {
    transform: scale(1.1);
}

.megamenu__model-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.megamenu__model-name {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.25s ease;
}

.megamenu__model-link:hover .megamenu__model-name {
    color: var(--brand-accent);
}

.megamenu__model-price {
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--brand-text-secondary);
}

.megamenu__model-arrow {
    flex-shrink: 0;
    color: var(--brand-text-tertiary);
    opacity: 0;
    transform: translateX(-5px);
    transition: all 0.25s ease;
}

.megamenu__model-link:hover .megamenu__model-arrow {
    opacity: 1;
    transform: translateX(0);
    color: var(--brand-accent);
}

/* Footer - Showcase variant */
.megamenu--showcase .megamenu__footer {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: var(--space-3) var(--space-4);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--space-3);
    background: none;
    border-top: none;
}

.megamenu__footer-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-5);
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary) 100%);
    color: #ffffff !important;
    font-size: var(--text-sm);
    font-weight: 600;
    border-radius: var(--radius-full);
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px -3px rgba(var(--brand-accent-rgb), 0.4);
}

.megamenu__footer-cta:hover {
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px -5px rgba(var(--brand-accent-rgb), 0.5);
}

.megamenu__footer-cta svg {
    transition: transform 0.2s ease;
}

.megamenu__footer-cta:hover svg {
    transform: translateX(4px);
}

.megamenu__footer-cta--secondary {
    background: transparent;
    color: var(--brand-text) !important;
    border: 1px solid var(--brand-border-strong);
    box-shadow: none;
}

.megamenu__footer-cta--secondary:hover {
    background: var(--brand-bg-alt);
    border-color: var(--brand-accent);
    color: var(--brand-accent) !important;
    box-shadow: none;
}

/* Responsive - Showcase */
@media (max-width: 1400px) {
    .megamenu__category-section {
        flex: 1 1 240px;
        min-width: 220px;
        max-width: 280px;
    }

    .megamenu__hero-image {
        height: 75px;
    }
}

@media (max-width: 1200px) {
    .megamenu__category-section {
        flex: 1 1 220px;
        min-width: 200px;
        max-width: 260px;
    }

    .megamenu__hero-image {
        height: 70px;
    }

    .megamenu__model-thumb {
        width: 50px;
        height: 30px;
    }
}

@media (max-width: 991px) {
    .megamenu--showcase {
        display: none;
    }
}

/* =============================================
   INVENTORY MEGAMENU STYLES
   ============================================= */

.megamenu--inventory {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) translateY(20px);
    min-width: 700px;
    max-width: 900px;
    width: max-content;
}

.nav-item.has-megamenu:hover > .megamenu--inventory,
.nav-item.has-megamenu:focus-within > .megamenu--inventory {
    transform: translateX(-50%) translateY(0);
}

.megamenu--inventory .megamenu__inner {
    padding: var(--space-5);
}

.megamenu__inventory-layout {
    display: flex;
    gap: var(--space-6);
}

/* Quick Links Column */
.megamenu__quick-links {
    flex: 0 0 220px;
    border-right: 1px solid var(--brand-border-light);
    padding-right: var(--space-5);
}

.megamenu__section-header {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-2);
    border-bottom: 2px solid var(--brand-accent);
}

.megamenu__section-header svg {
    color: var(--brand-accent);
}

.megamenu__section-header h4 {
    font-size: var(--text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--brand-text);
    margin: 0;
}

.megamenu__links-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.megamenu__links-list li {
    margin: 0;
}

.megamenu__links-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-2) 0;
    font-size: var(--text-sm);
    color: var(--brand-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.megamenu__links-list a:hover {
    color: var(--brand-accent);
}

.megamenu__count {
    color: var(--brand-text-muted);
    font-size: var(--text-xs);
}

.megamenu__section-divider {
    height: 1px;
    background: var(--brand-border-light);
    margin: var(--space-3) 0;
}

/* Top Models Grid */
.megamenu__top-models {
    flex: 1;
}

.megamenu__models-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-2) var(--space-4);
}

.megamenu__model-item {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
    text-decoration: none;
    color: var(--brand-text);
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.megamenu__model-item:hover {
    background-color: var(--brand-bg-alt);
    color: var(--brand-accent);
}

.megamenu__model-name {
    font-size: var(--text-sm);
    font-weight: 500;
}

.megamenu__model-count {
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
}

/* Inventory Footer */
.megamenu__inventory-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-5);
    background: var(--brand-bg-alt);
    border-top: 1px solid var(--brand-border-light);
}

.megamenu__inventory-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text-secondary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.megamenu__inventory-link:hover {
    color: var(--brand-accent);
}

.megamenu__inventory-link svg {
    transition: transform var(--transition-fast);
}

.megamenu__inventory-link:hover svg {
    transform: translate(2px, -2px);
}

.megamenu__inventory-ctas {
    display: flex;
    gap: var(--space-2);
}

.megamenu__inventory-btn {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    font-weight: 600;
    color: #ffffff !important;
    background-color: var(--brand-text);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.megamenu__inventory-btn:hover {
    background-color: var(--brand-accent);
    transform: translateY(-1px);
}

.megamenu__inventory-btn--accent {
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary) 100%);
}

.megamenu__inventory-btn--accent:hover {
    box-shadow: 0 4px 12px rgba(var(--brand-accent-rgb), 0.3);
}

/* Responsive - Inventory Megamenu */
@media (max-width: 1200px) {
    .megamenu--inventory {
        min-width: 600px;
    }

    .megamenu__quick-links {
        flex: 0 0 180px;
    }

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

@media (max-width: 991px) {
    .megamenu--inventory {
        display: none;
    }
}

/* Mobile Inventory Submenu */
.submenu--inventory .submenu-section-header {
    padding: var(--space-3) var(--space-6);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-text-muted);
    background-color: var(--brand-surface);
    border-bottom: 1px solid var(--brand-border-light);
}

.submenu--inventory .submenu-section-header:first-child {
    margin-top: 0;
}

/* =============================================
   MOBILE SUBMENU CATEGORY STYLES
   ============================================= */

.mobile-nav__submenu {
    display: none;
    padding: 0;
    margin: 0;
    list-style: none;
    background-color: var(--brand-bg-alt);
}

.mobile-nav__submenu.is-open {
    display: block;
}

.mobile-nav__menu > ul > li.has-submenu > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.mobile-nav__menu > ul > li.has-submenu > a .submenu-arrow {
    transition: transform var(--transition-fast);
}

.mobile-nav__menu > ul > li.has-submenu.is-open > a .submenu-arrow {
    transform: rotate(180deg);
}

.submenu-category {
    padding: var(--space-3) var(--space-6);
}

.submenu-category:not(:last-child) {
    border-bottom: 1px solid var(--brand-border-light);
}

.submenu-category__title {
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-text-muted);
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-1);
}

.submenu-category__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    list-style: none;
    margin: 0;
    padding: 0;
}

.submenu-category__list li {
    margin: 0;
}

.submenu-category__list a {
    display: block;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
    color: var(--brand-text);
    text-decoration: none;
    font-size: var(--text-sm);
    transition: all var(--transition-fast);
}

.submenu-category__list a:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
}

/* Mobile Models Submenu */
.submenu--models {
    padding: 0;
}

/* Mobile Category Accordion */
.mobile-category {
    border-bottom: 1px solid var(--brand-border-light);
}

.mobile-category__header {
    display: flex;
    align-items: center;
    width: 100%;
    padding: var(--space-4) var(--space-6);
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background-color var(--transition-fast);
}

.mobile-category__header:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.03);
}

.mobile-category__name {
    flex: 1;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--brand-text);
}

.mobile-category__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 var(--space-2);
    margin-right: var(--space-3);
    background-color: var(--brand-bg-alt);
    color: var(--brand-text-muted);
    font-size: var(--text-xs);
    font-weight: 600;
    border-radius: var(--radius-full);
}

.mobile-category__arrow {
    color: var(--brand-text-muted);
    transition: transform var(--transition-fast);
}

.mobile-category.is-open .mobile-category__arrow {
    transform: rotate(180deg);
}

.mobile-category__vehicles {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0 0 var(--space-3) 0;
    background-color: var(--brand-surface);
}

.mobile-category.is-open .mobile-category__vehicles {
    display: block;
}

/* Mobile Vehicle Item */
.mobile-vehicle {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-6);
    color: var(--brand-text);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.mobile-vehicle:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.05);
    color: var(--brand-accent);
}

.mobile-vehicle__img {
    width: 56px;
    height: 36px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--brand-bg-alt);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.mobile-vehicle__img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.mobile-vehicle__name {
    flex: 1;
    font-size: var(--text-sm);
    font-weight: 500;
}

.mobile-vehicle__arrow {
    color: var(--brand-text-muted);
    opacity: 0;
    transform: translateX(-4px);
    transition: all var(--transition-fast);
}

.mobile-vehicle:hover .mobile-vehicle__arrow {
    opacity: 1;
    transform: translateX(0);
}

/* Submenu CTA */
.submenu-cta {
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--brand-border-light);
}

.submenu-cta a {
    display: block;
    padding: var(--space-3) var(--space-4);
    background-color: var(--brand-accent);
    color: #fff !important;
    text-align: center;
    border-radius: var(--radius-md);
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-fast);
}

.submenu-cta a:hover {
    background-color: var(--brand-primary);
}

.submenu-category__item {
    margin: 0;
}

.submenu-category__link {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-2);
    border-radius: var(--radius-md);
    color: var(--brand-text);
    text-decoration: none;
    font-size: var(--text-sm);
    transition: all var(--transition-fast);
}

.submenu-category__link:hover {
    background-color: rgba(var(--brand-accent-rgb), 0.1);
    color: var(--brand-accent);
}

.submenu-category__img {
    width: 48px;
    height: 32px;
    object-fit: contain;
    border-radius: var(--radius-sm);
    background-color: var(--brand-surface);
    flex-shrink: 0;
}

.submenu-category__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.submenu-category__model {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.submenu-category__price {
    font-size: var(--text-xs);
    color: var(--brand-text-secondary);
}

.mobile-nav__submenu-footer {
    padding: var(--space-4) var(--space-6);
    background-color: var(--brand-bg-alt);
    border-top: 1px solid var(--brand-border-light);
}

.mobile-nav__submenu-footer .btn {
    width: 100%;
    justify-content: center;
}

/* Mobile submenu list - already defined above */

.mobile-nav__menu .submenu {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
    background-color: var(--brand-bg-alt);
}

.mobile-nav__menu .has-submenu.is-open > .submenu {
    display: block;
}

.mobile-nav__menu .submenu li a {
    display: block;
    padding: var(--space-3) var(--space-6) var(--space-3) var(--space-8);
    font-size: var(--text-base);
    font-weight: 400;
    color: var(--brand-text-secondary);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.mobile-nav__menu .submenu li a:hover {
    color: var(--brand-accent);
    background-color: rgba(var(--brand-accent-rgb), 0.05);
}

/* Mobile submenu category */
.mobile-nav__menu .submenu-category {
    padding: var(--space-2) 0;
}

.mobile-nav__menu .submenu-category .submenu-category__title {
    display: block;
    padding: var(--space-2) var(--space-6);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-text-muted);
}

.mobile-nav__menu .submenu-category .submenu-category__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-nav__menu .submenu-category .submenu-category__list li a {
    padding: var(--space-2) var(--space-6) var(--space-2) var(--space-8);
    font-size: var(--text-sm);
}

/* Mobile submenu CTA */
.mobile-nav__menu .submenu-cta {
    border-top: 1px solid var(--brand-border-light);
    margin-top: var(--space-2);
    padding-top: var(--space-2);
}

.mobile-nav__menu .submenu-cta a {
    color: #ffffff !important;
    font-weight: 600;
}

/* =============================================================================
   INVENTORY VEHICLE DETAIL PAGE (VDP)
   Premium automotive showroom design with lead conversion focus
   ============================================================================= */

/* -----------------------------------------------------------------------------
   VDP Base Layout
   ----------------------------------------------------------------------------- */

.inv-vdp__breadcrumb {
    background: var(--brand-bg-alt);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp__breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: var(--text-sm);
}

.inv-vdp__breadcrumb-list li {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--brand-text-secondary);
}

.inv-vdp__breadcrumb-list li:not(:last-child)::after {
    content: '/';
    color: var(--brand-text-muted);
}

.inv-vdp__breadcrumb-list li a {
    color: var(--brand-text-secondary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.inv-vdp__breadcrumb-list li a:hover {
    color: var(--brand-accent);
}

.inv-vdp__breadcrumb-list li[aria-current="page"] {
    color: var(--brand-text);
    font-weight: 500;
}

/* Hero Section */
.inv-vdp__hero {
    padding: var(--space-8) 0;
    background: var(--brand-bg);
}

.inv-vdp__hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}

@media (min-width: 1024px) {
    .inv-vdp__hero-grid {
        grid-template-columns: 1.5fr 1fr;
        gap: var(--space-10);
    }
}

/* Main Content Layout */
.inv-vdp__main {
    padding: var(--space-12) 0;
    background: var(--brand-bg-alt);
}

.inv-vdp__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}

@media (min-width: 1024px) {
    .inv-vdp__grid {
        grid-template-columns: 1fr 380px;
        gap: var(--space-10);
    }
}

.inv-vdp__content {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

.inv-vdp__sidebar {
    position: relative;
}

@media (min-width: 1024px) {
    .inv-vdp__sidebar {
        position: sticky;
        top: calc(var(--header-height) + var(--space-6));
        height: fit-content;
    }
}

/* -----------------------------------------------------------------------------
   VDP Gallery Component
   ----------------------------------------------------------------------------- */

.inv-vdp-gallery {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.inv-vdp-gallery__main {
    position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: var(--brand-bg-alt);
    aspect-ratio: 4/3;
}

@media (min-width: 768px) {
    .inv-vdp-gallery__main {
        aspect-ratio: 16/10;
    }
}

.inv-vdp-gallery__swiper {
    width: 100%;
    height: 100%;
}

.inv-vdp-gallery__slide {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.inv-vdp-gallery__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.inv-vdp-gallery__slide--placeholder {
    flex-direction: column;
    gap: var(--space-4);
    color: var(--brand-text-muted);
    background: linear-gradient(135deg, var(--brand-bg-alt) 0%, var(--brand-border-light) 100%);
}

.inv-vdp-gallery__slide--placeholder svg {
    opacity: 0.5;
}

/* Gallery Badges */
.inv-vdp-gallery__badges {
    position: absolute;
    top: var(--space-4);
    left: var(--space-4);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    z-index: 10;
}

.inv-vdp-gallery__badge {
    padding: var(--space-1) var(--space-3);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-sm);
    backdrop-filter: blur(8px);
}

.inv-vdp-gallery__badge--new {
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary-hover) 100%);
    color: #fff;
    box-shadow: 0 4px 12px rgba(var(--brand-accent-rgb), 0.3);
}

.inv-vdp-gallery__badge--used {
    background: linear-gradient(135deg, #475569 0%, #334155 100%);
    color: #fff;
}

.inv-vdp-gallery__badge--featured {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    color: #fff;
}

.inv-vdp-gallery__badge--sold {
    background: linear-gradient(135deg, #64748b 0%, #475569 100%);
    color: #fff;
}

/* Gallery Counter */
.inv-vdp-gallery__counter {
    position: absolute;
    bottom: var(--space-4);
    left: var(--space-4);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
    border-radius: var(--radius-full);
    color: #fff;
    font-size: var(--text-sm);
    font-weight: 500;
    z-index: 10;
}

/* Gallery Fullscreen Button */
.inv-vdp-gallery__fullscreen {
    position: absolute;
    bottom: var(--space-4);
    right: var(--space-4);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
    border: none;
    border-radius: var(--radius-full);
    color: #fff;
    cursor: pointer;
    transition: all var(--transition-fast);
    z-index: 10;
}

.inv-vdp-gallery__fullscreen:hover {
    background: var(--brand-accent);
    transform: scale(1.1);
}

/* Gallery Navigation */
.inv-vdp-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.95);
    border: none;
    border-radius: var(--radius-full);
    color: var(--brand-text);
    cursor: pointer;
    box-shadow: var(--shadow-lg);
    transition: all var(--transition-fast);
    z-index: 10;
    opacity: 0;
}

.inv-vdp-gallery__main:hover .inv-vdp-gallery__nav {
    opacity: 1;
}

.inv-vdp-gallery__nav--prev {
    left: var(--space-4);
}

.inv-vdp-gallery__nav--next {
    right: var(--space-4);
}

.inv-vdp-gallery__nav:hover {
    background: var(--brand-accent);
    color: #fff;
    transform: translateY(-50%) scale(1.1);
}

.inv-vdp-gallery__nav:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

/* Gallery Thumbnails */
.inv-vdp-gallery__thumbs {
    position: relative;
}

.inv-vdp-gallery__thumbs-swiper {
    padding: var(--space-1);
}

.inv-vdp-gallery__thumb {
    width: 100%;
    aspect-ratio: 4/3;
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: pointer;
    transition: all var(--transition-fast);
    background: none;
    padding: 0;
}

.inv-vdp-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.inv-vdp-gallery__thumb:hover {
    border-color: var(--brand-text-muted);
}

.inv-vdp-gallery__thumb.is-active {
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 2px rgba(var(--brand-accent-rgb), 0.2);
}

.inv-vdp-gallery__thumbs-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-surface);
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-full);
    cursor: pointer;
    z-index: 5;
    transition: all var(--transition-fast);
}

.inv-vdp-gallery__thumbs-nav--prev {
    left: -16px;
}

.inv-vdp-gallery__thumbs-nav--next {
    right: -16px;
}

.inv-vdp-gallery__thumbs-nav:hover {
    background: var(--brand-accent);
    color: #fff;
    border-color: var(--brand-accent);
}

/* Gallery Lightbox */
.inv-vdp-gallery__lightbox {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-base);
}

.inv-vdp-gallery__lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.inv-vdp-gallery__lightbox-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.95);
    cursor: pointer;
}

.inv-vdp-gallery__lightbox-content {
    position: relative;
    width: 90vw;
    height: 90vh;
    max-width: 1400px;
}

.inv-vdp-gallery__lightbox-swiper {
    width: 100%;
    height: 100%;
}

.inv-vdp-gallery__lightbox-swiper img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.inv-vdp-gallery__lightbox-close {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: var(--radius-full);
    color: #fff;
    cursor: pointer;
    z-index: 10;
    transition: all var(--transition-fast);
}

.inv-vdp-gallery__lightbox-close:hover {
    background: var(--brand-accent);
}

.inv-vdp-gallery__lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: var(--radius-full);
    color: #fff;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-gallery__lightbox-nav--prev {
    left: var(--space-4);
}

.inv-vdp-gallery__lightbox-nav--next {
    right: var(--space-4);
}

.inv-vdp-gallery__lightbox-nav:hover {
    background: var(--brand-accent);
}

.inv-vdp-gallery__lightbox-counter {
    position: absolute;
    bottom: var(--space-4);
    left: 50%;
    transform: translateX(-50%);
    padding: var(--space-2) var(--space-4);
    background: rgba(0, 0, 0, 0.7);
    border-radius: var(--radius-full);
    color: #fff;
    font-size: var(--text-sm);
}

/* -----------------------------------------------------------------------------
   VDP CTA Sidebar
   ----------------------------------------------------------------------------- */

.inv-vdp-sidebar {
    background: var(--brand-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.inv-vdp-sidebar__header {
    padding: var(--space-6);
    background: linear-gradient(135deg, var(--brand-bg) 0%, var(--brand-bg-alt) 100%);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-sidebar__condition {
    display: inline-block;
    padding: var(--space-1) var(--space-3);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-sm);
    margin-bottom: var(--space-3);
}

.inv-vdp-sidebar__condition--new {
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary-hover) 100%);
    color: #fff;
}

.inv-vdp-sidebar__condition--used {
    background: #475569;
    color: #fff;
}

.inv-vdp-sidebar__title {
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 var(--space-2);
    color: var(--brand-text);
}

.inv-vdp-sidebar__subtitle {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    margin: 0;
}

.inv-vdp-sidebar__separator {
    margin: 0 var(--space-2);
    color: var(--brand-text-muted);
}

/* Price Block */
.inv-vdp-sidebar__price-block {
    padding: var(--space-6);
    background: var(--brand-surface);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-sidebar__sold-badge {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-4);
    background: #f1f5f9;
    border-radius: var(--radius-lg);
    color: #64748b;
    font-weight: 600;
    justify-content: center;
}

.inv-vdp-sidebar__price-savings {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-2);
}

.inv-vdp-sidebar__price-original {
    font-size: var(--text-lg);
    color: var(--brand-text-muted);
    text-decoration: line-through;
}

.inv-vdp-sidebar__savings-badge {
    padding: var(--space-1) var(--space-2);
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: #fff;
    font-size: var(--text-xs);
    font-weight: 700;
    border-radius: var(--radius-sm);
}

.inv-vdp-sidebar__price-main {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.inv-vdp-sidebar__price {
    font-size: var(--text-4xl);
    font-weight: 800;
    color: var(--brand-text);
    line-height: 1;
}

.inv-vdp-sidebar__price--contact {
    font-size: var(--text-2xl);
}

.inv-vdp-sidebar__price-note {
    font-size: var(--text-sm);
    color: var(--brand-text-muted);
}

.inv-vdp-sidebar__payment {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-4);
    padding: var(--space-3);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-lg);
}

.inv-vdp-sidebar__payment-label {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-sidebar__payment-amount {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--brand-text);
}

.inv-vdp-sidebar__payment-amount small {
    font-weight: 400;
    color: var(--brand-text-secondary);
}

.inv-vdp-sidebar__payment-calc {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-2);
    background: none;
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    color: var(--brand-text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-sidebar__payment-calc:hover {
    border-color: var(--brand-accent);
    color: var(--brand-accent);
}

/* CTA Buttons */
.inv-vdp-sidebar__ctas {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
    padding: var(--space-6);
}

.inv-vdp-sidebar__cta {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--brand-surface);
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: all var(--transition-base);
    text-decoration: none;
    color: var(--brand-text);
}

.inv-vdp-sidebar__cta:hover {
    border-color: var(--brand-accent);
    box-shadow: 0 4px 12px rgba(var(--brand-accent-rgb), 0.15);
    transform: translateY(-2px);
}

.inv-vdp-sidebar__cta--primary {
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary-hover) 100%);
    border-color: transparent;
    color: #fff;
    grid-column: span 2;
}

.inv-vdp-sidebar__cta--primary:hover {
    background: linear-gradient(135deg, var(--brand-primary-hover) 0%, var(--brand-accent) 100%);
    box-shadow: var(--shadow-brand-lg);
}

.inv-vdp-sidebar__cta--secondary {
    background: linear-gradient(135deg, #1B1B1B 0%, #333 100%);
    border-color: transparent;
    color: #fff;
    grid-column: span 2;
}

.inv-vdp-sidebar__cta--secondary:hover {
    background: linear-gradient(135deg, #333 0%, #1B1B1B 100%);
}

.inv-vdp-sidebar__cta--outline {
    background: var(--brand-surface);
}

.inv-vdp-sidebar__cta-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-md);
}

.inv-vdp-sidebar__cta--outline .inv-vdp-sidebar__cta-icon {
    background: var(--brand-bg-alt);
    color: var(--brand-accent);
}

.inv-vdp-sidebar__cta-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.inv-vdp-sidebar__cta-text strong {
    font-size: var(--text-sm);
    font-weight: 600;
}

.inv-vdp-sidebar__cta-text small {
    font-size: var(--text-xs);
    opacity: 0.8;
}

/* Quick Specs */
.inv-vdp-sidebar__specs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--brand-border-light);
}

.inv-vdp-sidebar__spec {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-sidebar__spec svg {
    color: var(--brand-text-muted);
}

/* Dealer Info */
.inv-vdp-sidebar__dealer {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    background: var(--brand-bg-alt);
    border-top: 1px solid var(--brand-border-light);
}

.inv-vdp-sidebar__dealer-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--brand-surface);
    border-radius: var(--radius-md);
    color: var(--brand-accent);
}

.inv-vdp-sidebar__dealer-info {
    flex: 1;
    min-width: 0;
}

.inv-vdp-sidebar__dealer-name {
    display: block;
    font-weight: 600;
    color: var(--brand-text);
    font-size: var(--text-sm);
}

.inv-vdp-sidebar__dealer-location {
    display: block;
    font-size: var(--text-xs);
    color: var(--brand-text-secondary);
}

.inv-vdp-sidebar__dealer-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    color: var(--brand-text-muted);
    transition: all var(--transition-fast);
}

.inv-vdp-sidebar__dealer-link:hover {
    background: var(--brand-surface);
    color: var(--brand-accent);
}

/* Meta Info */
.inv-vdp-sidebar__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-6);
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
    background: var(--brand-bg-alt);
}

.inv-vdp-sidebar__meta-item {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.inv-vdp-sidebar__meta-item strong {
    color: var(--brand-text-secondary);
}

.inv-vdp-sidebar__vin-copy {
    display: inline-flex;
    padding: 2px;
    background: none;
    border: none;
    color: var(--brand-text-muted);
    cursor: pointer;
    transition: color var(--transition-fast);
}

.inv-vdp-sidebar__vin-copy:hover {
    color: var(--brand-accent);
}

/* -----------------------------------------------------------------------------
   VDP Quick Facts Bar
   ----------------------------------------------------------------------------- */

.inv-vdp__facts {
    padding: var(--space-6) 0;
    background: var(--brand-surface);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp__facts-grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: center;
}

@media (min-width: 768px) {
    .inv-vdp__facts-grid {
        gap: var(--space-6);
    }
}

.inv-vdp__fact {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-lg);
    transition: all var(--transition-fast);
}

.inv-vdp__fact:hover {
    background: var(--brand-bg);
    box-shadow: var(--shadow-sm);
}

.inv-vdp__fact--secondary {
    opacity: 0.7;
}

.inv-vdp__fact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: var(--brand-surface);
    border-radius: var(--radius-md);
    color: var(--brand-accent);
}

.inv-vdp__fact-content {
    display: flex;
    flex-direction: column;
}

.inv-vdp__fact-value {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--brand-text);
    line-height: 1.2;
}

.inv-vdp__fact-label {
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* -----------------------------------------------------------------------------
   VDP Pricing Section
   ----------------------------------------------------------------------------- */

.inv-vdp-pricing {
    background: var(--brand-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.inv-vdp-pricing__header {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-pricing__title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-xl);
    font-weight: 700;
    margin: 0;
    color: var(--brand-text);
}

.inv-vdp-pricing__title svg {
    color: var(--brand-accent);
}

.inv-vdp-pricing__content {
    padding: var(--space-6);
}

.inv-vdp-pricing__price-card {
    padding: var(--space-6);
    background: linear-gradient(135deg, var(--brand-bg-alt) 0%, var(--brand-bg) 100%);
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-6);
}

.inv-vdp-pricing__price-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-2);
}

.inv-vdp-pricing__label {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.inv-vdp-pricing__savings-tag {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-2);
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    border-radius: var(--radius-sm);
    color: #fff;
    font-size: var(--text-xs);
    font-weight: 700;
}

.inv-vdp-pricing__price-display {
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.inv-vdp-pricing__price-original {
    font-size: var(--text-xl);
    color: var(--brand-text-muted);
    text-decoration: line-through;
}

.inv-vdp-pricing__price-current {
    font-size: var(--text-5xl);
    font-weight: 800;
    color: var(--brand-text);
    line-height: 1;
}

.inv-vdp-pricing__price-current--contact {
    font-size: var(--text-3xl);
}

.inv-vdp-pricing__tax-note {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--text-sm);
    color: var(--brand-text-muted);
}

/* Payment Calculator */
.inv-vdp-pricing__calculator {
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.inv-vdp-pricing__calc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-5);
    background: var(--brand-bg-alt);
    border-bottom: 1px solid var(--brand-border-light);
    flex-wrap: wrap;
    gap: var(--space-3);
}

.inv-vdp-pricing__calc-title {
    font-size: var(--text-base);
    font-weight: 600;
    margin: 0;
}

.inv-vdp-pricing__calc-tabs {
    display: flex;
    gap: var(--space-1);
    padding: var(--space-1);
    background: var(--brand-bg);
    border-radius: var(--radius-md);
}

.inv-vdp-pricing__calc-tab {
    padding: var(--space-2) var(--space-4);
    background: transparent;
    border: none;
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-pricing__calc-tab:hover {
    color: var(--brand-text);
}

.inv-vdp-pricing__calc-tab.is-active {
    background: var(--brand-surface);
    color: var(--brand-accent);
    box-shadow: var(--shadow-sm);
}

.inv-vdp-pricing__calc-panel {
    display: none;
    padding: var(--space-5);
}

.inv-vdp-pricing__calc-panel.is-active {
    display: block;
}

.inv-vdp-pricing__calc-result {
    margin-bottom: var(--space-6);
}

.inv-vdp-pricing__payment-display {
    text-align: center;
    padding: var(--space-5);
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary-hover) 100%);
    border-radius: var(--radius-lg);
    color: #fff;
}

.inv-vdp-pricing__payment-amount {
    display: block;
    font-size: var(--text-5xl);
    font-weight: 800;
    line-height: 1;
    margin-bottom: var(--space-3);
}

.inv-vdp-pricing__payment-frequency {
    display: flex;
    justify-content: center;
    gap: var(--space-2);
}

.inv-vdp-pricing__freq-btn {
    padding: var(--space-2) var(--space-3);
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-weight: 500;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-pricing__freq-btn:hover {
    background: rgba(255, 255, 255, 0.25);
}

.inv-vdp-pricing__freq-btn.is-active {
    background: #fff;
    color: var(--brand-accent);
    border-color: #fff;
}

/* Calculator Controls */
.inv-vdp-pricing__calc-controls {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.inv-vdp-pricing__slider-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.inv-vdp-pricing__slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.inv-vdp-pricing__slider-header label {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text);
}

.inv-vdp-pricing__slider-value {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--brand-accent);
}

.inv-vdp-pricing__slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: var(--brand-border);
    border-radius: var(--radius-full);
    outline: none;
}

.inv-vdp-pricing__slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    background: var(--brand-accent);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(var(--brand-accent-rgb), 0.3);
    transition: transform var(--transition-fast);
}

.inv-vdp-pricing__slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

.inv-vdp-pricing__slider::-moz-range-thumb {
    width: 20px;
    height: 20px;
    background: var(--brand-accent);
    border: none;
    border-radius: 50%;
    cursor: pointer;
}

.inv-vdp-pricing__slider-range {
    display: flex;
    justify-content: space-between;
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
}

/* Calculator Breakdown */
.inv-vdp-pricing__breakdown {
    margin-top: var(--space-6);
    padding-top: var(--space-5);
    border-top: 1px solid var(--brand-border-light);
}

.inv-vdp-pricing__breakdown-row {
    display: flex;
    justify-content: space-between;
    padding: var(--space-2) 0;
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-pricing__breakdown-row--highlight {
    padding-top: var(--space-3);
    margin-top: var(--space-2);
    border-top: 1px dashed var(--brand-border);
    font-weight: 600;
    color: var(--brand-text);
}

.inv-vdp-pricing__disclaimer {
    margin-top: var(--space-5);
    padding: var(--space-3);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-md);
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
    line-height: 1.5;
}

/* Lease & Cash Panels */
.inv-vdp-pricing__lease-info {
    text-align: center;
    padding: var(--space-6);
}

.inv-vdp-pricing__lease-info p {
    margin-bottom: var(--space-4);
    color: var(--brand-text-secondary);
}

.inv-vdp-pricing__cash-summary {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.inv-vdp-pricing__cash-row {
    display: flex;
    justify-content: space-between;
    padding: var(--space-3);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
}

.inv-vdp-pricing__cash-row--total {
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary-hover) 100%);
    color: #fff;
    font-weight: 700;
}

/* Pre-Approval CTA */
.inv-vdp-pricing__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-6);
    padding: var(--space-5);
    background: linear-gradient(135deg, #1B1B1B 0%, #333 100%);
    border-radius: var(--radius-lg);
    color: #fff;
    flex-wrap: wrap;
}

.inv-vdp-pricing__cta-content h3 {
    font-size: var(--text-lg);
    font-weight: 700;
    margin: 0 0 var(--space-1);
}

.inv-vdp-pricing__cta-content p {
    font-size: var(--text-sm);
    opacity: 0.8;
    margin: 0;
}

/* -----------------------------------------------------------------------------
   VDP Vehicle History Section
   ----------------------------------------------------------------------------- */

.inv-vdp-history {
    background: var(--brand-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.inv-vdp-history__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-history__title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-xl);
    font-weight: 700;
    margin: 0;
}

.inv-vdp-history__title svg {
    color: var(--brand-accent);
}

.inv-vdp-history__badge {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    border-radius: var(--radius-full);
    color: #fff;
    font-size: var(--text-xs);
    font-weight: 600;
}

.inv-vdp-history__content {
    padding: var(--space-6);
}

.inv-vdp-history__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}

@media (min-width: 768px) {
    .inv-vdp-history__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.inv-vdp-history__card {
    padding: var(--space-4);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-lg);
    text-align: center;
}

.inv-vdp-history__card--status {
    border: 2px solid #10b981;
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.05) 0%, rgba(16, 185, 129, 0.1) 100%);
}

.inv-vdp-history__card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: var(--brand-surface);
    border-radius: var(--radius-full);
    margin-bottom: var(--space-3);
    color: var(--brand-text-muted);
}

.inv-vdp-history__card-icon--success {
    background: #10b981;
    color: #fff;
}

.inv-vdp-history__card-value {
    display: block;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-text);
    margin-bottom: var(--space-1);
}

.inv-vdp-history__card-label {
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
}

/* CarFax Integration */
.inv-vdp-history__carfax {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
    gap: var(--space-3);
}

.inv-vdp-history__carfax-badge {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.inv-vdp-history__carfax-logo {
    height: 24px;
    width: auto;
}

.inv-vdp-history__carfax-text {
    font-weight: 500;
    color: var(--brand-text);
}

/* Warranty */
.inv-vdp-history__warranty {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-5);
    background: linear-gradient(135deg, rgba(var(--brand-accent-rgb), 0.05) 0%, rgba(var(--brand-accent-rgb), 0.1) 100%);
    border: 1px solid rgba(var(--brand-accent-rgb), 0.2);
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-6);
}

.inv-vdp-history__warranty-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: var(--brand-accent);
    border-radius: var(--radius-md);
    color: #fff;
}

.inv-vdp-history__warranty-content h4 {
    font-size: var(--text-base);
    font-weight: 600;
    margin: 0 0 var(--space-2);
}

.inv-vdp-history__warranty-content p {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    margin: 0 0 var(--space-2);
}

.inv-vdp-history__warranty-expiry {
    font-size: var(--text-xs);
    color: var(--brand-accent);
    font-weight: 500;
}

/* Inspection Checklist */
.inv-vdp-history__inspection {
    padding: var(--space-5);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-lg);
}

.inv-vdp-history__inspection-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-base);
    font-weight: 600;
    margin: 0 0 var(--space-4);
    color: #10b981;
}

.inv-vdp-history__inspection-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2);
}

@media (min-width: 768px) {
    .inv-vdp-history__inspection-list {
        grid-template-columns: repeat(3, 1fr);
    }
}

.inv-vdp-history__inspection-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-history__inspection-item svg {
    flex-shrink: 0;
    color: #10b981;
}

/* -----------------------------------------------------------------------------
   VDP Features Section
   ----------------------------------------------------------------------------- */

.inv-vdp-features {
    background: var(--brand-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.inv-vdp-features__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-features__title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-xl);
    font-weight: 700;
    margin: 0;
}

.inv-vdp-features__title svg {
    color: var(--brand-accent);
}

.inv-vdp-features__count {
    padding: var(--space-1) var(--space-3);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-features__content {
    padding: var(--space-6);
}

/* Feature Tabs */
.inv-vdp-features__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-features__tab {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    background: var(--brand-bg-alt);
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-features__tab:hover {
    background: var(--brand-bg);
    border-color: var(--brand-border);
}

.inv-vdp-features__tab.is-active {
    background: var(--brand-accent);
    color: #fff;
    border-color: var(--brand-accent);
}

.inv-vdp-features__tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 var(--space-1);
    background: rgba(255, 255, 255, 0.2);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
}

.inv-vdp-features__tab:not(.is-active) .inv-vdp-features__tab-count {
    background: var(--brand-bg);
}

/* Feature Panels */
.inv-vdp-features__panel {
    display: none;
}

.inv-vdp-features__panel.is-active {
    display: block;
    animation: fadeIn 0.3s ease;
}

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

/* Feature Grid */
.inv-vdp-features__grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: var(--space-2);
}

@media (min-width: 480px) {
    .inv-vdp-features__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 768px) {
    .inv-vdp-features__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.inv-vdp-features__item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.inv-vdp-features__item:hover {
    background: var(--brand-bg);
    box-shadow: var(--shadow-sm);
}

.inv-vdp-features__check {
    flex-shrink: 0;
    color: var(--brand-accent);
}

.inv-vdp-features__name {
    font-size: var(--text-sm);
    color: var(--brand-text);
}

/* Feature Highlights */
.inv-vdp-features__highlights {
    margin-top: var(--space-6);
    padding-top: var(--space-6);
    border-top: 1px solid var(--brand-border-light);
}

.inv-vdp-features__highlights-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-base);
    font-weight: 600;
    margin: 0 0 var(--space-4);
    color: var(--brand-accent);
}

.inv-vdp-features__highlights-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 768px) {
    .inv-vdp-features__highlights-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.inv-vdp-features__highlight-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    background: linear-gradient(135deg, rgba(var(--brand-accent-rgb), 0.05) 0%, rgba(var(--brand-accent-rgb), 0.1) 100%);
    border: 1px solid rgba(var(--brand-accent-rgb), 0.2);
    border-radius: var(--radius-lg);
    text-align: center;
}

.inv-vdp-features__highlight-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: var(--brand-accent);
    border-radius: var(--radius-md);
    color: #fff;
}

.inv-vdp-features__highlight-name {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text);
}

/* Empty State */
.inv-vdp-features__empty {
    text-align: center;
    padding: var(--space-10) var(--space-6);
}

.inv-vdp-features__empty-icon {
    color: var(--brand-text-muted);
    margin-bottom: var(--space-4);
}

.inv-vdp-features__empty-text {
    color: var(--brand-text-secondary);
    margin-bottom: var(--space-4);
}

/* Technical Specs */
.inv-vdp-features__specs {
    margin-top: var(--space-8);
    padding: var(--space-6);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-lg);
}

.inv-vdp-features__specs-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-base);
    font-weight: 600;
    margin: 0 0 var(--space-4);
}

.inv-vdp-features__specs-title svg {
    color: var(--brand-accent);
}

.inv-vdp-features__specs-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: var(--space-1);
}

@media (min-width: 768px) {
    .inv-vdp-features__specs-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.inv-vdp-features__spec-row {
    display: flex;
    justify-content: space-between;
    padding: var(--space-3);
    background: var(--brand-surface);
    border-radius: var(--radius-sm);
}

.inv-vdp-features__spec-row:nth-child(even) {
    background: transparent;
}

.inv-vdp-features__spec-label {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-features__spec-value {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text);
}

/* -----------------------------------------------------------------------------
   VDP Description Section
   ----------------------------------------------------------------------------- */

.inv-vdp-description {
    background: var(--brand-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.inv-vdp-description__header {
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-description__title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-xl);
    font-weight: 700;
    margin: 0;
}

.inv-vdp-description__title svg {
    color: var(--brand-accent);
}

.inv-vdp-description__content {
    padding: var(--space-6);
}

.inv-vdp-description__text {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--brand-text-secondary);
    max-height: 200px;
    overflow: hidden;
    position: relative;
    transition: max-height var(--transition-slow);
}

.inv-vdp-description__text::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(to bottom, transparent, var(--brand-surface));
    pointer-events: none;
}

.inv-vdp-description__content.is-expanded .inv-vdp-description__text {
    max-height: none;
}

.inv-vdp-description__content.is-expanded .inv-vdp-description__text::after {
    display: none;
}

.inv-vdp-description__expand {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-3);
    padding: var(--space-2) var(--space-4);
    background: var(--brand-bg-alt);
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-accent);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-description__expand:hover {
    background: var(--brand-bg);
}

.inv-vdp-description__expand svg {
    transition: transform var(--transition-fast);
}

.inv-vdp-description__content.is-expanded .inv-vdp-description__expand svg {
    transform: rotate(180deg);
}

/* Auto Description */
.inv-vdp-description__auto {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--brand-text-secondary);
}

.inv-vdp-description__intro {
    font-size: var(--text-lg);
    color: var(--brand-text);
    margin-bottom: var(--space-4);
}

.inv-vdp-description__auto p {
    margin-bottom: var(--space-3);
}

.inv-vdp-description__cta-text {
    font-weight: 500;
    color: var(--brand-text);
}

/* Description Actions */
.inv-vdp-description__actions {
    display: flex;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--brand-border-light);
    background: var(--brand-bg-alt);
}

.inv-vdp-description__action {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--brand-surface);
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-description__action:hover {
    border-color: var(--brand-accent);
    color: var(--brand-accent);
}

/* -----------------------------------------------------------------------------
   VDP Related Vehicles
   ----------------------------------------------------------------------------- */

.inv-vdp-related {
    padding: var(--space-12) 0;
    background: var(--brand-bg);
}

.inv-vdp-related__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-8);
    flex-wrap: wrap;
    gap: var(--space-4);
}

.inv-vdp-related__title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-2xl);
    font-weight: 700;
    margin: 0;
}

.inv-vdp-related__title svg {
    color: var(--brand-accent);
}

.inv-vdp-related__view-all {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--brand-accent);
    font-weight: 500;
    text-decoration: none;
    transition: gap var(--transition-fast);
}

.inv-vdp-related__view-all:hover {
    gap: var(--space-3);
}

.inv-vdp-related__grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: var(--space-6);
}

@media (min-width: 640px) {
    .inv-vdp-related__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .inv-vdp-related__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* -----------------------------------------------------------------------------
   VDP Mobile Sticky CTA
   ----------------------------------------------------------------------------- */

.inv-vdp-sticky {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--z-sticky);
    background: var(--brand-surface);
    border-top: 1px solid var(--brand-border);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
    transform: translateY(100%);
    transition: transform var(--transition-base);
}

.inv-vdp-sticky.is-visible {
    transform: translateY(0);
}

@media (min-width: 1024px) {
    .inv-vdp-sticky {
        display: none;
    }
}

.inv-vdp-sticky__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    max-width: var(--container-max);
    margin: 0 auto;
}

.inv-vdp-sticky__info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.inv-vdp-sticky__price {
    font-size: var(--text-xl);
    font-weight: 800;
    color: var(--brand-text);
    line-height: 1.2;
}

.inv-vdp-sticky__price--contact {
    font-size: var(--text-base);
}

.inv-vdp-sticky__vehicle {
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inv-vdp-sticky__actions {
    display: flex;
    gap: var(--space-2);
    flex-shrink: 0;
}

.inv-vdp-sticky__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.inv-vdp-sticky__btn--primary {
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary-hover) 100%);
    color: #fff;
}

.inv-vdp-sticky__btn--primary:hover {
    box-shadow: var(--shadow-brand);
}

.inv-vdp-sticky__btn--call {
    width: 48px;
    height: 48px;
    padding: 0;
    background: var(--brand-bg-alt);
    color: var(--brand-text);
}

.inv-vdp-sticky__btn--call:hover {
    background: var(--brand-accent);
    color: #fff;
}

/* -----------------------------------------------------------------------------
   VDP Contact Form (Sidebar)
   ----------------------------------------------------------------------------- */

.inv-vdp-contact {
    background: var(--brand-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.inv-vdp-contact__header {
    padding: var(--space-5) var(--space-6);
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-primary-hover) 100%);
    color: #fff;
}

.inv-vdp-contact__title {
    font-size: var(--text-lg);
    font-weight: 700;
    margin: 0 0 var(--space-1);
}

.inv-vdp-contact__subtitle {
    font-size: var(--text-sm);
    opacity: 0.9;
    margin: 0;
}

.inv-vdp-contact__form {
    padding: var(--space-6);
}

.inv-vdp-contact__field {
    margin-bottom: var(--space-4);
}

.inv-vdp-contact__input,
.inv-vdp-contact__textarea {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background: var(--brand-bg-alt);
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    color: var(--brand-text);
    transition: all var(--transition-fast);
}

.inv-vdp-contact__input:focus,
.inv-vdp-contact__textarea:focus {
    outline: none;
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb), 0.1);
}

.inv-vdp-contact__input::placeholder,
.inv-vdp-contact__textarea::placeholder {
    color: var(--brand-text-muted);
}

.inv-vdp-contact__textarea {
    resize: vertical;
    min-height: 80px;
}

.inv-vdp-contact__interests {
    margin-bottom: var(--space-5);
}

.inv-vdp-contact__interests-label {
    display: block;
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--brand-text);
    margin-bottom: var(--space-2);
}

.inv-vdp-contact__checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.inv-vdp-contact__checkbox {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    cursor: pointer;
}

.inv-vdp-contact__checkbox input {
    width: 16px;
    height: 16px;
    accent-color: var(--brand-accent);
}

.inv-vdp-contact__submit {
    position: relative;
}

.inv-vdp-contact__submit-loading {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.inv-vdp-contact__disclaimer {
    margin-top: var(--space-4);
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
    text-align: center;
}

.inv-vdp-contact__disclaimer a {
    color: var(--brand-accent);
}

/* Contact Dealer Info */
.inv-vdp-contact__dealer {
    padding: var(--space-5) var(--space-6);
    background: var(--brand-bg-alt);
    border-top: 1px solid var(--brand-border-light);
}

.inv-vdp-contact__dealer-header {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.inv-vdp-contact__dealer-logo {
    max-height: 32px;
    width: auto;
}

.inv-vdp-contact__dealer-info {
    flex: 1;
}

.inv-vdp-contact__dealer-name {
    display: block;
    font-weight: 600;
    color: var(--brand-text);
    font-size: var(--text-sm);
}

.inv-vdp-contact__dealer-location {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-xs);
    color: var(--brand-text-secondary);
}

.inv-vdp-contact__dealer-phone {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3);
    background: var(--brand-surface);
    border-radius: var(--radius-md);
    color: var(--brand-accent);
    font-weight: 600;
    text-decoration: none;
    margin-bottom: var(--space-3);
    transition: all var(--transition-fast);
}

.inv-vdp-contact__dealer-phone:hover {
    background: var(--brand-accent);
    color: #fff;
}

.inv-vdp-contact__dealer-hours {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--text-xs);
}

.inv-vdp-contact__dealer-hours-label {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--brand-text-muted);
}

.inv-vdp-contact__dealer-hours-value {
    color: var(--brand-text-secondary);
}

/* -----------------------------------------------------------------------------
   VDP Modals
   ----------------------------------------------------------------------------- */

.inv-vdp-modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-base);
}

.inv-vdp-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.inv-vdp-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    cursor: pointer;
}

.inv-vdp-modal__container {
    position: relative;
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    background: var(--brand-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-2xl);
    overflow: hidden;
    transform: scale(0.95) translateY(20px);
    transition: transform var(--transition-base);
}

.inv-vdp-modal.is-open .inv-vdp-modal__container {
    transform: scale(1) translateY(0);
}

.inv-vdp-modal--lg .inv-vdp-modal__container {
    max-width: 720px;
}

.inv-vdp-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--brand-border-light);
}

.inv-vdp-modal__title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-lg);
    font-weight: 700;
    margin: 0;
}

.inv-vdp-modal__title svg {
    color: var(--brand-accent);
}

.inv-vdp-modal__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--brand-bg-alt);
    border: none;
    border-radius: var(--radius-full);
    color: var(--brand-text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.inv-vdp-modal__close:hover {
    background: var(--brand-accent);
    color: #fff;
}

.inv-vdp-modal__vehicle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-3) var(--space-6);
    background: var(--brand-bg-alt);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-modal__stock {
    font-weight: 500;
}

.inv-vdp-modal__price {
    font-weight: 700;
    color: var(--brand-accent);
}

.inv-vdp-modal__info {
    padding: var(--space-4) var(--space-6);
    background: linear-gradient(135deg, rgba(var(--brand-accent-rgb), 0.05) 0%, rgba(var(--brand-accent-rgb), 0.1) 100%);
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
}

.inv-vdp-modal__info p {
    margin: 0;
}

.inv-vdp-modal__content {
    padding: var(--space-6);
    max-height: 60vh;
    overflow-y: auto;
}

/* Visually hidden helper */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Animate spin helper */
.animate-spin {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ==========================================================================
   TOAST NOTIFICATIONS
   ========================================================================== */

.toast-container {
    position: fixed;
    top: var(--space-6);
    right: var(--space-6);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-width: 400px;
    pointer-events: none;
}

.toast {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    background: var(--brand-surface);
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.1);
    border-left: 4px solid var(--color-info);
    pointer-events: auto;
    transform: translateX(120%);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}

.toast.toast--visible {
    transform: translateX(0);
    opacity: 1;
}

.toast.toast--hiding {
    transform: translateX(120%);
    opacity: 0;
}

.toast--success {
    border-left-color: var(--color-success);
}

.toast--error {
    border-left-color: var(--color-error);
}

.toast--warning {
    border-left-color: var(--color-warning);
}

.toast--info {
    border-left-color: var(--color-info);
}

.toast__icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
}

.toast--success .toast__icon {
    color: var(--color-success);
    background: rgba(16, 185, 129, 0.1);
}

.toast--error .toast__icon {
    color: var(--color-error);
    background: rgba(239, 68, 68, 0.1);
}

.toast--warning .toast__icon {
    color: var(--color-warning);
    background: rgba(245, 158, 11, 0.1);
}

.toast--info .toast__icon {
    color: var(--color-info);
    background: rgba(59, 130, 246, 0.1);
}

.toast__content {
    flex: 1;
    min-width: 0;
}

.toast__title {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-text);
    margin: 0 0 var(--space-1) 0;
}

.toast__message {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    margin: 0;
    line-height: 1.5;
}

.toast__close {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    color: var(--brand-text-muted);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    margin: -4px -8px -4px 0;
}

.toast__close:hover {
    background: var(--brand-bg-alt);
    color: var(--brand-text);
}

.toast__progress {
    position: absolute;
    bottom: 0;
    left: 4px;
    right: 0;
    height: 3px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 0 0 var(--radius-lg) 0;
    overflow: hidden;
}

.toast__progress-bar {
    height: 100%;
    background: currentColor;
    opacity: 0.3;
    transform-origin: left;
    animation: toast-progress 5s linear forwards;
}

.toast--success .toast__progress-bar {
    background: var(--color-success);
}

.toast--error .toast__progress-bar {
    background: var(--color-error);
}

.toast--warning .toast__progress-bar {
    background: var(--color-warning);
}

.toast--info .toast__progress-bar {
    background: var(--color-info);
}

@keyframes toast-progress {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

/* Mobile adjustments */
@media (max-width: 480px) {
    .toast-container {
        top: var(--space-4);
        right: var(--space-4);
        left: var(--space-4);
        max-width: none;
    }

    .toast {
        padding: var(--space-3) var(--space-4);
    }
}

/* ==========================================================================
   FORMBUILDER THEME OVERRIDES
   ========================================================================== */

/* Form wrapper */
.formbuilder-form {
    --fb-input-padding: 0.75rem 1rem;
    --fb-input-border: 1px solid var(--brand-border);
    --fb-input-radius: var(--radius-md);
    --fb-input-bg: var(--brand-surface);
    --fb-label-color: var(--brand-text);
    --fb-input-color: var(--brand-text);
    --fb-placeholder-color: var(--brand-text-muted);
    --fb-focus-color: var(--brand-accent);
    --fb-error-color: var(--color-error);
    --fb-success-color: var(--color-success);
}

/* Field groups */
.formbuilder-form .form-group {
    margin-bottom: var(--space-5);
}

/* Labels */
.formbuilder-form .form-label,
.formbuilder-form label:not(.form-check-label) {
    display: block;
    margin-bottom: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--fb-label-color);
}

.formbuilder-form .form-label .text-danger,
.formbuilder-form label .text-danger {
    color: var(--fb-error-color);
    margin-left: 2px;
}

/* Text inputs, selects, textareas */
.formbuilder-form .form-control,
.formbuilder-form .form-select {
    display: block;
    width: 100%;
    padding: var(--fb-input-padding);
    font-family: inherit;
    font-size: var(--text-base);
    font-weight: 400;
    line-height: 1.5;
    color: var(--fb-input-color);
    background-color: var(--fb-input-bg);
    border: var(--fb-input-border);
    border-radius: var(--fb-input-radius);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    appearance: none;
}

.formbuilder-form .form-control::placeholder {
    color: var(--fb-placeholder-color);
}

.formbuilder-form .form-control:hover,
.formbuilder-form .form-select:hover {
    border-color: var(--brand-border-strong);
}

.formbuilder-form .form-control:focus,
.formbuilder-form .form-select:focus {
    outline: none;
    border-color: var(--fb-focus-color);
    box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb), 0.15);
}

/* Select dropdown arrow */
.formbuilder-form .form-select {
    padding-right: 2.5rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23475569' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1rem;
}

/* Textarea */
.formbuilder-form textarea.form-control {
    min-height: 120px;
    resize: vertical;
}

/* Validation states */
.formbuilder-form .form-control.is-invalid,
.formbuilder-form .form-select.is-invalid {
    border-color: var(--fb-error-color);
}

.formbuilder-form .form-control.is-invalid:focus,
.formbuilder-form .form-select.is-invalid:focus {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}

.formbuilder-form .invalid-feedback {
    display: none;
    margin-top: var(--space-2);
    font-size: var(--text-sm);
    color: var(--fb-error-color);
}

.formbuilder-form .invalid-feedback.oc-visible,
.formbuilder-form .is-invalid ~ .invalid-feedback {
    display: block;
}

/* Checkboxes and radios */
.formbuilder-form .form-check {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
    padding-left: 0;
}

.formbuilder-form .form-check-input {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    background-color: var(--fb-input-bg);
    border: 1.5px solid var(--brand-border-strong);
    appearance: none;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.formbuilder-form .form-check-input[type="checkbox"] {
    border-radius: var(--radius-sm);
}

.formbuilder-form .form-check-input[type="radio"] {
    border-radius: 50%;
}

.formbuilder-form .form-check-input:hover {
    border-color: var(--fb-focus-color);
}

.formbuilder-form .form-check-input:focus {
    outline: none;
    border-color: var(--fb-focus-color);
    box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb), 0.15);
}

.formbuilder-form .form-check-input:checked {
    background-color: var(--fb-focus-color);
    border-color: var(--fb-focus-color);
}

.formbuilder-form .form-check-input:checked[type="checkbox"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='white' d='M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
    background-size: 0.75rem;
    background-position: center;
    background-repeat: no-repeat;
}

.formbuilder-form .form-check-input:checked[type="radio"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='4' fill='white'/%3e%3c/svg%3e");
    background-size: 0.5rem;
    background-position: center;
    background-repeat: no-repeat;
}

.formbuilder-form .form-check-label {
    font-size: var(--text-sm);
    color: var(--brand-text-secondary);
    cursor: pointer;
    line-height: 1.5;
}

/* Help text */
.formbuilder-form .form-text {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
}

/* Submit button */
.formbuilder-form button[type="submit"],
.formbuilder-form .btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0.875rem 2rem;
    font-family: inherit;
    font-size: var(--text-base);
    font-weight: 600;
    line-height: 1;
    color: var(--brand-text-inverse);
    background-color: var(--brand-accent);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.formbuilder-form button[type="submit"]:hover,
.formbuilder-form .btn-submit:hover {
    background-color: var(--brand-primary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-brand);
}

.formbuilder-form button[type="submit"]:focus,
.formbuilder-form .btn-submit:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb), 0.3);
}

.formbuilder-form button[type="submit"]:disabled,
.formbuilder-form .btn-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Loading state */
.formbuilder-form button[type="submit"].oc-loading,
.formbuilder-form .btn-submit.oc-loading {
    pointer-events: none;
    opacity: 0.8;
}

.formbuilder-form button[type="submit"].oc-loading::after,
.formbuilder-form .btn-submit.oc-loading::after {
    content: '';
    width: 1rem;
    height: 1rem;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    margin-left: var(--space-2);
}

/* reCAPTCHA styling */
.formbuilder-form .g-recaptcha {
    margin-bottom: var(--space-5);
}

.formbuilder-form .recaptcha-error {
    display: none;
    margin-top: var(--space-2);
    font-size: var(--text-sm);
    color: var(--fb-error-color);
}

.formbuilder-form .recaptcha-error.oc-visible {
    display: block;
}

/* Section dividers */
.formbuilder-form .form-section {
    margin-top: var(--space-8);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--brand-border);
}

.formbuilder-form .form-section-title {
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--brand-text);
    margin: 0;
}

.formbuilder-form .form-section-description {
    font-size: var(--text-sm);
    color: var(--brand-text-muted);
    margin-top: var(--space-2);
}

/* Two-column layout for forms */
.formbuilder-form .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
}

@media (max-width: 576px) {
    .formbuilder-form .form-row {
        grid-template-columns: 1fr;
    }
}

/* Hide default form alert (we use toasts instead) */
.formbuilder-form .form-alert,
.formbuilder-form [class*="form-alert-"] {
    display: none !important;
}

/* ==========================================================================
   MULTI-STEP FORM STYLES
   ========================================================================== */

.multistep-form {
    position: relative;
}

/* Progress indicator */
.multistep-progress {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--space-8);
    position: relative;
}

.multistep-progress::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 40px;
    right: 40px;
    height: 2px;
    background: var(--brand-border);
    z-index: 0;
}

.multistep-progress__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    position: relative;
    z-index: 1;
}

.multistep-progress__number {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-surface);
    border: 2px solid var(--brand-border);
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-text-muted);
    transition: all var(--transition-fast);
}

.multistep-progress__step--active .multistep-progress__number {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
    color: var(--brand-text-inverse);
}

.multistep-progress__step--completed .multistep-progress__number {
    background: var(--color-success);
    border-color: var(--color-success);
    color: var(--brand-text-inverse);
}

.multistep-progress__step--completed .multistep-progress__number::after {
    content: '✓';
}

.multistep-progress__label {
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--brand-text-muted);
    text-align: center;
    max-width: 80px;
}

.multistep-progress__step--active .multistep-progress__label,
.multistep-progress__step--completed .multistep-progress__label {
    color: var(--brand-text);
}

/* Step panels */
.multistep-panel {
    display: none;
    animation: fadeIn 0.3s ease;
}

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

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

/* Step navigation */
.multistep-nav {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--brand-border);
}

.multistep-nav__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 0.75rem 1.5rem;
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: 600;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.multistep-nav__btn--prev {
    background: transparent;
    border: 1px solid var(--brand-border);
    color: var(--brand-text-secondary);
}

.multistep-nav__btn--prev:hover {
    background: var(--brand-bg-alt);
    border-color: var(--brand-border-strong);
}

.multistep-nav__btn--next {
    background: var(--brand-accent);
    border: 1px solid var(--brand-accent);
    color: var(--brand-text-inverse);
}

.multistep-nav__btn--next:hover {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
}

.multistep-nav__btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Draft saved indicator */
.multistep-draft-indicator {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: var(--brand-text-muted);
    padding: var(--space-2) var(--space-3);
    background: var(--brand-bg-alt);
    border-radius: var(--radius-sm);
}

.multistep-draft-indicator svg {
    width: 14px;
    height: 14px;
    color: var(--color-success);
}

/* Mobile progress */
@media (max-width: 576px) {
    .multistep-progress {
        overflow-x: auto;
        padding-bottom: var(--space-2);
    }

    .multistep-progress__label {
        display: none;
    }

    .multistep-progress__number {
        width: 32px;
        height: 32px;
        font-size: var(--text-xs);
    }

    .multistep-progress::before {
        top: 16px;
        left: 20px;
        right: 20px;
    }
}
