/*
    Theme Name: Industresource Website
    Author: Borderline
    Author URI: www.bordrlne.com
    Version: 1
    Date Updated: 07/07/26
*/

/* tokens */
:root {
    overscroll-behavior: none;

    --legacy-red: #E22726;
    --legacy-grey: #6c6869;
    --legacy-medgrey: #353233;
    --legacy-darkgrey: #231F20;
    --light-grey: #F0F0F0;
    --black: #000000;
    --white: #ffffff;

    --content-max: 1800px;
}

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

* { margin: 0; }

html, body { min-height: 100%; }

html { scroll-behavior: smooth; scroll-padding-top: 10em; scrollbar-gutter: stable; }

body {
    line-height: 1.5;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    background-color: var(--white);

    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body > footer { margin-top: auto; }
main { width: 100%; }

img, picture, video, canvas, svg { display: block; }

input, button, textarea, select { font: inherit; }

p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

/* base typography */
input { border-radius: 0; appearance: none; }

h1 {
    font-family: roc-grotesk, sans-serif;
    font-weight: 800;
    font-size: 88px;
    line-height: 1;
    color: var(--white);
    text-transform: uppercase;
    text-align: center;
}

h2 {
    font-family: roc-grotesk, sans-serif;
    font-weight: 800;
    font-size: 56px;
    line-height: 1.1;
    letter-spacing: 1px;
    color: var(--black);
    text-transform: uppercase;
}

h3 {
    font-family: roc-grotesk, sans-serif;
    font-weight: 800;
    font-size: 32px;
    line-height: 1.2;
    letter-spacing: 2px;
    color: var(--legacy-grey);
    text-transform: uppercase;
}

h4 {
    font-family: roc-grotesk, sans-serif;
    font-weight: 800;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 2px;
    color: var(--legacy-red);
    text-transform: uppercase;
}

h5 {
    font-family: roc-grotesk, sans-serif;
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: 2px;
    color: var(--legacy-red);
    text-transform: uppercase;
}

p {
    font-family: roc-grotesk, sans-serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 1.4em;
    color: var(--legacy-grey);
}

a {
    font-family: roc-grotesk, sans-serif;
    font-weight: 400;
    font-size: inherit;
    line-height: 1.15em;
    text-decoration: none;
    color: var(--white);
}

li {
    font-family: roc-grotesk, sans-serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 1.4em;
    text-decoration: none;
    color: var(--legacy-grey);
}

/* buttons */
.contact-cta-btn {
    display: inline-block;
    padding: 15px 25px;
    border-radius: 4px;
    color: var(--white);
    background-color: var(--legacy-red);
    font-family: roc-grotesk, sans-serif;
    font-weight: 500;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: 1px;
    position: relative;
    clip-path: inset(0 round 4px);
    z-index: 0;
}

.solid-btn {
    display: inline-block;
    padding: 12px 20px;
    background-color: var(--legacy-red);
    color: var(--white);
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 4px;
    position: relative;
    clip-path: inset(0 round 4px);
    z-index: 0;
}

.contact-cta-btn::before,
.solid-btn::before {
    content: '';
    position: absolute;
    inset: -1px;
    background: var(--legacy-medgrey);
    transform: translateX(-100%);
    transition: transform .35s ease;
    z-index: -1;
}

.contact-cta-btn:hover::before,
.solid-btn:hover::before {
    transform: translateX(0);
}

/* header / nav / mega-menu */
.nav { width: 100%; z-index: 10; }

.scroll-pause { overflow: hidden; }

.mobile-nav-toggle { display: none; }

nav a:not([href]) { cursor: default; }

#scroll-header {
    padding-bottom: .5em;
    transition: background-color .25s ease;
}

.mobile-nav-toggle {
    color: white;
    background: none;
}

.nav-icon__line {
    transition: transform .3s ease, opacity .3s ease;
    transform-box: fill-box;
    transform-origin: center;
}

.menu-x .nav-icon__line--top { transform: translateY(6px) rotate(45deg); }

.menu-x .nav-icon__line--mid { opacity: 0; transform: scaleX(0); }

.menu-x .nav-icon__line--bot { transform: translateY(-6px) rotate(-45deg); }

.menu-x { color: black; }

.mobile-nav-toggle.invert {
    filter: none;
    color: black;
}

.invert { filter: invert(100%); }

header {
    position: absolute;
    top: 0;
    width: 100%;
    border-top: 18px solid var(--legacy-darkgrey);
}

header > div {
    display: flex;
    align-items: center;
}

.header ul {
    display: flex;
    gap: .5em;
    padding: 0;
}

.header li {
    padding: .5em;
    list-style-type: none;
    white-space: nowrap;
}

.header li a { font-size: 20px; font-weight: 500; transition: color .2s ease; }

.header li a[href]:hover { color: var(--legacy-red); }

.nav-container { margin: 1.2em auto; padding: 0 4.5em; max-width: var(--content-max); overflow: hidden; position: relative; z-index: 1; }

.logo img { max-width: 18em; }

.footer-logo img,
.inverted-logo img { max-width: 16em; }

.icon { display: none; }

.icon img { max-width: 50px; }

.white { background-color: var(--white); }

.white .header a { color: var(--black); }

.fixed {
    position: fixed !important;
    animation: nav-fixed-enter .3s ease both;
}

@keyframes nav-fixed-enter {
    from { opacity: 0; transform: translateY(-100%); }
    to   { opacity: 1; transform: translateY(0); }
}

.hidden { display: none !important; }

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

.header .has-mega-menu > a {
    display: inline-flex;
    align-items: center;
    gap: .35em;
}

.header .has-mega-menu > a::after {
    content: '';
    width: 0; height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    flex-shrink: 0;
}

.header .has-mega-menu.hover-ready:hover > a,
.header .has-mega-menu:focus-within > a,
.header .has-mega-menu.is-open > a {
    color: var(--legacy-red);
}

.header .mega-dropdown {
    position: absolute;

    top: calc(100% + 1.2em);

    left: 50%;
    width: 100vw;
    background: var(--white);
    border-top: 1px solid rgba(0, 0, 0, .08);
    box-shadow: 0 18px 60px rgba(0, 0, 0, .075);
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(8px);
    transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}

.header .mega-dropdown::before {
    content: '';
    position: absolute;
    top: -1.2em;
    left: 0;
    right: 0;
    height: 1.2em;
}

.header .has-mega-menu.is-open .mega-dropdown,
.header .has-mega-menu:focus-within .mega-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    transition: opacity .25s ease, transform .25s ease, visibility 0s linear 0s;
}

@media (hover: hover) {
    .header .has-mega-menu.hover-ready:hover .mega-dropdown {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%) translateY(0);
        transition: opacity .25s ease, transform .25s ease, visibility 0s linear 0s;
    }
}

.header .mega-dropdown__inner {

    --inner-pad: 4em;
    --img-gap: 3em;
    --preview-width: clamp(
        240px,
        calc((100vw - var(--inner-pad) * 2 - var(--img-gap)) * 1 / 4),
        380px
    );
    --preview-ratio: 4 / 5;
    position: relative;
    margin: 0 auto;
    max-width: var(--content-max);
    padding: 2em var(--inner-pad);

    min-height: calc(var(--preview-width) * var(--preview-ratio) + 6em);
}

.header .mega-menu-sections {
    margin-left: calc(var(--preview-width) + var(--img-gap));
    display: flex;
    gap: 2em;
    align-items: flex-start;
    list-style: none;
    padding: 0;
    margin-top: 0;
    margin-bottom: 0;
}

.header .mega-group { list-style: none; margin: 0; padding: 0; min-width: 0; }

.header .mega-group__list { list-style: none; margin: 0; padding: 0; display: block; }

.header .mega-group--links { flex: 1 1 0; min-width: 0; }

.header .mega-group--links .mega-group__list { columns: 1; }

.header .mega-dropdown:has(.mega-menu-section__items) .mega-group--links .mega-group__list::before {
    content: "Also Offering";
    display: block;
    text-align: right;
    color: var(--legacy-red);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 1em;
    padding-bottom: .5em;

    border-bottom: 1px solid rgba(0, 0, 0, .25);
}

.header .mega-group--sections { flex: 2 1 0; min-width: 0; }

.header .mega-group--sections .mega-group__list {
    columns: 2;
    column-gap: 1em;
}

.header .mega-menu-section {
    break-inside: avoid;
    min-width: 0;
    list-style: none;
    margin: 0 0 1.5em;
    padding: 0;
    white-space: normal;
}

.header .mega-menu-section__title {
    display: block;
    color: var(--legacy-darkgrey) !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    letter-spacing: 1px;
    text-transform: uppercase;
    line-height: 1.3;
    padding: 0 0 .6em 1.3em;
    margin: 0 0 .6em;
    border-bottom: 1px solid rgba(0, 0, 0, .25);
    text-align: right;
    transition: color .2s ease;
}

.header .mega-menu-section:has(.mega-menu-item:hover) > .mega-menu-section__title,
.header .mega-menu-section:has(.mega-menu-item:focus) > .mega-menu-section__title {
    color: var(--legacy-red) !important;
}

.header .mega-menu-section--leaf {
    margin-bottom: 0;
}

.header .mega-menu-section--leaf .mega-menu-section__title {
    font-weight: 500 !important;
    letter-spacing: .5px;
    border-bottom: none;

    padding-top: .4em;
    padding-bottom: .4em;
    padding-left: 0;
    margin: 0;

    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: .4em;
}

.header .mega-dropdown:not(:has(.mega-menu-section__items)) .mega-group--links {
    flex: 1 1 auto;
}

.header .mega-group__label {
    display: block;
    text-align: right;
    color: var(--legacy-red);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding-bottom: .5em;
    margin-bottom: 1em;
    border-bottom: 1px solid rgba(0, 0, 0, .25);
}

.header .mega-dropdown:not(:has(.mega-menu-section__items)) .mega-cols {
    display: flex;
    gap: 0 2em;
    align-items: flex-start;
}

.header .mega-dropdown:not(:has(.mega-menu-section__items)) .mega-col {

    display: block;
    flex: 1 1 0;
    min-width: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.header .mega-menu-section__items {
    display: block;
    list-style: none;
    margin: 0;
    padding: 0;
}

.header .mega-menu-section__items li {
    display: block;
    margin: 0;
    padding: 0;
    white-space: normal;
}

.header .mega-menu-section__items a {

    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: .4em;
    padding: .4em 0;
    color: var(--legacy-darkgrey) !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    letter-spacing: .5px;
    text-transform: uppercase;
    line-height: 1.3;
    text-align: right;
    transition: color .2s ease;
}

.header .mega-menu-section__items a:hover,
.header .mega-menu-section--leaf .mega-menu-section__title:hover {
    color: var(--legacy-red) !important;
    background: none !important;
}

.header .mega-preview {
    position: absolute;
    top: 2em;
    bottom: 3em;
    left: var(--inner-pad);
    width: var(--preview-width);

    min-height: calc(var(--preview-width) * var(--preview-ratio));
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 4px;
    background-color: var(--light-grey);
    opacity: 0;

    transition: opacity .4s ease .15s;
    pointer-events: none;
}

.header .mega-preview--logo {
    background-size: contain;
    background-color: var(--white);
    background-origin: content-box;
    padding: 1.5em;
}

.header .mega-menu-sections:not(:has(.mega-menu-item:hover, .mega-menu-section--leaf:hover)) .is-default-preview .mega-preview,
.header .mega-menu-item:hover .mega-preview,
.header .mega-menu-section--leaf:hover .mega-preview {
    opacity: 1;

    transition: opacity .4s ease 0s;
}

@media (min-width: 65em) {
    .nav-container { overflow: visible; }
}

@media (min-width: 65em) and (max-width: 1400px) {
    .header .mega-dropdown__inner {
        --img-gap: 2em;
        --preview-ratio: 5 / 4;
    }

}

@media (min-width: 65em) and (max-width: 1600px) {
    .header .mega-dropdown:has(.mega-menu-section__items) .mega-menu-sections {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1.5em 2em;
        align-items: start;
    }
    .header .mega-dropdown:has(.mega-menu-section__items) .mega-group--sections,
    .header .mega-dropdown:has(.mega-menu-section__items) .mega-group--sections .mega-group__list {
        display: contents;
    }

    .header .mega-dropdown:has(.mega-menu-section__items) .mega-group--links { order: 1; }
    .header .mega-dropdown:has(.mega-menu-section__items) .mega-group--sections .mega-menu-section:nth-child(2) { order: 2; }
    .header .mega-dropdown:has(.mega-menu-section__items) .mega-group--sections .mega-menu-section:nth-child(3) { order: 3; }
    .header .mega-dropdown:has(.mega-menu-section__items) .mega-group--sections .mega-menu-section:nth-child(1) { order: 4; }
}

@media (min-width: 65em) and (max-width: 1380px) {
    .header .mega-dropdown__inner {
        min-height: 0;
    }
    .header .mega-menu-sections {
        margin-left: 0;
    }
    .header .mega-preview {
        display: none !important;
    }
}

/* hero */
#hero {
    position: relative;
    width: 100%;
    height: 90vh;
    margin-bottom: 4.5em;
}

.hero-scroll {
    position: absolute;
    bottom: 2.5em;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9;
}

.hero-scroll svg {
    width: 2.5em;
    height: 2.5em;
    stroke: #fff;
    stroke-width: 2;
    fill: none;
}

.hero-image {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    max-height: 100%;
}

.hero-content {
    width: 100%;
    max-width: var(--content-max);
    padding: 0 4.5em;
    box-sizing: border-box;
    position: relative;
    top: 42%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
    gap: 1.25rem;
    color: var(--white);
    z-index: 9;
}

.hero-content > h1 {
    text-align: left;
}

.hero-content > p {
    max-width: 42%;
    line-height: 1.15em;
    text-align: left;
    color: var(--white);
    font-size: 22px;
}

.hero-btns {
    display: flex;
    border-radius: 4px;
}

.hero-btns a { font-weight: 500; }

.hero-btns .contact-cta-btn {
    clip-path: none;
    overflow: hidden;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .2);
    transition: transform .3s ease, box-shadow .3s ease;
}

.hero-btns .contact-cta-btn::before { background: var(--legacy-darkgrey); }

.hero-btns .contact-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .28);
}

.hero-btns .contact-cta-btn:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .22);
}

@media (prefers-reduced-motion: reduce) {
    .hero-btns .contact-cta-btn { transition: none; }
    .hero-btns .contact-cta-btn:hover { transform: none; }
}

.vid-overlay {
    background: linear-gradient(rgba(0,0,0,.4), rgba(0,0,0,.4));
    position: absolute;
    height: 100%;
    width: 100%;
    z-index: 8;
}

.vid-poster {
    position: absolute;
    height: 100%;
    top: 0;
    width: 100%;
    bottom: 0;
    z-index: 7;
    object-fit: cover;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    transition: opacity .6s ease;
}

.vid-poster.is-faded {
    opacity: 0;
    pointer-events: none;
}

#bgvideo {
    min-height: 100%;
    min-width: 100%;
    width: 100vw;
    object-fit: cover;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translateX(calc((100% - 100vw) / 2));
    z-index: 6;
}

.hero-slider {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 6;
}

.hero-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    z-index: 1;
}

.hero-slide.is-active {
    opacity: 1;
    z-index: 2;
}

.hero-slider.is-ready .hero-slide {
    transition: opacity .9s ease, transform 1s ease;
}

.hero-slider[data-anim="slide-left"]  .hero-slide { transform: translateX(60px); }

.hero-slider[data-anim="slide-right"] .hero-slide { transform: translateX(-60px); }

.hero-slider[data-anim="slide-up"]    .hero-slide { transform: translateY(60px); }

.hero-slider[data-anim="slide-left"]  .hero-slide.is-active,
.hero-slider[data-anim="slide-right"] .hero-slide.is-active,
.hero-slider[data-anim="slide-up"]    .hero-slide.is-active { transform: translate(0, 0); }

/* page hero */
.page-hero.text-hero {
    max-width: none;
    margin-left: 0;
    margin-right: 0;

    padding-bottom: 6em;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

.page-hero {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

@media (max-width: 65em) {
    .page-hero { min-height: 45vh; }
}

@media (max-width: 45em) {
    .page-hero { min-height: 30vh; }
}

.page-hero__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.page-hero .text-hero__inner {
    position: relative;
    z-index: 1;
}

.page-hero .text-hero__title { color: var(--white); }

.page-hero .text-hero__lede  { color: rgba(255, 255, 255, .85); }

/* text hero */
.text-hero {
    padding: 15em 4.5em 4em;
    background: var(--white);
    overflow: hidden;
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
}

.text-hero--inline {
    padding: 4em 4.5em 4em;
}

.text-hero__inner {
    text-align: center;
}

.text-hero__title {
    display: inline-block;
    position: relative;
    padding-bottom: 0.4em;
    font-family: roc-grotesk, sans-serif;
    font-size: 88px;
    font-weight: 800;
    color: var(--legacy-darkgrey);
    text-transform: uppercase;
    letter-spacing: -1px;
    line-height: 1.05;
    margin: 0;
}

.text-hero__title::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0.25em;
    right: -0.75em;
    width: clamp(5ch, 30%, 10ch);
    height: 6px;
    background: var(--legacy-red);
}

.text-hero__title.is-wrapped::after {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
}

.text-hero__below {
    max-width: 108ch;
    margin: 1em auto 3em;
}

.text-hero__lede {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.5;
    color: var(--legacy-grey);
    margin: 0;
    text-align: left;
}

@media (max-width: 65em) {
    html { scroll-padding-top: 5em; }
    .text-hero { padding: 15em 4.5em 5em; }
    .text-hero--inline { padding: 3em 4.5em 0; }
    .text-hero__title::after {
        width: 50%;
        height: 4px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }
}

@media (max-width: 45em) {
    .text-hero--inline {
        width: 91%;
        max-width: 100vw;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
    }

    .safety-certifications .text-hero--inline { width: 100%; }
}

/* body content */
.body-content {
    max-width: 1400px;
    margin: 0 auto;
    padding: 6em 4.5em 0em;
    text-align: left;
}

.body-content > :first-child { margin-top: 0; }

.body-content h1 { color: var(--black); }

.body-content h2,
.body-content h3,
.body-content h4,
.body-content h5,
.body-content h6 {
    color: var(--legacy-darkgrey);
    margin-top: 2em;
    margin-bottom: .6em;
}

.body-content h2::before,
.body-content h3::before,
.body-content h4::before,
.body-content h5::before,
.body-content h6::before {
    content: "";
    display: block;
    width: 2.5em;
    height: 4px;
    background: var(--legacy-red);
    margin-bottom: .7em;
}

.body-content .cta-heading::before { display: none; }

.body-content p {
    font-size: 20px;
    line-height: 1.6em;
    margin-bottom: 1em;
    color: var(--legacy-grey);
}

.body-content a { color: var(--legacy-red); font-size: 20px; transition: opacity .2s ease; }

.body-content a:hover { opacity: .75; }

.body-content ul,
.body-content ol {
    margin: 0 0 1.2em;
    padding-left: 1.4em;
    list-style: none;
}

.body-content li {
    position: relative;
    padding-left: 1.2em;
    margin-bottom: .6em;
    line-height: 1.6em;
    font-size: 20px;
    color: var(--legacy-grey);
}

.body-content li:last-child { margin-bottom: 0; }

.body-content ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: .5em;
    height: .5em;
    background: var(--legacy-red);
}

.body-content ol { counter-reset: bl-li; }

.body-content ol li { counter-increment: bl-li; }

.body-content ol li::before {
    content: counter(bl-li) ".";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--legacy-red);
    font-weight: 700;
}

.body-content img { max-width: 100%; height: auto; display: block; margin: 1.5em 0; }

.body-content blockquote { border-left: 4px solid var(--legacy-red); margin: 1.5em 0; padding: .75em 1.5em; }

.body-content blockquote p { font-style: italic; margin-bottom: 0; }

.body-content hr { border: none; border-top: 1px solid var(--light-grey); margin: 2em 0; }

@media (max-width: 65em) {
    .body-content { padding: 3em 4.5em; }
}

.body-content--fullwidth {
    max-width: 1400px;
    margin: 0 auto;
    padding: 2em 4.5em 2em;
}

@media (max-width: 65em) {
    .body-content--fullwidth { max-width: 100vw; padding: 2.5em 0; }
}

@media (max-width: 65em) {
    .body-content--products { padding-top: 4em; }
}

.body-content--fabrication { padding-top: 2em; padding-bottom: 3em; }

.body-content--video-cta { padding: 1.5em 4.5em 4em; }

@media (max-width: 65em) {
    .body-content--video-cta { padding: 1.5em 3em 3em; }
}

.body-content a.cta-btn {
    display: inline-flex;
    align-items: center;
    gap: .55em;
    padding: 15px 30px;
    margin: .75em 0;
    background: var(--legacy-red);
    color: var(--white);
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    z-index: 0;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .14);
    transition: transform .3s ease, box-shadow .3s ease;
}

.body-content a.cta-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--legacy-darkgrey);
    transform: translateX(-101%);
    transition: transform .45s cubic-bezier(.22, 1, .36, 1);
    z-index: -1;
}

.body-content a.cta-btn::after {
    content: '→';
    font-size: 1.15em;
    line-height: 1;
    transition: transform .3s ease;
}

.body-content a.cta-btn:hover {
    opacity: 1;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, .2);
}

.body-content a.cta-btn:hover::before { transform: translateX(0); }

.body-content a.cta-btn:hover::after  { transform: translateX(5px); }

.body-content a.cta-btn:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .16);
}

@media (prefers-reduced-motion: reduce) {
    .body-content a.cta-btn,
    .body-content a.cta-btn::before,
    .body-content a.cta-btn::after { transition: none; }
    .body-content a.cta-btn:hover { transform: none; }
    .body-content a.cta-btn:hover::after { transform: none; }
}

/* overlap section */
.overlap-section {
    position: relative;
    width: 100%;
    min-height: 600px;
    display: flex;
    align-items: center;
    margin: 0 auto 8em auto;
    max-width: var(--content-max);
}

.overlap-section__media {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 5em;
    width: 60%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--light-grey);
    border-radius: 4px;
}

.overlap-section--reverse .overlap-section__media {
    right: auto;
    left: 5em;
}

.overlap-section__map {
    overflow: hidden;
    line-height: normal;
}

.overlap-section__map-canvas {
    width: 100%;
    height: 100%;
}

.overlap-section__content {
    position: relative;
    z-index: 2;
    width: 58%;
    padding: 4rem 5rem;
    background: var(--white);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.overlap-section--reverse .overlap-section__content {
    margin-left: auto;
}

.overlap-section__eyebrow,
.overlap-section__heading,
.overlap-section__body {
    margin: 0;
}

.overlap-section__btn {
    align-self: flex-start;
    margin-top: .5rem;
}

@media (max-width: 65em) {
    .overlap-section {
        min-height: auto;
        display: grid;
        grid-auto-flow: row;
        margin: 3em 0;
        gap: 3em;
    }
    .overlap-section__media,
    .overlap-section--reverse .overlap-section__media {
        position: relative;
        top: auto; right: auto; bottom: auto; left: auto;
        width: 91%;
        margin: 0 auto;
        aspect-ratio: 16/9;
        max-width: 100vw;
        padding: 2em;
    }

    .overlap-section__map,
    .overlap-section--reverse .overlap-section__map { padding: 0; }
    .overlap-section__content,
    .overlap-section--reverse .overlap-section__content {
        width: 91%;
        padding: 0;
        margin: 0 auto;
        max-width: 100vw;
    }
    .overlap-section--reverse .overlap-section__media { order: -1; }
}

@media (min-width: 65.01em) {
    .overlap-section__media { position: absolute; }
}

@media (min-width: 65.01em) {
    .overlap-section--flat {
        gap: 4em;
        padding: 0 5em;
    }
    .overlap-section--flat .overlap-section__media {
        position: static;
        right: auto;
        width: auto;
        flex: 1 1 50%;
        align-self: stretch;
        order: 2;
    }
    .overlap-section--flat .overlap-section__content {
        width: auto;
        flex: 1 1 50%;
        padding: 0;
    }
}

/* image banner / quad / download */
.image-banner {
    position: relative;
    width: 100%;
    min-height: 480px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

.image-banner--parallax { background-attachment: fixed; }

.image-banner__overlay {
    position: absolute;
    inset: 0;
    background: rgba(35, 31, 32, 0.65);
    z-index: 1;
}

.image-banner__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    padding: 5rem 2rem;
    max-width: 65%;
    text-align: center;
}

.image-banner__content h2 {
    color: var(--white);
    font-size: 80px;
    line-height: 1.1em;
}

.image-quad {
    padding: 4.5em 0 8em;
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
}

.image-quad__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10em;
    padding: 0 4.5em;
}

.image-quad__cell {

    width: fit-content;
    margin: 0 auto;
    text-align: left;
}

.image-quad__img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    max-height: 220px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.image-quad__tag {
    margin: 2em 0 0;
    font-family: roc-grotesk, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--legacy-grey);
    overflow-wrap: break-word;
}

.image-quad__text {
    margin: 2em 0 0;
    font-family: roc-grotesk, sans-serif;
    font-size: 16px;
    line-height: 1.4;
    color: var(--legacy-grey);
    overflow-wrap: break-word;
}

.image-quad__tag + .image-quad__text { margin-top: .4em; }

@media (max-width: 95em) {
    .image-quad__grid { gap: 6em; }
}

@media (max-width: 65em) {
    .image-quad { padding: 3em 4.5em; }
    .image-quad__grid {
        grid-template-columns: repeat(2, 1fr);
        width: 100%;
        margin: 0 auto;
        max-width: 100vw;
        gap: 5em;
        padding: 0;
    }
}

@media (max-width: 45em) {
    .image-quad__grid { grid-template-columns: 1fr; gap: 3em; }
}

.image-banner__content p {
    color: var(--white);
    opacity: .9;
}

.download-catalog__btn {
    display: inline-flex;
    align-items: center;
    gap: .6em;
    padding: 15px 40px;
    border-radius: 4px;
    background: var(--legacy-red);
    color: var(--white);
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .2s ease;
}

.download-catalog__btn:hover { background: var(--legacy-darkgrey); }

.download-catalog__icon { display: inline-flex; width: 1.05em; height: 1.05em; }

.download-catalog__icon svg { width: 100%; height: 100%; }

/* gallery + lightbox */
.gallery-page {
    padding: 4em 4.5em;
    background: var(--white);
}

.gallery-page__filters,
.gallery-page__grid,
.gallery-page__more-wrap {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
}

.gallery-page__filters {
    margin: 0 auto 2.5em;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5em;
}

.gallery-page__filter {
    background: transparent;
    border: 1px solid rgba(0, 0, 0, .25);
    color: var(--legacy-darkgrey);
    cursor: pointer;
    font-family: roc-grotesk, sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: .75em 1.5em;
    border-radius: 4px;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.gallery-page__filter:hover {
    color: var(--legacy-red);
    border-color: var(--legacy-red);
}

.gallery-page__filter.is-active {
    background: var(--legacy-darkgrey);
    color: var(--white);
    border-color: var(--legacy-darkgrey);
}

.gallery-page__filter.is-active:hover {
    background: var(--legacy-red);
    border-color: var(--legacy-red);
    color: var(--white);
}

.gallery-page__grid {

    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1em;
    align-items: start;
}

@media (max-width: 75em) { .gallery-page__grid { grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 65em) { .gallery-page__grid { grid-template-columns: repeat(2, 1fr); } }

.gallery-page__item.is-hidden,
.gallery-page__item.is-off {
    display: none;
}

.gallery-page__grid.is-expanded .gallery-page__item.is-hidden {
    display: block;
}

.gallery-page__grid.is-expanded .gallery-page__item.is-hidden.is-off {
    display: none;
}

.gallery-page__more-wrap {
    text-align: center;
    margin: 2em auto 0;
}

.gallery-page__more-wrap.is-hidden {
    display: none;
}

.gallery-page__more {
    display: inline-block;
    padding: 15px 40px;
    border: none;
    border-radius: 4px;
    background: var(--legacy-red);
    color: var(--white);
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .2s ease;
}

.gallery-page__more:hover,
.gallery-page__more:focus-visible {
    background: var(--legacy-darkgrey);
    color: var(--white);
    outline: none;
}

.gallery-page__item {
    display: block;
    overflow: hidden;
    background: var(--light-grey);
    line-height: 0;
    cursor: zoom-in;
    border-radius: 4px;

}

.gallery-page__img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .35s ease, opacity .25s ease;
}

.gallery-page__item:hover .gallery-page__img {
    transform: scale(1.04);
    opacity: .92;
}

@media (max-width: 65em) {
    .gallery-page { padding: 2em 4.5em; }
    .gallery-page__grid { gap: .5em; }
}

.lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, .94);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4em;
}

.lightbox[hidden] { display: none; }

.lightbox__stage {
    max-width: 100%;
    max-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lightbox__img {
    max-width: 84vw;
    max-height: 84vh;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    box-shadow: 0 20px 80px rgba(0, 0, 0, .6);
}

.lightbox__close,
.lightbox__nav {
    position: absolute;
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: .5em;
    transition: transform .2s ease;
    z-index: 1;
    line-height: 0;
}

.lightbox__close svg,
.lightbox__nav svg {
    width: 2.5em;
    height: 2.5em;
    stroke: #fff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    transition: stroke .2s ease;
}

.lightbox__close { top: 3%; right: 3%; }

.lightbox__nav { top: 50%; transform: translateY(-50%); }

.lightbox__prev { left: 3%; }

.lightbox__next { right: 3%; }

.lightbox__close:hover svg,
.lightbox__nav:hover svg { stroke: var(--legacy-red); }

.lightbox__prev:hover { transform: translateY(-50%) translateX(-3px); }

.lightbox__next:hover { transform: translateY(-50%) translateX(3px); }

.lightbox__counter {
    position: absolute;
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
    color: var(--white);
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    opacity: .8;
}

body.lightbox-open { overflow: hidden; }

@media (max-width: 45em) {
    .lightbox { padding: 1em; }
    .lightbox__img { max-height: calc(100vh - 4em); }
    .lightbox__close svg,
    .lightbox__nav svg { width: 2em; height: 2em; }
}

/* products gallery */
.products-gallery {
    padding: 6em 4.5em;
    background: var(--light-grey);
}

.products-gallery__inner {
    max-width: var(--content-max);
    margin: 0 auto;
}

.products-gallery__heading {
    text-align: center;
    color: var(--black);
    margin-bottom: 1.2em;
}

.products-gallery__heading::after {
    content: "";
    display: block;
    width: 3em;
    height: 4px;
    background: var(--legacy-red);
    margin: .6em auto 0;
}

.products-gallery__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25em;
}

.products-gallery__grid .products-gallery__item:nth-child(n+9) { display: none; }

.products-gallery__toggle:checked ~ .products-gallery__grid .products-gallery__item:nth-child(n+9) { display: block; }

.products-gallery__toggle:checked ~ .products-gallery__more { display: none; }

.products-gallery__more {
    text-align: center;
    margin-top: 2.5em;
}

.products-gallery__more-btn {
    display: inline-block;
    cursor: pointer;
    padding: 15px 40px;
    border: none;
    border-radius: 4px;
    background: var(--legacy-red);
    color: var(--white);
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .2s ease;
}

.products-gallery__more-btn:hover,
.products-gallery__more-btn:focus-visible {
    background: var(--legacy-darkgrey);
    outline: none;
}

.products-gallery__item {
    flex: 0 1 calc(25% - 0.938em);
    max-width: calc(25% - 0.938em);
    aspect-ratio: 4 / 3;
}

@media (max-width: 75em) {
    .products-gallery__item { flex-basis: calc(33.333% - 0.834em); max-width: calc(33.333% - 0.834em); }
}

@media (max-width: 65em) {
    .products-gallery { padding: 3em 4.5em; }
    .products-gallery__inner { width: 100%; max-width: 100vw; margin: 0 auto; }
    .products-gallery__grid { gap: .75em; }
    .products-gallery__item { flex-basis: calc(50% - 0.375em); max-width: calc(50% - 0.375em); }
}

/* vendors */
.vendors {
    padding: 6em 4.5em;
}

.vendors__inner {
    max-width: var(--content-max);
    margin: 0 auto;
}

.vendors__heading {
    text-align: center;
    margin: 0 0 1em;
}

.vendors__heading::after {
    content: "";
    display: block;
    width: 3em;
    height: 4px;
    background: var(--legacy-red);
    margin: .25em auto 0;
}

.vendors__heading a {
    color: inherit;
    text-decoration: none;
    font-weight: inherit;
}

.vendors__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2.5em 2em;
}

.vendors__item {
    flex: 0 1 calc(25% - 1.5em);
    max-width: calc(25% - 1.5em);
}

.vendors__link {
    display: grid;
    place-items: center;
    padding: 1em;
    min-height: 8em;
}

.vendors__img {
    max-width: 100%;
    max-height: 7em;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: .65;
    transition: filter .25s ease, opacity .25s ease;
}

.vendors__link:hover .vendors__img,
.vendors__link:focus-visible .vendors__img {
    filter: grayscale(0);
    opacity: 1;
}

@media (max-width: 75em) {
    .vendors__item { flex-basis: calc(33.333% - 1.334em); max-width: calc(33.333% - 1.334em); }
}

@media (max-width: 65em) {
    .vendors { padding: 3em 4.5em; }
    .vendors__grid { gap: 2em 1.5em; }
    .vendors__item { flex-basis: calc(50% - 0.75em); max-width: calc(50% - 0.75em); }
}

.vendors-archive {
    width: 100%;
    box-sizing: border-box;
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 5em 4.5em 10em;
    background: var(--white);
}

.vendors-archive__group { margin-bottom: 10em; }

.vendors-archive__group:last-child { margin-bottom: 0; }


@media (max-width: 65em) {
    .vendors-archive { padding: 1em 4.5em 4em; }
    .vendors-archive__group { margin-bottom: 2em; }
}

/* facilities + fleet */
.ff-fleet {
    width: 100%;
    box-sizing: border-box;
    padding: 2em 4.5em 3em;
    background: var(--white);
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
}

.ff-fleet__image {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    aspect-ratio: 21 / 9;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--light-grey);
    border-radius: 4px;
}

.ff-fleet__body {
    box-sizing: border-box;
    max-width: 1200px;
    margin: 0 auto 6em;
    padding: 0 4.5em;
    text-align: center;
}

.ff-fleet__heading {
    font-family: roc-grotesk, sans-serif;
    font-size: 56px;
    font-weight: 800;
    color: var(--legacy-darkgrey);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    line-height: 1.1;
    margin: 0;
}

.ff-fleet__text {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.6;
    color: var(--legacy-grey);
    margin: 1em 0 0;
    text-align: left;
}

@media (max-width: 65em) {
    .ff-fleet { padding: 2.5em 0; }
    .ff-fleet__image {
        width: 91vw;
        max-width: 100vw;
        margin: 0 auto;
        aspect-ratio: 16 / 9;
    }
    .ff-fleet__body {
        width: 91%;
        margin: 0 auto 2em;
        padding: 0;
        max-width: 100vw;
    }
}

/* industries */
.industries-grid {
    width: 100%;
    box-sizing: border-box;
    padding: 3em 4.5em 6em;
    background: var(--white);
}

.industries-grid__inner {
    max-width: var(--content-max);
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 3em;
    interpolate-size: allow-keywords;
}

.industries-grid__col {
    flex: 1 1 0;
    min-width: 0;
}

.industries-grid__item {
    border-bottom: 3px solid var(--legacy-red);
    margin-bottom: 1em;
}

.industries-grid__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1em;
    cursor: pointer;
    list-style: none;
    font-family: roc-grotesk, sans-serif;
    font-weight: 800;
    font-size: 28px;
    line-height: 1.15;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--legacy-darkgrey);
    margin: 0;
    padding: 0.7em 0;
    transition: color .2s ease;
}

.industries-grid__title::-webkit-details-marker { display: none; }

.industries-grid__title:hover { color: var(--legacy-red); }

.industries-grid__icon {
    position: relative;
    flex: 0 0 auto;
    width: 0.85em;
    height: 0.85em;
}

.industries-grid__icon::before,
.industries-grid__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 3px;
    background: var(--legacy-red);
    transform: translate(-50%, -50%);
    transition: transform .25s ease, opacity .25s ease;
}

.industries-grid__icon::after { transform: translate(-50%, -50%) rotate(90deg); }

.industries-grid__item[open] .industries-grid__icon::after { transform: translate(-50%, -50%) rotate(0); opacity: 0; }

.industries-grid__panel {
    overflow: hidden;
    padding: 0 0 1.4em;
}

.industries-grid__item::details-content {
    height: 0;
    overflow: hidden;
    transition: height .3s ease, content-visibility .3s allow-discrete;
}

.industries-grid__item[open]::details-content {
    height: auto;
}

.industries-grid__desc {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.6;
    color: var(--legacy-grey);
    margin: 0;
    max-width: 70ch;
}

.industries-grid__link {
    display: inline-block;
    margin-top: 1.1em;
    font-family: roc-grotesk, sans-serif;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--legacy-red);
    transition: opacity .2s ease;
}

.industries-grid__link:hover { opacity: .7; }

@media (max-width: 65em) {
    .industries-grid { padding: 0 4.5em 3em; }
    .industries-grid__inner { gap: 2em; }
    .industries-grid__title { font-size: 24px; }
    .industries-grid__desc { font-size: 18px; }
}

@media (max-width: 45em) {
    .industries-grid__inner { flex-wrap: wrap; gap: 0; }
    .industries-grid__col { flex-basis: 100%; }
}

/* mega index */
.mega-index {
    padding: 5em 4.5em 10em;
    background: var(--white);
    max-width: var(--content-max);
    margin: 0 auto;
}

.mega-index__inner {
    margin: 0 auto;
}

.mega-index__section + .mega-index__section {
    margin-top: 5em;
}

.mega-index__section-title {
    font-family: roc-grotesk, sans-serif;
    font-weight: 800;
    color: var(--legacy-darkgrey);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    line-height: 1.15;
    margin: 0 0 1em;
    padding: 0 0 .35em;
    border-bottom: 3px solid var(--legacy-red);
}

.mega-index__section-title a {
    color: inherit;
    text-decoration: none;

    font-weight: inherit;
}

.mega-index__pages {
    list-style: none;
    margin: 0;
    padding: 0;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 3em;
}

.mega-index__page {
    border-bottom: 1px solid rgba(0, 0, 0, .12);
}

.mega-index__page a {
    display: block;
    padding: .9em 1em .9em 0;
    color: var(--legacy-darkgrey);
    text-decoration: none;
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1.3;

    transition: color .2s ease, transform .2s ease;
    position: relative;
}

.mega-index__page a::after {
    content: '→';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%) translateX(.5em);
    color: var(--legacy-red);
    opacity: 0;
    transition: opacity .2s ease, transform .2s ease;
}

.mega-index__page a:hover {
    color: var(--legacy-red);
    transform: translateX(.5em);
}

.mega-index__page a:hover::after {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
}

@media (max-width: 75em) {
    .mega-index__pages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 45em) {
    .mega-index__pages { grid-template-columns: 1fr; }
}

@media (max-width: 65em) {
    .mega-index { padding: 1em 4.5em 4em; }
    .mega-index__section + .mega-index__section { margin-top: 3em; }
    .mega-index__section-title { margin-bottom: .75em; }
}

/* certifications */
.safety-certifications {
    width: 100%;
    box-sizing: border-box;
    padding: 3em 4.5em 6em;
    background: var(--white);
}

.safety-certifications__inner {
    max-width: var(--content-max);
    margin: 0 auto;
}

.safety-certifications .text-hero--inline {
    padding-left: 0;
    padding-right: 0;
}

.safety-certifications__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2em;
}

.safety-certifications__item {

    flex: 0 0 calc(25% - 2em);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
    background: var(--light-grey);
    padding: 2em 1.5em;
    border-radius: 4px;
    transition: transform .2s ease, box-shadow .2s ease;
}

.safety-certifications__item:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
}

.safety-certifications__logo-wrap {
    width: 100%;
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
}

.safety-certifications__logo {
    max-width: 90%;
    max-height: 69%;
    object-fit: contain;
    display: block;
}

.safety-certifications__label {
    margin: 0;
    font-family: roc-grotesk, sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.3;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--legacy-darkgrey);
    text-align: center;
}

.safety-certifications__desc {
    margin: 0;
    font-family: roc-grotesk, sans-serif;
    font-size: 14px;
    line-height: 1.55;
    color: var(--legacy-grey);
    text-align: center;
}

@media (max-width: 80em) {

    .safety-certifications__item { flex-basis: calc(50% - 1.5em); min-width: 0; }
}

@media (max-width: 65em) {
    .safety-certifications { padding: 0 4.5em 3em; }
    .safety-certifications__inner { width: 100%; margin: 0 auto; max-width: 100vw; }
    .safety-certifications__grid { gap: 1.5em; }

    .safety-certifications__item { padding: 2em 1.5em; }
}

@media (max-width: 45em) {
    .safety-certifications__item { flex-basis: 100%; }
}

/* maps hero */
.bl-maps-hero {
    width: 100%;
    height: 60vh;
    min-height: 420px;
    max-height: 720px;
    background: var(--light-grey);
    line-height: 0;
}

.bl-maps-hero .bl-maps-hero__map {
    width: 100%;
    height: 100%;
}

.bl-maps-hero--split {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.bl-maps-hero__iw {
    font-family: roc-grotesk, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: var(--legacy-darkgrey);
    padding: 16px 36px 6px 0;
}

.bl-maps-hero__iw-title {
    display: block;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--legacy-darkgrey);
    margin-bottom: 0.4em;
}

.bl-maps-hero .gm-style-iw-chr {
    position: absolute;
    top: 0;
    right: -8px;
    height: auto;
    min-height: 0;
    z-index: 1;
}

.bl-maps-hero .gm-style-iw-ch { display: none; }

@media (max-width: 65em) {
    .bl-maps-hero {
        height: 50vh;
        min-height: 320px;
    }

    .bl-maps-hero--split {
        grid-template-columns: 1fr;
        grid-auto-rows: 50vh;
        height: auto;
        max-height: none;
    }
}

/* text video */
.text-video {
    width: 100%;
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 3em 4.5em 6em;
}

.text-video .poster {
    position: relative;
    cursor: pointer;
    aspect-ratio: 16 / 9;
}

.text-video .video-poster {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-color: var(--legacy-darkgrey);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
}

.text-video .play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8%;
    max-width: 96px;
    transform: translate(-50%, -50%);
    opacity: .9;
    transition: opacity .3s ease, transform .3s ease;
    pointer-events: none;
}

.text-video .poster:hover .play-btn,
.text-video .poster:focus-visible .play-btn {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.06);
}

.text-video__player { position: absolute; inset: 0; display: none; }

.text-video .poster.is-playing { cursor: default; }

.text-video .poster.is-playing .video-poster,
.text-video .poster.is-playing .play-btn { display: none; }

.text-video .poster.is-playing .text-video__player { display: block; }

.text-video__player video,
.text-video__player iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 4px;
    background: #000;
}

@media (max-width: 65em) {
    .text-video {
        padding: 2em 4.5em 3em;
    }
    .text-video .play-btn { width: 14%; }
}

/* contact */
.bl-contact {
    width: 100%;
    padding: 6em 0;
    max-width: var(--content-max);
    margin: 0 auto;
}

.bl-contact__inner {
    width: 100%;
    padding: 2em 4.5em;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4em;
}

.bl-contact__info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-family: roc-grotesk, sans-serif;
    color: var(--legacy-grey);
}

.bl-contact__eyebrow {
    margin: 0;
    padding: 0 0 0.25em;
    font-family: roc-grotesk, sans-serif;
    font-weight: 700;
    font-size: 24px;
    line-height: 24px;
    letter-spacing: 2px;
    color: var(--legacy-red);
    text-transform: uppercase;
}

.bl-contact__heading {
    margin: 0;
    padding: 0 0 2rem;
    font-family: roc-grotesk, sans-serif;
    font-weight: 800;
    font-size: clamp(38px, 4vw, 88px);
    line-height: 1.05;
    letter-spacing: 1px;
    color: var(--black);
    text-transform: uppercase;
}

.bl-contact__label {
    margin: 0;
    padding: 0 0 0.5em;
    font-family: roc-grotesk, sans-serif;
    font-weight: 700;
    font-size: 22px;
    line-height: 22px;
    letter-spacing: 2px;
    color: var(--legacy-red);
    text-transform: uppercase;
}

.bl-contact__label:not(:first-of-type) { padding-top: 0.5em; }

.bl-contact__value {
    margin: 0;
    padding: 0 0 1em;
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.5;
    color: var(--legacy-grey);
}

.bl-contact__value a {
    color: var(--legacy-grey);
    text-decoration: none;
    font-weight: 400;
    font-size: 20px;
    line-height: 1.5;
    transition: color .2s ease;
}

.bl-contact__value a:hover { color: var(--legacy-red); }

.bl-contact__blocks {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5em 3em;
}

@media (max-width: 65em) {
    .bl-contact__blocks { grid-template-columns: repeat(2, 1fr); }

    .bl-contact__block:nth-child(even) { text-align: right; }
}

@media (max-width: 35em) {
    .bl-contact__blocks { grid-template-columns: 1fr; }
    .bl-contact__block:nth-child(even) { text-align: left; }
}

.bl-contact__form { width: 100%; display: flex; flex-direction: column; }

.bl-contact__form-el {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.bl-contact__form-el input,
.bl-contact__form-el textarea {
    width: 100%;
    box-sizing: border-box;
    margin-top: 0.6em;
    padding: 15px 25px;
    border: 2px solid var(--legacy-grey);
    border-radius: 4px;
    background: var(--white);
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.4;
    color: var(--legacy-darkgrey);
}

.bl-contact__form-el > input:first-of-type { margin-top: 0; }

.bl-contact__form-el textarea {
    resize: vertical;
    min-height: 10em;
    flex: 1;
}

.bl-contact__form-el input::placeholder,
.bl-contact__form-el textarea::placeholder {
    color: var(--legacy-grey);
    opacity: 1;
}

.bl-contact__form-el input:focus,
.bl-contact__form-el textarea:focus {
    outline: none;
    border-color: var(--legacy-darkgrey);
}

.bl-contact__form-el input[type="submit"] {
    width: auto;
    min-width: auto;
    display: block;
    margin: 0.75em auto 0;
    padding: 15px 40px;
    border: none;
    border-radius: 4px;
    background: var(--legacy-red);
    color: var(--white);
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .2s ease;
}

.bl-contact__form-el input[type="submit"]:hover { background: var(--legacy-darkgrey); }

.bl-contact__error {
    display: block;
    margin-top: 0.4em;
    font-size: 14px;
    color: var(--legacy-red);
}

.bl-contact__success {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.5;
    color: var(--legacy-darkgrey);
    background: var(--white);
    border: 2px solid var(--legacy-grey);
    border-radius: 4px;
    padding: 1.5em;
    margin: 0;
}

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

@media (max-width: 65em) {
    .bl-contact { padding: 3em 4.5em; }
    .bl-contact__inner {
        width: 100%;
        margin: 0 auto;
        max-width: 100vw;
        padding: 0;
        grid-template-columns: 1fr;
        gap: 1em;
    }
    .bl-contact__heading { font-size: 64px; margin-bottom: .5em; padding-left: 0; padding-right: 0; text-align: left; }
}

/* post grid */
.post-grid {
    padding: 5em 4.5em;
    max-width: var(--content-max);
    margin: 0 auto;
}

.post-grid__inner {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5em;
}

.post-card {
    display: flex;
    flex-direction: column;
    background: var(--white);
    border: 1px solid #e8e8e8;
    border-radius: 4px;
    overflow: hidden;
}

.post-card__image-link {
    display: block;
}

.post-card__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--light-grey);
}

.post-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5em;
    gap: .75em;
}

.post-card__body h3 {
    line-height: 1.25em;
    letter-spacing: .5px;
    color: var(--legacy-darkgrey);
    text-transform: uppercase;
}

.post-card__body h3 a {
    color: inherit;
    font-size: inherit;
    transition: color .2s ease;
}

.post-card__body h3 a:hover {
    color: var(--legacy-red);
}

.post-card__body p {
    font-size: 20px;
    line-height: 1.6em;
    color: var(--legacy-grey);
    flex: 1;
}

.post-card__link {
    display: inline-block;
    font-family: roc-grotesk, sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--legacy-red);
    transition: opacity .2s ease;
    margin-top: auto;
}

.post-card__link:hover {
    opacity: .7;
}

/* footer */
footer {
    padding: 8em 0;
    overflow: hidden;
    background-color: var(--legacy-darkgrey);
}

.footer-inner {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 4.5em;
}

@media (max-width: 65em) {
    footer { padding: 60px 0; }
    .footer-inner { padding: 0 4.5em; }
}

.footer-logo {
    padding-bottom: 3em;
}

.footer-logo img {
    display: block;
    max-width: min(18.4em, 70vw);
    height: auto;
}

.footer-content {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2em;
    align-items: start;
}

footer p { color: var(--white); margin: 0; }

.footer-credit {
    margin: 5em 0 -5em;
    text-align: center;
    font-family: roc-grotesk, sans-serif;
    font-size: 12px;
    letter-spacing: .04em;
    color: rgba(255, 255, 255, .18);
}

.footer-credit a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    transition: color .2s ease, border-color .2s ease;
}

.footer-credit a:hover { color: rgba(255, 255, 255, .6); }

footer h5 { margin: 0 0 1em; }

footer h5 + p { padding-bottom: 1em; }

footer ul { padding-left: 0; list-style: none; margin: 0; }

footer a { color: var(--white); text-decoration: none; transition: color .2s ease; }

footer a:hover { color: var(--legacy-red); }

footer .info { color: var(--white); }

footer .info p {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.6;
}

footer .info-addresses {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5em 2em;
}

footer .info-addresses .info-block {
    margin: 0;
    flex: 1 1 14em;
    max-width: 24em;
    min-width: 0;
}

footer .info-phones { margin-top: 1.75em; }

footer .info-phones__list {
    display: flex;
    flex-wrap: wrap;
    gap: .25em 2.5em;
}

footer .info-phones__list p { padding-bottom: 0; }

footer .info-title {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--legacy-red);
    margin: 0 0 .1em;
}

.nav-lists,
.footer-family { text-align: right; }

.footer-family { order: 1; }

.nav-lists    { order: 2; }

.nav-lists h5 { margin-bottom: 1.25em; }

.nav-lists .footer-menu {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.nav-lists .footer-menu li {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.4;
}

.footer-content.has-family { grid-template-columns: 1fr auto auto; }

.footer-family h5 { margin-bottom: 1.25em; }

.footer-family .footer-menu {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.footer-family .footer-menu li {
    font-family: roc-grotesk, sans-serif;
    font-size: 20px;
    line-height: 1.4;
}

/* 404 */
.error-404 {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background-color: var(--legacy-darkgrey);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.error-404__overlay {
    position: absolute;
    inset: 0;
    background: rgba(35, 31, 32, 0.65);
    z-index: 0;
}

.error-404__content {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 4em 2em;
}

.error-404__content h1 {
    font-size: 144px;
    line-height: 1;
    color: var(--white);
    margin-bottom: 0.1em;
}

.error-404__content p {
    max-width: 480px;
    margin: 0 auto 2em;
    color: var(--white);
    opacity: .9;
}

@media (min-width: 65em) {
    .header {
        display: flex !important;
        align-items: center;
        margin-left: auto;
        opacity: 1;
    }
}

/* responsive overrides */
@media (max-width: 95em) {
    .nav-container .logo   { display: none !important; }
    .inverted-logo          { display: none !important; }
    .icon                   { display: block; z-index: 99999; }
    #hero          { height: 75vh; margin-bottom: 6em; }

    .bl-contact    { padding-top: 6em; padding-bottom: 6em; }
    .hero-content  { top: 40%; }
}

@media (max-width: 65em) {

    h1 { font-size: 65px; line-height: 1.05; text-align: left; }
    h2 { font-size: 56px; line-height: 1.1; text-align: left; }
    .overlap-section--flat .overlap-section__heading { text-align: center; }
    h3, h4, h5 { font-size: 22px; line-height: 1.2; }
    p { font-size: 20px; }
    li { font-size: 20px; line-height: 1.4em; }

    .body-content,
    .ff-fleet__body,
    .safety-certifications__label,
    .safety-certifications__desc,
    .error-404__content,
    .footer-content {
        text-align: left;
    }
    .text-hero h1,
    .text-hero h2,
    .text-hero__title,
    .image-banner__content,
    .image-banner__content h1,
    .image-banner__content h2 {
        text-align: center;
    }
    .text-hero__title { font-size: 72px; }
    .text-hero__lede { font-size: 20px; }
    .ff-fleet__heading { font-size: 56px; }
    .ff-fleet__text { font-size: 20px; }
    .mega-index__page a { font-size: 20px; }
    .body-content li { font-size: 18px; }
    .body-content p,
    .body-content a { font-size: 18px; }
    .post-card__body p { font-size: 20px; }
    .error-404__content h1 { font-size: 96px; }
    .contact-cta-btn,
    .solid-btn { font-size: 18px; }

    #scroll-header {
        z-index: 1000;
        transition: background-color .35s ease, min-height .4s ease;
    }
    body.nav-open #scroll-header {
        min-height: 100dvh;
        background-color: var(--white) !important;
        background-image: none !important;
    }

    .header {
        display: block !important;
        position: fixed;
        inset: 0;
        z-index: 1000;
        background: transparent;
        opacity: 0;
        pointer-events: none;
        overflow-y: auto;
        transition: opacity .2s ease;
    }
    body.nav-open .header {
        opacity: 1;
        pointer-events: auto;
        transition: opacity .2s ease .25s;
    }

    #bgvideo { height: 100%; }

    .nav-container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 0;
        padding: 1.25em 4.5em;
        z-index: 2000;
    }
    .logo img { max-width: 12em; }
    .mobile-nav-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        border: 0;
        width: 2.25rem;
        height: 2.25rem;
        flex-shrink: 0;
        z-index: 9999;
        cursor: pointer;
        padding: 0;
    }
    .mobile-nav-toggle svg { width: 100%; height: 100%; }

    body.nav-open .nav-container::after {
        content: '';
        position: absolute;
        inset: 0;
        background: var(--white);
        z-index: 1001;
        pointer-events: none;
    }
    body.nav-open .logo {
        position: relative;
        z-index: 1002;
    }
    body.nav-open .mobile-nav-toggle {
        color: black;
        filter: none;
    }

    .header .mega-dropdown,
    .header .has-mega-menu:hover > .mega-dropdown,
    .header .has-mega-menu:focus-within > .mega-dropdown {
        position: static !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        width: auto !important;
        max-width: none !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        transition: none !important;
    }
    .header .mega-dropdown::before { display: none !important; }
    .header .mega-dropdown__inner {
        position: static !important;
        max-width: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .header .mega-menu-sections,
    .header .mega-menu-section__items {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        gap: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        list-style: none !important;
        border: none !important;
        column-count: 1 !important;
        column-gap: 0 !important;
        direction: ltr !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    .header .mega-preview { display: none !important; }

    .header ul {
        display: block;
        margin: 0;
        padding: 6.5em 4.5em 4em;
        list-style: none;
        text-align: right;
    }
    .header > div > ul,
    .header > ul {
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        justify-content: safe center;
    }

    .header ul,
    .header li { width: 100%; box-sizing: border-box; }

    .header li { display: block; padding: 0; margin: 0; }
    .header li a,
    .header .mega-menu-section__title {
        display: block !important;
        position: relative;
        width: 100%;
        box-sizing: border-box;
        padding: .85em 0;
        margin: 0;
        color: var(--black) !important;
        background: none !important;
        border: none !important;
        font-family: roc-grotesk, sans-serif;
        font-size: 22px !important;
        font-weight: 600 !important;
        letter-spacing: 0 !important;
        line-height: 1.25 !important;
        text-align: right !important;
        text-transform: none !important;
        text-decoration: none !important;
        transition: color .2s ease !important;
        cursor: pointer;
    }
    .header li a:hover,
    .header .mega-menu-section__title:hover {
        color: var(--legacy-red) !important;
        background: none !important;
    }

    .header > div > ul > li + li,
    .header > ul > li + li {
        border-top: 1px solid rgba(0, 0, 0, .1);
    }

    body.nav-open .header > div > ul > li,
    body.nav-open .header > ul > li {
        animation: bl-mobile-nav-row .35s ease both;
    }
    body.nav-open .header > div > ul > li:nth-child(1),
    body.nav-open .header > ul > li:nth-child(1) { animation-delay: .25s; }
    body.nav-open .header > div > ul > li:nth-child(2),
    body.nav-open .header > ul > li:nth-child(2) { animation-delay: .3s; }
    body.nav-open .header > div > ul > li:nth-child(3),
    body.nav-open .header > ul > li:nth-child(3) { animation-delay: .35s; }
    body.nav-open .header > div > ul > li:nth-child(4),
    body.nav-open .header > ul > li:nth-child(4) { animation-delay: .4s; }
    body.nav-open .header > div > ul > li:nth-child(5),
    body.nav-open .header > ul > li:nth-child(5) { animation-delay: .45s; }
    body.nav-open .header > div > ul > li:nth-child(6),
    body.nav-open .header > ul > li:nth-child(6) { animation-delay: .5s; }
    body.nav-open .header > div > ul > li:nth-child(n+7),
    body.nav-open .header > ul > li:nth-child(n+7) { animation-delay: .55s; }

    @keyframes bl-mobile-nav-row {
        from { opacity: 0; transform: translateY(8px); }
        to   { opacity: 1; transform: translateY(0); }
    }

    .header .mega-dropdown { display: none !important; }
    .header .has-mega-menu > a::after,
    .header .mega-menu-section__title::after { display: none !important; }
    #hero {
        height: 65vh;
        display: flex;
        padding-top: 3em;
        margin-bottom: 0;
    }
    .hero-content { top: auto; gap: 2.5em; padding: 0 4.5em; }
    .hero-content > p { max-width: 85%; }

    .image-banner--parallax { background-attachment: scroll; }
    .image-banner__content { max-width: 90%; padding: 0; }

    .post-grid { padding: 4em 1.5em; }
    .post-grid__inner { gap: 2em; }

    .footer-content,
    .footer-content.has-family {
        grid-template-columns: 1fr;
        gap: 2.5em;
    }
    .nav-lists,
    .footer-family { text-align: left; order: 0; }
    .nav-lists .footer-menu,
    .footer-family .footer-menu {
        gap: 0.75em;
    }
}

@media (max-width: 75em) {
    .post-grid__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 45em) {
    .post-grid { padding: 3em 1.5em; }
    .post-grid__inner { grid-template-columns: minmax(0, 1fr); }

    .header ul       { max-width: 91%; margin: 0 auto; padding-left: 0; padding-right: 0; }
    .nav-container   { max-width: 91%; margin: 0 auto; padding: 1.25em 0; }
    .bl-contact      { max-width: 91%; padding: 3em 0; }
    .bl-contact__form-el input[type="submit"] { margin: 0.75em 0 0; }
    .footer-inner    { max-width: 91%; margin: 0 auto; padding: 0; }

    p { line-height: 1.4em; font-size: 18px; }
    a { font-size: 18px; }
    .header li a,
    .header .mega-menu-section__title { font-size: 20px !important; }
    li { font-size: 20px; line-height: 1.4em; }
    h2 {
        font-size: 40px !important;
        line-height: 1.1;
    }
    h1 {
        font-size: 52px;
        line-height: 1.1;
        letter-spacing: 2px;
    }
    h3, h4, h5 { font-size: 19px; }
    .hero-content h1 {
        font-size: 37px;
        line-height: 1.1;
    }
    .text-hero__title { font-size: 52px; }
    .text-hero__lede { font-size: 18px; }
    .ff-fleet__heading { font-size: 40px; }
    .ff-fleet__text { font-size: 18px; }
    .bl-contact__heading { font-size: 52px; }
    .error-404__content h1 { font-size: 72px; }
    .hero-content { gap: 1em; max-width: 91%; width: 100%; padding: 0; }
    .hero-content p { width: 95%; }

    .image-banner__content { max-width: 91%; }

    .body-content,
    .ff-fleet__body,
    .overlap-section__content,
    .overlap-section--reverse .overlap-section__content,
    .industries-grid__inner,
    .mega-index__inner {
        width: 91%;
        max-width: 100vw;
        margin-left: auto;
        margin-right: auto;
    }
    .body-content     { padding: 3em 0 0; }
    .industries-grid  { padding-left: 0; padding-right: 0; }
    .mega-index       { padding-left: 0; padding-right: 0; }

    .safety-certifications,
    .image-quad,
    .text-video,
    .vendors,
    .vendors-archive,
    .gallery-page {
        width: 91%;
        max-width: 100vw;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
    }

    .products-gallery { padding-left: 0; padding-right: 0; }
    .products-gallery__inner { width: 91%; max-width: 100vw; margin: 0 auto; }
}

@media (min-width: 45em) and (max-width: 65em) {

    .body-content {
        padding-left: 4.5em;
        padding-right: 4.5em;
    }

    .bl-contact { text-align: left; }
    .bl-contact__inner { padding-left: 0; padding-right: 0; }
    .bl-contact__heading,
    .bl-contact__info,
    .bl-contact__form { text-align: left; }
    .bl-contact__form-el input[type="submit"] { margin: 0.75em 0 0; }

    .overlap-section {
        padding-left: 4.5em;
        padding-right: 4.5em;
    }
    .overlap-section__media,
    .overlap-section--reverse .overlap-section__media,
    .overlap-section__content,
    .overlap-section--reverse .overlap-section__content {
        width: auto;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }
    .ff-fleet {
        padding-left: 4.5em;
        padding-right: 4.5em;
    }
    .ff-fleet__image,
    .ff-fleet__body {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }
}

@media (max-width: 35em) {
    #hero { height: 75vh; }
    .overlap-section { margin: 4em 0 0; }
    .image-banner { min-height: 13em !important; }
    .hero-scroll { bottom: 1em; }
    .hero-content > p { font-size: 18px; }
    .overlap-section__content { gap: 2rem; }
    .contact-cta-btn { padding: 12px 16px; }
    .bl-contact__eyebrow { font-size: 18px; }
    .bl-contact__label { font-size: 20px; }
    .bl-contact__value { font-size: 18px; }
    .bl-contact__value a { font-size: 18px; }
    footer .info p { font-size: 18px; }
    .footer-credit { margin: 5em 0 -1em; font-size: 14px; }
    .footer-credit > a:nth-child(1) { font-size: 14px; }
    .bl-contact__form-el input,
    .bl-contact__form-el textarea { padding: 11px 15px; font-size: 18px; }
    .ff-fleet__text { line-height: 1.4; }
    .industries-grid__desc { font-size: 18px; line-height: 1.4; }
    .text-hero__lede { line-height: 1.4; }
    .body-content p { line-height: 1.4; }
    .body-content h2,
    .body-content h3,
    .body-content h4,
    .body-content h5,
    .body-content h6 { margin-top: 3em; }
    .download-catalog__btn { padding: 12px 25px; font-size: 18px; align-self: center; }
    .body-content a.cta-btn { padding: 12px 25px; }
    .vendors__link { padding: 0 1em; }
    .text-hero__title { font-size: 40px; max-width: 100%; overflow-wrap: break-word; }
    .body-content li { line-height: 1.4; }
    .page-hero.text-hero { padding-bottom: 7em; }
    .overlap-section__eyebrow,
    .overlap-section__heading,
    .overlap-section__body { text-align: center; }
}

@media (max-height: 50em) {
    .hero-content p { display: none; }
}

@media (max-height: 40em) {
    .hero-content     { display: none; }
    .header ul        { gap: 1em !important; }
}
