﻿/* =========================================================
   William Loughran — typography tokens
========================================================= */

:root {
    --wl-font-heading: "aviano-sans", sans-serif;
    --wl-font-body: "new-science", sans-serif;
    --wl-font-mono: "new-science-mono", sans-serif;
    --wl-font-serif: "new-science-serif", serif;
    --wl-font-extended: "new-science-extended", sans-serif;
    --ps-font-heading: var(--wl-font-heading);
    --ps-font-body: var(--wl-font-body);
    --wl-heading-weight: 700;
    --wl-body-weight: 400;
    --wl-nav-weight: 700;
}
/* =========================================================
   Base typography
========================================================= */

html {
    scroll-behavior: smooth;
}

body {
    background: #fff;
    color: var(--wl-ink, #111);
    font-family: var(--wl-font-body);
    font-size: 18px;
    font-weight: var(--wl-body-weight);
    line-height: 1.6;
}

/* Headings: premium, uppercase-capable brand style */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--wl-font-heading);
    font-weight: var(--wl-heading-weight);
    line-height: 1.15;
    letter-spacing: .04em;
    text-transform: lowercase;
}

/* Design reference: H1/H2 around 36pt = approx 48px */
h1,
.h1 {
    font-size: clamp(2.25rem, 3vw, 3rem);
}

h2,
.h2 {
    font-size: clamp(2rem, 2.6vw, 3rem);
}

h3,
.h3 {
    font-size: clamp(1.5rem, 2vw, 2.25rem);
}

p,
li {
    font-family: var(--wl-font-body);
    font-weight: var(--wl-body-weight);
}

.wl-kicker,
.ps-rte h6 {
    font-family: var(--wl-font-heading);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
}



/* =========================================================
   WL global heading display defaults
   Match RTE display styles without editors needing to select them
========================================================= */

/* H1 = same visual treatment as .rte-display-1 */
h1,
.h1,
.ps-rte h1 {
    font-family: var(--wl-font-heading);
    font-size: clamp(2.4rem, 4vw, 3.4rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: .02em;
    text-transform: none;
}

/* H2-H4 = same visual treatment as .rte-display-2 */
h2,
h3,
h4,
.h2,
.h3,
.h4,
.ps-rte h2,
.ps-rte h3,
.ps-rte h4 {
    font-family: var(--wl-font-heading);
    font-size: clamp(2rem, 3.2vw, 2.8rem);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: .02em;
    text-transform: none;
}









/* =========================================================
   Header
========================================================= */

.ps-header.wl-header {
    background: #fff;
    color: var(--wl-black, #111);
    border-top: 1px solid rgba(0, 0, 0, .35);
    border-bottom: 1px solid rgba(0, 0, 0, .14);
}

    .ps-header.wl-header .wl-navbar {
        min-height: 90px;
        padding: 0;
    }

    .ps-header.wl-header .wl-header__container {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .ps-header.wl-header .wl-header__inner {
        width: 100%;
    }



    /* Desktop: one centred logo/nav cluster */
    .ps-header.wl-header .wl-header__desktop {
        width: 100%;
        min-height: 90px;
        display: flex;
        align-items: center;
        justify-content: center;
        /* Larger breathing room around the centred logo */
        column-gap: clamp(8.5rem, 10vw, 13rem);
    }

    .ps-header.wl-header .wl-header__nav,
    .ps-header.wl-header .wl-header__brand {
        flex: 0 0 auto;
    }

    .ps-header.wl-header .wl-header__brand {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 0;
        text-align: center;
    }

    .ps-header.wl-header .wl-header__logo,
    .ps-header.wl-header .site-logo {
        display: block;
        width: 360px;
        height: auto;
        max-width: 100%;
    }

    .ps-header.wl-header .wl-nav {
        display: flex;
        align-items: center;
        gap: 3.2rem;
    }

    .ps-header.wl-header .wl-nav__link,
    .ps-header.wl-header .ps-nav-link {
        display: inline-block;
        padding: 0 !important;
        color: #111 !important;
        font-family: var(--wl-font-heading);
        font-size: .875rem;
        font-weight: 700 !important;
        line-height: 1;
        letter-spacing: .26em !important;
        text-transform: uppercase;
        text-decoration: none !important;
        border-bottom: 1px solid transparent;
    }

        .ps-header.wl-header .wl-nav__link:hover,
        .ps-header.wl-header .wl-nav__link:focus-visible,
        .ps-header.wl-header .wl-nav__link.active,
        .ps-header.wl-header .ps-nav-link:hover,
        .ps-header.wl-header .ps-nav-link:focus-visible,
        .ps-header.wl-header .ps-nav-link.active,
        .ps-header.wl-header .ps-nav-item.is-active .ps-nav-link {
            color: #111 !important;
            border-bottom-color: #111;
        }

    /* Mobile header */
    .ps-header.wl-header .wl-header__mobile {
        width: 100%;
        min-height: 72px;
        align-items: center;
        justify-content: space-between;
    }

    .ps-header.wl-header .wl-navbar-toggler {
        border: 0;
        padding: .35rem 0;
        color: #111;
        box-shadow: none;
    }

        .ps-header.wl-header .wl-navbar-toggler:focus {
            box-shadow: none;
        }

    .ps-header.wl-header .ps-offcanvas {
        background: #fff;
        color: #111;
    }

    .ps-header.wl-header .ps-offcanvas-title {
        font-family: var(--ps-font-heading, 'Open Sans', Arial, Helvetica, sans-serif);
        font-size: .8rem;
        font-weight: 700;
        letter-spacing: .18em;
        text-transform: uppercase;
    }

    .ps-header.wl-header .ps-offcanvas-link {
        color: #111 !important;
        padding: .85rem 0 !important;
        border-bottom: 1px solid rgba(0, 0, 0, .08);
    }




/* =========================================================
   Buttons
========================================================= */

.ps-btn,
.btn {
    border-radius: 0;
    font-family: var(--wl-font-heading);
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .08em;
    text-transform: uppercase;
}




/* =========================================================
   Footer strapline
========================================================= */

.wl-footer-strapline {
    display: block;
    background: linear-gradient(90deg, #17191b 0%, #303538 50%, #17191b 100%) !important;
    color: #fff !important;
    text-align: center;
    padding: 1.7rem 1rem !important;
}

    .wl-footer-strapline p {
        color: #fff !important;
        font-family: var(--wl-font-heading);
        font-size: .875rem;
        font-weight: 700;
        line-height: 1.4;
        letter-spacing: .26em;
        text-transform: uppercase;
    }

/* =========================================================
   Footer
========================================================= */

.ps-footer.wl-footer {
    background: #000 !important;
    color: #fff !important;
    padding: 3rem 0 1.6rem !important;
}

.wl-footer__main {
    display: grid;
    grid-template-columns: minmax(260px, 1.25fr) minmax(180px, .75fr) minmax(180px, .75fr);
    gap: 4rem;
    align-items: start;
    padding-bottom: 2.4rem;
}

.wl-footer__brand-link {
    display: inline-block;
    margin-bottom: 2rem;
    text-decoration: none;
}

.wl-footer__logo {
    display: block;
    width: 293px;
    height: 45px;
    max-width: 100%;
    object-fit: contain;
}

.wl-footer__brand-text {
    color: #fff;
    font-family: var(--ps-font-heading, 'Open Sans', Arial, Helvetica, sans-serif);
    font-size: 1.5rem;
    font-weight: 300;
}



.wl-footer__contact,
.wl-footer__address,
.wl-footer__contact p {
    color: rgba(255, 255, 255, .82) !important;
    font-family: var(--wl-font-body);
    font-size: .875rem;
    font-weight: 300;
    line-height: 1.55;
}



    .wl-footer__address strong {
        color: #fff;
        font-weight: 700;
    }




.wl-footer__phone,
.wl-footer__phone a {
    color: #fff !important;
    font-family: var(--wl-font-heading);
    font-size: 1.35rem !important;
    font-weight: 700;
    letter-spacing: .12em;
    text-decoration: none !important;
}




    .wl-footer__phone a:hover {
        color: rgba(255, 255, 255, .82) !important;
    }

.wl-footer__nav a {
    color: rgba(255, 255, 255, .9) !important;
    font-family: var(--wl-font-heading);
    font-size: .875rem !important;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .24em;
    text-transform: uppercase;
    text-decoration: none !important;
}

.wl-footer__nav li {
    margin-bottom: 0;
}


.wl-footer__nav a:hover,
.wl-footer__nav a:focus-visible {
    color: #fff !important;
    text-decoration: underline !important;
    text-underline-offset: .25em;
}

.wl-footer__social {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin-top: 1.35rem;
}

    .wl-footer__social a {
        width: 2.25rem;
        height: 2.25rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #fff !important;
        text-decoration: none !important;
        font-size: 1.05rem;
        border: 1px solid rgba(255, 255, 255, .42);
        border-radius: 50%;
        transition: color .2s ease, border-color .2s ease, opacity .2s ease;
    }

        .wl-footer__social a:hover,
        .wl-footer__social a:focus-visible {
            color: #fff !important;
            border-color: rgba(255, 255, 255, .85);
            opacity: .85;
        }

.wl-footer__bottom {
    margin-top: 1rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(255, 255, 255, .55);
    color: rgba(255, 255, 255, .72);
    font-size: .72rem;
}

    .wl-footer__bottom p {
        color: rgba(255, 255, 255, .72) !important;
        font-size: .72rem;
        margin-bottom: 0;
    }

    .wl-footer__bottom,
    .wl-footer__bottom p,
    .wl-footer__legal a {
        font-family: var(--wl-font-body);
        font-size: .75rem;
        font-weight: 400;
    }


.wl-footer__legal {
    text-align: right;
}

    .wl-footer__legal li {
        margin-left: 1.15rem;
    }

    .wl-footer__legal a {
        color: rgba(255, 255, 255, .72) !important;
        font-size: .72rem;
        text-decoration: none !important;
    }

        .wl-footer__legal a:hover,
        .wl-footer__legal a:focus-visible {
            color: #fff !important;
            text-decoration: underline !important;
            text-underline-offset: .25em;
        }

/* =========================================================
   Responsive code
========================================================= */

@media (max-width: 1280px) {
    .ps-header.wl-header .wl-header__desktop {
        column-gap: clamp(4.75rem, 6vw, 6.25rem);
    }

    .ps-header.wl-header .wl-nav {
        gap: 2.55rem;
    }

    .ps-header.wl-header .wl-header__logo,
    .ps-header.wl-header .site-logo {
        width: 320px;
        height: auto;
        aspect-ratio: 360 / 55;
    }
}

@media (max-width: 991.98px) {
    .ps-header.wl-header .wl-header__container {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .ps-header.wl-header .wl-navbar {
        min-height: 72px;
    }

    .ps-header.wl-header .wl-header__logo,
    .ps-header.wl-header .site-logo {
        width: 260px;
        height: auto;
        aspect-ratio: 360 / 55;
    }

    .wl-footer__main {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .wl-footer__nav {
        margin-top: 0;
    }

    .wl-footer__legal {
        text-align: left;
    }

        .wl-footer__legal li {
            margin-left: 0;
            margin-right: 1.1rem;
            margin-bottom: .35rem;
        }
}

@media (max-width: 575.98px) {
    .ps-header.wl-header .wl-header__logo,
    .ps-header.wl-header .site-logo {
        width: 220px;
        height: auto;
        aspect-ratio: 360 / 55;
    }

    .wl-footer-strapline p {
        font-size: .7rem;
        letter-spacing: .18em;
    }

    .wl-footer__phone,
    .wl-footer__phone a {
        font-size: 1.2rem !important;
    }

    .wl-footer__nav a {
        font-size: .72rem !important;
    }
}


/* =========================================================
  Promo / card
========================================================= */

.wl-card__title,
.wl-promo__title,
.ps-card-title,
.ps-promo-card__title {
    font-family: var(--wl-font-heading);
    font-size: clamp(2rem, 2.8vw, 3rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: .02em;
}

.ps-hero .ps-hero__title {
    color: var(--wl-white, var(--ps-accent)) !important;
    font-weight: 700;
    letter-spacing: -0.015em;
}


/* =========================================================
   Responsive hero image
========================================================= */
.wl-responsive-hero {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    background: #111;
}

.wl-responsive-hero__image {
    display: block;
    width: 100%;
    height: auto;
}


/* =========================================================
   Stock listing hero
========================================================= */

.wl-stock-hero {
    position: relative;
    aspect-ratio: 21 / 9;
    overflow: visible;
    background: #111;
}

/* Desktop: cinematic cropped banner */
.wl-stock-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 58% center;
}

/* Tablet and mobile: show the full image */
@media (max-width: 991.98px) {
    .wl-stock-hero {
        aspect-ratio: auto;
        background: #fff;
    }

    .wl-stock-hero__image {
        width: 100%;
        height: auto;
        object-fit: contain;
        object-position: center center;
    }
}





/* =========================================================
   Stock / WL template hero overlay + scroll cue
========================================================= */

.wl-stock-hero::after,
.wl-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 26px;
    background: #fff;
    z-index: 2;
    pointer-events: none;
}

/* Shared chevron scroll cue */
.wl-hero__scroll,
.wl-stock-hero__scroll {
    position: absolute;
    left: 50%;
    bottom: -18px;
    transform: translateX(-50%);
    width: 76px;
    height: 76px;
    z-index: 4;
    display: block;
    text-decoration: none;
    background-image: url("/media/y1sbgexa/wl-chevron.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

    .wl-hero__scroll::before,
    .wl-hero__scroll::after,
    .wl-stock-hero__scroll::before,
    .wl-stock-hero__scroll::after {
        content: none;
    }

    .wl-hero__scroll:hover,
    .wl-hero__scroll:focus-visible,
    .wl-stock-hero__scroll:hover,
    .wl-stock-hero__scroll:focus-visible {
        opacity: .9;
    }

/* =========================================================
   WL template hero
========================================================= */

.wl-hero {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 21 / 9;
    overflow: visible;
    background: #111;
}

.wl-hero__image,
.wl-hero__video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wl-hero__image {
    object-position: center centre;
}

.wl-hero__video {
    object-position: center center;
}

.wl-hero__video {
    background: #111;
}

/* Optional title overlay if heroTitle is populated */
.wl-hero__content {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    pointer-events: none;
}

.wl-hero__title {
    width: min(900px, 100%);
    margin: 0;
    color: #fff;
    font-family: var(--wl-font-heading);
    font-size: clamp(2.25rem, 5vw, 5.25rem);
    font-weight: 700;
    line-height: .95;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .42);
}

/* Tablet */
@media (max-width: 991.98px) {
    .wl-stock-hero::after,
    .wl-hero::after {
        height: 22px;
    }

    .wl-hero {
        aspect-ratio: 16 / 9;
    }

    .wl-hero__scroll,
    .wl-stock-hero__scroll {
        bottom: -15px;
        width: 64px;
        height: 64px;
    }

    .wl-hero__title {
        font-size: clamp(2rem, 7vw, 3.75rem);
    }
}

/* Mobile */
@media (max-width: 575.98px) {
    .wl-hero {
        aspect-ratio: 4 / 3;
    }

    .wl-hero__scroll,
    .wl-stock-hero__scroll {
        bottom: -12px;
        width: 48px;
        height: 48px;
    }
}



/* =========================================================
   Current stock / vehicle cards
========================================================= */
.wl-vehicle-card {
    width: 100%;
    background: #fff;
    color: #34363d;
}

    .wl-vehicle-card a {
        color: inherit !important;
        text-decoration: none !important;
    }

        .wl-vehicle-card a:hover,
        .wl-vehicle-card a:focus-visible {
            color: #34363d !important;
            text-decoration: none !important;
        }

/* Image with angled bottom-right cut 
.wl-vehicle-card__image-link {
    display: block;
    position: relative;
    overflow: hidden;
    background: #f2f2f2;
    clip-path: polygon( 0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 46px) 100%, 0 100% );
}
*/

.wl-vehicle-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 1.48 / 1;
    height: auto;
    object-fit: cover;
    object-position: center;
    transition: transform .35s ease;
}

.wl-vehicle-card:hover .wl-vehicle-card__image {
    transform: scale(1.025);
}

/* =========================================================
   Stock list — disable vehicle card image zoom
========================================================= */

.wl-stock-listing .wl-vehicle-card__image,
.wl-stock-listing .wl-vehicle-card:hover .wl-vehicle-card__image,
.wl-stock-listing .wl-vehicle-card:focus-within .wl-vehicle-card__image {
    transform: none !important;
}

.wl-stock-listing .wl-vehicle-card__image {
    transition: none;
}




/* Body */
.wl-vehicle-card__body {
    padding-top: 1.85rem !important;
}

/* Title */
.wl-vehicle-card .wl-card-title {
    margin: 0 0 1rem;
    padding-bottom: .95rem;
    border-bottom: 1px solid rgba(52, 54, 61, .72);
    color: #3f4248;
    font-family: var(--wl-font-heading);
    font-size: clamp(1.1rem, 1.35vw, 1.45rem);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: .28em;
    text-transform: uppercase;
}

    .wl-vehicle-card .wl-card-title a {
        color: inherit !important;
        text-decoration: none !important;
    }

        .wl-vehicle-card .wl-card-title a:hover,
        .wl-vehicle-card .wl-card-title a:focus-visible {
            color: #3f4248 !important;
            text-decoration: none !important;
        }

/* Specs */
.wl-vehicle-card__spec {
    display: grid;
    gap: .5rem;
    margin: 0;
    color: #666a71;
    font-family: var(--wl-font-body);
    font-size: clamp(.95rem, 1vw, 1.08rem);
    line-height: 1.35;
    letter-spacing: .07em;
}

    .wl-vehicle-card__spec > div {
        display: grid;
        grid-template-columns: 7.75rem 1fr;
        gap: 1.15rem;
        align-items: baseline;
    }

    .wl-vehicle-card__spec dt,
    .wl-vehicle-card__spec dd {
        margin: 0;
    }

    .wl-vehicle-card__spec dt {
        color: #4f545c;
        font-weight: 700;
    }

    .wl-vehicle-card__spec dd {
        color: #70757d;
        font-weight: 400;
    }

/* Remove Bootstrap image behaviour conflicts */
.wl-vehicle-card__image.img-fluid {
    max-width: none;
}

/* Tablet */
@media (max-width: 991.98px) {
    .wl-vehicle-card .wl-card-title {
        font-size: clamp(1.2rem, 2.4vw, 1.55rem);
    }
}

/* Mobile */
@media (max-width: 575.98px) {
    .wl-vehicle-card__body {
        padding-top: 1.35rem !important;
    }

    .wl-vehicle-card .wl-card-title {
        font-size: 1.15rem;
        letter-spacing: .18em;
    }

    .wl-vehicle-card__spec {
        font-size: 1rem;
        gap: .5rem;
    }

        .wl-vehicle-card__spec > div {
            grid-template-columns: 7.25rem 1fr;
            gap: 1rem;
        }

    .wl-vehicle-card__image-link {
        clip-path: polygon( 0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 34px) 100%, 0 100% );
    }
}




/* =========================================================
   Vehicle card badges
========================================================= */

.wl-vehicle-card__image-link {
    position: relative;
    overflow: hidden;
}

.wl-vehicle-card__badges {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

    /* Custom badge text: full-width strip across the image */
    .wl-vehicle-card__badges .wl-vehicle-card__badge--custom {
        position: static;
        inset: auto;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 2.2rem;
        padding: .45rem .9rem;
        background: #8f9d9d;
        color: #fff;
        font-family: var(--wl-font-heading, sans-serif);
        font-size: .72rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: .22em;
        text-align: center;
        text-transform: uppercase;
        white-space: nowrap;
        clip-path: none;
    }

    /* Status badge: angled tag below custom badge, or at top if no custom badge */
    .wl-vehicle-card__badges .wl-vehicle-status-badge {
        position: static;
        inset: auto;
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        width: auto;
        max-width: calc(100% - 1rem);
        min-height: 34px;
        padding: .42rem 2.8rem .42rem 1rem;
        color: #fff;
        font-family: var(--wl-font-heading, sans-serif);
        font-size: .78rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: .18em;
        text-align: left;
        text-transform: uppercase;
        white-space: nowrap;
        clip-path: polygon( 0 0, 100% 0, calc(100% - 28px) 100%, 0 100% );
    }

/* Shared vehicle status colours */
.wl-vehicle-status-badge--under-offer {
    background: #e8772e !important;
}

.wl-vehicle-status-badge--sold {
    background: #b80000 !important;
}

.wl-vehicle-status-badge--reserved {
    background: #f2c300 !important;
    color: #111 !important;
}

.wl-vehicle-status-badge--coming-soon {
    background: #2f8f46 !important;
}

.wl-vehicle-status-badge--default {
    background: #34363d !important;
}

@media (max-width: 575.98px) {
    .wl-vehicle-card__badges .wl-vehicle-card__badge--custom {
        min-height: 2rem;
        font-size: .62rem;
        letter-spacing: .16em;
    }

    .wl-vehicle-card__badges .wl-vehicle-status-badge {
        min-height: 30px;
        padding: .36rem 2.25rem .36rem .75rem;
        font-size: .66rem;
        letter-spacing: .14em;
    }
}

@media (max-width: 991.98px) {
    .wl-vehicle-card__badges .wl-vehicle-status-badge {
        min-width: 76px;
        padding-right: 3.5rem;
    }
}


/* =========================================================
   William Loughran — vehicle detail page
========================================================= */

.wl-vehicle-page .ps-main {
    background: #fff;
}

/* Header / title / badges */

.wl-vehicle__header {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) min(680px, 68vw) minmax(0, 1fr);
    padding: .20rem 0 .20rem;
    text-align: center;
}

/* Badge stack aligns to right edge of the main gallery image */
.wl-vehicle__badges {
    position: static;
    grid-column: 2;
    justify-self: end;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
    margin: 0 0 1.8rem;
}

    .wl-vehicle__badges .wl-vehicle__badge {
        position: static;
        inset: auto;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
        min-height: 36px;
        padding: .5rem 1.6rem;
        color: #fff;
        font-family: var(--wl-font-heading, sans-serif);
        font-size: .78rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: .18em;
        text-align: center;
        text-transform: uppercase;
        background: #8f9d9d;
    }

.wl-vehicle__badge--custom {
    background: #8f9d9d;
}

/* Title sits below any badges */
.wl-vehicle__header .container {
    grid-column: 1 / -1;
}

.wl-vehicle__title {
    margin: 0;
    color: #3e4248;
    font-family: var(--wl-font-heading);
    font-size: clamp(1.25rem, 2.1vw, 1.85rem);
    font-weight: 400;
    letter-spacing: .18em;
    line-height: 1.25;
    text-transform: uppercase;
    padding-top:10px;
    padding-bottom:10px;
}

/* Shared vehicle status colours */

.wl-vehicle-status-badge--under-offer {
    background: #e8772e !important;
}

.wl-vehicle-status-badge--sold {
    background: #b80000 !important;
}

.wl-vehicle-status-badge--reserved {
    background: #f2c300 !important;
    color: #111 !important;
}

.wl-vehicle-status-badge--coming-soon {
    background: #2f8f46 !important;
}

.wl-vehicle-status-badge--default {
    background: #34363d !important;
}

/* Responsive vehicle header */

@media (max-width: 991.98px) {
    .wl-vehicle__header {
        grid-template-columns: 1rem minmax(0, 1fr) 1rem;
        padding: 1.25rem 0 1.25rem;
    }

    .wl-vehicle__badges {
        grid-column: 2;
        margin-bottom: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .wl-vehicle__badges {
        margin-bottom: 1.25rem;
    }

        .wl-vehicle__badges .wl-vehicle__badge {
            min-height: 32px;
            padding: .45rem 1.1rem;
            font-size: .66rem;
            letter-spacing: .14em;
        }

    .wl-vehicle__title {
        font-size: 1.15rem;
        letter-spacing: .12em;
    }
}


/* =========================================================
   Vehicle gallery / carousel
========================================================= */

.wl-vehicle-gallery {
    position: relative;
    width: 100%;
    margin-bottom: 4.25rem;
    overflow: hidden;
}

.wl-vehicle-gallery__main,
.wl-vehicle-gallery__peek,
.wl-vehicle-gallery__arrow {
    appearance: none;
    -webkit-appearance: none;
    padding: 0;
    border: 0;
    cursor: pointer;
}

.wl-vehicle-gallery__main {
    position: relative;
    z-index: 2;
    display: block;
    width: min(680px, 68vw);
    margin: 0 auto;
    background: transparent;
}

    .wl-vehicle-gallery__main img {
        display: block;
        width: 100%;
        aspect-ratio: 3 / 2;
        object-fit: cover;
        object-position: center center;
        transition: opacity .18s ease;
    }

.wl-vehicle-gallery__peek {
    position: absolute;
    top: 13%;
    z-index: 1;
    width: min(430px, 38vw);
    height: 64%;
    overflow: hidden;
    background: transparent;
    opacity: .58;
    transition: opacity .22s ease, transform .22s ease;
}

    .wl-vehicle-gallery__peek::after {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255, 255, 255, .22);
        pointer-events: none;
    }

    .wl-vehicle-gallery__peek:hover,
    .wl-vehicle-gallery__peek:focus-visible {
        opacity: .82;
    }

.wl-vehicle-gallery__peek--left {
    right: calc(50% + 265px);
}

.wl-vehicle-gallery__peek--right {
    left: calc(50% + 265px);
}

.wl-vehicle-gallery__peek--left:hover,
.wl-vehicle-gallery__peek--left:focus-visible {
    transform: translateX(4px);
}

.wl-vehicle-gallery__peek--right:hover,
.wl-vehicle-gallery__peek--right:focus-visible {
    transform: translateX(-4px);
}

.wl-vehicle-gallery__peek img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity .18s ease;
}

.wl-vehicle-gallery__arrows {
    position: relative;
    z-index: 3;
    width: min(760px, 76vw);
    height: 56px;
    /* Pull arrows up so they sit beside the bottom of the image */
    margin: -62px auto 0;
    pointer-events: none;
}

.wl-vehicle-gallery__arrow {
    position: absolute;
    top: 0;
    width: 46px;
    height: 46px;
    background: transparent;
    color: #555a60;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 3rem;
    font-weight: 200;
    line-height: 1;
    pointer-events: auto;
}

.wl-vehicle-gallery__arrow--prev {
    left: -15px;
}

.wl-vehicle-gallery__arrow--next {
    right: -15px;
}

.wl-vehicle-gallery__arrow span {
    display: block;
    transform: translateY(-5px);
}

.wl-vehicle-gallery__lightbox {
    display: none;
}

.wl-vehicle-gallery__main:focus-visible,
.wl-vehicle-gallery__peek:focus-visible,
.wl-vehicle-gallery__arrow:focus-visible {
    outline: 1px solid #34363d;
    outline-offset: 4px;
}

/* LightGallery brand tidy-up */

.lg-backdrop {
    background-color: rgba(0, 0, 0, .92);
}

.lg-toolbar .lg-icon,
.lg-actions .lg-next,
.lg-actions .lg-prev {
    color: #fff;
}

.lg-sub-html {
    font-family: var(--wl-font-heading);
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* Specification / key information */

.wl-vehicle__details {
    padding: 0 0 2.25rem;
}

.wl-vehicle-info {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(320px, 420px);
    justify-content: center;
    gap: 0;
}

.wl-vehicle-info__col {
    min-height: 245px;
    padding: 0 2.3rem;
    border-left: 1px solid #c9cdd0;
}

.wl-vehicle-info__col--key {
    border-right: 1px solid #c9cdd0;
}

.wl-section-title {
    margin: 0 0 1.65rem;
    color: #555a60;
    font-family: var(--wl-font-heading);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .22em;
    line-height: 1.2;
    text-transform: uppercase;
}

.wl-spec-list {
    margin: 0;
    color: #4c5056;
    font-family: var(--wl-font-body);
    font-size: .82rem;
    line-height: 1.45;
}

    .wl-spec-list div {
        display: grid;
        grid-template-columns: 120px minmax(0, 1fr);
        gap: 1rem;
        margin-bottom: .38rem;
    }

    .wl-spec-list dt {
        color: #3f4349;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .wl-spec-list dd {
        margin: 0;
        color: #656970;
        font-weight: 400;
    }

.wl-key-info {
    color: #4c5056;
    font-size: .82rem;
    line-height: 1.45;
}

    .wl-key-info ul {
        margin: 0;
        padding-left: 1.05rem;
    }

    .wl-key-info li {
        margin-bottom: .45rem;
    }

/* Overview */

.wl-vehicle__overview {
    padding: 0 0 4.6rem;
}

.wl-vehicle-overview {
    width: min(760px, 100%);
    margin: 0 auto;
}

.wl-section-title--bar {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.35rem;
    padding: .52rem 1.25rem .48rem;
    background: #8f9b9d;
    color: #fff;
    font-size: .9rem;
    letter-spacing: .22em;
}

    .wl-section-title--bar::after {
        content: "";
        width: 12px;
        height: 12px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg) translateY(-3px);
        opacity: .95;
    }

    /* Remove decorative chevron from vehicle overview title bar */
    .wl-section-title--bar::after {
        content: none;
    }

.wl-vehicle-overview__body {
    width: min(620px, 100%);
    margin: 0 auto;
    color: #555a60;
    font-size: .86rem;
    line-height: 1.62;
}

    .wl-vehicle-overview__body p {
        margin-bottom: 1rem;
    }

.wl-vehicle-overview__cta {
    margin-top: 2.25rem;
    text-align: center;
}

.wl-vehicle-contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    min-width: 190px;
    border: 1px solid #34363d;
    color: #34363d !important;
    font-family: var(--wl-font-heading);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .18em;
    line-height: 1;
    padding: 1rem 1.4rem;
    text-decoration: none !important;
    text-transform: uppercase;
}

    .wl-vehicle-contact-btn:hover,
    .wl-vehicle-contact-btn:focus-visible {
        background: #34363d;
        color: #fff !important;
    }

/* Responsive vehicle page */

@media (max-width: 991.98px) {
    .wl-vehicle__header {
        padding: .20rem 0 .20rem;
    }



    .wl-vehicle-gallery {
        margin-bottom: 3rem;
    }

    .wl-vehicle-gallery__main {
        width: min(720px, calc(100% - 2rem));
    }

    .wl-vehicle-gallery__peek {
        display: none;
    }

    .wl-vehicle-gallery__arrows {
        display: block;
        position: absolute;
        top: 0;
        left: 50%;
        z-index: 5;
        width: min(720px, calc(100% - 2rem));
        height: auto;
        aspect-ratio: 3 / 2;
        margin: 0;
        transform: translateX(-50%);
        pointer-events: none;
    }

    .wl-vehicle-gallery__arrow {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 50%;
        width: 46px;
        height: 64px;
        margin: 0;
        background: transparent;
        color: #fff;
        transform: translateY(-50%);
        pointer-events: auto;
    }

    .wl-vehicle-gallery__arrow--prev {
        left: .35rem;
    }

    .wl-vehicle-gallery__arrow--next {
        right: .35rem;
    }

    .wl-vehicle-gallery__arrow span {
        display: none;
    }

    .wl-vehicle-gallery__arrow::before {
        content: "";
        display: block;
        width: 20px;
        height: 20px;
        border-top: 4px solid #fff;
        border-right: 4px solid #fff;
        filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .45));
    }

    .wl-vehicle-gallery__arrow--prev::before {
        transform: rotate(-135deg);
    }

    .wl-vehicle-gallery__arrow--next::before {
        transform: rotate(45deg);
    }

    .wl-vehicle-gallery__arrow:hover::before,
    .wl-vehicle-gallery__arrow:focus-visible::before {
        filter: drop-shadow(0 1px 4px rgba(0, 0, 0, .65));
    }

    .wl-vehicle-info {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .wl-vehicle-info__col,
    .wl-vehicle-info__col--key {
        min-height: 0;
        padding: 0;
        border: 0;
    }

    .wl-vehicle__details {
        padding: 0 0 3rem;
    }

    .wl-vehicle-overview {
        width: 100%;
    }
}

@media (max-width: 575.98px) {


    .wl-vehicle__title {
        font-size: 1.15rem;
        letter-spacing: .12em;
    }

    .wl-spec-list div {
        grid-template-columns: 108px minmax(0, 1fr);
        gap: .75rem;
    }

    .wl-section-title--bar {
        font-size: .78rem;
        letter-spacing: .16em;
        padding-inline: 1rem;
    }

    .wl-vehicle-overview__body {
        font-size: .86rem;
    }
}


/* =========================================================
   WL prefooter CTA
========================================================= */

.wl-prefooter {
    position: relative;
    isolation: isolate;
    min-height: 360px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: #111;
    color: #fff;
}

.wl-prefooter__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
}

.wl-prefooter__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, .42);
    pointer-events: none;
}

.wl-prefooter__container {
    position: relative;
    z-index: 2;
}

.wl-prefooter__content {
    width: min(760px, 100%);
    padding: 4.5rem 0;
}

.wl-prefooter__title {
    margin: 0 0 1rem;
    color: #fff;
    font-family: var(--wl-font-heading);
    font-size: clamp(2rem, 4vw, 4rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.wl-prefooter__text {
    width: min(620px, 100%);
    margin-bottom: 2rem;
    color: rgba(255, 255, 255, .92);
    font-size: clamp(1rem, 1.4vw, 1.25rem);
    line-height: 1.55;
}

    .wl-prefooter__text p:last-child {
        margin-bottom: 0;
    }

.wl-prefooter__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.wl-prefooter__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    min-height: 52px;
    padding: .95rem 1.45rem;
    border: 1px solid #fff;
    color: #fff !important;
    font-family: var(--wl-font-heading);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}

    .wl-prefooter__btn:hover,
    .wl-prefooter__btn:focus-visible {
        background: #fff;
        color: #111 !important;
        border-color: #fff;
    }

.wl-prefooter__btn--secondary {
    background: rgba(0, 0, 0, .18);
}

@media (max-width: 767.98px) {
    .wl-prefooter {
        min-height: 320px;
    }

    .wl-prefooter__content {
        padding: 3.25rem 0;
    }

    .wl-prefooter__actions {
        gap: .75rem;
    }

    .wl-prefooter__btn {
        width: 100%;
        min-width: 0;
    }
}




/* =========================================================
   WL featured vehicles
========================================================= */

.wl-featured-vehicles {
    position: relative;
    isolation: isolate;
    padding: clamp(4rem, 7vw, 7rem) 0;
    background-color: #111;
    background-position: center;
    background-size: 100% 100%;
    color: #fff;
    overflow: hidden;
}

.wl-featured-vehicles__overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(0, 0, 0, .20);
}

.wl-featured-vehicles__container {
    position: relative;
    z-index: 1;
}

.wl-featured-vehicles__header {
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
    text-align: center;
}

.wl-featured-vehicles__title {
    margin: 0;
    color: #fff;
    font-family: var(--wl-font-heading);
    font-size: clamp(2rem, 4vw, 4rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wl-featured-vehicles__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.25rem, 2vw, 2rem);
}

.wl-featured-vehicle-card {
    color: #fff;
}

    .wl-featured-vehicle-card a {
        color: inherit !important;
        text-decoration: none !important;
    }

.wl-featured-vehicle-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1.42 / 1;
    background: rgba(255, 255, 255, .08);
    /* Match stock grid image cutaway */
    clip-path: polygon( 0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 46px) 100%, 0 100% );
}

.wl-featured-vehicle-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transition: transform .35s ease, opacity .35s ease;
}

.wl-featured-vehicle-card:hover .wl-featured-vehicle-card__image {
    transform: scale(1.025);
    opacity: .92;
}



.wl-featured-vehicle-card__body {
    padding-top: 1.25rem;
}

.wl-featured-vehicle-card__title {
    margin: 0 0 .75rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(255, 255, 255, .55);
    color: #fff;
    font-family: var(--wl-font-heading);
    font-size: clamp(.95rem, 1.15vw, 1.25rem);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.wl-featured-vehicle-card__price {
    margin-bottom: .85rem;
    color: #fff;
    font-family: var(--wl-font-heading);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.wl-featured-vehicle-card__spec {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-family: var(--wl-font-body);
    font-size: .9rem;
    line-height: 1.35;
    letter-spacing: .06em;
}

    .wl-featured-vehicle-card__spec > div {
        display: grid;
        grid-template-columns: 5.75rem 1fr;
        gap: .75rem;
        align-items: baseline;
    }

    .wl-featured-vehicle-card__spec dt,
    .wl-featured-vehicle-card__spec dd {
        margin: 0;
    }

    .wl-featured-vehicle-card__spec dt {
        color: #fff;
        font-weight: 700;
    }

    .wl-featured-vehicle-card__spec dd {
        color: rgba(255, 255, 255, .78);
    }

@media (max-width: 1199.98px) {
    .wl-featured-vehicles__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .wl-featured-vehicles {
        padding: 3.5rem 0;
    }

    .wl-featured-vehicles__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .wl-featured-vehicle-card__title {
        font-size: 1rem;
        letter-spacing: .14em;
    }

    .wl-featured-vehicle-card__media {
        clip-path: polygon( 0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 34px) 100%, 0 100% );
    }
}



/* =========================================================
   WL promo grid
========================================================= */

.wl-promo-grid {
    padding: clamp(3.5rem, 6vw, 6rem) 0;
    background: #fff;
    color: #34363d;
}

.wl-promo-grid__header {
    width: min(860px, 100%);
    margin: 0 auto clamp(2rem, 4vw, 3.5rem);
    text-align: center;
}

.wl-promo-grid__title {
    margin: 0;
    color: #34363d;
    font-family: var(--wl-font-heading);
    font-size: clamp(2rem, 4vw, 4rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wl-promo-grid__intro {
    margin-top: 1rem;
    color: #555a60;
    font-size: clamp(1rem, 1.25vw, 1.2rem);
    line-height: 1.6;
}

    .wl-promo-grid__intro p:last-child {
        margin-bottom: 0;
    }

.wl-promo-grid__items {
    display: grid;
    gap: clamp(1.25rem, 2vw, 2rem);
}

.wl-promo-grid--cols-2 .wl-promo-grid__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wl-promo-grid--cols-3 .wl-promo-grid__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wl-promo-grid--cols-4 .wl-promo-grid__items {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}





/* Image CTA tile style */

.wl-promo-grid--image-cta {
    padding-top: clamp(4rem, 6vw, 6.5rem);
    padding-bottom: clamp(4rem, 6vw, 6.5rem);
}

    .wl-promo-grid--image-cta .wl-promo-grid__container {
        max-width: 1420px;
    }

    .wl-promo-grid--image-cta .wl-promo-grid__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: clamp(2rem, 3vw, 3rem);
    }

.wl-promo-tile {
    position: relative;
    min-width: 0;
}

.wl-promo-tile__link {
    position: relative;
    display: block;
    aspect-ratio: 1.9 / 1;
    min-height: 260px;
    overflow: hidden;
    background: #111;
    color: #fff !important;
    text-decoration: none !important;
}

.wl-promo-tile__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transition: transform .45s ease, opacity .45s ease;
}

.wl-promo-tile__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient( 180deg, rgba(0, 0, 0, .08) 0%, rgba(0, 0, 0, .24) 48%, rgba(0, 0, 0, .68) 100% );
}

.wl-promo-tile__content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    padding: 0 4.75rem 1.35rem 2rem;
}

.wl-promo-tile__title {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    color: #fff;
    font-family: var(--wl-font-heading);
    font-size: clamp(1.25rem, 2vw, 2rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .18em;
    text-transform: uppercase;
    white-space: nowrap;
}

    .wl-promo-tile__title::after {
        content: "";
        flex: 1 1 auto;
        height: 1px;
        margin-left: 1.15rem;
        background: rgba(255, 255, 255, .9);
    }

/* Chevron */
.wl-promo-tile__content::after {
    content: "";
    position: absolute;
    right: 2rem;
    bottom: 1.75rem;
    width: 14px;
    height: 14px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg);
}

/* Prevent older arrow rule from appearing */
.wl-promo-tile__link::after {
    content: none;
}

.wl-promo-tile:hover .wl-promo-tile__image,
.wl-promo-tile:focus-within .wl-promo-tile__image {
    transform: scale(1.045);
    opacity: .9;
}

/* Card style */

.wl-promo-card {
    background: #fff;
    color: #34363d;
}

    .wl-promo-card a {
        color: inherit !important;
        text-decoration: none !important;
    }

.wl-promo-card__media {
    display: block;
    overflow: hidden;
    background: #f2f2f2;
}

.wl-promo-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 1.46 / 1;
    height: auto;
    object-fit: cover;
    transition: transform .35s ease;
}

.wl-promo-card:hover .wl-promo-card__image {
    transform: scale(1.025);
}

.wl-promo-card__body {
    padding-top: 1.35rem;
}

.wl-promo-card__title {
    margin: 0 0 .85rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid rgba(52, 54, 61, .5);
    color: #3f4248;
    font-family: var(--wl-font-heading);
    font-size: clamp(1.05rem, 1.35vw, 1.35rem);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.wl-promo-card__text {
    color: #60656c;
    font-size: .95rem;
    line-height: 1.55;
}

    .wl-promo-card__text p:last-child {
        margin-bottom: 0;
    }

.wl-promo-card__more {
    display: inline-flex;
    margin-top: 1.1rem;
    color: #34363d !important;
    font-family: var(--wl-font-heading);
    font-size: .74rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-decoration: none !important;
}

    .wl-promo-card__more::after {
        content: "";
        width: 2.25rem;
        height: 1px;
        margin-left: .85rem;
        align-self: center;
        background: currentColor;
    }

    .wl-promo-card__more:hover,
    .wl-promo-card__more:focus-visible {
        opacity: .72;
    }

/* Responsive */

@media (max-width: 1199.98px) {
    .wl-promo-grid--cols-4 .wl-promo-grid__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}




@media (max-width: 767.98px) {
    .wl-promo-grid--image-cta .wl-promo-grid__items,
    .wl-promo-grid--cols-2 .wl-promo-grid__items,
    .wl-promo-grid--cols-3 .wl-promo-grid__items,
    .wl-promo-grid--cols-4 .wl-promo-grid__items {
        grid-template-columns: 1fr;
    }

    .wl-promo-tile__link {
        aspect-ratio: 1.65 / 1;
    }

    .wl-promo-tile__content {
        padding: 0 3.5rem 1.1rem 1.25rem;
    }

    .wl-promo-tile__title {
        font-size: 1.2rem;
        letter-spacing: .14em;
    }

    .wl-promo-tile__link::after {
        right: 1.25rem;
        bottom: 1.04rem;
    }
}



/* =========================================================
   WL promo grid - mobile overflow fix
========================================================= */

@media (max-width: 767.98px) {
    .wl-promo-grid {
        overflow-x: hidden;
    }

    .wl-promo-grid--image-cta .wl-promo-grid__container {
        max-width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .wl-promo-grid--image-cta .wl-promo-grid__items {
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
    }

    .wl-promo-tile,
    .wl-promo-tile__link,
    .wl-promo-tile__content,
    .wl-promo-tile__title {
        min-width: 0;
        max-width: 100%;
    }

    .wl-promo-tile__link {
        aspect-ratio: 1.65 / 1;
        min-height: 0;
    }

    .wl-promo-tile__content {
        padding: 0 3rem 1rem 1rem;
        gap: .65rem;
    }

    .wl-promo-tile__title {
        font-size: clamp(.95rem, 5vw, 1.2rem);
        letter-spacing: .12em;
        overflow: hidden;
        white-space: nowrap;
    }

        .wl-promo-tile__title::after {
            flex: 1 1 auto;
            min-width: 2rem;
            margin-left: .75rem;
        }

    .wl-promo-tile__content::after {
        right: 1rem;
        bottom: 1.14rem;
        width: 11px;
        height: 11px;
        transform: translateY(-2px) rotate(45deg);
    }
}


@media (max-width: 767.98px) {
    html,
    body {
        overflow-x: hidden;
    }
}

/* =========================================================
   WL promo grid - image CTA tablet / small laptop fix
========================================================= */

/* Small laptop: keep 2 columns, but reduce gutters and CTA padding */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .wl-promo-grid--image-cta .wl-promo-grid__container {
        max-width: 100%;
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .wl-promo-grid--image-cta .wl-promo-grid__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }

    .wl-promo-grid--image-cta .wl-promo-tile__link {
        aspect-ratio: 1.75 / 1;
        min-height: 230px;
    }

    .wl-promo-grid--image-cta .wl-promo-tile__content {
        padding: 0 3.25rem 1.15rem 1.4rem;
    }

    .wl-promo-grid--image-cta .wl-promo-tile__title {
        font-size: clamp(1.15rem, 2vw, 1.45rem);
        letter-spacing: .16em;
    }

        .wl-promo-grid--image-cta .wl-promo-tile__title::after {
            min-width: 2.5rem;
            margin-left: .9rem;
        }

    .wl-promo-grid--image-cta .wl-promo-tile__content::after {
        right: 1.35rem;
        bottom: 1.45rem;
        width: 12px;
        height: 12px;
    }
}

/* Tablet: image CTA tiles need to stack earlier than normal cards */
@media (min-width: 768px) and (max-width: 991.98px) {
    .wl-promo-grid--image-cta {
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
    }

        .wl-promo-grid--image-cta .wl-promo-grid__container {
            max-width: 100%;
            padding-left: 1.25rem;
            padding-right: 1.25rem;
        }

        .wl-promo-grid--image-cta .wl-promo-grid__items {
            grid-template-columns: 1fr;
            gap: 1.75rem;
        }

        .wl-promo-grid--image-cta .wl-promo-tile__link {
            aspect-ratio: 1.9 / 1;
            min-height: 260px;
        }

        .wl-promo-grid--image-cta .wl-promo-tile__content {
            padding: 0 4rem 1.25rem 1.75rem;
        }

        .wl-promo-grid--image-cta .wl-promo-tile__title {
            font-size: clamp(1.35rem, 3vw, 1.8rem);
            letter-spacing: .17em;
        }

            .wl-promo-grid--image-cta .wl-promo-tile__title::after {
                min-width: 3rem;
                margin-left: 1rem;
            }

        .wl-promo-grid--image-cta .wl-promo-tile__content::after {
            right: 1.75rem;
            bottom: 1.55rem;
        }
}



/* =========================================================
   Other vehicles promo
========================================================= */

.wl-other-vehicles {
    padding: 3.5rem 0 4.25rem;
    background: #fff;
    color: #34363d;
}

.wl-other-vehicles__header {
    margin-bottom: 2.25rem;
    text-align: center;
}

.wl-other-vehicles__title {
    margin: 0;
    color: #4b4f55;
    font-family: var(--wl-font-heading);
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.wl-other-vehicles__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.5rem, 2.5vw, 2.25rem);
}

.wl-other-vehicle-card {
    background: #fff;
    color: #34363d;
}

    .wl-other-vehicle-card a {
        color: inherit !important;
        text-decoration: none !important;
    }

        .wl-other-vehicle-card a:hover,
        .wl-other-vehicle-card a:focus-visible {
            color: #34363d !important;
            text-decoration: none !important;
        }

.wl-other-vehicle-card__image-link {
    display: block;
    position: relative;
    overflow: hidden;
    background: #f2f2f2;
    /* Same angled bottom-right cut as stock grid 
    clip-path: polygon( 0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 46px) 100%, 0 100% );
*/
}

.wl-other-vehicle-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 1.48 / 1;
    height: auto;
    object-fit: cover;
    object-position: center;
    transition: transform .35s ease;
}

.wl-other-vehicle-card:hover .wl-other-vehicle-card__image {
    transform: scale(1.025);
}

.wl-other-vehicle-card__body {
    padding-top: 1.2rem;
}

.wl-other-vehicle-card__title {
    margin: 0 0 .85rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(52, 54, 61, .72);
    color: #3f4248;
    font-family: var(--wl-font-heading);
    font-size: clamp(1rem, 1.25vw, 1.25rem);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: .18em;
    text-transform: uppercase;
}

    .wl-other-vehicle-card__title a {
        color: inherit !important;
        text-decoration: none !important;
    }

.wl-other-vehicle-card__spec {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: #666a71;
    font-family: var(--wl-font-body);
    font-size: clamp(.86rem, .95vw, .98rem);
    line-height: 1.35;
    letter-spacing: .05em;
}

    .wl-other-vehicle-card__spec > div {
        display: grid;
        grid-template-columns: 6.5rem 1fr;
        gap: .75rem;
        align-items: baseline;
    }

    .wl-other-vehicle-card__spec dt,
    .wl-other-vehicle-card__spec dd {
        margin: 0;
    }

    .wl-other-vehicle-card__spec dt {
        color: #4f545c;
        font-weight: 700;
    }

    .wl-other-vehicle-card__spec dd {
        color: #70757d;
        font-weight: 400;
    }

/* Tablet */
@media (max-width: 991.98px) {
    .wl-other-vehicles__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Mobile */
@media (max-width: 575.98px) {
    .wl-other-vehicles {
        padding: 3rem 0 3.5rem;
    }

    .wl-other-vehicles__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .wl-other-vehicle-card__title {
        font-size: 1rem;
        letter-spacing: .14em;
    }

    .wl-other-vehicle-card__spec {
        font-size: .95rem;
    }

        .wl-other-vehicle-card__spec > div {
            grid-template-columns: 6.25rem 1fr;
        }

    .wl-other-vehicle-card__image-link {
        clip-path: polygon( 0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 34px) 100%, 0 100% );
    }
}







/* =========================================================
   Video player play icon override
========================================================= */

.ps-video-player__playIconBtn {
    appearance: none;
    -webkit-appearance: none;
    position: absolute;
    inset: auto auto 50% 50%;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    transform: translate(-50%, 50%);
    cursor: pointer;
}

.ps-video-player__playIcon {
    width: clamp(64px, 8vw, 96px);
    height: clamp(64px, 8vw, 96px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 50%;
    background: rgba(0, 0, 0, .32);
    color: #fff;
    transition: background-color .2s ease, transform .2s ease, opacity .2s ease;
}

.ps-video-player__playIconTriangle {
    display: block;
    width: 0;
    height: 0;
    margin-left: .35rem;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent;
    border-left: 20px solid #fff;
}

.ps-video-player__posterBtn:hover .ps-video-player__playIcon,
.ps-video-player__posterBtn:focus-visible .ps-video-player__playIcon,
.ps-video-player__playIconBtn:hover .ps-video-player__playIcon,
.ps-video-player__playIconBtn:focus-visible .ps-video-player__playIcon {
    background: rgba(0, 0, 0, .52);
    transform: scale(1.04);
}

@media (max-width: 575.98px) {
    .ps-video-player__playIconTriangle {
        border-top-width: 10px;
        border-bottom-width: 10px;
        border-left-width: 16px;
    }
}



/* =========================================================
   WL News / Articles
========================================================= */

.wl-news-listing__intro {
    max-width: 760px;
    margin: 1.5rem auto 0;
    color: #5f6268;
    font-size: 1.05rem;
}

.wl-news-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
}

.wl-news-filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .55rem 1rem;
    border: 1px solid rgba(17, 17, 17, .22);
    color: #34363d;
    font-family: var(--wl-font-heading);
    font-size: .72rem;
    font-weight: var(--wl-heading-weight);
    letter-spacing: .16em;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

    .wl-news-filter:hover,
    .wl-news-filter:focus-visible,
    .wl-news-filter.is-active {
        background: #34363d;
        border-color: #34363d;
        color: #fff;
        text-decoration: none;
    }

.wl-news-listing__category-summary {
    max-width: 760px;
    margin-right: auto;
    margin-left: auto;
}

    .wl-news-listing__category-summary h2 {
        margin-bottom: .75rem;
        font-family: var(--wl-font-heading);
        font-size: clamp(1.6rem, 2.5vw, 2.35rem);
        font-weight: var(--wl-heading-weight);
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .wl-news-listing__category-summary p:last-child {
        margin-bottom: 0;
        color: #5f6268;
    }

/* News cards */

.wl-news-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    color: #34363d;
}

    .wl-news-card a {
        color: inherit;
        text-decoration: none;
    }

.wl-news-card__image-link {
    display: block;
    position: relative;
    overflow: hidden;
    background: #f2f2f2;
}

.wl-news-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 1.48 / 1;
    object-fit: cover;
    transition: transform .35s ease;
}

.wl-news-card__image-link:hover .wl-news-card__image,
.wl-news-card__image-link:focus-visible .wl-news-card__image {
    transform: scale(1.035);
}

.wl-news-card__body {
    padding-top: 1.15rem;
}

.wl-news-card__meta {
    margin-bottom: .65rem;
    color: #7b7f86;
    font-family: var(--wl-font-heading);
    font-size: .68rem;
    font-weight: var(--wl-heading-weight);
    letter-spacing: .16em;
    line-height: 1.5;
    text-transform: uppercase;
}

    .wl-news-card__meta span {
        margin-left: .35rem;
    }

.wl-news-card__title {
    margin: 0 0 .8rem;
    font-family: var(--wl-font-heading);
    font-size: clamp(1.15rem, 1.5vw, 1.45rem);
    font-weight: var(--wl-heading-weight);
    letter-spacing: .05em;
    line-height: 1.25;
    text-transform: uppercase;
}

    .wl-news-card__title a:hover,
    .wl-news-card__title a:focus-visible {
        color: #000;
        text-decoration: underline;
        text-underline-offset: .2em;
    }

.wl-news-card__summary {
    margin-bottom: 1rem;
    color: #5f6268;
    font-size: .96rem;
    line-height: 1.65;
}

.wl-news-card__link {
    display: inline-flex;
    align-items: center;
    margin-top: auto;
    font-family: var(--wl-font-heading);
    font-size: .72rem;
    font-weight: var(--wl-heading-weight);
    letter-spacing: .16em;
    text-transform: uppercase;
}

    .wl-news-card__link::after {
        content: "→";
        margin-left: .45rem;
        transition: transform .2s ease;
    }

    .wl-news-card__link:hover::after,
    .wl-news-card__link:focus-visible::after {
        transform: translateX(3px);
    }



/* Left rule treatment for WL news / promo cards */
.wl-news-card__body {
    position: relative;
    padding-top: 1.15rem;
    padding-left: 1.45rem;
    border-left: 1px solid rgba(52, 54, 61, .28);
}


/* Article detail */

.wl-article__header {
    background: #fff;
}

.wl-article__meta span {
    margin-left: .35rem;
}

.wl-article__hero-image {
    display: block;
    width: 100%;
    aspect-ratio: 21 / 9;
    object-fit: cover;
}

.wl-article__body {
    overflow: hidden;
    padding-bottom: 120px;
}

    .wl-article__body .container,
    .wl-article__footer .container {
        max-width: 1180px;
    }

.wl-article-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.wl-article-nav__next-prev {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.wl-article-nav__link {
    color: #34363d;
    font-family: var(--wl-font-heading);
    font-size: .72rem;
    font-weight: var(--wl-heading-weight);
    letter-spacing: .16em;
    text-transform: uppercase;
    text-decoration: none;
}

    .wl-article-nav__link:hover,
    .wl-article-nav__link:focus-visible {
        color: #000;
        text-decoration: underline;
        text-underline-offset: .25em;
    }

.wl-article__footer {
    border-top: 1px solid rgba(17, 17, 17, .1);
}

/* Latest news */

.wl-latest-news {
    background: #fff;
}

.wl-latest-news__header h2,
.wl-section-heading h2 {
    margin: 0;
    font-family: var(--wl-font-heading);
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: var(--wl-heading-weight);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1.35rem;
    font-family: var(--wl-font-heading);
    font-size: .72rem;
    font-weight: var(--wl-heading-weight);
    letter-spacing: .16em;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
}

.wl-btn--outline {
    border: 1px solid #34363d;
    color: #34363d;
}

    .wl-btn--outline:hover,
    .wl-btn--outline:focus-visible {
        background: #34363d;
        color: #fff;
        text-decoration: none;
    }

/* Mobile */

@media (max-width: 767.98px) {
    .wl-news-filters {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: .5rem;
    }

    .wl-news-filter {
        flex: 0 0 auto;
    }

    .wl-article__hero-image {
        aspect-ratio: 4 / 3;
    }

    .wl-article-nav {
        align-items: flex-start;
        flex-direction: column;
    }

    .wl-article-nav__next-prev {
        align-items: flex-start;
        flex-direction: column;
        gap: .75rem;
    }
}





/* =========================================================
   WL Buttons
========================================================= */

.wl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .85rem 1.65rem;
    border: 1px solid currentColor;
    font-family: var(--wl-font-heading);
    font-size: .72rem;
    font-weight: var(--wl-heading-weight);
    letter-spacing: .18em;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

/* Light background: dark outline button */
.wl-btn--outline {
    background: transparent;
    border-color: #34363d;
    color: #34363d !important;
}

    .wl-btn--outline:hover,
    .wl-btn--outline:focus-visible {
        background: #34363d;
        border-color: #34363d;
        color: #fff !important;
        text-decoration: none !important;
    }

/* Dark background: white outline button */
.wl-btn--outline-light {
    background: transparent;
    border-color: #fff;
    color: #fff !important;
}

    .wl-btn--outline-light:hover,
    .wl-btn--outline-light:focus-visible {
        background: #fff;
        border-color: #fff;
        color: #111 !important;
        text-decoration: none !important;
    }

/* Solid light button used on dark sections */
.wl-btn--light {
    background: #fff;
    border-color: #fff;
    color: #111 !important;
}

    .wl-btn--light:hover,
    .wl-btn--light:focus-visible {
        background: transparent;
        border-color: #fff;
        color: #fff !important;
        text-decoration: none !important;
    }

/* Solid dark button used on light sections */
.wl-btn--dark {
    background: #34363d;
    border-color: #34363d;
    color: #fff !important;
}

    .wl-btn--dark:hover,
    .wl-btn--dark:focus-visible {
        background: transparent;
        border-color: #34363d;
        color: #34363d !important;
        text-decoration: none !important;
    }



/* =========================================================
   WL: override PotionStarter global link hover on news filters
========================================================= */

.ps-main .wl-news-filters a.wl-news-filter,
.ps-main .wl-news-filters a.wl-news-filter:link,
.ps-main .wl-news-filters a.wl-news-filter:visited {
    background: transparent;
    border-color: #34363d;
    color: #34363d !important;
}

    .ps-main .wl-news-filters a.wl-news-filter:hover,
    .ps-main .wl-news-filters a.wl-news-filter:focus,
    .ps-main .wl-news-filters a.wl-news-filter:focus-visible,
    .ps-main .wl-news-filters a.wl-news-filter.is-active,
    .ps-main .wl-news-filters a.wl-news-filter.is-active:link,
    .ps-main .wl-news-filters a.wl-news-filter.is-active:visited,
    .ps-main .wl-news-filters a.wl-news-filter.is-active:hover,
    .ps-main .wl-news-filters a.wl-news-filter.is-active:focus-visible {
        background: #34363d;
        border-color: #34363d;
        color: #fff !important;
    }



/* =========================================================
   WL contact modal
========================================================= */

.wl-contact-modal .modal-content {
    border: 0;
    border-radius: 0;
    background: #fff;
    color: var(--wl-ink, #111);
}

.wl-contact-modal .modal-header {
    border-color: rgba(0, 0, 0, .12);
}

.wl-contact-modal .modal-title {
    font-family: var(--wl-font-heading);
    font-weight: var(--wl-heading-weight, 700);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wl-contact-modal .form-label {
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wl-contact-modal .form-control,
.wl-contact-modal .form-check-input {
    border-radius: 0;
}

    .wl-contact-modal .form-control:focus,
    .wl-contact-modal .form-check-input:focus {
        border-color: #111;
        box-shadow: 0 0 0 .15rem rgba(0, 0, 0, .15);
    }

.wl-contact-modal__message {
    padding: 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
}

.wl-contact-modal__message--success {
    border-color: rgba(0, 0, 0, .18);
    background: #f5f5f5;
    color: #111;
}

.wl-contact-modal__message--error {
    border-color: #842029;
    background: #f8d7da;
    color: #842029;
}

.wl-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}




/* =========================================================
   WL HTML embed block
========================================================= */

.wl-html-embed {
    width: 100%;
}

.wl-html-embed__inner {
    width: 100%;
}

    .wl-html-embed__inner iframe {
        display: block;
        width: 100%;
        max-width: 100%;
        border: 0;
    }





/* =========================================================
   WL News grids — square teaser images + 3-column desktop
========================================================= */

.wl-news-grid {
    --bs-gutter-x: clamp(1.75rem, 3vw, 2.75rem);
    --bs-gutter-y: clamp(2.25rem, 4vw, 3.5rem);
}

/* Mobile/default: 1 per row */
.wl-news-listing .row.wl-news-grid > [class*="col"],
.wl-latest-news .row.wl-news-grid > [class*="col"] {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
}

/* Tablet: 2 per row */
@media (min-width: 768px) {
    .wl-news-listing .row.wl-news-grid > [class*="col"],
    .wl-latest-news .row.wl-news-grid > [class*="col"] {
        width: 50%;
    }
}

/* Desktop: 3 per row */
@media (min-width: 992px) {
    .wl-news-listing .row.wl-news-grid > [class*="col"],
    .wl-latest-news .row.wl-news-grid > [class*="col"] {
        width: 33.333333%;
    }
}

/* Square teaser image */
.wl-news-grid .wl-news-card__image-link {
    display: block;
    aspect-ratio: 1 / 1;
}

.wl-news-grid .wl-news-card__image {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center center;
}

/* More comfortable typography for 3-up cards */
.wl-news-grid .wl-news-card__body {
    padding-top: 1.15rem;
    padding-left: 1.35rem;
}

.wl-news-grid .wl-news-card__title {
    font-size: clamp(1.05rem, 1.25vw, 1.28rem);
    letter-spacing: .06em;
}

.wl-news-grid .wl-news-card__summary {
    font-size: .92rem;
    line-height: 1.58;
}

@media (max-width: 767.98px) {
    .wl-news-grid {
        --bs-gutter-y: 2.5rem;
    }

        .wl-news-grid .wl-news-card__body {
            padding-left: 1.25rem;
        }
}


/* =========================================================
   Vehicle image grid / alternating mosaic gallery
========================================================= */

.wl-vehicle-image-grid {
    padding: 0 0 clamp(3.5rem, 6vw, 6rem);
    background: #fff;
    color: #34363d;
}

.wl-vehicle-image-grid__container {
    width: min(100% - 2rem, 1380px);
    max-width: 1380px;
}

.wl-vehicle-image-grid__groups {
    display: grid;
    gap: .4rem;
}

.wl-vehicle-image-grid__group {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: clamp(150px, 12vw, 230px);
    grid-auto-flow: dense;
    gap: .4rem;
}

    .wl-vehicle-image-grid__group[hidden],
    .wl-vehicle-image-grid__group.is-hidden {
        display: none !important;
    }

.wl-vehicle-image-grid__item {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 0;
    border: 0;
    overflow: hidden;
    background: #f2f2f2;
    cursor: pointer;
}


/* Reset any earlier nth-child mosaic rules before applying the grouped pattern. */
.wl-vehicle-image-grid__group .wl-vehicle-image-grid__item {
    grid-column: auto;
    grid-row: auto;
}

.wl-vehicle-image-grid__group--large-left .wl-vehicle-image-grid__item--large {
    grid-column: 1 / span 2;
    grid-row: 1 / span 2;
}

.wl-vehicle-image-grid__group--large-right .wl-vehicle-image-grid__item--large {
    grid-column: 3 / span 2;
    grid-row: 1 / span 2;
}

.wl-vehicle-image-grid__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transition: transform .4s ease, opacity .4s ease;
}

.wl-vehicle-image-grid__item:hover img,
.wl-vehicle-image-grid__item:focus-visible img {
    transform: scale(1.035);
    opacity: .92;
}

.wl-vehicle-image-grid__item:focus-visible {
    outline: 2px solid #34363d;
    outline-offset: 3px;
    z-index: 2;
}

.wl-vehicle-image-grid__actions {
    display: flex;
    justify-content: center;
    margin-top: 2.35rem;
}

.wl-vehicle-image-grid__more {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    min-height: 62px;
    padding: 1.05rem 1.7rem;
    border: 1px solid #1f1f1f;
    background: #1f1f1f;
    color: #fff !important;
    font-family: var(--wl-font-heading);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1;
    text-transform: none;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

    .wl-vehicle-image-grid__more:hover,
    .wl-vehicle-image-grid__more:focus-visible {
        background: transparent;
        color: #1f1f1f !important;
    }

    .wl-vehicle-image-grid__more[hidden] {
        display: none !important;
    }

@media (max-width: 991.98px) {
    .wl-vehicle-image-grid__group {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: clamp(150px, 28vw, 260px);
    }

    .wl-vehicle-image-grid__group--large-left .wl-vehicle-image-grid__item--large,
    .wl-vehicle-image-grid__group--large-right .wl-vehicle-image-grid__item--large {
        grid-column: 1 / span 2;
        grid-row: 1 / span 2;
    }
}

@media (max-width: 575.98px) {
    .wl-vehicle-image-grid {
        padding-bottom: 3.5rem;
    }

    .wl-vehicle-image-grid__container {
        width: min(100% - 1.5rem, 1380px);
    }

    .wl-vehicle-image-grid__groups,
    .wl-vehicle-image-grid__group {
        display: grid;
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        gap: .55rem;
    }

        .wl-vehicle-image-grid__group[hidden],
        .wl-vehicle-image-grid__group.is-hidden {
            display: none !important;
        }

    .wl-vehicle-image-grid__group--large-left .wl-vehicle-image-grid__item--large,
    .wl-vehicle-image-grid__group--large-right .wl-vehicle-image-grid__item--large,
    .wl-vehicle-image-grid__item {
        grid-column: auto;
        grid-row: auto;
        aspect-ratio: 4 / 3;
    }

    .wl-vehicle-image-grid__more {
        width: 100%;
        min-width: 0;
    }
}
/* =========================================================
   Vehicle image grid button + LightGallery title/thumb tweaks
   Add after the existing vehicle image grid CSS.
========================================================= */

/* Load More: match the vehicle contact button treatment */
.wl-vehicle-image-grid__more {
    min-width: 190px;
    min-height: 50px;
    padding: 1rem 1.4rem;
    border: 1px solid #34363d;
    background: #fff;
    color: #34363d !important;
    font-family: var(--wl-font-heading);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .18em;
    line-height: 1;
    text-transform: uppercase;
}

    .wl-vehicle-image-grid__more:hover,
    .wl-vehicle-image-grid__more:focus-visible {
        background: #34363d;
        border-color: #34363d;
        color: #fff !important;
    }


/* =========================================================
   WL LightGallery — thumbnails over image at bottom
   Uses default LightGallery thumbnail structure
========================================================= */

.lg-sub-html {
    display: none !important;
}

.lg-outer .lg-content,
.lg-outer .lg-inner {
    bottom: 0 !important;
}

.lg-outer .lg-components {
    position: absolute !important;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1080;
    pointer-events: none;
}

.lg-outer .lg-thumb-outer {
    position: relative !important;
    width: 100%;
    height: auto;
    padding: .65rem .75rem .75rem;
    background: linear-gradient( 180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .58) 34%, rgba(0, 0, 0, .78) 100% );
    pointer-events: auto;
    transform: none !important;
}

.lg-outer .lg-thumb {
    margin: 0 auto;
}

.lg-outer .lg-thumb-item {
    border-radius: 0;
    border-color: rgba(255, 255, 255, .55);
}

    .lg-outer .lg-thumb-item.active,
    .lg-outer .lg-thumb-item:hover {
        border-color: #fff;
    }

@media (max-width: 767.98px) {
    .lg-outer .lg-thumb-outer {
        padding: .45rem .5rem .55rem;
        background: rgba(0, 0, 0, .78);
    }
}










/* =========================================================
   WL vehicle square grid gallery
   Lower vehicle page gallery: 4 uniform square images per row
========================================================= */

.wl-vehicle-square-grid {
    width: 100%;
    margin: 0 0 4.25rem;
    padding: 0;
    background: #fff;
}

.wl-vehicle-square-grid__items {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
    width: 100%;
}

.wl-vehicle-square-grid__item {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f2f2f2;
    color: inherit;
    text-decoration: none !important;
}

.wl-vehicle-square-grid__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transition: transform .35s ease, opacity .35s ease;
}

.wl-vehicle-square-grid__item:hover .wl-vehicle-square-grid__image,
.wl-vehicle-square-grid__item:focus-visible .wl-vehicle-square-grid__image {
    transform: scale(1.035);
    opacity: .92;
}

.wl-vehicle-square-grid__item:focus-visible {
    outline: 2px solid #34363d;
    outline-offset: 3px;
}


.wl-vehicle-square-grid__item {
    content-visibility: auto;
    contain-intrinsic-size: 360px 360px;
}

/* Tablet */
@media (max-width: 991.98px) {
    .wl-vehicle-square-grid__items {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: .4rem;
    }
}

/* Mobile */
@media (max-width: 575.98px) {
    .wl-vehicle-square-grid {
        margin-bottom: 3.5rem;
    }

    .wl-vehicle-square-grid__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .35rem;
    }
}



/* =========================================================
   WL mobile vehicle gallery improvements
========================================================= */

@media (max-width: 767.98px) {

    /* Hide previous / next chevrons on mobile */
    .wl-vehicle-gallery__arrows,
    .wl-vehicle-gallery__arrow,
    .wl-vehicle-gallery .lg-prev,
    .wl-vehicle-gallery .lg-next {
        display: none !important;
    }

    /* Make the main image area cleaner on mobile */
    .wl-vehicle-gallery {
        margin-bottom: 2rem;
    }

    .wl-vehicle-gallery__main,
    .wl-vehicle-gallery__image-wrap {
        position: relative;
    }

        .wl-vehicle-gallery__main img,
        .wl-vehicle-gallery__image-wrap img {
            width: 100%;
            height: auto;
            display: block;
        }
}



/* =========================================================
   WL stock list mobile badge fix
========================================================= */

@media (max-width: 767.98px) {

    .wl-stock-listing-page .wl-vehicle-card__image-link,
    .wl-stock-listing .wl-vehicle-card__image-link {
        position: relative;
        display: block;
        overflow: hidden;
    }

    .wl-stock-listing-page .wl-vehicle-card__badge,
    .wl-stock-listing .wl-vehicle-card__badge {
        position: absolute;
        top: .55rem;
        left: .55rem;
        right: auto;
        z-index: 5;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        max-width: calc(100% - 1.1rem);
        min-height: 24px;
        margin: 0;
        padding: .45rem .7rem;
        box-sizing: border-box;
        transform: none !important;
        translate: none !important;
        white-space: nowrap;
        overflow: visible;
        text-overflow: clip;
        font-size: .55rem;
        line-height: 1;
        letter-spacing: .08em;
    }

        .wl-stock-listing-page .wl-vehicle-card__badge + .wl-vehicle-card__badge,
        .wl-stock-listing .wl-vehicle-card__badge + .wl-vehicle-card__badge {
            top: 2.45rem;
        }
}



/* Quote body */
.ps-testimonial__body {
    text-align: center;
    position: relative;
    color: var(--ps-primary);
    line-height: 1.55;
    padding: 2.25rem 2.5rem;
    margin: 0;
    font-size: 2.0rem;
}

    .ps-testimonial__body p:last-child {
        margin-bottom: 0;
    }

    /* Big decorative quote marks */
    .ps-testimonial__body::before {
        content: "“";
        position: absolute;
        top: -0.75rem;
        left: -0.25rem;
        font-size: clamp(3.5rem, 8vw, 6rem);
        line-height: 1;
        opacity: 0.18;
        color: var(--ps-ink, currentColor);
        pointer-events: none;
    }

    .ps-testimonial__body::after {
        content: "”";
        position: absolute;
        bottom: -1.75rem;
        right: -0.25rem;
        font-size: clamp(3.5rem, 8vw, 6rem);
        line-height: 1;
        opacity: 0.18;
        color: var(--ps-ink, currentColor);
        pointer-events: none;
    }

/* Author */
.ps-testimonial__author {
    text-align: center;
    margin-top: .75rem;
    color: var(--ps-secondary);
    font-style: italic;
}

    /* Author link: token-driven (avoid dp-* hard refs) */
    .ps-testimonial__author a,
    .ps-testimonial__authorLink {
        color: var(--ps-link);
        text-decoration: none;
        font-style: italic;
    }

        .ps-testimonial__author a:hover,
        .ps-testimonial__author a:focus-visible,
        .ps-testimonial__authorLink:hover,
        .ps-testimonial__authorLink:focus-visible {
            color: var(--ps-link-hover, var(--ps-accent));
            text-decoration: underline;
            text-underline-offset: .18em;
        }



