/* Reusable styles for editable Elementor product pages. Add component classes in Elementor. */
body.drv-header-dark #masthead { background: #19232f !important; }
body.drv-header-dark #masthead .drv-theme-header__brand img { filter: invert(1) grayscale(1) brightness(1.8); }
body.drv-header-dark #masthead .drv-theme-header__links a,
body.drv-header-dark #masthead .drv-theme-header__mobile,
body.drv-header-dark #masthead .drv-theme-header__mobile-links a { color: #fff; }
body.drv-header-dark #masthead .drv-theme-header__mobile-links { background: #19232f; }
body.drv-product-page #masthead .drv-theme-header__links > li:nth-child(3) > a::after {
    content: ""; position: absolute; right: 0; bottom: 2px; left: 0; height: 2px; background: #d36228;
}
body.drv-editable-page #content { width: 100%; max-width: none; margin-top: 0; padding: 0; }
body.drv-editable-page .elementor-widget { margin: 0; }
body.drv-editable-page .elementor { color: #252a2f; background: #fff; font-family: var(--drv-font-family); }
body.drv-editable-page .elementor p { hyphens: none; }
body.drv-editable-page .elementor :is(.e-con, .elementor-widget, .drv-contact-form) { box-sizing: border-box; }

/* Dealers page: editable location cards above a full-width map. */
.drv-dealers__main,
.drv-dealers__main .e-con,
.drv-dealers__map-section {
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px;
}
.drv-dealers__main { padding: 42px 0 105px; background: #fff; }
.drv-dealers__shell { width: min(calc(100% - 64px), 1280px); margin-inline: auto; }
.drv-dealers__intro { align-items: center; text-align: center; }
.drv-dealers__title .elementor-heading-title {
    margin: 0; color: #252a2f !important; font-size: clamp(38px, 3.5vw, 50px) !important;
    font-weight: 700 !important; letter-spacing: -.035em; line-height: 1.1 !important;
}
.drv-dealers__rule { width: 130px !important; margin: 13px auto 18px !important; }
.drv-dealers__rule .elementor-divider { padding: 0 !important; }
.drv-dealers__rule .elementor-divider-separator { width: 130px !important; border-top: 3px solid #d36228 !important; }
.drv-dealers__intro-copy { width: min(100%, 860px) !important; }
.drv-dealers__intro-copy p { margin: 0; color: #30363a; font: var(--drv-intro-weight) var(--drv-intro-size)/var(--drv-intro-line-height) var(--drv-font-family); }
.drv-dealers__grid { width: min(100%, 930px); margin: 68px auto 0; }
.drv-dealers__grid .elementor-widget-shortcode { width: 100%; }
.drv-dealers__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 50px; }
.drv-dealers__card { min-width: 0; }
.drv-dealers__name { margin: 0 0 8px; color: #252a2f !important; font-size: 18px !important; font-weight: 700 !important; line-height: 1.25 !important; }
.drv-dealers__details p { margin: 0 0 3px; color: #4b5055; font: var(--drv-supporting-weight) var(--drv-supporting-size)/var(--drv-supporting-line-height) var(--drv-font-family); }
.drv-dealers__details p:last-child { margin-bottom: 0; }
.drv-dealers__details a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.drv-dealers__details a:hover,
.drv-dealers__details a:focus-visible { color: #c65d27; text-decoration: underline; }
.drv-dealers__directions { position: relative; width: 100%; margin-top: 18px !important; padding-top: 1px; }
.drv-dealers__directions::before { content: ''; position: absolute; top: 0; right: 0; left: 0; border-top: 1px solid #252a2f; }
.drv-dealers__button { display: inline-block; min-width: 146px; padding: 13px 23px; border: 0; border-radius: 0; background: #c95e28; color: #fff !important; font: var(--drv-button-weight) var(--drv-button-size)/var(--drv-button-line-height) var(--drv-font-family); text-align: center; text-decoration: none !important; text-transform: uppercase; }
.drv-dealers__button:hover,
.drv-dealers__button:focus-visible { background: #a7471d; }
.drv-dealers__map-section { width: 100%; }
.drv-dealers__map-section .elementor-widget-container { width: 100%; }
#drv-dealers-map { width: 100%; height: clamp(420px, 38vw, 620px); background: #e6eadf; z-index: 0; }
.drv-dealers__popup { font-family: var(--drv-font-family); line-height: 1.45; }
.drv-dealers__popup strong { color: #19232f; }
.drv-dealers__popup a { color: #b84e1f; font-weight: 700; }
@media (max-width: 1024px) {
    .drv-dealers__shell { width: min(calc(100% - 44px), 960px); }
    .drv-dealers__cards { gap: 38px 32px; }
}
@media (max-width: 760px) {
    .drv-dealers__main { padding: 40px 0 70px; }
    .drv-dealers__shell { width: min(calc(100% - 32px), 620px); }
    .drv-dealers__title .elementor-heading-title { font-size: clamp(33px, 7vw, 42px) !important; }
    .drv-dealers__grid { margin-top: 42px; }
    .drv-dealers__cards { grid-template-columns: 1fr; gap: 34px; }
    .drv-dealers__name { font-size: 17px !important; }
    .drv-dealers__details p { font-size: 16px; }
    #drv-dealers-map { height: 450px; }
}

/* Warranty page: a full-width service hero and editable warranty story. */
.drv-warranty__hero,
.drv-warranty__main,
.drv-warranty__hero .e-con,
.drv-warranty__main .e-con {
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px;
}
.drv-warranty__hero {
    min-height: var(--drv-hero-height);
    background-position: center center;
    background-size: cover;
}
.drv-warranty__shell { width: min(calc(100% - 64px), 1280px); margin-inline: auto; }
.drv-warranty__hero-inner { min-height: inherit; padding-top: clamp(68px, 6vw, 110px); }
.drv-warranty__hero-title { width: min(48%, 500px) !important; }
.drv-warranty__hero-title .elementor-heading-title {
    margin: 0; color: #19232f !important; font-size: clamp(32px, 2.8vw, 42px) !important;
    font-weight: 700 !important; line-height: 1.15 !important; text-wrap: balance; hyphens: none !important;
}
.drv-warranty__main { padding: 42px 0 78px; background: #fff; }
.drv-warranty__intro { align-items: center; text-align: center; }
.drv-warranty__title .elementor-heading-title {
    margin: 0; color: #252a2f !important; font-size: clamp(38px, 3.5vw, 50px) !important;
    font-weight: 700 !important; letter-spacing: -.035em; line-height: 1.1 !important;
}
.drv-warranty__rule { width: 130px !important; margin: 12px auto 18px !important; }
.drv-warranty__rule .elementor-divider { padding: 0 !important; }
.drv-warranty__rule .elementor-divider-separator { width: 130px !important; border-top: 3px solid #d36228 !important; }
.drv-warranty__intro-copy { width: min(100%, 900px) !important; }
.drv-warranty__intro-copy p { margin: 0; color: #30363a; font: var(--drv-intro-weight) var(--drv-intro-size)/var(--drv-intro-line-height) var(--drv-font-family); }
.drv-warranty__columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: start; gap: clamp(32px, 4vw, 64px); width: min(100%, 1120px); margin: 55px auto 0; }
.drv-warranty__photo img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 54% center; }
.drv-warranty__copy p { margin: 0 0 10px; color: #4b5055; font: var(--drv-supporting-weight) var(--drv-supporting-size)/var(--drv-supporting-line-height) var(--drv-font-family); }
.drv-warranty__copy p:last-child { margin-bottom: 0; }
.drv-warranty__copy strong { color: #252a2f; font-weight: 700; }
.drv-warranty__text-column { gap: 0 !important; }
.drv-warranty__badge { width: 280px !important; max-width: 100%; margin-top: 32px !important; }
.drv-warranty__badge img { display: block; width: 100%; height: auto; }
@media (max-width: 1024px) {
    .drv-warranty__shell { width: min(calc(100% - 44px), 960px); }
    .drv-warranty__columns { gap: 30px; }
}
@media (max-width: 760px) {
    .drv-warranty__shell { width: min(calc(100% - 32px), 620px); }
    .drv-warranty__hero { min-height: 430px; background-position: 58% center; }
    .drv-warranty__hero-inner { padding-top: 34px; }
    .drv-warranty__hero-title { width: min(72%, 350px) !important; }
    .drv-warranty__hero-title .elementor-heading-title { font-size: clamp(25px, 6vw, 34px) !important; }
    .drv-warranty__main { padding: 40px 0 64px; }
    .drv-warranty__title .elementor-heading-title { font-size: clamp(33px, 7vw, 42px) !important; }
    .drv-warranty__columns { grid-template-columns: 1fr; gap: 26px; margin-top: 36px; }
    .drv-warranty__photo img { aspect-ratio: 4 / 3; }
    .drv-warranty__copy p { font-size: 16px; }
    .drv-warranty__badge { width: 240px !important; margin-top: 22px !important; }
}

/* About page: full-width photograph and an editable two-column story. */
.drv-about__hero,
.drv-about__story,
.drv-about__hero .e-con,
.drv-about__story .e-con {
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px;
}
.drv-about__hero {
    min-height: var(--drv-hero-height);
    background-color: #61798a;
    background-position: center center;
    background-size: cover;
}
.drv-about__shell { width: min(calc(100% - 64px), 1280px); margin-inline: auto; }
.drv-about__hero-inner { width: min(calc(100% - 64px), 980px); min-height: inherit; padding-top: clamp(70px, 7vw, 120px); }
.drv-about__hero-title { width: min(52%, 500px) !important; }
.drv-about__hero-title .elementor-heading-title {
    margin: 0; color: #fff !important; font-size: clamp(31px, 2.8vw, 42px) !important;
    font-weight: 700 !important; line-height: 1.13 !important; text-wrap: balance; hyphens: none;
}
.drv-about__story { padding: 48px 0 76px; background: #fff; }
.drv-about__intro { align-items: center; text-align: center; }
.drv-about__title .elementor-heading-title {
    margin: 0; color: #252a2f !important; font-size: clamp(36px, 3.3vw, 50px) !important;
    font-weight: 700 !important; letter-spacing: -.035em; line-height: 1.1 !important;
}
.drv-about__rule { width: 130px !important; margin: 14px auto 18px !important; }
.drv-about__rule .elementor-divider { padding: 0 !important; }
.drv-about__rule .elementor-divider-separator { width: 130px !important; border-top: 3px solid #d36228 !important; }
.drv-about__intro-copy { width: min(100%, 900px) !important; }
.drv-about__intro-copy p { margin: 0; color: #30363a; font: var(--drv-intro-weight) var(--drv-intro-size)/var(--drv-intro-line-height) var(--drv-font-family); }
.drv-about__columns { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; gap: clamp(34px, 4.5vw, 72px); margin-top: 32px; }
.drv-about__van img { display: block; width: 100%; height: auto; }
/* Extend into the desktop margin; page 3's caravan/copy ratio gives a 1010px frame. */
@media (min-width: 1344px) {
    .drv-about__van {
        --drv-caravan-extension: clamp(0px, calc((100vw - 1344px) / 2), calc(1010px - 100%));
        width: calc(100% + var(--drv-caravan-extension)) !important;
        max-width: none !important;
        margin-left: calc(-1 * var(--drv-caravan-extension)) !important;
    }
}
.drv-about__copy p { margin: 0 0 9px; color: #4b5055; font: var(--drv-supporting-weight) var(--drv-supporting-size)/var(--drv-supporting-line-height) var(--drv-font-family); }
.drv-about__copy p:last-child { margin-bottom: 0; }
.drv-about__copy strong { color: #252a2f; font-weight: 700; }
.drv-about__text-column { gap: 0 !important; }
.drv-about__brochure { width: fit-content !important; margin-top: 26px !important; }
.drv-about__brochure .elementor-button {
    display: inline-flex; align-items: center; gap: 9px; padding: 0;
    background: transparent !important; color: #bb5d2b !important;
    font: var(--drv-button-weight) var(--drv-button-size)/var(--drv-button-line-height) var(--drv-font-family);
    text-decoration: none;
}
.drv-about__brochure .elementor-button:hover,
.drv-about__brochure .elementor-button:focus-visible { color: #8f421e !important; }
.drv-about__brochure .elementor-button-content-wrapper { align-items: center; gap: 9px; }
.drv-about__brochure .elementor-button-icon svg { display: block; width: 46px; height: auto; }

/* Brochure requests reuse the site's Contact Form 7 fields and orange buttons. */
body.drv-brochure-open { overflow: hidden; }
.drv-brochure {
    width: min(600px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px);
    margin: auto; padding: 0; border: 0; border-radius: 0; overflow-y: auto;
    color: #30363a; background: #fff; font-family: var(--drv-font-family);
}
.drv-brochure::backdrop { background: rgba(17,24,33,.7); }
.drv-brochure__content { position: relative; padding: 48px 40px 40px; }
.drv-brochure h2 {
    margin: 0 32px 16px 0; font-family: var(--drv-font-family); font-size: 32px;
    font-weight: 700; line-height: 1.2;
}
.drv-brochure p {
    margin: 0 0 24px; font-size: var(--drv-supporting-size);
    font-weight: var(--drv-supporting-weight); line-height: var(--drv-supporting-line-height);
}
.drv-brochure [hidden] { display: none !important; }
.drv-brochure .drv-contact-form { background: #fff; }
.drv-brochure .drv-contact-form__grid { grid-template-columns: 1fr; gap: 24px; }
.drv-brochure .drv-contact-form__actions { justify-content: flex-start; margin-top: 32px; }
.drv-brochure .drv-contact-form__actions > p { position: relative; margin: 0; }
.drv-brochure .wpcf7-spinner { position: absolute; top: 13px; left: 100%; margin: 0 12px; }
.drv-brochure .wpcf7-response-output { margin-bottom: 0; }
.drv-brochure__close {
    position: absolute; top: 8px; right: 8px; display: grid; place-items: center;
    width: 44px; height: 44px; padding: 0; border: 0; background: transparent;
    color: #19232f; font: 32px/1 Arial, sans-serif; cursor: pointer;
}
.drv-brochure__close:hover { color: #d36228; background: transparent; }
.drv-brochure__download {
    display: inline-block; min-height: 50px; padding: 17px 28px; background: #d36228;
    color: #19232f; text-decoration: none;
    font: var(--drv-button-weight) var(--drv-button-size)/var(--drv-button-line-height) var(--drv-font-family);
}
.drv-brochure__download:hover { background: #e47a42; color: #19232f; }
.drv-brochure :is(button, a):focus-visible { outline: 2px solid #19232f; outline-offset: 3px; }
@media (max-width: 760px) {
    .drv-brochure__content { padding: 48px 24px 28px; }
    .drv-brochure h2 { font-size: 26px; }
}
@media (max-width: 1024px) {
    .drv-about__shell { width: min(calc(100% - 44px), 960px); }
    .drv-about__hero-title { width: min(52%, 500px) !important; }
    .drv-about__columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 26px; }
}
@media (max-width: 760px) {
    .drv-about__shell { width: min(calc(100% - 32px), 620px); }
    .drv-about__hero { position: relative; min-height: 520px; background-position: 58% center; }
    .drv-about__hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 16, 23, .4), rgba(8, 16, 23, 0) 94%); }
    .drv-about__hero-inner { position: relative; width: min(calc(100% - 32px), 620px); padding-top: 46px; }
    .drv-about__hero-title { width: min(76%, 380px) !important; }
    .drv-about__hero-title .elementor-heading-title { font-size: clamp(28px, 7vw, 38px) !important; }
    .drv-about__story { padding: 42px 0 64px; }
    .drv-about__columns { grid-template-columns: 1fr; gap: 18px; margin-top: 26px; }
    .drv-about__copy p { font-size: 16px; }
}

/* Contact page: editable sections retain the original Canvas layout. */
.drv-contact__top,
.drv-contact__intro,
.drv-contact__warranty,
.drv-contact__top .e-con,
.drv-contact__intro .e-con,
.drv-contact__warranty .e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; }
.drv-contact__top { background: #19232f; }
.drv-contact__shell { width: min(calc(100% - 64px),1280px); margin-inline: auto; }
.drv-contact__header { display: flex; flex-direction: row !important; align-items: center; justify-content: space-between; gap: 40px !important; min-height: 112px; }
.drv-contact__logo { width: auto !important; }
.drv-contact__logo img { display: block; width: clamp(190px,16vw,255px) !important; max-width: none; height: auto; filter: invert(1) grayscale(1) brightness(1.8); }
.drv-contact__nav { display: flex; flex-direction: row !important; align-items: center; gap: clamp(24px,2.3vw,42px) !important; width: auto; }
.drv-contact__nav-link { width: auto !important; }
.drv-contact__nav-link .elementor-heading-title { margin: 0; font: var(--drv-nav-weight) var(--drv-nav-size)/var(--drv-nav-line-height) var(--drv-font-family); white-space: nowrap; }
.drv-contact__nav-link a { display: block; position: relative; padding: 9px 0 13px; color: #fff !important; text-decoration: none; }
.drv-contact__nav-link a:hover,
.drv-contact__nav-link a:focus-visible { color: #df8658 !important; }
.drv-contact__nav-link a:focus-visible { outline: 2px solid #df8658; outline-offset: 5px; }
.drv-contact__nav-link:last-child a::after { content: ''; position: absolute; right: 0; bottom: 2px; left: 0; height: 2px; background: #d36228; }
.drv-contact__mobile-widget { display: none; }
.drv-contact__intro { gap: 0 !important; padding: 47px 0 0; text-align: center; }
.drv-contact__title .elementor-heading-title { margin: 0; color: #252a2f !important; font-size: var(--drv-page-title-size) !important; font-weight: var(--drv-page-title-weight); letter-spacing: -.035em; line-height: var(--drv-page-title-line-height) !important; }
.drv-contact__rule { width: 130px !important; margin: 15px auto 18px !important; margin-block-end: 18px !important; }
.drv-contact__rule .elementor-divider { padding: 0 !important; }
.drv-contact__rule .elementor-divider-separator { display: block; width: 130px !important; border-top: 3px solid #d36228 !important; }
.drv-contact__intro-copy { width: min(100%,1000px) !important; margin: 18px auto 0 !important; }
.drv-contact__intro-copy p { margin: 0; color: #30363a; font: var(--drv-intro-weight) var(--drv-intro-size)/var(--drv-intro-line-height) var(--drv-font-family); text-wrap: pretty; }
.drv-contact__form { width: min(calc(100% - 64px),1280px) !important; margin: 122px auto 0 !important; padding-bottom: 96px; }
.drv-contact__form .drv-contact-form { width: 100%; margin: 0; background: #fff; }
.drv-contact__warranty { background: #19232f; }
.drv-contact__warranty-inner { display: grid; grid-template-columns: minmax(0,1fr) 190px; align-items: center; gap: 48px !important; width: min(calc(100% - 64px),1280px); min-height: 280px; margin-inline: auto; padding: 42px 0; }
.drv-contact__warranty-copy p { max-width: 900px; margin: 0 auto; color: #fff; font-family: var(--drv-font-family); font-size: clamp(22px,1.7vw,27px); font-weight: 700; line-height: 1.5; text-align: center; text-wrap: balance; }
.drv-contact__warranty-image img { display: block; width: 190px !important; max-width: none; height: auto; transform: translate(-120px,60px); }
@media (max-width: 1343px) { .drv-contact__warranty-image img { transform: translate(-40px,60px); } }
@media (max-width: 1199px) { .drv-contact__warranty-image img { transform: translateY(60px); } }
@media (max-width: 1024px) {
    .drv-contact__shell { width: min(calc(100% - 44px),960px); }
    .drv-contact__nav { gap: 20px !important; }
    .drv-contact__nav-link .elementor-heading-title { font-size: 13px; }
}
@media (max-width: 760px) {
    .drv-contact__shell { width: min(calc(100% - 32px),620px); }
    .drv-contact__header { min-height: 82px; }
    .drv-contact__logo img { width: 178px !important; }
    .drv-contact__nav { display: none; }
    .drv-contact__mobile-widget { display: block; width: auto !important; }
    .drv-contact__mobile-menu { position: relative; z-index: 3; }
    .drv-contact__mobile-menu summary { cursor: pointer; list-style: none; color: #fff; font: 800 14px/1 var(--drv-font-family); text-transform: uppercase; letter-spacing: .08em; }
    .drv-contact__mobile-menu summary::-webkit-details-marker { display: none; }
    .drv-contact__mobile-menu[open] nav { position: absolute; top: 32px; right: 0; display: grid; min-width: 190px; padding: 16px 20px; background: #19232f; box-shadow: 0 12px 30px rgba(14,23,34,.2); }
    .drv-contact__mobile-menu nav a { padding: 9px 0; color: #fff; font: 700 14px/1.4 var(--drv-font-family); text-decoration: none; }
    .drv-contact__intro { padding-top: 45px; }
    .drv-contact__form { width: min(calc(100% - 32px),620px) !important; margin: 76px auto 0 !important; padding-bottom: 84px; }
    .drv-contact__warranty-inner { grid-template-columns: 1fr; gap: 20px !important; width: min(calc(100% - 32px),620px); padding: 46px 0; }
    .drv-contact__warranty-copy p { font-size: clamp(20px,5.6vw,25px); }
    .drv-contact__warranty-image { width: 150px !important; margin-inline: auto !important; }
    .drv-contact__warranty-image img { width: 150px !important; transform: none; }
}

/* Editable homepage: section layout follows the original Canvas homepage. */
:is(.drv-home__hero,.drv-home__intro,.drv-home__range,.drv-home__faq) { color: #101722; }
:is(.drv-home__hero,.drv-home__intro,.drv-home__range,.drv-home__faq),
:is(.drv-home__hero,.drv-home__intro,.drv-home__range,.drv-home__faq) .e-con {
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
    --gap: 0px;
}
.drv-home__shell { width: min(calc(100% - 64px),1280px); margin-inline: auto; }
.drv-home__hero {
    position: relative; min-height: clamp(560px,37vw,700px); overflow: hidden;
    background-color: #c9d2d7; background-position: center; background-size: cover; background-repeat: no-repeat;
}
.drv-home__hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(10,17,24,.06),transparent 42%,rgba(255,255,255,.12)); }
.drv-home__hero-inner { position: relative; z-index: 1; gap: 0 !important; }
/* Match the regular header height and centre the logo without an image line-box gap. */
.drv-home__header { display: flex; flex-direction: row !important; align-items: center; justify-content: space-between; gap: 48px; min-height: 112px; padding: 0; }
.drv-home__logo { width: auto !important; line-height: 0; }
.drv-home__logo img { display: block; width: clamp(190px,16vw,255px) !important; max-width: none; height: auto; }
.drv-home__nav { display: flex; flex-direction: row !important; align-items: center; gap: clamp(24px,2.3vw,42px); width: auto; }
.drv-home__nav-link { width: auto !important; }
.drv-home__nav-link .elementor-heading-title { margin: 0; font: var(--drv-nav-weight) var(--drv-nav-size)/var(--drv-nav-line-height) var(--drv-font-family); white-space: nowrap; }
.drv-home__nav-link a { display: block; position: relative; padding: 9px 0 13px; color: #111821 !important; text-decoration: none; }
.drv-home__nav-link a:hover, .drv-home__nav-link a:focus-visible { color: #d36228 !important; }
.drv-home__nav-link:first-child a::after { content: ''; position: absolute; right: 0; bottom: 2px; left: 0; height: 2px; background: #d36228; }
.drv-home__mobile-widget { display: none; }
.drv-home__hero-title { width: min(51%,670px) !important; margin: 0 0 0 auto !important; padding-top: clamp(38px,3vw,58px); }
.drv-home__hero-title .elementor-heading-title { margin: 0; color: #0e1722 !important; letter-spacing: -.045em; text-wrap: balance; }

/* Anchor at the page centre; let the larger mockup heading extend to the right. */
@media (min-width: 1344px) {
    .drv-home__hero-title {
        width: min(calc(50vw - 32px), 800px) !important;
        max-width: none !important;
        margin: 0 0 0 50% !important;
        padding-top: clamp(0px, calc(6.8vw - 112px), 17px);
    }
    .drv-home__hero-title .elementor-heading-title {
        font-size: clamp(60px, 4.167vw, 80px) !important;
        line-height: 1 !important;
        letter-spacing: -.02em;
    }
}

.drv-home__intro { padding: 50px 0 58px; background: #fff; }
.drv-home__intro-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(34px,4vw,70px); }
.drv-home__intro-card { display: block; max-width: 390px; gap: 0 !important; }
/* Match the PDF's bold labels, heavier numbers, and gap before the copy. */
.drv-home__kicker { padding-bottom: 14px; }
.drv-home__kicker p { margin: 0; color: #31363a; font: 700 16px/var(--drv-supporting-line-height) var(--drv-font-family); text-transform: uppercase; letter-spacing: -.01em; }
.drv-home__kicker span { color: #d36228; font-weight: 900; }
.drv-home__intro-title { padding-bottom: 12px; }
.drv-home__intro-title .elementor-heading-title { margin: 0; color: #262a2e !important; font-size: 17px !important; font-weight: 700 !important; line-height: 1.22 !important; text-wrap: pretty; }
.drv-home__intro-copy p { margin: 0; color: #555b60; font-size: var(--drv-supporting-size); font-weight: var(--drv-supporting-weight); line-height: var(--drv-supporting-line-height); text-wrap: pretty; }

.drv-home__range { display: block; background: #fff; }
.drv-home__range-intro { display: block; gap: 0 !important; padding: 58px 32px 48px; text-align: center; }
.drv-home__range-title { width: fit-content !important; margin-inline: auto !important; padding-bottom: 27px; }
.drv-home__range-title .elementor-heading-title { display: inline-block; position: relative; margin: 0; color: #242a2f !important; font-size: clamp(38px,3.2vw,54px) !important; font-weight: 700 !important; letter-spacing: -.035em; line-height: 1 !important; }
.drv-home__range-title .elementor-heading-title::after { content: ''; position: absolute; left: 50%; bottom: -14px; width: 138px; height: 3px; transform: translateX(-50%); background: #d36228; }
.drv-home__range-copy { width: min(100%,840px) !important; margin-inline: auto !important; }
.drv-home__range-copy p { margin: 0; color: #3e4448; font-size: var(--drv-intro-size); font-weight: var(--drv-intro-weight); line-height: var(--drv-intro-line-height); text-wrap: pretty; }
.drv-home__range-panel { display: block; position: relative; overflow: hidden; }
/* Trim 40px of excess colour from the 2560×597 banners, preserving the caravans. */
.drv-home__range-image { aspect-ratio: 2560 / 557; overflow: hidden; }
.drv-home__range-image img { display: block; width: 100%; height: auto; }
.drv-home__range-label { position: absolute; top: 85.7%; width: auto !important; transform: translateY(-50%); }
.drv-home__range-label .elementor-heading-title { margin: 0; color: #fff !important; font-size: clamp(25px,2.2vw,38px) !important; font-weight: 700 !important; letter-spacing: -.025em; line-height: 1 !important; white-space: nowrap; }
.drv-home__range-label a { display: inline-flex; align-items: center; gap: clamp(38px,4.4vw,84px); color: inherit !important; text-decoration: none; }
.drv-home__range-label a::after { content: ''; flex: 0 0 32px; width: 32px; height: 32px; background: linear-gradient(currentColor 0 0) center / 100% 2px no-repeat, linear-gradient(currentColor 0 0) center / 2px 100% no-repeat; transition: transform .25s ease; }
.drv-home__range-label a:is(:hover,:focus-visible)::after { transform: rotate(90deg); }
.drv-home__range-panel--alpha .drv-home__range-label { left: 22%; }
.drv-home__range-panel--xu1 .drv-home__range-label { left: 57%; }

/* Use the product pages' 597/590 PDF scale: a 2551-unit banner becomes 2580px. */
@media (min-width: 1344px) {
    .drv-home__range-panel {
        --drv-range-image-width: max(100%, min(2580px, calc(100% + 100vw - 1344px)));
    }
    .drv-home__range-image {
        width: var(--drv-range-image-width) !important;
        max-width: none !important;
        margin-left: calc((100% - var(--drv-range-image-width)) / 2) !important;
    }
    /* Keep the editable labels at their existing positions within the enlarged image. */
    .drv-home__range-panel--alpha .drv-home__range-label { left: calc(50% - var(--drv-range-image-width) * .28); }
    .drv-home__range-panel--xu1 .drv-home__range-label { left: calc(50% + var(--drv-range-image-width) * .07); }
}

.drv-home__faq { padding: 76px 0 96px; background: #fff; }
.drv-home__faq-inner { gap: 0 !important; }
.drv-home__faq-heading { padding-bottom: 58px; }
.drv-home__faq-heading .elementor-heading-title { margin: 0; color: #252a2f !important; font-size: clamp(34px,3vw,48px) !important; font-weight: 400 !important; letter-spacing: -.035em; line-height: 1.08 !important; text-align: center; text-wrap: balance; }
.drv-home__faq-heading strong { font-weight: 800 !important; }
.drv-home__faq-layout { display: grid; grid-template-columns: minmax(0,.92fr) minmax(460px,1.08fr); align-items: center; gap: 24px; }
.drv-home__faq-image img { display: block; width: 100%; height: auto; }
/* Enlarge into the desktop margin while keeping the image beside the questions. */
@media (min-width: 1344px) {
    .drv-home__faq-image {
        --drv-faq-image-extension: clamp(0px, calc((100vw - 1344px) / 2), calc(800px - 100%));
        width: calc(100% + var(--drv-faq-image-extension)) !important;
        max-width: none !important;
        margin-left: calc(-1 * var(--drv-faq-image-extension)) !important;
    }
}
.drv-home__faq-list { align-self: center; }
.drv-home__faq-list .elementor-accordion { counter-reset: drv-faq; }
.drv-home__faq-list .elementor-accordion-item { border: 0; counter-increment: drv-faq; }
.drv-home__faq-list .elementor-tab-title { display: grid; grid-template-columns: 24px minmax(0,1fr) 25px; align-items: center; gap: 4px; padding: 15px 0; border: 0; color: #272c30; cursor: pointer; }
.drv-home__faq-list .elementor-tab-title::before { content: counter(drv-faq,decimal-leading-zero) '.'; color: #d36228; font: 700 16px/1 var(--drv-font-family); }
.drv-home__faq-list .elementor-accordion-title { padding-right: 32px; color: inherit !important; text-transform: uppercase; letter-spacing: .005em; }
.drv-home__faq-list .elementor-tab-title:hover { color: #d36228; }
.drv-home__faq-list .elementor-accordion-icon { display: grid !important; float: none !important; grid-column: 3; grid-row: 1; place-items: center; width: 20px !important; height: 20px; border-radius: 50%; background: #d36228; color: #fff !important; font-size: 12px; }
.drv-home__faq-list .elementor-accordion-icon svg { display: block; width: 10px !important; height: 10px !important; fill: #fff !important; }
/* Align answers with question text after the 24px number column and 4px gap. */
.drv-home__faq-list .elementor-tab-content { margin-left: 28px; padding: 0 35px 18px 0; border: 0; color: #62676b; text-wrap: pretty; }
.drv-home__faq-list .elementor-tab-content p { margin: 0 0 10px; font: inherit; }
.drv-home__faq-list .elementor-tab-content p:last-child { margin-bottom: 0; }

@media (max-width: 1024px) {
    .drv-home__shell { width: min(calc(100% - 44px),960px); }
    .drv-home__header { gap: 28px; }
    .drv-home__nav { gap: 20px; }
    .drv-home__nav-link .elementor-heading-title { font-size: 13px; }
    .drv-home__hero-title { width: 54% !important; }
}
@media (max-width: 900px) {
    .drv-home__faq { padding: 64px 0 78px; }
    .drv-home__faq-heading { padding-bottom: 44px; }
    .drv-home__faq-layout { grid-template-columns: 1fr; gap: 28px; }
    .drv-home__faq-image { width: min(100%,680px) !important; margin-inline: auto !important; }
}
@media (max-width: 760px) {
    .drv-home__shell { width: min(calc(100% - 32px),620px); }
    .drv-home__hero { min-height: 700px; background-position: 38% center; }
    .drv-home__header { min-height: 88px; }
    .drv-home__logo img { width: 178px; }
    .drv-home__nav { display: none; }
    .drv-home__mobile-widget { display: block; width: auto !important; }
    .drv-home__mobile-menu { position: relative; }
    .drv-home__mobile-menu summary { cursor: pointer; list-style: none; color: #101722; font: 800 14px/1 var(--drv-font-family); text-transform: uppercase; letter-spacing: .08em; }
    .drv-home__mobile-menu summary::-webkit-details-marker { display: none; }
    .drv-home__mobile-menu[open] nav { position: absolute; z-index: 5; top: 32px; right: 0; display: grid; min-width: 190px; padding: 16px 20px; background: rgba(255,255,255,.96); box-shadow: 0 12px 30px rgba(14,23,34,.12); }
    .drv-home__mobile-menu nav a { padding: 9px 0; color: #101722; font: 700 14px/1.4 var(--drv-font-family); text-decoration: none; }
    .drv-home__hero-title { width: min(100%,520px) !important; margin: 0 !important; padding-top: 92px; }
    .drv-home__intro { padding: 42px 0 50px; }
    .drv-home__intro-grid { grid-template-columns: 1fr; gap: 36px; }
    .drv-home__intro-card { max-width: 560px; }
    .drv-home__range-intro { padding: 48px 24px 40px; }
    .drv-home__range-title .elementor-heading-title { font-size: 38px !important; }
    .drv-home__range-image { aspect-ratio: auto; height: 280px; }
    .drv-home__range-image img { height: 300px; object-fit: cover; }
    .drv-home__range-panel--alpha img { object-position: 68% center; }
    .drv-home__range-panel--xu1 img { object-position: 32% center; }
    .drv-home__range-label { left: 50% !important; transform: translate(-50%,-50%); }
    .drv-home__range-label .elementor-heading-title { font-size: 25px !important; }
    .drv-home__range-label a { gap: 30px; }
    .drv-home__range-label a::after { flex-basis: 26px; width: 26px; height: 26px; }
}
@media (max-width: 560px) {
    .drv-home__faq { padding: 52px 0 64px; }
    .drv-home__faq-heading .elementor-heading-title { font-size: 34px !important; }
    .drv-home__faq-layout { gap: 20px; }
    .drv-home__faq-list .elementor-tab-title { grid-template-columns: 24px minmax(0,1fr) 22px; padding: 14px 0; }
    .drv-home__faq-list .elementor-tab-content { padding: 0 22px 17px 0; }
}

/* Product introduction and story. */
.drv-product__intro { padding: 46px 32px 58px; }
.drv-product__intro > .e-con-inner,
.drv-product__inclusions > .e-con-inner { gap: 0; width: 100%; max-width: 1280px; padding: 0; }
.drv-product__title .elementor-heading-title {
    margin: 0; color: #252a2f; font-size: var(--drv-page-title-size) !important;
    line-height: var(--drv-page-title-line-height) !important; letter-spacing: -.035em;
    text-align: center; text-wrap: balance;
}
.drv-product__lead { width: min(100%,1080px) !important; max-width: 1080px !important; margin: 15px auto 0 !important; }
.drv-product__lead p {
    margin: 0; color: #30363a; font-size: var(--drv-intro-size); font-weight: var(--drv-intro-weight);
    line-height: var(--drv-intro-line-height); font-family: var(--drv-font-family); text-align: center; text-wrap: pretty;
}
.drv-product__story { margin-top: 34px; padding-inline: 0; }
.drv-product__story > .e-con-inner {
    display: grid; grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr);
    align-items: center; gap: clamp(52px,7vw,110px); width: 100%; max-width: none; padding: 0;
}
/* Keep Alpha and XU1 cutouts close to their story copy, as in the PDF. */
@media (min-width: 761px) {
    .page-id-1041 .drv-product__story > .e-con-inner,
    .page-id-996 .drv-product__story > .e-con-inner { gap: 24px; }
}
.drv-product__hero { align-self: center; }
.drv-product__hero img { display: block; width: 100%; height: auto; }
/* PDF caravan/copy proportions give 1090px Alpha and 1020px XU1 image frames. */
@media (min-width: 1344px) {
    .page-id-1041 .drv-product__hero { --drv-caravan-max-width: 1090px; }
    .page-id-996 .drv-product__hero { --drv-caravan-max-width: 1020px; }
    :is(.page-id-1041, .page-id-996) .drv-product__hero {
        --drv-caravan-extension: clamp(0px, calc((100vw - 1344px) / 2), calc(var(--drv-caravan-max-width) - 100%));
        width: calc(100% + var(--drv-caravan-extension)) !important;
        max-width: none !important;
        margin-left: calc(-1 * var(--drv-caravan-extension)) !important;
    }
}
/* Frame Alpha's 2200 x 1466 source at x350/y390, retaining the caravan and shadow. */
.page-id-1041 .drv-product__hero { position: relative; aspect-ratio: 1540 / 820; overflow: hidden; }
.page-id-1041 .drv-product__hero img {
    position: absolute; top: -47.561%; left: -22.727%;
    width: 142.857%; max-width: none; height: auto;
}
.drv-product__copy { padding-inline: 0; }
.drv-product__copy > .e-con-inner { display: block; gap: 0; width: 100%; max-width: none; padding: 0; }
.drv-product__story-copy p {
    margin: 0 0 13px; color: #4e5459; font-size: 15px; font-weight: 500;
    line-height: 1.45; font-family: var(--drv-font-family); text-wrap: pretty;
}
.drv-product__story-copy:nth-last-child(2) p {
    margin-bottom: 18px; color: #30363a; font-weight: 800;
}
.drv-product__icons img { display: block; width: min(100%,340px); height: auto; margin-top: 20px; }

/* Full-width image gallery. */
.drv-product__gallery { padding: 0; background: #d9dde0; }
.drv-product__gallery > .e-con-inner {
    display: block; width: 100%; max-width: none; padding-top: 0; padding-bottom: 0;
}
.drv-product__gallery .elementor-image-gallery .gallery {
    display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; margin: 0;
}
.drv-product__gallery .gallery-item { float: none; width: 100% !important; max-width: none !important; margin: 0; padding: 0; }
.drv-product__gallery .gallery-icon,
.drv-product__gallery .gallery-icon a { display: block; width: 100%; height: 100%; overflow: hidden; }
.drv-product__gallery .gallery-icon a { aspect-ratio: 1200 / 887; }
.drv-product__gallery .gallery-icon img {
    display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border: 0;
    transition: transform .25s ease;
}
.drv-product__gallery .gallery-icon a:hover img { transform: scale(1.018); }
.drv-product__gallery .gallery-icon a:focus-visible { outline: 3px solid #d36228; outline-offset: -3px; }

/* Product inclusions and accordion. */
.drv-product__inclusions { padding: 84px 32px 98px; }
.drv-product__inclusions-title .elementor-heading-title,
.drv-product__contact-title .elementor-heading-title {
    margin: 0; color: #252a2f; font-size: clamp(34px,3vw,48px); font-weight: 500;
    letter-spacing: -.03em; line-height: 1.15; text-align: center; text-wrap: balance;
}
.drv-product__inclusions-title strong,
.drv-product__contact-title .elementor-heading-title { font-weight: 700; }
.drv-product__accordion { margin-top: 48px !important; }
.drv-product__accordion .elementor-accordion-item { border: 0; }
.drv-product__accordion .elementor-tab-title {
    position: relative; display: flex; flex-direction: row-reverse; align-items: center;
    justify-content: space-between; padding: 13px 0; border: 0; color: #252a2f;
}
.drv-product__accordion .elementor-accordion-title {
    color: #252a2f; font-family: var(--drv-font-family); font-size: 15px; font-weight: 800; line-height: 1.2;
}
.drv-product__accordion .elementor-tab-title.elementor-active .elementor-accordion-title { color: #252a2f; }
.drv-product__accordion .elementor-accordion-icon {
    display: flex !important; float: none !important; flex: 0 0 24px;
    align-items: center; justify-content: center; width: 24px !important; height: 24px;
    border-radius: 50%; background: #d36228; color: #fff !important; line-height: 1 !important;
}
.drv-product__accordion .elementor-accordion-icon span { line-height: 0; }
.drv-product__accordion .elementor-accordion-icon svg {
    display: block; width: 12px !important; height: 12px !important; fill: #fff !important;
}
.drv-product__accordion .elementor-tab-content { padding: 4px 44px 22px; border: 0; }
.drv-product__accordion .elementor-tab-content ul {
    margin: 0; padding: 0; columns: 4 210px; column-gap: 44px;
    color: #4b5156; font-family: var(--drv-font-family); font-size: 15px; font-weight: 500; line-height: 1.35;
}
.drv-product__accordion .elementor-tab-content li { margin: 0 0 9px 1em; padding-left: 3px; break-inside: avoid; }

/* Quote enquiry and shared Contact Form 7 fields. */
.drv-product__contact { padding: 74px 32px 78px; background: #eef3ef; }
.drv-product__contact > .e-con-inner { display: block; gap: 0; width: 100%; max-width: 1280px; padding: 0; }
.drv-product__contact-copy { max-width: 780px; margin: 11px auto 0 !important; }
.drv-product__contact-copy p {
    margin: 0; color: #30363a; font-size: var(--drv-supporting-size); font-weight: 700;
    line-height: var(--drv-supporting-line-height); font-family: var(--drv-font-family); text-align: center; text-wrap: pretty;
}
.drv-product__form { margin-top: 89px !important; }
.drv-contact-form { width: 100%; margin: 0; padding: 0; color: #454b50; background: #eef3ef; font-family: var(--drv-font-family); }
.drv-contact-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 32px; row-gap: 24px; }
.drv-contact-form__grid > p { display: contents; }
.drv-contact-form__grid br { display: none; }
.drv-contact-form__actions > p,
.drv-contact-form__accept p { margin: 0; }
.drv-contact-form__field { display: block; min-width: 0; margin: 0; }
.drv-contact-form__field--full { grid-column: 1 / -1; }
.drv-contact-form__field .wpcf7-form-control-wrap { display: block; }
.drv-contact-form__field input,
.drv-contact-form__field textarea {
    display: block; width: 100%; margin: 0; padding: 10px 0 7px; border: 0;
    border-bottom: 1px solid #353b40; border-radius: 0; outline: 0; background: transparent;
    box-shadow: none; color: #252a2f;
    font: var(--drv-ui-weight) var(--drv-ui-size)/var(--drv-ui-line-height) var(--drv-font-family);
}
.drv-contact-form__field input { height: 44px; }
.drv-contact-form__field textarea { height: 160px; resize: vertical; }
.drv-contact-form__field :is(input,textarea)::placeholder { color: #555b60; opacity: 1; }
.drv-contact-form__field :is(input,textarea):focus { border-bottom: 2px solid #d36228; }
.drv-contact-form__actions { display: flex; align-items: center; justify-content: center; gap: clamp(35px,6vw,95px); margin-top: 45px; }
.drv-contact-form__accept { width: 340px; font-size: var(--drv-supporting-size); font-weight: var(--drv-supporting-weight); line-height: var(--drv-supporting-line-height); }
.drv-contact-form__accept .wpcf7-list-item { margin: 0; }
.drv-contact-form__accept label { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; }
.drv-contact-form__accept input { flex: 0 0 auto; width: 16px; height: 16px; margin: 1px 0 0; accent-color: #d36228; }
.drv-contact-form input[type="submit"] {
    flex: 0 0 auto; min-height: 50px; padding: 14px 28px; border: 0; border-radius: 0;
    background: #d36228; color: #19232f;
    font: var(--drv-button-weight) var(--drv-button-size)/var(--drv-button-line-height) var(--drv-font-family);
    cursor: pointer;
}
.drv-contact-form input[type="submit"]:hover,
.drv-contact-form input[type="submit"]:focus-visible { background: #e47a42; }
.drv-contact-form .wpcf7-not-valid-tip { margin-top: 5px; font-size: 12px; }
.drv-contact-form .wpcf7-response-output { margin: 22px 0 0; }

/* Product forms match the PDF: acceptance at left, submit centred independently. */
@media (min-width: 761px) {
    .drv-product__form .drv-contact-form__actions {
        display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
        align-items: start; gap: 24px; margin-top: 64px;
    }
    .drv-product__form .drv-contact-form__accept { max-width: 100%; }
    .drv-product__form .drv-contact-form__actions > p { position: relative; padding-top: 16px; }
    .drv-product__form .drv-contact-form__actions .wpcf7-spinner {
        position: absolute; left: 100%; top: calc(50% - 4px);
    }
}

/* Product warranty panel. */
.drv-product__warranty { background: #19232f; }
.drv-product__warranty > .e-con-inner {
    display: grid; grid-template-columns: minmax(0,1fr) 190px; align-items: center;
    gap: 48px; width: min(calc(100% - 64px),1280px); max-width: 1280px;
    min-height: 280px; padding: 42px 0;
}
.drv-product__warranty-copy p {
    max-width: 900px; margin: 0 auto; color: #fff; font-size: clamp(22px,1.7vw,27px);
    font-weight: 700; line-height: 1.5; font-family: var(--drv-font-family); text-align: center; text-wrap: balance;
}
.drv-product__warranty-image img { display: block; width: 190px; height: auto; transform: translate(-120px,60px); }

/* Product floorplans use individual Elementor images grouped in rows. */
.drv-product__floorplans { padding: 0 32px 94px; }
.drv-product__floorplans > .e-con-inner { gap: 38px; width: 100%; max-width: 1280px; padding: 0; }
/* Both product pages use XU1's wider floorplan grid. */
@media (min-width: 1344px) {
    .page-id-996 .drv-product__floorplans > .e-con-inner,
    .page-id-1041 .drv-product__floorplans > .e-con-inner { max-width: 2360px; }
}
.drv-product__floorplans-title .elementor-heading-title { margin: 0 0 38px; color: #252a2f; font-size: clamp(34px,3vw,48px); font-weight: 500; letter-spacing: -.03em; line-height: 1.15; text-align: center; }
.drv-product__floorplans-title strong { font-weight: 700; }
.drv-product__plan-row > .e-con-inner { display: flex; flex-direction: row !important; flex-wrap: nowrap; justify-content: center !important; gap: 24px; width: 100%; max-width: none; padding: 0; }
.drv-product__plan { flex: 0 0 calc((100% - 96px)/5); width: auto !important; min-width: 0; }
.drv-product__plan img, .drv-product__plan-options img { display: block; width: 100%; height: auto; }
.drv-product__plan a:focus-visible, .drv-product__plan-options a:focus-visible { outline: 3px solid #d36228; outline-offset: 4px; }
.drv-product__plan-options { width: min(100%,1080px) !important; margin: 24px auto 0 !important; }
/* Keep the viewer full height with dark side margins on desktop. */
.drv-product-planbox { position: fixed; inset: 0; width: min(96%,1100px); max-width: none; height: 100dvh; max-height: none; margin: 0 auto; padding: 0; border: 0; background: #fff; color: #19232f; overflow: hidden; }
.drv-product-planbox::backdrop { background: rgba(10,17,24,.82); }
.drv-product-planbox__viewer { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; padding: 62px 72px; overflow: auto; }
.drv-product-planbox__image { display: block; width: auto; max-width: 100%; height: auto; max-height: 100%; object-fit: contain; }
.drv-product-planbox.is-zoomed .drv-product-planbox__viewer { display: block; }
.drv-product-planbox.is-zoomed .drv-product-planbox__image { max-width: none; max-height: none; margin: auto; }
.drv-product-planbox button { position: absolute; z-index: 2; display: grid; place-items: center; border: 1px solid #818991; border-radius: 0; background: #fff; color: #19232f; font-family: var(--drv-font-family); font-weight: 700; cursor: pointer; }
.drv-product-planbox button:hover, .drv-product-planbox button:focus-visible { border-color: #d36228; background: #d36228; outline: 0; }
.drv-product-planbox__zoom { top: 14px; right: 64px; min-width: 72px; height: 42px; font-size: 13px; }
.drv-product-planbox__close { top: 14px; right: 14px; width: 42px; height: 42px; }
.drv-product-planbox__prev, .drv-product-planbox__next { top: 50%; width: 46px; height: 58px; transform: translateY(-50%); }
.drv-product-planbox :is(.drv-product-planbox__close,.drv-product-planbox__prev,.drv-product-planbox__next) { padding: 0 !important; line-height: 0 !important; }
.drv-product-planbox :is(.drv-product-planbox__close,.drv-product-planbox__prev,.drv-product-planbox__next) svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.drv-product-planbox__prev { left: 14px; }.drv-product-planbox__next { right: 14px; }
.drv-product-planbox__count { position: absolute; bottom: 16px; left: 50%; font-size: 14px; font-weight: 700; transform: translateX(-50%); }
@media (min-width: 761px) and (max-width: 1500px) { .page-id-996 .drv-site-footer__inner { grid-template-columns: minmax(0,40%) minmax(0,1fr); gap: 6vw; }.page-id-996 .drv-site-footer__nav { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 18px; } }
@media (max-width: 1343px) { .drv-product__warranty-image img { transform: translate(-40px,60px); } }
@media (max-width: 1199px) { .drv-product__warranty-image img { transform: translateY(60px); } }
@media (max-width: 1024px) {
    .drv-product__floorplans { padding-bottom: 78px; }
    .drv-product__floorplans > .e-con-inner { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px 22px; }
    .drv-product__floorplans-title { grid-column: 1 / -1; }
    .drv-product__plan-row { display: contents; }
    .drv-product__plan-row > .e-con-inner { display: contents; }
    .drv-product__plan { min-width: 0; }
    .drv-product__plan-options { grid-column: 1 / -1; margin-top: 22px !important; }
    .drv-product__intro, .drv-product__inclusions { padding-inline: 22px; }
    .drv-product__story > .e-con-inner { grid-template-columns: 1fr 1fr; gap: 42px; }
    .drv-product__gallery .elementor-image-gallery .gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .drv-product__accordion .elementor-tab-content ul { columns: 3 190px; }
}
@media (max-width: 760px) {
    .drv-product__floorplans { padding: 0 16px 62px; }
    .drv-product__floorplans > .e-con-inner { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 16px; }
    .drv-product__floorplans-title .elementor-heading-title { margin-bottom: 0; font-size: 34px; }
    .drv-product__plan-options { margin-top: 14px !important; }
    .drv-product-planbox { width: 100%; }
    .drv-product-planbox__viewer { padding: 64px 46px; }
    .drv-product-planbox__prev, .drv-product-planbox__next { width: 38px; height: 50px; }
    .drv-product-planbox__prev { left: 4px; }.drv-product-planbox__next { right: 4px; }
    .drv-product-planbox__zoom { top: 8px; right: 56px; }.drv-product-planbox__close { top: 8px; right: 8px; }
    .drv-product__intro { padding: 38px 16px 42px; }
    .drv-product__lead { margin-top: 12px !important; }
    .drv-product__story { margin-top: 30px; }
    .drv-product__story > .e-con-inner { grid-template-columns: 1fr; gap: 28px; }
    .drv-product__story-copy p { font-size: 14px; }
    .drv-product__icons img { width: min(100%,300px); }
    .drv-product__gallery .elementor-image-gallery .gallery { grid-template-columns: 1fr; }
    .drv-product__inclusions { padding: 58px 16px 66px; }
    .drv-product__inclusions-title .elementor-heading-title,
    .drv-product__contact-title .elementor-heading-title { font-size: 34px; }
    .drv-product__accordion { margin-top: 30px !important; }
    .drv-product__accordion .elementor-tab-content { padding: 0 34px 18px 4px; }
    .drv-product__accordion .elementor-tab-content ul { columns: 1; font-size: 14px; }
    .drv-product__contact { padding: 54px 16px 62px; }
    .drv-product__form { margin-top: 44px !important; }
    .drv-contact-form__grid { grid-template-columns: 1fr; row-gap: 17px; }
    .drv-contact-form__field--full { grid-column: 1; }
    .drv-contact-form__field textarea { height: 150px; }
    .drv-contact-form__actions { flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 32px; }
    .drv-contact-form__accept { width: 100%; }
    .drv-contact-form input[type="submit"] { align-self: flex-start; }
    .drv-product__warranty > .e-con-inner {
        grid-template-columns: 1fr; gap: 20px; width: min(calc(100% - 32px),620px); padding: 46px 0;
    }
    .drv-product__warranty-copy p { font-size: clamp(20px,5.6vw,25px); }
    .drv-product__warranty-image img { width: 150px; margin: auto; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .drv-product__gallery .gallery-icon img { transition: none; }
}

/* CEO, Resources and Events retain their original composition with editable widgets. */
:is(.drv-ceo__story,.drv-resources__story,.drv-resources__hero,.drv-events__content),
:is(.drv-ceo__story,.drv-resources__story,.drv-events__content) .e-con {
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px;
}
:is(.drv-ceo__story,.drv-resources__story,.drv-events__content) .elementor-widget { min-width: 0; }
:is(.drv-ceo__shell,.drv-resources__shell,.drv-events__shell) { width: min(calc(100% - 64px),1280px); margin-inline: auto; }
:is(.drv-ceo__title,.drv-resources__title,.drv-events__title) .elementor-heading-title {
    margin: 0; color: #252a2f !important; font-size: var(--drv-page-title-size) !important;
    font-weight: var(--drv-page-title-weight); letter-spacing: -.035em; line-height: var(--drv-page-title-line-height) !important; text-wrap: balance;
}
body.drv-editable-page .elementor :is(.drv-ceo__rule,.drv-resources__rule,.drv-events__rule) { width: 130px !important; margin: 14px auto 16px !important; margin-block-end: 16px !important; }
:is(.drv-ceo__rule,.drv-resources__rule,.drv-events__rule) .elementor-divider { padding: 0 !important; }
:is(.drv-ceo__rule,.drv-resources__rule,.drv-events__rule) .elementor-divider-separator { width: 130px !important; border-top: 3px solid #d36228 !important; }
:is(.drv-ceo__lede,.drv-resources__lede,.drv-events__lede) { width: min(100%,850px) !important; margin-inline: auto !important; }
:is(.drv-ceo__lede,.drv-resources__lede,.drv-events__lede) p { margin: 0; color: #30363a; font: var(--drv-intro-weight) var(--drv-intro-size)/var(--drv-intro-line-height) var(--drv-font-family); text-wrap: pretty; }
:is(.drv-ceo__copy,.drv-resources__copy,.drv-events__item) p { margin: 0; color: #51565a; font: var(--drv-supporting-weight) var(--drv-supporting-size)/var(--drv-supporting-line-height) var(--drv-font-family); text-wrap: pretty; }
.drv-ceo__story { padding: 46px 0 85px; text-align: center; }
.drv-ceo__body { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(48px,6vw,80px) !important; width: min(100%,900px); margin: 50px auto 0; text-align: left; }
.drv-ceo__portrait { justify-content: flex-end; align-items: center; }
.drv-ceo__portrait-image { width: min(100%,350px) !important; }
.drv-ceo__portrait img { display: block; width: 100%; height: auto; }
.drv-ceo__copy { padding-top: 1px; }
.drv-ceo__byline { margin-top: 24px !important; }
.drv-ceo__byline p { color: #30363a; font-weight: 800; }
.drv-ceo__signature { width: min(100%,370px) !important; margin-top: 24px !important; }
.drv-ceo__signature img { display: block; width: 100%; height: auto; }
.drv-resources__hero { height: var(--drv-hero-height); min-height: 0; }
.drv-resources__story { padding: 48px 0 126px; text-align: center; }
.drv-resources__lede { width: min(100%,840px) !important; }
.drv-resources__body { display: grid; grid-template-columns: 1fr 1.32fr; align-items: center; gap: clamp(64px,8vw,140px) !important; width: min(100%,1000px); margin: 50px auto 0; text-align: left; }
.drv-resources__brand { align-items: center; }
.drv-resources__brand-image { width: min(100%,245px) !important; }
.drv-resources__brand img { display: block; width: 100%; height: auto; }
.drv-resources__copy p { margin-bottom: 10px; }
.drv-resources__copy p:last-child { margin-bottom: 0; color: #30363a; font-weight: 800; }
.drv-events__content { padding: 46px 0 116px; }
.drv-events__intro { text-align: center; }
body.drv-editable-page .elementor .drv-events__rule { margin: 15px auto 18px !important; margin-block-end: 18px !important; }
.drv-events__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); column-gap: clamp(64px,5vw,96px) !important; width: 100%; margin: 76px auto 0; }
.drv-events__column { display: grid; align-content: start; gap: 23px !important; }
.drv-events__event-title .elementor-heading-title { margin: 0 0 3px; color: #252a2f !important; font: 700 17px/1.2 var(--drv-font-family) !important; letter-spacing: -.01em; text-transform: uppercase; }
.drv-events__item p { color: #4f555a; text-transform: uppercase; }
.drv-events__date { font-variant-numeric: tabular-nums; }
@media (max-width: 1024px) {
    :is(.drv-ceo__shell,.drv-resources__shell,.drv-events__shell) { width: min(calc(100% - 44px),960px); }
    .drv-ceo__body { gap: 48px !important; }
    .drv-resources__body { gap: 52px !important; }
    .drv-events__grid { column-gap: 64px !important; }
}
@media (max-width: 820px) {
    .drv-events__grid { grid-template-columns: repeat(2,minmax(0,1fr)); width: min(100%,650px); }
}
@media (max-width: 760px) {
    :is(.drv-ceo__shell,.drv-resources__shell,.drv-events__shell) { width: min(calc(100% - 32px),620px); }
    :is(.drv-ceo__story,.drv-resources__story) { padding: 46px 0 76px; }
    .drv-ceo__body { grid-template-columns: 1fr; gap: 28px !important; margin-top: 38px; }
    .drv-ceo__portrait-image { width: min(100%,340px) !important; }
    .drv-ceo__signature { width: min(100%,320px) !important; }
    body .drv-resources__hero { height: clamp(270px,65vw,430px) !important; background-position: 45% center; }
    .drv-resources__body { grid-template-columns: 1fr; gap: 30px !important; margin-top: 42px; }
    .drv-resources__brand-image { width: 200px !important; }
    .drv-events__content { padding: 44px 0 76px; }
    .drv-events__grid { grid-template-columns: 1fr; gap: 22px !important; width: 100%; margin-top: 52px; }
    .drv-events__column { gap: 22px !important; }
    .drv-events__event-title .elementor-heading-title { font-size: 16px !important; }
}

/* Preserve the active navigation markers of the original CEO and Events pages. */
.page-id-260 #masthead .drv-theme-header__links > .current-menu-ancestor > a::after,
.page-id-955 #masthead .drv-theme-header__links > li:nth-child(4) > a::after { content: ""; position: absolute; right: 0; bottom: 2px; left: 0; height: 2px; background: #d36228; }
