#hero.smg-hero-carousel {
    background: #000;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

#hero.smg-hero-carousel .container {
    margin: 0 auto;
    max-width: 105rem;
    position: relative;
    z-index: 1;
}

.smg-hero-viewport {
    position: relative;
}

.smg-hero-carousel .slides {
    list-style: none;
    margin: 0;
    padding: 0;
}

.smg-hero-slide {
    display: none;
    margin: 0;
    position: relative;
}

.smg-hero-slide.is-active {
    display: block;
}

.smg-hero-slide.is-active .smg-hero-background {
    animation: smgHeroImageFadeIn 360ms ease both;
}

@keyframes smgHeroImageFadeIn {
    from {
        opacity: 0.18;
    }

    to {
        opacity: 1;
    }
}

.smg-hero-background {
    background-position: center top;
    background-repeat: no-repeat;
    position: relative;
    z-index: 1;
}

.smg-hero-slide > .row {
    position: relative;
    z-index: 2;
}

.smg-hero-carousel .caption {
    font-size: 0.9375rem;
    line-height: 1.2;
}

.smg-hero-carousel .caption.right {
    float: none !important;
}

.smg-hero-carousel .caption .caption-head {
    font-family: proxima-nova, sans-serif;
    font-size: 1.5625rem;
    font-weight: 600;
    line-height: 0.8;
    margin: 0;
    text-transform: none;
}

.smg-hero-carousel .caption p {
    font-weight: 300;
    line-height: 1.5;
    margin: 0.4em 0;
}

.smg-hero-carousel .caption p.large {
    font-size: 1.1875rem;
}

.smg-hero-arrow {
    background: transparent;
    background-color: transparent !important;
    border: 0;
    cursor: pointer;
    height: 3.75rem;
    margin: 0;
    opacity: 1;
    overflow: hidden;
    padding: 0;
    position: absolute;
    text-indent: 101%;
    top: 50%;
    transform: translateY(-50%);
    transition: opacity 180ms ease;
    white-space: nowrap;
    width: 2.5rem;
    z-index: 6;
}

.smg-hero-arrow:before {
    background: url(/img/flexslider-arrows.svg) left center no-repeat;
    content: "";
    display: block;
    height: 3.75rem;
    left: 0;
    position: absolute;
    top: 0;
    width: 2.5rem;
}

.smg-hero-prev {
    left: 1rem;
}

.smg-hero-next {
    right: 1rem;
}

.smg-hero-next:before {
    background-position: right center;
}

.smg-hero-dots {
    bottom: 0.875rem;
    left: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    text-align: center;
    width: 100%;
    z-index: 7;
}

.smg-hero-dots li {
    display: inline-block;
    margin: 0 0.1875rem;
}

.smg-hero-dots button {
    background: rgba(255, 255, 255, 0.62);
    border: 0;
    border-radius: 999px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
    cursor: pointer;
    display: block;
    height: 0.375rem;
    padding: 0;
    text-indent: -9999px;
    transition: background-color 160ms ease, width 160ms ease;
    width: 0.375rem;
}

.smg-hero-dots button:hover {
    background: #fff;
}

.smg-hero-dots button.is-active {
    background: #f23f26;
    width: 1.375rem;
}

@media only screen and (max-width: 48rem) {
    #hero.smg-hero-image-only {
        margin-bottom: 1.25rem;
    }

    .smg-hero-slide > .row {
        position: static;
    }

    .smg-hero-background {
        background-size: contain;
        margin-bottom: 5rem;
        padding-top: 56.25%;
    }

    .smg-hero-slide:not(.smg-hero-slide-has-cta) .smg-hero-background {
        margin-bottom: 0;
    }

    .smg-hero-slide-has-stacked-cta .smg-hero-background {
        margin-bottom: 7.75rem;
    }

    .smg-hero-slide-has-stacked-cta .caption {
        bottom: 0.875rem;
    }

    .smg-hero-background:after {
        background: linear-gradient(to top, #000 0, rgba(0, 0, 0, 0.72) 30%, rgba(0, 0, 0, 0.28) 68%, transparent 100%);
        bottom: 0;
        content: "";
        height: 36%;
        left: 0;
        position: absolute;
        right: 0;
        z-index: 2;
    }

    .smg-hero-slide-image-only .smg-hero-background:after {
        display: none;
    }

    .smg-hero-carousel .caption {
        background: transparent;
        bottom: 0.875rem;
        color: #fff;
        left: 50%;
        max-width: 100%;
        padding: 0;
        position: absolute;
        text-align: center;
        text-shadow: 0 1px 4px rgba(0, 0, 0, 0.65);
        transform: translateX(-50%);
        width: max-content;
        z-index: 6;
    }

    .smg-hero-slide:not(.smg-hero-slide-has-cta) .caption {
        bottom: 1.25rem;
    }

    .smg-hero-carousel .caption .caption-head {
        color: #fff;
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.05;
        margin: 0 0 0.25rem;
        text-transform: uppercase;
    }

    .smg-hero-carousel .caption p {
        font-size: 0.875rem;
        font-weight: 400;
        line-height: 1.15;
        margin: 0.125rem 0;
        text-transform: uppercase;
    }

    .smg-hero-carousel .caption p:empty {
        display: none;
    }

    .smg-hero-carousel .caption p:has(.button) {
        align-items: stretch;
        display: inline-flex;
        filter: drop-shadow(0 2px 7px rgba(0, 0, 0, 0.42));
        flex-wrap: wrap;
        justify-content: center;
        margin-top: 0.125rem;
        max-width: 100vw;
        min-width: 100%;
        text-shadow: none;
        background: #000;
        padding: 0.375rem 0.5rem;
    }

    .smg-hero-carousel .caption p:has(.button) .button {
        align-items: center;
        border-radius: 0;
        display: inline-flex;
        font-size: 0.875rem;
        justify-content: center;
        line-height: 1;
        margin: 0;
        min-height: 2.875rem;
        padding: 0.875rem 0.75rem;
        text-decoration: none;
        white-space: nowrap;
    }

    .smg-hero-carousel .caption p:has(.button) .button:first-child {
        border-radius: 0;
    }

    .smg-hero-carousel .caption p:has(.button) .button:last-child {
        border-radius: 0;
    }

    .smg-hero-carousel .caption p:has(.button) .button:only-child {
        border-radius: 0;
    }

    .smg-hero-carousel .caption p:has(.button) .button:nth-child(n+3) {
        flex-basis: 100%;
    }

    .smg-hero-dots {
        display: none;
    }

    .smg-hero-carousel .play-link {
        background-position: center center;
        background-size: 5rem auto;
        height: 0;
        left: 3.75rem;
        overflow: hidden;
        padding-top: 56.25%;
        position: absolute;
        right: 3.75rem;
        text-indent: 101%;
        top: 0;
        white-space: nowrap;
        z-index: 5;
        width: auto;
    }

    .smg-hero-arrow {
        top: 28.125vw;
    }
}

@media only screen and (min-width: 48.0625rem) {
    #hero.smg-hero-carousel {
        height: 31.25rem;
    }

    .smg-hero-slide {
        height: 31.25rem;
        padding: 0 1.875rem;
    }

    .smg-hero-background {
        background-size: cover;
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        width: 100%;
    }

    .smg-hero-slide > .row {
        height: 31.25rem;
    }

    .smg-hero-carousel .caption {
        bottom: 2.5rem;
        color: #fff;
        left: 1.875rem;
        max-width: 80%;
        position: absolute;
        text-shadow: 0 0 0.625rem rgba(0, 0, 0, 0.5);
        z-index: 2;
    }

    .smg-hero-carousel .caption.right {
        left: auto;
        right: 1.875rem;
        text-align: right;
    }

    .smg-hero-carousel .caption .caption-head {
        color: #fff;
        font-size: 3rem;
    }

    .smg-hero-carousel .caption a {
        color: #fff;
        text-decoration: underline;
    }

    .smg-hero-carousel .play-link {
        bottom: 2.5rem;
        position: absolute;
        right: 0;
    }

    .smg-hero-carousel .play-link.large {
        background-position: center center;
        background-size: 5rem auto;
        height: 100%;
        left: 3.75rem;
        overflow: hidden;
        right: 3.75rem;
        text-indent: 101%;
        top: 0;
        white-space: nowrap;
        z-index: 1;
    }

    .smg-hero-carousel .caption.right + .play-link {
        left: 0;
        right: auto;
    }
}

@media only screen and (min-width: 64.0625rem) {
    .smg-hero-slide {
        padding: 0 2.5rem;
    }

    .smg-hero-carousel .caption {
        left: 2.5rem;
    }

    .smg-hero-carousel .caption.right {
        right: 2.5rem;
    }

    .smg-hero-arrow {
        opacity: 0;
    }

    #hero.smg-hero-carousel:hover .smg-hero-arrow,
    #hero.smg-hero-carousel:focus-within .smg-hero-arrow {
        opacity: 1;
    }
}

@media only screen and (min-width: 105.0625rem) {
    .smg-hero-background {
        border: solid #000;
        border-width: 0 1px;
    }

    .smg-hero-background:before,
    .smg-hero-background:after {
        bottom: 0;
        content: "";
        position: absolute;
        top: 0;
        width: 6.25rem;
        z-index: 2;
    }

    .smg-hero-background:before {
        background: linear-gradient(to right, #000 0, transparent 100%);
        left: 0;
    }

    .smg-hero-background:after {
        background: linear-gradient(to right, transparent 0, #000 100%);
        right: 0;
    }
}
