/*
 * NOVA public experience refresh
 * A consistent, restrained future mobility look for desktop and mobile.
 */

:root {
    --nova-ink: #111d2e;
    --nova-navy: #071323;
    --nova-navy-soft: #10233b;
    --nova-muted: #68778a;
    --nova-line: #e2e9f1;
    --nova-canvas: #f4f7fb;
    --nova-cyan: #42d7f5;
    --nova-radius: 20px;
    --nova-shadow: 0 18px 48px rgba(13, 31, 54, .08);
}

html { scroll-padding-top: 88px; }

body {
    color: var(--nova-ink);
    background: var(--nova-canvas);
}

::selection { background: rgba(66, 215, 245, .28); color: var(--nova-navy); }

:is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--nova-cyan) 74%, white);
    outline-offset: 3px;
}

.site-header {
    border-bottom-color: rgba(19, 38, 62, .1);
    background: rgba(250, 252, 255, .9);
    box-shadow: 0 8px 28px rgba(13, 31, 54, .045);
}

.header-container {
    min-height: 76px;
    gap: 20px;
}

.brand-symbol {
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 14px;
    background: linear-gradient(145deg, var(--red), var(--red-dark));
    box-shadow: 0 8px 22px color-mix(in srgb, var(--red) 26%, transparent);
}

.brand-logo { border-radius: 14px; }

.site-nav { gap: clamp(10px, 1.3vw, 20px); }

.site-nav > a:not(.nav-contact) {
    position: relative;
    padding-block: 10px;
    color: #435267;
    font-size: .8rem;
    font-weight: 750;
}

.site-nav > a:not(.nav-contact)::after {
    position: absolute;
    right: 0;
    bottom: 2px;
    left: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--red);
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .2s ease;
}

.site-nav > a:not(.nav-contact):hover::after,
.site-nav > a:not(.nav-contact):focus-visible::after { transform: scaleX(1); }

.site-nav > .nav-contact {
    min-width: 46px;
    min-height: 46px;
    border: 1px solid color-mix(in srgb, var(--red) 60%, white);
    border-radius: 14px;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    box-shadow: 0 8px 20px color-mix(in srgb, var(--red) 20%, transparent);
}

.mobile-menu-toggle {
    border-color: #d9e3ef;
    border-radius: 13px;
    box-shadow: 0 4px 12px rgba(13, 31, 54, .05);
}

.mobile-menu-toggle span { background: var(--nova-ink); }

.eyebrow,
.vehicle-eyebrow,
.article-eyebrow {
    color: var(--red);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.section-description,
.vehicle-hero-description,
.article-hero-description { color: var(--nova-muted); }

.auto-home .auto-module {
    padding-block: clamp(52px, 6vw, 82px);
}

.auto-home .vehicle-section,
.auto-home .testimonial-section { background: #fff; }

.auto-home .promo-section,
.auto-home .contact-section { background: var(--nova-canvas); }

.auto-home .section-heading h2,
.auto-home .featured-vehicles .section-heading h2,
.auto-home .home-promos .section-heading h2,
.auto-home .testimonial-section .section-heading h2,
.auto-home .home-articles .section-heading h2 {
    color: var(--nova-ink);
    letter-spacing: -.05em;
}

.auto-home .section-heading .section-description { color: var(--nova-muted); }

.auto-home :is(.vehicle-card, .promo-card, .article-card, .customer-story-card) {
    border-color: var(--nova-line);
    border-radius: var(--nova-radius);
    box-shadow: 0 8px 26px rgba(13, 31, 54, .055);
}

.auto-home :is(.vehicle-card, .promo-card, .article-card, .customer-story-card):hover {
    border-color: color-mix(in srgb, var(--red) 32%, var(--nova-line));
    box-shadow: 0 20px 42px rgba(13, 31, 54, .12);
}

.auto-home :is(.vehicle-image-wrap, .promo-image-wrap, .home-article-card-media) {
    background: #eaf0f6;
}

.auto-home .vehicle-image-wrap::after,
.auto-home .promo-image-wrap::after {
    position: absolute;
    inset: auto 0 0;
    height: 28%;
    background: linear-gradient(transparent, rgba(7, 19, 35, .25));
    content: "";
    pointer-events: none;
}

.auto-home .vehicle-image-wrap,
.auto-home .promo-image-wrap { position: relative; }

.auto-home .vehicle-image-label,
.auto-home .promo-image-tag {
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    background: rgba(7, 19, 35, .82);
    backdrop-filter: blur(12px);
}

.auto-home .vehicle-card .card-body,
.auto-home .promo-card .card-body,
.auto-home .article-card .card-body { padding: clamp(18px, 2vw, 24px); }

.auto-home .vehicle-card h3,
.auto-home .promo-card h3,
.auto-home .article-card h3 { color: var(--nova-ink); }

.auto-home .vehicle-starting-price,
.auto-home .promo-kicker,
.auto-home .section-link,
.auto-home .customer-stories-link { color: var(--red); }

.auto-home .vehicle-card .pill {
    border: 1px solid color-mix(in srgb, var(--red) 16%, white);
    border-radius: 999px;
    background: color-mix(in srgb, var(--red) 7%, white);
}

.auto-home .customer-story-card { background: #fff; }

.auto-home .hero-slider-ticker {
    border-color: rgba(120, 157, 197, .25);
    border-radius: 14px;
    background: rgba(11, 27, 46, .94);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .14);
}

.auto-home .hero-slider-ticker-item > a { border-radius: 999px; }

.auto-home .hero-slider-ticker-item > a:hover,
.auto-home .hero-slider-ticker-item > a:focus-visible {
    border-color: var(--red);
    background: var(--red);
}

.auto-hero:has(.hero-slider) {
    padding-block: clamp(18px, 2.5vw, 32px);
    background:
        radial-gradient(ellipse at 78% 40%, rgba(41, 90, 137, .28), transparent 45%),
        linear-gradient(120deg, #06101d, #0c1b2d 56%, #101a29);
}

.auto-hero .hero-slider {
    width: min(1360px, calc(100% - 56px));
    border: 1px solid rgba(202, 223, 246, .22);
    border-radius: 22px;
    box-shadow: 0 26px 74px rgba(0, 0, 0, .34), 0 0 0 1px rgba(255, 255, 255, .025);
}

.auto-hero .hero-slide .hero-copy :is(h1, h2, .hero-title, .slide-title) {
    text-wrap: balance;
}

.auto-hero .hero-slider-ticker { width: min(1360px, calc(100% - 56px)); }

.auto-hero .hero-slider-ticker-item strong { letter-spacing: -.01em; }

.auto-home .contact-band { background: transparent; }

.vehicle-page,
.article-page,
.pricelist-page,
.promo-page,
.customer-stories-page,
.contact-page { color: var(--nova-ink); }

.vehicle-page,
.article-page,
.pricelist-page { background: var(--nova-canvas); }

.vehicle-hero,
.article-hero,
.pricelist-intro {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #fff;
    border-bottom: 1px solid rgba(153, 185, 220, .17);
    background:
        radial-gradient(ellipse at 83% 28%, rgba(54, 115, 168, .32), transparent 35%),
        radial-gradient(ellipse at 5% 100%, color-mix(in srgb, var(--red) 19%, transparent), transparent 38%),
        linear-gradient(116deg, #071323 3%, #0c1d32 56%, #10223a 100%);
}

.vehicle-hero::before,
.article-hero::before,
.pricelist-intro::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image:
        linear-gradient(rgba(184, 208, 235, .08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(184, 208, 235, .08) 1px, transparent 1px);
    background-size: 46px 46px;
    content: "";
    opacity: .55;
    mask-image: linear-gradient(100deg, transparent, #000 42%, #000);
    pointer-events: none;
}

.vehicle-hero::after,
.article-hero::after,
.pricelist-intro::after {
    position: absolute;
    z-index: -1;
    top: -180px;
    right: -110px;
    width: min(48vw, 570px);
    aspect-ratio: 1;
    border: 1px solid rgba(180, 213, 247, .14);
    border-radius: 50%;
    box-shadow: 0 0 0 24px rgba(180, 213, 247, .025), 0 0 0 52px rgba(180, 213, 247, .02);
    content: "";
    pointer-events: none;
}

.vehicle-hero .vehicle-container,
.article-hero .article-container,
.pricelist-intro .auto-container { position: relative; z-index: 1; }

.vehicle-hero h1,
.article-hero h1,
.pricelist-intro h1 {
    color: #fff;
    letter-spacing: -.055em;
    text-wrap: balance;
}

.vehicle-hero h1 span,
.article-hero h1 span { color: var(--nova-cyan); }

.vehicle-eyebrow,
.article-eyebrow,
.pricelist-intro .eyebrow { color: var(--nova-cyan); }

.vehicle-eyebrow::before,
.article-eyebrow::before { height: 2px; }

.vehicle-hero-description,
.article-hero-description,
.pricelist-intro .section-description {
    color: #bfccdb;
    line-height: 1.8;
}

.vehicle-filters,
.article-search {
    border-color: rgba(204, 221, 240, .22);
    border-radius: 16px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
}

.vehicle-filters input,
.vehicle-filters select,
.article-search input {
    min-height: 48px;
    border-color: #e1e8f0;
    border-radius: 11px;
    color: var(--nova-ink);
}

.vehicle-filters input:focus,
.vehicle-filters select:focus,
.article-search input:focus {
    border-color: var(--nova-cyan);
    box-shadow: 0 0 0 3px rgba(66, 215, 245, .15);
}

.vehicle-filter-button,
.article-search button,
.article-reset-link,
.vehicle-reset {
    min-height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    box-shadow: 0 8px 20px color-mix(in srgb, var(--red) 23%, transparent);
}

.vehicle-content,
.article-content { padding-bottom: clamp(52px, 7vw, 88px); }

.vehicle-heading h2,
.article-section-heading h2 { color: var(--nova-ink); letter-spacing: -.045em; }

.vehicle-count,
.article-count { color: var(--nova-muted); }

.vehicle-card,
.article-card,
.article-featured,
.pricelist-model-card,
.promo-page .content-card,
.customer-story-card {
    border-color: var(--nova-line);
    border-radius: var(--nova-radius);
    background: #fff;
    box-shadow: 0 9px 28px rgba(13, 31, 54, .06);
}

.vehicle-card,
.article-card,
.pricelist-model-card,
.promo-page .content-card,
.customer-story-card {
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.vehicle-card:hover,
.article-card:hover,
.article-featured:hover,
.pricelist-model-card:hover,
.promo-page .content-card:hover,
.customer-story-card:hover {
    border-color: color-mix(in srgb, var(--red) 28%, var(--nova-line));
    box-shadow: 0 20px 44px rgba(13, 31, 54, .12);
}

.vehicle-card:hover,
.article-card:hover,
.promo-page .content-card:hover,
.customer-story-card:hover { transform: translateY(-4px); }

.vehicle-media,
.article-card-media,
.article-featured-media,
.promo-list-image,
.customer-story-image { background: #eaf0f6; }

.vehicle-card h3,
.article-card-title,
.article-featured-body h2,
.pricelist-model-link h2,
.pricelist-variant-info h3,
.promo-page .content-card h2,
.customer-story-body h3 { color: var(--nova-ink); }

.vehicle-pill,
.article-featured-label,
.article-card-category {
    border-radius: 999px;
}

.vehicle-pagination,
.article-pagination { gap: 9px; }

.vehicle-page-link,
.article-page-link {
    min-width: 44px;
    min-height: 44px;
    border-color: var(--nova-line);
    border-radius: 13px;
    box-shadow: 0 3px 10px rgba(13, 31, 54, .035);
}

.pricelist-intro {
    padding-block: clamp(54px, 7vw, 88px) clamp(42px, 5vw, 58px);
}

.pricelist-intro h1 { margin-top: 10px; }

.pricelist-content { padding-block: clamp(28px, 4vw, 44px) clamp(56px, 7vw, 86px); }

.pricelist-filters {
    gap: 12px;
    padding: 20px;
    border-color: var(--nova-line);
    border-radius: 18px;
    box-shadow: var(--nova-shadow);
}

.pricelist-filters label { color: #46566c; }

.pricelist-filters input,
.pricelist-filters select {
    min-height: 48px;
    border-color: #dfe7f0;
    border-radius: 11px;
}

.pricelist-filters :is(input, select):focus {
    border-color: var(--nova-cyan);
    outline: none;
    box-shadow: 0 0 0 3px rgba(66, 215, 245, .16);
}

.pricelist-filters .btn,
.pricelist-contact,
.testimonials-contact-cta .btn {
    min-height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    box-shadow: 0 8px 20px color-mix(in srgb, var(--red) 22%, transparent);
}

.pricelist-results-grid { gap: 22px; }

.pricelist-model-card { overflow: hidden; }

.pricelist-model-media {
    align-items: center;
    border-right-color: var(--nova-line);
    background: linear-gradient(145deg, #f7f9fc, #edf3f8);
}

.pricelist-model-heading {
    border-bottom-color: var(--nova-line);
    background: linear-gradient(110deg, #f7f9fc, #fff 78%);
}

.pricelist-year-badge {
    border-color: rgba(66, 215, 245, .28);
    border-radius: 12px;
    background: #f1fbfd;
}

.pricelist-variant-row { border-color: #edf1f6; }

.pricelist-variant-price strong { color: var(--red); }

.pricelist-empty,
.vehicle-empty,
.article-empty {
    border-color: #dce6f0;
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--nova-shadow);
}

.promo-page,
.customer-stories-page {
    position: relative;
    isolation: isolate;
    padding-block: clamp(48px, 6vw, 76px) clamp(58px, 7vw, 88px);
}

.promo-page::before,
.customer-stories-page::before {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 50%;
    width: 100vw;
    height: 330px;
    background:
        linear-gradient(rgba(184, 208, 235, .075) 1px, transparent 1px),
        linear-gradient(90deg, rgba(184, 208, 235, .075) 1px, transparent 1px),
        radial-gradient(ellipse at 82% 32%, rgba(54, 115, 168, .32), transparent 38%),
        linear-gradient(116deg, #071323, #10223a);
    background-size: 46px 46px, 46px 46px, auto, auto;
    content: "";
    transform: translateX(-50%);
    pointer-events: none;
}

.promo-page > .eyebrow,
.customer-stories-page > .eyebrow { color: var(--nova-cyan); }

.promo-page > h1,
.customer-stories-page > h1 {
    color: #fff;
    font-size: clamp(2.3rem, 5vw, 4rem);
    letter-spacing: -.06em;
    line-height: 1.04;
    text-wrap: balance;
}

.promo-page > p:not(.eyebrow),
.customer-stories-intro {
    max-width: 760px;
    color: #c1cede;
}

.promo-page .promo-grid-spaced,
.customer-stories-page .customer-stories-grid { margin-top: clamp(28px, 4vw, 44px); }

.promo-page .promo-grid-spaced { gap: 22px; }

.promo-page .content-card {
    overflow: hidden;
    border-radius: 20px;
}

.promo-page .promo-list-image {
    aspect-ratio: 16 / 10;
    transition: transform .45s ease;
}

.promo-page .content-card:hover .promo-list-image { transform: scale(1.035); }

.promo-page .content-card .card-body { padding: clamp(18px, 2.2vw, 25px); }

.promo-page .content-card h2 { font-size: clamp(1.1rem, 1.6vw, 1.35rem); line-height: 1.3; }

.promo-page .content-card p { color: var(--nova-muted); line-height: 1.75; }

.promo-page .content-card .card-body > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--red);
}

.customer-stories-page .customer-stories-grid { gap: 22px; }

.customer-story-card { overflow: hidden; }

.customer-story-image { aspect-ratio: 4 / 3; }

.customer-story-body { padding: 21px; }

.customer-story-card blockquote { color: #536176; line-height: 1.8; }

.testimonials-contact-cta { margin-top: 34px; }

.contact-page > .section.container {
    position: relative;
    isolation: isolate;
    width: 100%;
    max-width: none;
    overflow: hidden;
    margin: 0;
    padding: clamp(52px, 7vw, 90px) max(24px, calc((100% - var(--container)) / 2));
    color: #fff;
    background:
        radial-gradient(ellipse at 82% 32%, rgba(54, 115, 168, .32), transparent 38%),
        linear-gradient(116deg, #071323, #10223a);
}

.contact-page > .section.container::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image:
        linear-gradient(rgba(184, 208, 235, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(184, 208, 235, .07) 1px, transparent 1px);
    background-size: 46px 46px;
    content: "";
    mask-image: linear-gradient(100deg, transparent, #000 48%);
    pointer-events: none;
}

.contact-page > .section.container > * { position: relative; z-index: 1; }

.contact-page > .section.container .eyebrow { color: var(--nova-cyan); }

.contact-page > .section.container h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-size: clamp(2.3rem, 5vw, 4rem);
    line-height: 1.04;
    letter-spacing: -.06em;
    text-wrap: balance;
}

.contact-page > .section.container > p:last-child {
    max-width: 720px;
    margin: 16px 0 0;
    color: #c1cede;
    line-height: 1.8;
}

.contact-page .contact-band {
    padding-block: clamp(36px, 5vw, 66px);
    background: var(--nova-canvas);
}

.contact-page .contact-grid {
    width: min(var(--container), calc(100% - 48px));
    margin-inline: auto;
}

.contact-page .contact-info h2 {
    color: var(--nova-ink);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    line-height: 1.12;
    letter-spacing: -.045em;
}

.contact-page .contact-sales-identity,
.contact-page .contact-channel,
.contact-page .lead-form {
    border-color: var(--nova-line);
    border-radius: 17px;
    box-shadow: 0 12px 32px rgba(13, 31, 54, .065);
}

.contact-page .contact-sales-photo { border-radius: 16px; }

.contact-page .contact-channel { min-height: 68px; }

.contact-page .contact-channel:hover,
.contact-page .contact-channel:focus-visible {
    border-color: color-mix(in srgb, var(--red) 32%, var(--nova-line));
    box-shadow: 0 14px 30px rgba(13, 31, 54, .1);
}

.contact-page .lead-form { padding: clamp(22px, 3vw, 34px); }

.contact-page .lead-form h3 { color: var(--nova-ink); font-size: 1.3rem; }

.contact-page .lead-form :is(input, select, textarea) {
    min-height: 48px;
    border-color: #dfe7f0;
    border-radius: 11px;
}

.contact-page .lead-form textarea { min-height: 126px; }

.contact-page .lead-form :is(input, select, textarea):focus {
    border-color: var(--nova-cyan);
    outline: none;
    box-shadow: 0 0 0 3px rgba(66, 215, 245, .15);
}

.contact-page .lead-form button { min-height: 50px; border-radius: 12px; }

.contact-page .contact-map {
    overflow: hidden;
    border: 1px solid var(--nova-line);
    border-radius: 18px;
    box-shadow: var(--nova-shadow);
}

.contact-page .contact-map iframe { display: block; width: 100%; }

.site-footer {
    position: relative;
    overflow: hidden;
    padding-top: clamp(44px, 6vw, 72px);
    border-top: 1px solid rgba(117, 158, 201, .2);
    background:
        radial-gradient(ellipse at 85% 0%, rgba(37, 87, 132, .25), transparent 37%),
        linear-gradient(130deg, #071323, #0c1b2d 58%, #101b2b);
}

.site-footer::before {
    position: absolute;
    inset: 0 0 auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--nova-cyan) 55%, transparent), transparent);
    content: "";
}

.site-footer .footer-description,
.site-footer .footer-contact p { color: #a8b7ca; }

.site-footer .footer-heading { color: #fff; letter-spacing: .04em; }

.site-footer .footer-social-link,
.site-footer .footer-channel-link { border-radius: 12px; }

.site-footer .footer-bottom {
    border-top-color: rgba(180, 205, 233, .14);
    color: #94a5ba;
}

.floating-contact-button {
    border: 1px solid rgba(255, 255, 255, .3);
    box-shadow: 0 12px 28px rgba(4, 16, 30, .26);
}

@media (max-width: 980px) {
    .auto-hero .hero-slider,
    .auto-hero .hero-slider-ticker { width: calc(100% - 40px); }

    .contact-page .contact-grid { width: min(var(--container), calc(100% - 40px)); }
}

@media (max-width: 900px) {
    .site-nav {
        border-color: rgba(173, 197, 225, .2);
        border-radius: 0 0 18px 18px;
        background: rgba(8, 22, 39, .98);
        box-shadow: 0 22px 38px rgba(4, 16, 30, .24);
    }

    .site-nav > a:not(.nav-contact) {
        min-height: 48px;
        border-bottom-color: rgba(173, 197, 225, .12);
        color: #e4edf7;
    }

    .site-nav > .nav-contact { margin-top: 10px; }
}

@media (max-width: 680px) {
    html { scroll-padding-top: 76px; }

    .header-container { min-height: 66px; }

    .auto-container,
    .header-container { width: calc(100% - 32px); }

    .auto-hero:has(.hero-slider) { row-gap: 10px; padding-block: 12px; }

    .auto-hero .hero-slider,
    .auto-hero .hero-slider-ticker { width: calc(100% - 24px); }

    .auto-hero .hero-slider { border-radius: 16px; }

    .auto-home .auto-module { padding-block: 42px; }

    .auto-home .section-heading { gap: 14px; }

    .auto-home .section-heading-actions { width: 100%; }

    .auto-home .section-heading-actions > a { min-height: 44px; }

    .vehicle-hero,
    .article-hero { padding-block: 44px 38px; }

    .vehicle-hero h1,
    .article-hero h1,
    .pricelist-intro h1,
    .promo-page > h1,
    .customer-stories-page > h1,
    .contact-page > .section.container h1 { letter-spacing: -.045em; }

    .vehicle-hero::after,
    .article-hero::after,
    .pricelist-intro::after { top: -80px; right: -180px; width: 340px; }

    .vehicle-filters,
    .article-search { gap: 8px; }

    .vehicle-filters { padding: 10px; }

    .vehicle-content,
    .article-content { padding-top: 30px; }

    .article-search button { min-height: 46px; }

    .vehicle-card-body { padding: 20px; }

    .pricelist-intro { padding-block: 48px 38px; }

    .pricelist-content { padding-block: 24px 56px; }

    .pricelist-filters { padding: 14px; border-radius: 16px; }

    .pricelist-model-card { border-radius: 17px; }

    .pricelist-model-media { background: #f0f4f8; }

    .pricelist-variant-row { gap: 8px; }

    .pricelist-variant-price { justify-items: start; text-align: left; }

    .pricelist-variant-price strong { white-space: normal; overflow-wrap: anywhere; }

    .promo-page,
    .customer-stories-page { padding-block: 42px 54px; }

    .promo-page::before,
    .customer-stories-page::before { height: 300px; }

    .promo-page .promo-grid-spaced,
    .customer-stories-page .customer-stories-grid { margin-top: 25px; gap: 15px; }

    .promo-page .content-card,
    .customer-story-card { border-radius: 17px; }

    .promo-page .content-card .card-body,
    .customer-story-body { padding: 18px; }

    .contact-page > .section.container { padding: 48px 20px 42px; }

    .contact-page .contact-grid { width: calc(100% - 32px); }

    .contact-page .contact-band { padding-block: 34px; }

    .contact-page .contact-channels { gap: 8px; }

    .contact-page .contact-channel { min-height: 62px; padding: 10px 11px; }

    .contact-page .lead-form { padding: 20px; }

    .article-page .article-card {
        display: flex;
        flex-direction: column;
        border-radius: 17px;
    }

    .article-page .article-card-media {
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .article-page .article-card-body { padding: 18px; }

    .article-page .article-card-title { font-size: 1.08rem; }

    .article-page .article-card-excerpt {
        margin-block: 10px 14px;
        font-size: .86rem;
        line-height: 1.7;
        -webkit-line-clamp: 3;
    }

    .site-footer { padding: 42px 18px 22px; }

    .site-footer .footer-container { gap: 30px; }

    .site-footer .footer-bottom { gap: 9px; }
}

@media (max-width: 420px) {
    .site-brand { gap: 8px; }

    .site-header .brand-copy .brand-identity { flex-direction: column; align-items: flex-start; gap: 0; }

    .site-header .brand-copy .brand-identity .brand-branch { font-size: .66rem; }

    .auto-hero .hero-slider { width: calc(100% - 20px); }

    .auto-hero .hero-slider-ticker { width: calc(100% - 20px); }

    .vehicle-actions { flex-direction: column; }

    .vehicle-actions .vehicle-button { width: 100%; }

    .contact-page .contact-channel--icon-only { width: 46px; min-height: 46px; }
}

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

/* Moderate type scale and the remaining detail/support pages. */
.auto-home .vehicle-section .featured-vehicles .section-heading h2,
.auto-home .home-promos .section-heading h2,
.auto-home .testimonial-section .section-heading h2,
.auto-home .home-articles .section-heading h2 {
    font-size: clamp(1.55rem, 2.9vw, 2.3rem);
}

.vehicle-hero h1,
.article-hero h1,
.pricelist-intro h1,
.promo-page > h1,
.customer-stories-page > h1,
.contact-page > .section.container h1 {
    font-size: clamp(1.95rem, 4vw, 3.1rem);
}

.vehicle-hero-description,
.article-hero-description,
.pricelist-intro .section-description,
.promo-page > p:not(.eyebrow),
.customer-stories-intro,
.contact-page > .section.container > p:last-child {
    font-size: .98rem;
}

.vehicle-card h3,
.article-card-title,
.article-featured-body h2 { font-size: clamp(1.08rem, 1.7vw, 1.4rem); }

.article-detail-page {
    padding-bottom: clamp(48px, 7vw, 84px);
    background: var(--nova-canvas);
}

.article-detail-page .detail-container { width: min(1120px, calc(100% - 48px)); }

.article-detail-page .detail-breadcrumb { color: #718096; font-size: .78rem; }

.article-detail-page .detail-hero {
    max-width: 880px;
    margin: 0 0 24px;
    text-align: left;
}

.article-detail-page .detail-category {
    color: var(--red);
    font-size: .68rem;
    letter-spacing: .14em;
}

.article-detail-page .detail-category::before { height: 2px; }

.article-detail-page .detail-hero h1 {
    max-width: 840px;
    color: var(--nova-ink);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
    letter-spacing: -.05em;
}

.article-detail-page .detail-excerpt {
    max-width: 790px;
    margin: 15px 0 0;
    color: var(--nova-muted);
    font-size: 1rem;
    line-height: 1.75;
}

.article-detail-page .detail-cover {
    margin-block: 28px 32px;
    border: 1px solid var(--nova-line);
    border-radius: 22px;
    box-shadow: var(--nova-shadow);
}

.article-detail-page .detail-layout {
    grid-template-columns: minmax(0, 760px) minmax(220px, 1fr);
    gap: 32px;
}

.article-detail-page .detail-content {
    padding: clamp(22px, 4vw, 42px);
    border: 1px solid var(--nova-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(13, 31, 54, .045);
    color: #46566b;
    font-size: 1rem;
    line-height: 1.85;
}

.article-detail-page .detail-content h2 { font-size: 1.55rem; }
.article-detail-page .detail-content h3 { font-size: 1.25rem; }
.article-detail-page .detail-content h4 { font-size: 1.08rem; }

.article-detail-page .detail-content blockquote {
    border-left-color: var(--nova-cyan);
    border-radius: 0 13px 13px 0;
    background: #f2f8fb;
}

.article-detail-page .detail-sidebar {
    position: sticky;
    top: 100px;
    padding: 24px;
    border: 1px solid rgba(172, 202, 232, .2);
    border-radius: 18px;
    background: linear-gradient(145deg, #0b1a2c, #132b46);
    box-shadow: 0 16px 36px rgba(13, 31, 54, .13);
    color: #fff;
}

.article-detail-page .detail-sidebar h2 { color: #fff; font-size: 1.2rem; }
.article-detail-page .detail-sidebar p { color: #c2d0df; font-size: .9rem; line-height: 1.7; }

.article-detail-page .detail-contact,
.article-detail-page .detail-back,
.article-detail-page .detail-share a {
    border-radius: 11px;
}

.article-detail-page .detail-related { margin-top: clamp(46px, 7vw, 76px); }

.article-detail-page .detail-related-heading h2 {
    color: var(--nova-ink);
    font-size: clamp(1.45rem, 2.6vw, 2rem);
}

.article-detail-page .detail-related-heading p { color: var(--nova-muted); }

.article-detail-page .detail-related-card {
    overflow: hidden;
    border-color: var(--nova-line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(13, 31, 54, .055);
}

.article-detail-page .detail-related-body h3 { font-size: 1.04rem; }

.article-detail-page .detail-related-body p { color: var(--nova-muted); font-size: .88rem; }

.vehicle-detail-page {
    padding-bottom: clamp(48px, 7vw, 84px);
    background: var(--nova-canvas);
}

.vehicle-detail-page .vd-container { width: min(1200px, calc(100% - 48px)); }

.vehicle-detail-page .vd-breadcrumb { font-size: .78rem; }

.vehicle-detail-page .vd-image-wrap {
    border-color: var(--nova-line);
    border-radius: 22px;
    background: linear-gradient(145deg, #fff, #edf3f8);
    box-shadow: var(--nova-shadow);
}

.vehicle-detail-page .vd-color-picker {
    border-color: var(--nova-line);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(13, 31, 54, .045);
}

.vehicle-detail-page .vd-color-option { min-height: 94px; border-radius: 12px; }

.vehicle-detail-page .vd-info {
    padding: clamp(24px, 3.3vw, 40px);
    border: 1px solid rgba(177, 204, 232, .16);
    border-radius: 22px;
    background:
        radial-gradient(ellipse at 92% 5%, rgba(66, 215, 245, .13), transparent 35%),
        linear-gradient(145deg, #0a192b, #122b46);
    box-shadow: 0 18px 42px rgba(13, 31, 54, .14);
    color: #fff;
}

.vehicle-detail-page .vd-eyebrow { color: var(--nova-cyan); font-size: .68rem; }

.vehicle-detail-page .vd-hero h1 {
    color: #fff;
    font-size: clamp(2rem, 3.3vw, 2.8rem);
    line-height: 1.08;
    letter-spacing: -.05em;
}

.vehicle-detail-page .vd-category {
    border: 1px solid rgba(196, 220, 243, .2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: #d7e3ef;
}

.vehicle-detail-page .vd-description { color: #c0cedd; font-size: .94rem; line-height: 1.75; }

.vehicle-detail-page .vd-button { min-height: 46px; border-radius: 12px; font-size: .82rem; }

.vehicle-detail-page .vd-button-outline {
    border-color: rgba(208, 225, 242, .36);
    background: rgba(255, 255, 255, .06);
    color: #edf6ff;
}

.vehicle-detail-page .vd-full-description { padding-block: 0 32px; }

.vehicle-detail-page .vd-full-description-copy {
    padding: clamp(22px, 3.5vw, 36px);
    border: 1px solid var(--nova-line);
    border-radius: 19px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(13, 31, 54, .045);
    color: #536176;
    font-size: .95rem;
    line-height: 1.8;
}

.vehicle-detail-page .vd-full-description-copy h3 { font-size: 1.25rem; }
.vehicle-detail-page .vd-full-description-copy h4 { font-size: 1.08rem; }

.vd-model-details { padding-block: 10px 38px; }

.vd-model-details-heading { margin-bottom: 18px; }

.vd-model-details-heading > p {
    margin: 0 0 5px;
    color: var(--red);
    font-size: .67rem;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.vd-model-details-heading h2 {
    margin: 0;
    color: var(--nova-ink);
    font-size: clamp(1.45rem, 2.7vw, 2rem);
    line-height: 1.18;
    letter-spacing: -.04em;
}

.vd-model-details-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.vd-model-detail-card {
    min-width: 0;
    padding: clamp(18px, 2.3vw, 25px);
    border: 1px solid var(--nova-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(13, 31, 54, .05);
}

.vd-model-detail-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    padding-bottom: 13px;
    border-bottom: 1px solid #edf1f6;
}

.vd-model-detail-heading > span {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border: 1px solid rgba(66, 215, 245, .34);
    border-radius: 11px;
    background: #f0fbfd;
    color: #1485a0;
    font-size: .68rem;
    font-weight: 850;
}

.vd-model-detail-heading h3 {
    margin: 0;
    color: var(--nova-ink);
    font-size: 1.1rem;
    line-height: 1.3;
}

.vd-model-detail-content {
    color: #58677a;
    font-size: .9rem;
    line-height: 1.75;
    overflow-wrap: anywhere;
}

.vd-model-detail-content > :first-child { margin-top: 0; }
.vd-model-detail-content > :last-child { margin-bottom: 0; }
.vd-model-detail-content h3,
.vd-model-detail-content h4 { color: var(--nova-ink); font-size: 1rem; }
.vd-model-detail-content img { border-radius: 12px; }

.vehicle-detail-page .vd-variants { padding-top: 34px; border-top-color: var(--nova-line); }

.vehicle-detail-page .vd-section-heading h2 { font-size: clamp(1.45rem, 2.7vw, 2rem); }

.vehicle-detail-page .vd-table-wrap {
    border-color: var(--nova-line);
    border-radius: 17px;
    box-shadow: 0 8px 26px rgba(13, 31, 54, .05);
}

.vehicle-detail-page .vd-table th { background: #edf3f8; }

.vehicle-detail-page .vd-contact-panel {
    border: 1px solid rgba(177, 204, 232, .16);
    border-radius: 20px;
    background:
        radial-gradient(ellipse at 90% 0, rgba(66, 215, 245, .15), transparent 42%),
        linear-gradient(130deg, #09182a, #132b46);
}

.vehicle-detail-page .vd-contact-copy h2 { font-size: clamp(1.25rem, 2.4vw, 1.75rem); }

.vehicle-detail-page .vd-contact-panel .vd-button {
    border-color: #fff;
    background: #fff;
    color: var(--nova-ink);
}

.article-detail {
    width: min(1080px, calc(100% - 48px));
    margin-inline: auto;
    padding-block: clamp(34px, 5vw, 58px) clamp(50px, 7vw, 82px);
}

.article-detail > h1 {
    max-width: 850px;
    color: var(--nova-ink);
    font-size: clamp(1.95rem, 4vw, 3rem);
    line-height: 1.1;
    letter-spacing: -.05em;
}

.article-detail > p:not(.eyebrow) { color: var(--nova-muted); line-height: 1.75; }

.article-detail .promo-detail-cover {
    max-height: 540px;
    border: 1px solid var(--nova-line);
    border-radius: 22px;
    box-shadow: var(--nova-shadow);
}

.article-detail .article-content {
    padding: clamp(22px, 4vw, 40px);
    border: 1px solid var(--nova-line);
    border-radius: 19px;
    background: #fff;
    color: #4b5c71;
    font-size: .98rem;
    line-height: 1.85;
    box-shadow: 0 8px 26px rgba(13, 31, 54, .05);
}

.article-detail .article-content :is(h2, h3, h4) {
    color: var(--nova-ink);
    font-size: clamp(1.1rem, 2vw, 1.45rem);
}

.html-sitemap-page { background: var(--nova-canvas); }

.html-sitemap-intro {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(rgba(184, 208, 235, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(184, 208, 235, .07) 1px, transparent 1px),
        radial-gradient(ellipse at 82% 30%, rgba(54, 115, 168, .3), transparent 40%),
        linear-gradient(116deg, #071323, #10223a);
    background-size: 46px 46px, 46px 46px, auto, auto;
}

.html-sitemap-intro .container { position: relative; z-index: 1; }

.html-sitemap-intro .eyebrow { color: var(--nova-cyan); }

.html-sitemap-intro h1 {
    color: #fff;
    font-size: clamp(1.95rem, 4vw, 3rem);
    letter-spacing: -.05em;
}

.html-sitemap-groups { padding-top: 26px; }

.html-sitemap-group {
    border-color: var(--nova-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(13, 31, 54, .05);
}

.html-sitemap-group h2 { color: var(--nova-ink); font-size: 1.05rem; }

.html-sitemap-group a {
    display: block;
    padding: 5px 0;
    color: #526278;
    font-size: .9rem;
}

.html-sitemap-group a:hover { color: var(--red); }

@media (max-width: 850px) {
    .article-detail-page .detail-layout { grid-template-columns: 1fr; }
    .article-detail-page .detail-sidebar { position: static; }
}

@media (max-width: 600px) {
    .article-detail-page .detail-container,
    .vehicle-detail-page .vd-container,
    .article-detail { width: calc(100% - 32px); }

    .article-detail-page .detail-breadcrumb { margin-block: 18px; }

    .article-detail-page .detail-hero h1,
    .vehicle-detail-page .vd-hero h1,
    .article-detail > h1 { font-size: clamp(1.85rem, 8vw, 2.35rem); }

    .article-detail-page .detail-cover {
        margin-block: 20px 22px;
        border-radius: 16px;
    }

    .article-detail-page .detail-content { padding: 20px; border-radius: 16px; }

    .article-detail-page .detail-content h2 { font-size: 1.35rem; }

    .article-detail-page .detail-related { margin-top: 42px; }

    .vehicle-detail-page .vd-hero { gap: 20px; }

    .vehicle-detail-page .vd-info { padding: 22px; border-radius: 18px; }

    .vehicle-detail-page .vd-full-description-copy { padding: 20px; border-radius: 16px; }

    .vd-model-details { padding-bottom: 28px; }

    .vd-model-details-grid { grid-template-columns: 1fr; gap: 12px; }

    .vd-model-detail-card { padding: 18px; border-radius: 16px; }

    .vehicle-detail-page .vd-contact-panel { padding: 21px; border-radius: 17px; }

    .article-detail .promo-detail-cover { border-radius: 16px; }

    .article-detail .article-content { padding: 20px; border-radius: 16px; }
}

.simulation-page {
    min-height: 70vh;
    padding-bottom: clamp(48px, 7vw, 82px);
    background: var(--nova-canvas);
}

.simulation-container { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }

.simulation-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(52px, 7vw, 82px) 0 clamp(42px, 5vw, 60px);
    background:
        linear-gradient(rgba(184, 208, 235, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(184, 208, 235, .055) 1px, transparent 1px),
        radial-gradient(ellipse at 82% 25%, rgba(66, 215, 245, .17), transparent 34%),
        linear-gradient(120deg, #071323, #10243d 65%, #122c46);
    background-size: 44px 44px, 44px 44px, auto, auto;
}

.simulation-hero .simulation-container { position: relative; z-index: 1; }

.simulation-hero .eyebrow,
.simulation-kicker { color: var(--nova-cyan); font-size: .68rem; font-weight: 850; letter-spacing: .14em; }

.simulation-hero h1 {
    max-width: 790px;
    margin: 12px 0;
    color: #fff;
    font-size: clamp(2rem, 4.2vw, 3.15rem);
    line-height: 1.08;
    letter-spacing: -.05em;
}

.simulation-hero > .simulation-container > p:last-child { max-width: 680px; margin: 0; color: #c2d0df; font-size: .98rem; line-height: 1.75; }

.simulation-content { padding-top: 30px; }

.simulation-context {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .7fr) auto;
    align-items: end;
    gap: 14px;
    margin-bottom: 20px;
    padding: 20px;
    border: 1px solid var(--nova-line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(13, 31, 54, .04);
}

.simulation-context label,
.simulation-field { display: grid; gap: 8px; min-width: 0; }

.simulation-context label > span,
.simulation-field > span { color: #34445a; font-size: .82rem; font-weight: 750; }

.simulation-context select,
.simulation-field :is(input, select) {
    width: 100%;
    min-height: 48px;
    padding: 0 13px;
    border: 1px solid #dbe4ee;
    border-radius: 11px;
    background: #fff;
    color: var(--nova-ink);
    font: inherit;
    font-size: .9rem;
}

.simulation-context select:focus,
.simulation-field :is(input, select):focus { border-color: #58cde5; outline: 3px solid rgba(66, 215, 245, .15); }

.simulation-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); align-items: start; gap: 20px; }

.simulation-form,
.simulation-results,
.simulation-empty {
    min-width: 0;
    padding: clamp(21px, 3vw, 32px);
    border: 1px solid var(--nova-line);
    border-radius: 19px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(13, 31, 54, .05);
}

.simulation-section-title { display: flex; align-items: center; gap: 13px; margin-bottom: 23px; }

.simulation-section-title > span {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border: 1px solid rgba(66, 215, 245, .4);
    border-radius: 12px;
    background: #f0fbfd;
    color: #1485a0;
    font-size: .72rem;
    font-weight: 850;
}

.simulation-section-title .simulation-kicker,
.simulation-results-heading .simulation-kicker { margin: 0 0 4px; color: var(--red); }

.simulation-section-title h2,
.simulation-results-heading h2 { margin: 0; color: var(--nova-ink); font-size: 1.24rem; letter-spacing: -.025em; }

.simulation-form > .simulation-field { margin-bottom: 17px; }
.simulation-fields-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.simulation-field-note { color: var(--nova-muted); font-size: .76rem; line-height: 1.4; }
.simulation-field input[data-simulation-rate]:read-only { background: #f2f6fa; color: #52647a; cursor: not-allowed; }
.simulation-hint { margin: 2px 0 0; color: var(--nova-muted); font-size: .83rem; line-height: 1.65; }
.simulation-validation { min-height: 1.4em; margin: 9px 0 0; color: #65758a; font-size: .8rem; }

.simulation-results {
    border-color: rgba(177, 204, 232, .2);
    background:
        radial-gradient(ellipse at 100% 0, rgba(66, 215, 245, .12), transparent 36%),
        linear-gradient(145deg, #0a192b, #122b46);
    color: #fff;
}

.simulation-results-heading h2 { color: #fff; font-size: 1.3rem; }
.simulation-results-heading .simulation-kicker { color: var(--nova-cyan); }

.simulation-result-primary { display: grid; gap: 7px; margin: 24px 0 19px; padding: 17px; border: 1px solid rgba(194, 220, 244, .14); border-radius: 14px; background: rgba(255, 255, 255, .055); }
.simulation-result-primary span { color: #c2d0df; font-size: .82rem; }
.simulation-result-primary strong { color: #fff; font-size: clamp(1.35rem, 2.5vw, 1.8rem); letter-spacing: -.035em; }

.simulation-result-list { margin: 0 0 20px; }
.simulation-result-list > div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(194, 220, 244, .13); }
.simulation-result-list dt { color: #c2d0df; font-size: .83rem; }
.simulation-result-list dd { margin: 0; color: #fff; font-size: .86rem; font-weight: 750; text-align: right; }
.simulation-result-list .simulation-result-total { margin-top: 4px; border-top: 1px solid rgba(66, 215, 245, .28); }
.simulation-result-list .simulation-result-total dt,
.simulation-result-list .simulation-result-total dd { color: #8beaff; font-weight: 850; }
.simulation-result-list dd { max-width: 62%; overflow-wrap: anywhere; }

.simulation-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 0 17px;
    border: 1px solid color-mix(in srgb, var(--red) 70%, white);
    border-radius: 12px;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    box-shadow: 0 9px 22px color-mix(in srgb, var(--red) 22%, transparent);
    color: #fff;
    font-size: .84rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.simulation-button:hover { filter: brightness(1.06); }
.simulation-button--secondary { min-height: 48px; white-space: nowrap; }
.simulation-disclaimer { margin: 15px 0 0; color: #b6c4d4; font-size: .76rem; line-height: 1.65; }

.simulation-empty { max-width: 760px; margin: 0 auto; text-align: center; }
.simulation-empty h2 { margin: 0 0 9px; color: var(--nova-ink); font-size: 1.35rem; }
.simulation-empty p { margin: 0 auto 18px; color: var(--nova-muted); line-height: 1.7; }

@media (max-width: 850px) {
    .simulation-layout { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .simulation-container { width: calc(100% - 32px); }
    .simulation-context { grid-template-columns: 1fr; padding: 16px; }
    .simulation-context .simulation-button { width: 100%; }
    .simulation-layout { gap: 14px; }
    .simulation-form, .simulation-results, .simulation-empty { padding: 19px; border-radius: 16px; }
    .simulation-fields-grid { grid-template-columns: 1fr; gap: 0; }
    .simulation-result-primary strong { font-size: 1.45rem; }
    .simulation-results .simulation-button { width: 100%; }
}
