.hero_banner {
    display: flex;
    flex-direction: column;

    & > .container {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: row;
        z-index: 2;
        flex-wrap: wrap;
        align-items: stretch;
        justify-content: space-between;
        text-align: left;

        @media (min-width: 992px) {
            padding-top: 180px;
            padding-bottom: 100px;
        }

        @media (max-width: 991px) {
            padding-top: 120px;
            padding-bottom: 50px;
        }

        & .hero_banner_inner {
            width: 48%;
            display: flex;
            flex-direction: column;
            align-items: flex-start;

            @media (max-width: 991px) {
                width: 100%;
                align-items: center;
            }

            & .opening_status {
                display: flex;
                flex-direction: row;
                align-items: center;

                & .status_badge {
                    display: flex;
                    flex-direction: row;
                    align-items: center;
                    border-radius: 1rem;
                    color: var(--white);
                    padding: 1rem;

                    &.open {
                        background: #2CA868;
                    }

                    &.closed {
                        background: #D64545;
                    }

                    & span {
                        display: block;
                        color: var(--white);
                        font-size: 1.2rem;
                        font-weight: 700;
                        margin-left: .5rem;
                        text-transform: uppercase;
                    }
                }

                &>span {
                    display: block;
                    color: var(--white);
                    font-size: 1.2rem;
                    font-weight: 700;
                    margin-left: 2rem;
                    text-transform: uppercase;
                }
            }

            & h1 {
                font-size: 6rem;
                font-weight: 400;
                margin: 4rem 0;
                color: var(--white);

                @media (max-width: 991px) {
                    font-size: 3.8rem;
                    text-align: center;
                }
            }

            & .call_to_action_buttons {
                flex-direction: row;

                @media (max-width: 991px) {
                    gap: 2rem;
                }

                & a {
                    margin-bottom: 0;

                    @media (max-width: 991px) {
                        font-size: 1.6rem;
                        padding: 1rem;
                    }

                    @media (max-width: 767px) {
                        font-size: 1.4rem;
                    }
                }
            }

            & .same_day_appts {
                font-size: 1.6rem;
                color: var(--white);
                margin: 4rem 0;

                @media (max-width: 991px) {
                    width: 100%;
                    text-align: center;
                }
            }

            & .location_columns {
                width: 100%;
                display: flex;
                flex-direction: row;
                gap: 2rem;

                @media (max-width: 991px) {
                    width: 100%;
                    justify-content: center;
                    gap: 1rem;
                }

                & a.column {
                    width: 30%;
                    text-decoration: none;
                }

                & div.column {
                    width: 40%;
                }

                & .column {
                    display: flex;
                    flex-direction: row;
                    gap: 1rem;
                    
                    @media (max-width: 991px) {
                        flex-direction: column;
                        align-items: center;
                    }

                    & svg {
                        width: 5.6rem;
                        height: 5.6rem;
                        flex: 0 0 auto;
                    }

                    & .location_info {
                        & p.large {
                            color: var(--white);
                            font-size: 1.8rem;
                            font-weight: 700;
                            margin: 0 0 1rem !important;
                    
                            @media (max-width: 991px) {
                                width: 100%;
                                font-size: 1.5rem;
                                text-align: center;
                            }
                        }

                        & p.small, & div.small, & div.small p {
                            color: var(--white);
                            font-size: 1.6rem;
                            font-weight: 400;
                            margin: 0;
                            line-height: 1.5;
                            
                            @media (max-width: 991px) {
                                display: none;
                            }

                            & a {
                                color: var(--white);
                                font-size: 1.6rem;
                                font-weight: 400;
                                margin: 0;
                                text-decoration: none;
                            }
                        }
                    }
                }

                & .opening-hours-column {
                    @media (max-width: 991px) {
                        cursor: pointer;

                        &:focus-visible {
                            outline: 2px solid var(--white);
                            outline-offset: 0.25rem;
                        }
                    }
                }
            }

            & .hero_banner__opening_hours_dialog {
                border: none;
                border-radius: 1.2rem;
                padding: 0;
                max-width: calc(100vw - 3.2rem);
                width: 42rem;
                background: var(--white);
                color: var(--text);
                box-shadow: 0 1rem 4rem rgba(30, 14, 8, 0.25);

                &::backdrop {
                    background: rgba(30, 14, 8, 0.55);
                }
            }

            & .hero_banner__opening_hours_dialog_inner {
                padding: 2.4rem 2rem 2rem;
            }

            & .hero_banner__opening_hours_dialog_header {
                display: flex;
                flex-direction: row;
                align-items: center;
                justify-content: space-between;
                gap: 1rem;
                margin-bottom: 1.6rem;
            }

            & .hero_banner__opening_hours_dialog_title {
                font-family: "Aboreto", arial, sans-serif;
                font-size: 2.4rem;
                font-weight: 700;
                margin: 0;
                color: var(--primary);
                line-height: 1.2;
            }

            & .hero_banner__opening_hours_close {
                flex: 0 0 auto;
                display: flex;
                align-items: center;
                justify-content: center;
                width: 4rem;
                height: 4rem;
                margin: 0;
                padding: 0;
                border: none;
                border-radius: 50%;
                background: var(--highlight);
                color: var(--primary);
                font-size: 2.8rem;
                font-weight: 400;
                line-height: 1;
                cursor: pointer;
                transition: background 0.15s ease, color 0.15s ease;

                &:hover {
                    background: var(--primary);
                    color: var(--white);
                }
            }

            & .hero_banner__opening_hours_dialog_body {
                font-size: 1.6rem;
                font-weight: 400;
                line-height: 1.5;
                color: var(--text);
            }
        }

        & .promotions_carousel {
            display: flex;
            flex-direction: column;
            width: 48%;

            @media (max-width: 991px) {
                width: 100%;
                margin-top: 4rem;
            }

            & .slick-list {
                height: 100% !important;

                & .slick-track {
                    display: flex !important;
                    height: 100% !important;
                }
            }

            & .slick-slide {
                width: 100%;
                height: auto !important;
                position: relative;
                margin: 0 !important;

                @media (max-width: 991px) {
                    margin: 0 1rem !important;
                }

                & img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    object-position: center;
                }

                & p {
                    /* Inset from edges; width must account for left offset — not 100% + left (overflow) */
                    position: absolute;
                    left: 3rem;
                    right: 3rem;
                    bottom: 3rem;
                    width: auto;
                    max-width: 35rem;
                    margin: 0;
                    box-sizing: border-box;
                    color: var(--white);
                    font-family: "DM Sans", arial, sans-serif;
                    font-size: 2.2rem;
                    font-style: normal;
                    font-weight: 700;
                    line-height: 1.2;
                    overflow-wrap: break-word;

                    @media (max-width: 767px) {
                        left: 2rem;
                        right: 2rem;
                        bottom: 2rem;
                        font-size: 2rem;
                    }
                }
            }

            & .slick-dots {
                position: relative;
                margin: 3rem 0 0;

                & li {
                    margin: 0 .5rem;

                    & button {
                        background: rgba(255, 255, 255, .25);
                    }

                    &.slick-active {
                        & button {
                            background: var(--white) !important;
                        }
                    }
                }
            }
        }
    }

    & .image_overlay {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        z-index: 1;
        background: linear-gradient(115deg, #42251A 15.35%, #EDAB72 113.45%);
        mix-blend-mode: multiply;
    }
	
	& img.hero_banner_image_desktop {
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        object-fit: cover;
        object-position: center;
        position: absolute;
        z-index: 0;
	}
}