/* Staging draft 9677: supplied KejaMove services hero presentation. */

body.km-homepage-draft-preview .container-wrap,
body.km-homepage-draft-preview .main-content,
body.km-homepage-draft-preview .main-content > .row {
    padding-top: 0 !important;
}

/* Salient paints .container-wrap solid white; that sits directly between
   body and this component and was hiding the body-level gradient below.
   #header-space is the fixed-header spacer that reserves layout height in
   normal flow and carries its own opaque background too. */
body.km-homepage-draft-preview .container-wrap,
body.km-homepage-draft-preview #header-space {
    background: transparent !important;
}

body.km-homepage-draft-preview .km-homepage-hero-preview,
body.km-homepage-draft-preview .km-homepage-hero-preview * {
    box-sizing: border-box;
}

/*
 * One continuous gradient behind the navigation and the hero, painted once
 * on the body so there is no seam where the two would otherwise meet. The
 * header and hero canvas stay transparent so this shows through both.
 */
body.km-homepage-draft-preview {
    background-image: linear-gradient(180deg, #101316 0%, #2e211b 54%, #b94708 100%) !important;
    background-repeat: no-repeat !important;
    background-position: top !important;
    background-size: 100% 1400px !important;
    background-attachment: scroll !important;
    background-color: #101316 !important;
}

body.km-homepage-draft-preview .km-homepage-hero-preview {
    --km-hero-charcoal: #1d2023;
    --km-hero-cream: #faf8f4;
    --km-hero-orange: #ff6408;
    width: auto;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    background: transparent;
    color: var(--km-hero-charcoal);
    font-family: Inter, sans-serif;
    -webkit-font-smoothing: antialiased;
}

/*
 * Continue the approved hero canvas through Salient's real navigation —
 * but only while unscrolled. Salient natively supports a transparent header
 * that solidifies on scroll (that's what data-transparent-header and
 * data-permanent-transparent track); scoping these overrides to
 * :not(.km-scrolled) lets that native scrolled state win once the visitor
 * scrolls past the hero, instead of forcing transparency everywhere and
 * leaving white nav text illegible over whatever content is behind it.
 * .km-scrolled is toggled by the small inline script in
 * kejamove_render_homepage_draft_hero().
 */
body.km-homepage-draft-preview:not(.km-scrolled) #header-outer,
body.km-homepage-draft-preview:not(.km-scrolled) #header-outer[data-transparent-header="true"],
body.km-homepage-draft-preview:not(.km-scrolled) #header-outer[data-permanent-transparent="false"] {
    border-bottom: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.km-homepage-draft-preview:not(.km-scrolled) #header-outer #top nav > ul > li > a,
body.km-homepage-draft-preview:not(.km-scrolled) #header-outer #top .span_9 > .slide-out-widget-area-toggle a,
body.km-homepage-draft-preview:not(.km-scrolled) #header-outer #top #mobile-cart-link a {
    color: #fff !important;
}

body.km-homepage-draft-preview:not(.km-scrolled) #header-outer #top nav > ul > li > a:hover,
body.km-homepage-draft-preview:not(.km-scrolled) #header-outer #top nav > ul > li > a:focus,
body.km-homepage-draft-preview:not(.km-scrolled) #header-outer #top nav > ul > li.current-menu-item > a {
    color: #ffb27a !important;
}

body.km-homepage-draft-preview #header-outer #top > .container {
    width: min(calc(100% - 48px), 1548px) !important;
    max-width: 1548px !important;
    padding-top: 10px;
    padding-bottom: 10px;
}

body.km-homepage-draft-preview .km-service-hero {
    position: relative;
    min-height: 300px;
    padding: 1px 0 68px;
    overflow: hidden;
    background: transparent;
}

body.km-homepage-draft-preview .km-service-hero__grain {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 22px 22px;
    opacity: .5;
    pointer-events: none;
}

body.km-homepage-draft-preview .km-service-hero__route {
    position: absolute;
    top: 10px;
    right: 0;
    left: 0;
    width: 100%;
    height: 200px;
    color: #cd7a43;
    opacity: .5;
    pointer-events: none;
}

body.km-homepage-draft-preview .km-service-hero__skyline {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 220px;
    color: #9d521f;
    opacity: .5;
    pointer-events: none;
}

body.km-homepage-draft-preview .km-service-hero__media {
    display: none;
}

body.km-homepage-draft-preview .km-service-hero__media picture,
body.km-homepage-draft-preview .km-service-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
}

/*
 * Salient's own site-wide rule `.row .col img:not([srcset]) { width: auto }`
 * (dynamic-css-inline-css) outranks the width:100% above on specificity
 * (three class/attribute selectors vs our two) because this <img> carries
 * only `src`, not `srcset` -- the srcset lives on the <source> inside the
 * <picture>. That shrank the image to its intrinsic size and cropped it
 * oddly against object-fit: cover. !important wins outright regardless of
 * specificity.
 */
body.km-homepage-draft-preview .km-service-hero__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center center;
}

body.km-homepage-draft-preview .km-service-hero__media::after {
    position: absolute;
    inset: 0;
    z-index: 2;
    content: "";
    background: linear-gradient(180deg, rgba(17, 19, 21, .92) 0%, rgba(17, 19, 21, .3) 16%, rgba(17, 19, 21, 0) 38%);
    pointer-events: none;
}

body.km-homepage-draft-preview .km-service-hero__copy {
    position: relative;
    z-index: 2;
    max-width: 1040px;
    margin: 42px auto 0;
    padding: 0 24px;
    text-align: center;
}

body.km-homepage-draft-preview .km-service-hero__eyebrow {
    display: none;
}

body.km-homepage-draft-preview .km-service-hero h1 {
    margin: 0 0 20px !important;
    color: #fff !important;
    font-family: "Space Grotesk", sans-serif;
    font-size: clamp(44px, 4vw, 66px) !important;
    font-weight: 600 !important;
    letter-spacing: -.02em;
    line-height: 1.12 !important;
    text-transform: none !important;
}

body.km-homepage-draft-preview .km-service-hero h1 em {
    color: var(--km-hero-orange) !important;
    font-style: normal;
}

body.km-homepage-draft-preview .km-service-hero__description {
    max-width: 760px;
    margin: 0 auto !important;
    color: rgba(255, 255, 255, .78) !important;
    font-size: 21px !important;
    line-height: 1.45 !important;
}

body.km-homepage-draft-preview .km-service-hero__help {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 18px 0 0;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 500;
    text-decoration: none !important;
}

body.km-homepage-draft-preview .km-service-hero__help-icon {
    display: flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(145deg, #25282b 0%, #111315 100%);
    border: 1px solid rgba(255, 255, 255, .28);
    color: #fff;
}

body.km-homepage-draft-preview .km-service-hero__help-icon svg {
    width: 15px;
    height: 15px;
}

/*
 * Rendered twice (see kejamove_render_hero_help_link()): the desktop copy
 * sits in the normal position within the hero copy; the mobile copy sits
 * after the quote selector, since Josh wants it reading after the form on
 * mobile rather than before it. Only one is visible at a given width.
 */
body.km-homepage-draft-preview .km-service-hero__help--desktop {
    display: none;
}
body.km-homepage-draft-preview .km-service-hero__help--mobile-after {
    width: fit-content;
    max-width: calc(100% - 48px);
    margin: 20px auto 0;
}

body.km-homepage-draft-preview .km-service-hero__help u {
    text-decoration-color: #ff9b52;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

body.km-homepage-draft-preview .km-homepage-hero-preview__space {
    height: 36px;
}

body.km-homepage-draft-preview .km-service-hero + .km-quote-selector-wrap {
    margin-top: 38px !important;
}

/*
 * Desktop editorial split: one contained composition, not two full-bleed
 * rectangles. The service selector retains the supplied card geometry and
 * overlaps a photographic KejaMove story card just enough to connect the two
 * halves. The canvas fills the available first viewport without stretching
 * either component.
 */
@media (min-width: 1180px) {
    body.km-homepage-draft-preview {
        background-image: linear-gradient(108deg, #101316 0%, #151617 34%, #352218 56%, #873a0e 78%, #ff6408 100%) !important;
        background-size: 100% 100svh !important;
    }

    body.km-homepage-draft-preview .km-homepage-hero-preview {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 40%) minmax(0, 60%);
        min-height: calc(100svh - 110px);
        padding: clamp(24px, 3.6vh, 40px)
            max(28px, calc((100vw - 1540px) / 2))
            clamp(24px, 3.6vh, 40px)
            0;
        align-items: center;
        isolation: isolate;
        background: transparent;
    }

    body.km-homepage-draft-preview .km-service-hero {
        position: relative;
        display: block;
        min-height: 0;
        height: clamp(520px, calc(100svh - 164px), 620px);
        padding: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    body.km-homepage-draft-preview .km-service-hero__media {
        display: block;
        position: absolute;
        z-index: 1;
        right: auto;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 44%;
        margin-top: 0;
        /*
         * The photo previously ended in a hard vertical cut on its right
         * and a hard horizontal one along its bottom, so it read as an
         * arbitrary rectangle pasted onto the gradient rather than part of
         * the composition -- the ::after overlay below only ever softened
         * the top edge. Fading the other two edges lets it dissolve into
         * the canvas, which matches how every other hero layer (grain,
         * route line, skyline) is treated.
         */
        -webkit-mask-image:
            linear-gradient(90deg, #000 0%, #000 58%, transparent 96%),
            linear-gradient(180deg, #000 0%, #000 68%, transparent 99%);
        -webkit-mask-composite: source-in;
        mask-image:
            linear-gradient(90deg, #000 0%, #000 58%, transparent 96%),
            linear-gradient(180deg, #000 0%, #000 68%, transparent 99%);
        mask-composite: intersect;
    }

    body.km-homepage-draft-preview .km-service-hero__media::after {
        background: linear-gradient(
            180deg,
            rgba(17, 19, 21, .96) 0%,
            rgba(17, 19, 21, .42) 13%,
            rgba(17, 19, 21, 0) 34%
        );
    }

    body.km-homepage-draft-preview .km-service-hero__route {
        z-index: 1;
        top: 4%;
        height: 34%;
        opacity: .55;
    }

    body.km-homepage-draft-preview .km-service-hero__skyline {
        top: 6%;
        bottom: auto;
        height: 32%;
        opacity: .55;
    }

    body.km-homepage-draft-preview .km-service-hero__grain {
        z-index: 1;
        opacity: .32;
    }

    body.km-homepage-draft-preview .km-service-hero__copy {
        width: 100%;
        max-width: 610px;
        margin: 0;
        padding: clamp(42px, 3.4vw, 58px)
            clamp(38px, 3.4vw, 58px)
            0;
        text-align: left;
    }

    body.km-homepage-draft-preview .km-service-hero__eyebrow {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 0 0 18px !important;
        color: #ff6408 !important;
        font-family: "IBM Plex Mono", monospace;
        font-size: 10px !important;
        font-weight: 600 !important;
        letter-spacing: .12em !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
    }

    body.km-homepage-draft-preview .km-service-hero__eyebrow::before {
        width: 28px;
        height: 2px;
        flex: 0 0 28px;
        border-radius: 99px;
        background: #ff6408;
        content: "";
    }

    body.km-homepage-draft-preview .km-service-hero h1 {
        margin-bottom: 16px !important;
        /* Wider and a touch smaller than the original two-sentence headline:
           the keyword-led H1 is longer, and at 520px/52px it wrapped to a
           fourth line that pushed the help link down onto the crew photo. */
        max-width: 600px;
        font-size: clamp(38px, 2.4vw, 46px) !important;
        letter-spacing: -.035em;
        line-height: 1.02 !important;
    }

    body.km-homepage-draft-preview .km-service-hero h1 br {
        display: none;
    }

    body.km-homepage-draft-preview .km-service-hero__description {
        max-width: 450px;
        margin: 0 !important;
        color: rgba(255, 255, 255, .72) !important;
        font-size: clamp(16px, 1.05vw, 18px) !important;
        line-height: 1.55 !important;
    }

    body.km-homepage-draft-preview .km-service-hero__help {
        margin: 20px 0 0;
    }

    /* Restore the desktop position; the mobile-only copy after the
       selector must not also show up here. */
    body.km-homepage-draft-preview .km-service-hero__help--desktop {
        display: inline-flex;
    }
    body.km-homepage-draft-preview .km-service-hero__help--mobile-after {
        display: none;
    }

    body.km-homepage-draft-preview .km-service-hero + .km-quote-selector-wrap {
        z-index: 4;
        width: calc(100% + 44px);
        max-width: none;
        margin: 0 0 0 -44px !important;
        padding: 0;
        align-self: center;
    }

    body.km-homepage-draft-preview .km-quote-selector {
        position: relative;
        border: 1px solid rgba(29, 32, 35, .08);
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 34px 90px -44px rgba(29, 32, 35, .6);
    }

    body.km-homepage-draft-preview .km-quote-selector::before {
        position: absolute;
        top: -1px;
        left: 48px;
        width: 76px;
        height: 4px;
        border-radius: 0 0 99px 99px;
        background: linear-gradient(145deg, #ff7b25 0%, #ff5c00 100%);
        content: "";
    }

    body.km-homepage-draft-preview .km-homepage-hero-preview__space {
        display: none;
    }
}

@media (max-height: 820px) and (min-width: 768px) and (max-width: 1179px) {
    body.km-homepage-draft-preview #header-outer #top > .container {
        padding-top: 6px;
        padding-bottom: 6px;
    }

    body.km-homepage-draft-preview .km-service-hero {
        min-height: 270px;
        padding-bottom: 58px;
    }

    body.km-homepage-draft-preview .km-service-hero__copy {
        margin-top: 28px;
    }

    body.km-homepage-draft-preview .km-service-hero h1 {
        margin-bottom: 14px !important;
        font-size: clamp(42px, 3.7vw, 58px) !important;
    }
}

@media (max-width: 767px) {
    body.km-homepage-draft-preview .km-service-hero {
        /* No longer reserving room for the photo, which is desktop-only —
           this was leaving a large empty dark gap before the selector. */
        min-height: 0;
        padding-bottom: 20px;
    }

    body.km-homepage-draft-preview .km-service-hero__copy {
        margin-top: 28px;
        padding: 0 18px;
    }

    body.km-homepage-draft-preview .km-service-hero h1 {
        margin-bottom: 8px !important;
        font-size: clamp(28px, 8vw, 34px) !important;
        line-height: 1.08 !important;
    }

    body.km-homepage-draft-preview .km-service-hero__description {
        max-width: 370px;
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    body.km-homepage-draft-preview .km-homepage-hero-preview__space {
        height: 14px;
    }

    body.km-homepage-draft-preview #header-outer #top > .container {
        width: calc(100% - 28px) !important;
        padding-top: 3px;
        padding-bottom: 3px;
    }

    body.km-homepage-draft-preview .km-service-hero + .km-quote-selector-wrap {
        margin-top: 18px !important;
    }
}
