/** Shopify CDN: Minification failed

Line 183:20 Expected identifier but found whitespace
Line 183:22 Unexpected "{"
Line 183:31 Expected ":"
Line 183:61 Expected ":"
Line 184:23 Expected identifier but found whitespace
Line 184:25 Unexpected "{"
Line 184:34 Expected ":"
Line 184:67 Expected ":"
Line 196:20 Expected identifier but found whitespace
Line 196:22 Unexpected "{"
... and 6 more hidden warnings

**/
/* Container reset */
.m-hero-section .container-full {
    padding-left: 0;
    padding-right: 0;
}

/* Base hero wrapper */
.m-hero {
    display: block;
    position: relative;
    width: 100%;
    overflow: hidden;
    margin-bottom: 0; /* avoid extra gap below hero */
}

/* Background wrapper (ratio box) */
.m-hero__bg {
    position: relative;
    font-size: 0;   /* kill any inline whitespace effects */
    line-height: 0; /* kill any line-height-induced gaps */
}

/* Hero height using CSS aspect ratio variables (set from Liquid) */
.m-hero.m-hero--adapt .m-hero__bg {
    height: 0;
    padding-block-end: calc(100% / (.0001 + var(--aspect-ratio)));
}

@media screen and (max-width: 767px) {
    .m-hero.m-hero--adapt .m-hero__bg {
        padding-block-end: calc(100% / (.0001 + var(--aspect-ratio-mobile, var(--aspect-ratio))));
    }
}

/* Fixed height sizes */
.m-hero:not(.m-hero--adapt).m-hero--small .m-hero__bg {
    height: 290px;
}
.m-hero:not(.m-hero--adapt).m-hero--medium .m-hero__bg {
    height: 360px;
}
.m-hero:not(.m-hero--adapt).m-hero--large .m-hero__bg {
    height: 420px;
}
.m-hero:not(.m-hero--adapt).m-hero--fullscreen .m-hero__bg {
    height: 100vh;
}

@media screen and (min-width: 768px) {
    .m-hero:not(.m-hero--adapt).m-hero--small .m-hero__bg {
        height: 420px;
    }
    .m-hero:not(.m-hero--adapt).m-hero--medium .m-hero__bg {
        height: 560px;
    }
    .m-hero:not(.m-hero--adapt).m-hero--large .m-hero__bg {
        height: 720px;
    }
    .m-hero:not(.m-hero--adapt).m-hero--fullscreen .m-hero__bg {
        height: 100vh;
    }
}

/* Overlay effect */
.m-hero--has-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: var(--color-image-overlay);
    opacity: var(--opacity-image-overlay);
}

@media screen and (max-width: 767px) {
    .m-hero--has-overlay.m-hero__mobile-no-overlay::before {
        display: none;
    }
}

/* Content wrapper */
.m-hero__inner {
    display: flex;
    position: absolute;
    inset: 0;
    z-index: 2;
    padding-top: 0px;
    padding-bottom: 0px;
}

@media screen and (min-width: 768px) {
    .m-hero__inner {
        padding-top: 0px;
        padding-bottom: 0px;
    }
}
@media screen and (min-width: 1280px) {
    .m-hero__inner {
        padding-top: 100px;
        padding-bottom: 100px;
    }
}

/* Vertical alignment helpers */
.m-hero__inner[class*="--middle-"] { align-items: center; }
.m-hero__inner[class*="--top-"] { align-items: flex-start; }
.m-hero__inner[class*="--bottom-"] { align-items: flex-end; }

/* Horizontal alignment helpers */
.m-hero__inner--top-center,
.m-hero__inner--middle-center,
.m-hero__inner--bottom-center { justify-content: center; }
.m-hero__inner--top-left,
.m-hero__inner--middle-left,
.m-hero__inner--bottom-left { justify-content: flex-start; }
.m-hero__inner--top-right,
.m-hero__inner--middle-right,
.m-hero__inner--bottom-right { justify-content: flex-end; }

/* Content sizing */
.m-hero__content {
    width: max-content;
}
@media screen and (min-width: 768px) {
    .m-hero__content {
        max-width: 56rem;
    }
}

/* Typography + spacing */
.m-hero__title,
.m-hero__subtitle {
    display: block;
    padding-left: 0;
    padding-right: 0;
}

.m-hero__title { margin-bottom: 24px; }
@media screen and (max-width: 767px) {
    .m-hero__title { margin-bottom: 12px; }
}

.m-hero__subtitle { margin-bottom: 16px; }
@media screen and (max-width: 767px) {
    .m-hero__subtitle { margin-bottom: 8px; }
}

.m-hero__text { margin-bottom: 24px; }
@media screen and (max-width: 767px) {
    .m-hero__text { margin-bottom: 16px; }
}

/* Button group */
.m-hero__btn {
    display: flex;
    align-items: center;
    gap: 24px;
}

/* Remove forced br on mobile */
@media screen and (max-width: 767px) {
    .m-hero__content br { display: none; }
}

/* Mobile spacing tweaks for large hero heights */
@media screen and (max-width: 767px) {
    .m-hero--large .m-hero__inner,
    .m-hero--fullscreen .m-hero__inner {
        padding-top: {{ section.settings.padding_top_mob }}px;
        padding-bottom: {{ section.settings.padding_bottom_mob }}px;
    }
}

/* Content stack layout override */
@media screen and (max-width: 767px) {
    .m-hero--content-stack {
        overflow: visible;
    }
    .m-hero--content-stack .m-hero__inner {
        position: relative !important;
        z-index: 2;
        padding-top: {{ section.settings.padding_top_mob }}px;
        padding-bottom: {{ section.settings.padding_bottom_mob }}px;
        display: block;
    }
    .m-hero--content-stack .m-hero__content {
        width: 100%;
    }
    .m-hero--content-stack.m-hero--has-overlay::before {
        display: none;
    }
}

/* Clickable background support */
.m-hero--has-link .m-hidden-link {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: block;
    text-indent: -999em;
}

/* VIDEO BACKGROUND LAYER */

/* Base video wrapper */
.m-video__bg {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none; /* Keeps background clickable via .m-hidden-link */
    z-index: 0;
}

.m-video__bg video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
    border: none;
}

/* Explicit desktop vs mobile video switching */
.m-video__bg--desktop {
    display: block;
}

.m-video__bg--mobile {
    display: none;
}

@media screen and (max-width: 767px) {
    .m-video__bg--desktop {
        display: none;
    }
    .m-video__bg--mobile {
        display: block;
    }
}
/* --- VIDEO BACKGROUND LAYER --- */

/* Make sure hero bg is a proper ratio box and doesn't add extra gaps */
.m-hero__bg {
    position: relative;
    font-size: 0;
    line-height: 0;
}

/* Base video wrapper */
.m-video__bg {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none; /* Keeps background clickable via .m-hidden-link */
    z-index: 0;
}

.m-video__bg video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
    border: none;
}

/* Desktop vs mobile video visibility – hard override */
.m-video__bg--desktop {
    display: block !important;
}

.m-video__bg--mobile {
    display: none !important;
}

@media screen and (max-width: 767px) {
    .m-video__bg--desktop {
        display: none !important;
    }
    .m-video__bg--mobile {
        display: block !important;
    }
}

