/*
    Block: Hero Banner
    Note: Selectors must start with .block-hero-banner
*/

@layer blocks {
    .block-hero-banner {
        --vh-100: 100vh;
        --vh-100: 100svh;
        --vh-100: 100dvh;
        --height: calc(var(--vh-100) - var(--header-height, 0px) - 1.25rem);
    }

    .block-hero-banner .main-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        min-height: var(--height);
    }
    
    .block-hero-banner .media-wrapper::after {
        content: '';
        position: absolute;
        inset: 0;
        background-color: #0000004D;
        mix-blend-mode: multiply;
    }

    .block-hero-banner .overlay {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        gap: 1.5rem;
        padding: 1.25rem;
        width: 100%;
    }

    .block-hero-banner .banner {
        background-color: rgb(from var(--c-white) r g b / .05);
        border: 1px solid rgb(from var(--c-white) r g b / .2);
        backdrop-filter: blur(40px);
        -webkit-backdrop-filter: blur(40px);
        padding: 1.25rem 1.875rem;
    }

    .block-hero-banner .banner :is(p, h6) {
        margin: 0;
    }

    .block-hero-banner .banner__content {
        gap: .75rem;
    }

    .block-hero-banner .banner__title {
        font-size: var(--fs-17-19);
        font-weight: 500;
        line-height: 1.1;
        letter-spacing: -.06em;
    }

    .block-hero-banner .banner__title::after {
        content: '';
        display: inline-block;
        height: 1rem;
        width: 1px;
        margin-left: .75rem;
        margin-bottom: 3px;
        background-color: var(--c-orange);
        vertical-align: middle;
    }

    .block-hero-banner .banner__description {
        color: var(--c-lighter-grey);
    }

    .block-hero-banner .contents-wrapper {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        max-height: calc(var(--height) - 12.5rem);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
        gap: 1.5rem;
        margin-top: auto;
        padding: .625rem;
        padding-top: 0;
    }

    .block-hero-banner .main-content {
        -ms-flex-preferred-size: 70%;
            flex-basis: 70%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        gap: 2.25rem;
    }

    .block-hero-banner .tagline {
        gap: .9375rem;
    }

    .block-hero-banner a.tagline {
        --transition-dur: 120ms;
        --transition-func: ease-in-out;
        position: relative;
        text-decoration: none;
    }

    .block-hero-banner a.tagline .bs-icon {
        position: absolute;
        top: 50%;
        right: 0;
        opacity: 0;
        -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
                transform: translateY(-50%);
        pointer-events: none;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
        outline: none;
        -webkit-transition: var(--transition-dur) var(--transition-func);
        transition: var(--transition-dur) var(--transition-func);
        -webkit-transition-property: opacity, -webkit-transform;
        transition-property: opacity, -webkit-transform;
        transition-property: opacity, transform;
        transition-property: opacity, transform, -webkit-transform;
    }

    .block-hero-banner a.tagline:is(:hover, :focus) .bs-icon {
        opacity: 1;
        -webkit-transform: translate(calc(100% + .75rem), -50%);
            -ms-transform: translate(calc(100% + .75rem), -50%);
                transform: translate(calc(100% + .75rem), -50%);
    }

    .block-hero-banner .tagline__images {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .block-hero-banner .tagline__images img {
        width: 2.5rem;
        height: 2.5rem;
        aspect-ratio: 1;
        border-radius: 50%;
        outline: 1px solid rgb(from var(--c-white) r g b / .4);
        outline-offset: -1px;
    }

    .block-hero-banner .tagline__images img:not(:first-child) {
        margin-left: -.875rem;
        -webkit-transition: margin var(--transition-dur) var(--transition-func);
        transition: margin var(--transition-dur) var(--transition-func);
    }

    .block-hero-banner a.tagline:is(:hover, :focus) .tagline__images img:not(:first-child) {
        margin-left: -.625rem;
    }

    .block-hero-banner .tagline__label {
        margin: 0;
        text-indent: unset;
    }

    .block-hero-banner .tagline__label::before {
        content: unset;
    }

    .block-hero-banner .main-content .text-content {
        margin-bottom: .625rem;
    }

    .block-hero-banner .side-content {
        -ms-flex-preferred-size: 27%;
            flex-basis: 27%;
        -ms-flex-item-align: stretch;
            -ms-grid-row-align: stretch;
            align-self: stretch;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: 2.375rem;
    }

    .block-hero-banner .side-content .buttons {
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
    }

    .block-hero-banner .side-content .scroll-down-btn {
        margin-top: auto;
        -ms-flex-item-align: end;
            align-self: flex-end;
    }

    .block-hero-banner .btn.circle svg {
        width: .875rem;
        height: .875rem;
    }
    
    .block-hero-banner #scrollto {
        position: relative;
        top: var(--header-height);
    }

    @media screen and (width <= 920px) {
        .block-hero-banner .overlay {
            padding: .9375rem;
            padding-bottom: 1.5625rem;
        }

        .block-hero-banner .banner {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: 1rem;
            -webkit-box-align: start;
                -ms-flex-align: start;
                    align-items: flex-start;
            padding: 1.125rem 1.25rem;
        }

        .block-hero-banner .banner__content {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: start;
                -ms-flex-align: start;
                    align-items: flex-start;
        }

        .block-hero-banner .banner__title::after {
            content: unset;
        }

        .block-hero-banner .contents-wrapper {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
            padding-left: .3125rem;
            padding-bottom: 0;
            gap: 1.625rem;
        }

        .block-hero-banner .tagline {
            gap: .75rem;
        }

        .block-hero-banner .tagline__images img {
            width: 2rem;
            height: 2rem;
        }

        .block-hero-banner .tagline__images img:not(:first-child) {
            margin-left: -1rem;
        }

        .block-hero-banner .text-content {
            text-wrap: balance;
        }

        .block-hero-banner .main-content {
            -ms-flex-preferred-size: unset;
                flex-basis: unset;
            gap: 1.625rem;
        }

        .block-hero-banner .main-content .text-content {
            margin-bottom: 0;
        }

        .block-hero-banner .side-content {
            -ms-flex-preferred-size: unset;
                flex-basis: unset;
            gap: 1.625rem;
            position: relative;
            padding-right: 2.5rem;
        }

        .block-hero-banner .side-content .scroll-down-btn {
            position: absolute;
            bottom: 0;
            right: 0;
        }
    }
}
