/* Banner block — shared storefront + pagebuilder styles. Do not scope per block instance. */
.banner-block-container .banner-cell {
    position: relative;
    overflow: hidden;
    border: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: block;
    padding: 0;
}

/* Mobile columns — customstyle.css uses flex column on mobile; override for 2/3/4 (grid mode) */
@media (max-width: 768px) {
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row),
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row),
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row),
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row),
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row),
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
    }
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex: 0 0 calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
        width: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
        max-width: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
        grid-column: auto !important;
    }
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex: 0 0 calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
        width: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
        max-width: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
        grid-column: auto !important;
    }
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="grid"][data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container:not([data-mobile-layout])[data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex: 0 0 calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
        width: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
        max-width: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
        grid-column: auto !important;
    }

    /* Mobile carousel — Mobile Columns = visible at once; swipe + auto-rotate */
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row) {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        overscroll-behavior-x: contain;
        /* pan-y required so vertical page scroll still works when gesture starts on the carousel */
        touch-action: pan-x pan-y;
    }
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row)::-webkit-scrollbar {
        display: none;
    }
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
        grid-column: auto !important;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        min-width: 0 !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="1"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="1"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
        width: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
        max-width: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
        width: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
        max-width: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
        width: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
        max-width: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
    }
    .banner-block-container[data-mobile-layout="carousel"] .banner-cell:hover {
        transform: none;
    }
}

.banner-cell .banner-inner {
    width: 100%;
    margin: 0;
    overflow: hidden;
    position: relative;
    background: #fff;
}

@media (min-width: 769px) {
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell:not(.banner-cell-height-custom):not(.banner-fit-cover) .banner-inner {
        height: auto !important;
        min-height: auto !important;
    }
}

@media (max-width: 768px) {
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell:not(.banner-cell-height-custom):not(.banner-fit-cover) .banner-inner {
        height: auto !important;
        min-height: auto !important;
    }
}

.banner-cell:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

body.pagebuilder-mode .banner-cell.has-link {
    cursor: default;
}

body.pagebuilder-mode .banner-cell-link {
    pointer-events: none !important;
    cursor: default !important;
}

body.pagebuilder-mode .banner-cell.has-link:hover {
    transform: none;
    box-shadow: none;
}

.banner-cell.has-link {
    cursor: pointer;
}

.banner-cell-link {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: block;
}

.banner-inner img {
    width: 100% !important;
    max-width: 100% !important;
    object-fit: contain;
    object-position: center;
    display: block;
}

@media (min-width: 769px) {
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell:not(.banner-fit-cover) .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell:not(.banner-fit-cover) .banner-base-image {
        height: auto !important;
        min-height: auto !important;
    }
}

@media (max-width: 768px) {
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell:not(.banner-fit-cover) .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell:not(.banner-fit-cover) .banner-base-image {
        height: auto !important;
        min-height: auto !important;
    }
}

.banner-video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    background: #000;
    display: flex;
}

.banner-video-overlay iframe,
.banner-video-overlay video {
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
    display: block;
}

.banner-vertical .banner-cell:not(.banner-fit-cover) .banner-inner img,
.banner-large .banner-cell:not(.banner-fit-cover) .banner-inner img,
.banner-full-height .banner-cell:not(.banner-fit-cover) .banner-inner img,
.banner-half-height .banner-cell:not(.banner-fit-cover) .banner-inner img {
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
}

.banner-fit-cover .banner-inner img,
.banner-fit-cover .banner-base-image {
    object-fit: cover !important;
}


@media (min-width: 769px) {
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-inner,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-full-height,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-half-height,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-large,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-vertical {
        height: auto !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop > .banner-block-row:has(.banner-fit-cover):not(.banner-split-row) {
        aspect-ratio: 16 / 9;
    }
    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-1-2 > .banner-block-row,
    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-2-1 > .banner-block-row {
        aspect-ratio: auto !important;
        height: auto !important;
        align-items: stretch;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-col-wrapper,
    .banner-block-container.banner-block-container--height-auto-desktop > .banner-block-row > [class*="col-"] {
        height: 100%;
        min-height: 0;
    }
    .banner-block-container.banner-block-container--height-auto-desktop > .banner-block-row > .banner-col-wrapper:not(:has(.banner-fit-cover)),
    .banner-block-container.banner-block-container--height-auto-desktop > .banner-block-row > [class*="col-"]:not(:has(.banner-fit-cover)) {
        height: auto;
        align-self: start;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain .banner-base-image,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none .banner-base-image {
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
        min-height: 0 !important;
        object-position: center;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain .banner-base-image {
        object-fit: contain !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none .banner-base-image {
        object-fit: none !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none {
        height: auto !important;
        min-height: 0 !important;
        flex: 0 0 auto !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain .banner-inner,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none .banner-inner,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain.banner-cell-height-auto,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none.banner-cell-height-auto,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-contain.banner-cell-height-auto .banner-inner,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-none.banner-cell-height-auto .banner-inner {
        height: auto !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-cover {
        height: 100% !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-cover .banner-inner {
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-cover .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-fit-cover .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        min-height: 0 !important;
        object-fit: cover !important;
        object-position: center;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-right-column {
        height: auto !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-right-column:not(.banner-stack-rows) .banner-cell {
        flex: none !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-stack-rows .banner-half-height.banner-fit-cover {
        flex: 1 1 0 !important;
        height: 100% !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner {
        height: 100% !important;
        min-height: 0 !important;
        aspect-ratio: auto !important;
        overflow: hidden;
    }
    .banner-block-container.banner-layout-1-2.banner-block-container.banner-block-container--height-auto-desktop .banner-full-height.banner-fit-cover .banner-inner {
        height: 100% !important;
        aspect-ratio: auto;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-video-overlay--auto {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        height: auto;
        display: block;
        background: transparent;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-video-overlay--auto iframe,
    .banner-block-container.banner-block-container--height-auto-desktop .banner-video-overlay--auto video {
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
        object-fit: contain;
        display: block;
    }
    .banner-block-container.banner-block-container--height-auto-desktop .banner-video-overlay--auto iframe {
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 768px) {
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-inner,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-full-height,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-half-height,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-large,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-vertical {
        height: auto !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:has(.banner-fit-cover):not(.banner-split-row) {
        aspect-ratio: 16 / 9;
    }
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) {
        align-items: stretch !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile.banner-layout-1-2 > .banner-block-row,
    .banner-block-container.banner-block-container--height-auto-mobile.banner-layout-2-1 > .banner-block-row {
        aspect-ratio: auto !important;
        height: auto !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-col-wrapper,
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row > [class*="col-"] {
        height: 100%;
        min-height: 0;
    }
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper:not(:has(.banner-fit-cover)),
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > [class*="col-"]:not(:has(.banner-fit-cover)) {
        height: auto;
        align-self: stretch;
        display: flex;
        flex-direction: column;
        min-height: 0;
    }
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > .col-12:not(:has(.banner-fit-cover)) {
        align-self: start;
    }
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > [class*="col-"]:not(.col-12) .banner-cell--text,
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper:not(:has(.col-12)) .banner-cell--text {
        flex: 1 1 auto;
        height: 100% !important;
        min-height: 100%;
    }
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > [class*="col-"]:not(.col-12) .banner-cell--text .banner-inner--text,
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper:not(:has(.col-12)) .banner-cell--text .banner-inner--text {
        height: 100% !important;
        min-height: 100%;
        box-sizing: border-box;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain .banner-base-image,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none .banner-base-image {
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain .banner-base-image {
        object-fit: contain !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none .banner-base-image {
        object-fit: none !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none {
        height: auto !important;
        min-height: 0 !important;
        flex: 0 0 auto !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain .banner-inner,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none .banner-inner,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain.banner-cell-height-auto,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none.banner-cell-height-auto,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-contain.banner-cell-height-auto .banner-inner,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-none.banner-cell-height-auto .banner-inner {
        height: auto !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-cover {
        height: 100% !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-cover .banner-inner {
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-cover .banner-inner img,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-fit-cover .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        object-fit: cover !important;
        object-position: center;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-right-column {
        height: auto !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-right-column:not(.banner-stack-rows) .banner-cell {
        flex: none !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-stack-rows .banner-half-height.banner-fit-cover {
        flex: 1 1 0 !important;
        height: 100% !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner {
        height: 100% !important;
        min-height: 0 !important;
        aspect-ratio: auto !important;
        overflow: hidden;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-video-overlay--auto {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        height: auto;
        display: block;
        background: transparent;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-video-overlay--auto iframe,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-video-overlay--auto video {
        width: 100% !important;
        height: auto !important;
        object-fit: contain;
        display: block;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-video-overlay--auto iframe {
        aspect-ratio: 16 / 9;
    }
}


.banner-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: 20px;
    color: white;
    z-index: 4;
    pointer-events: none;
}

.banner-overlay--dark {
    background: linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0.15));
}

.banner-overlay--light {
    background: linear-gradient(to top, rgba(255,255,255,0.85), rgba(255,255,255,0.2));
    color: #212529;
}

.banner-overlay--gradient {
    background: linear-gradient(135deg, rgba(0,0,0,0.55), rgba(0,0,0,0.05));
}

.banner-overlay--none {
    background: transparent;
}

.banner-content {
    width: 100%;
    max-width: 100%;
}

.banner-content--center,
.banner-content--center-vertical {
    margin: auto;
    text-align: center;
}

.banner-content--top-left { align-self: flex-start; justify-self: flex-start; text-align: left; margin-right: auto; margin-bottom: auto; }
.banner-content--top-center { align-self: flex-start; margin: 0 auto auto; text-align: center; }
.banner-content--top-right { align-self: flex-start; margin-left: auto; margin-bottom: auto; text-align: right; }
.banner-content--middle-left { align-self: center; margin-right: auto; text-align: left; }
.banner-content--middle-right { align-self: center; margin-left: auto; text-align: right; }
.banner-content--bottom-left { align-self: flex-end; margin-right: auto; margin-top: auto; text-align: left; }
.banner-content--bottom-center { align-self: flex-end; margin: auto auto 0; text-align: center; }
.banner-content--bottom-right { align-self: flex-end; margin-left: auto; margin-top: auto; text-align: right; }

.banner-cell--text .banner-inner--text,
.banner-cell--container .banner-inner--container {
    display: flex;
    width: 100%;
    min-height: 120px;
    padding: 24px;
    box-sizing: border-box;
}

/* Text cells: block alignment comes from inline editor (not Content Position setting) */
.banner-cell--text .banner-inner--text {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    text-align: initial;
}

.banner-text-pos-center .banner-inner--text,
.banner-text-pos-center .banner-inner--container,
.banner-text-pos-center-vertical .banner-inner--text,
.banner-text-pos-center-vertical .banner-inner--container {
    align-items: center;
    justify-content: center;
    text-align: center;
}

.banner-text-pos-top-left .banner-inner--text,
.banner-text-pos-top-left .banner-inner--container { align-items: flex-start; justify-content: flex-start; text-align: left; }
.banner-text-pos-top-center .banner-inner--text,
.banner-text-pos-top-center .banner-inner--container { align-items: flex-start; justify-content: center; text-align: center; }
.banner-text-pos-top-right .banner-inner--text,
.banner-text-pos-top-right .banner-inner--container { align-items: flex-start; justify-content: flex-end; text-align: right; }
.banner-text-pos-middle-left .banner-inner--text,
.banner-text-pos-middle-left .banner-inner--container { align-items: center; justify-content: flex-start; text-align: left; }
.banner-text-pos-middle-right .banner-inner--text,
.banner-text-pos-middle-right .banner-inner--container { align-items: center; justify-content: flex-end; text-align: right; }
.banner-text-pos-bottom-left .banner-inner--text,
.banner-text-pos-bottom-left .banner-inner--container { align-items: flex-end; justify-content: flex-start; text-align: left; }
.banner-text-pos-bottom-center .banner-inner--text,
.banner-text-pos-bottom-center .banner-inner--container { align-items: flex-end; justify-content: center; text-align: center; }
.banner-text-pos-bottom-right .banner-inner--text,
.banner-text-pos-bottom-right .banner-inner--container { align-items: flex-end; justify-content: flex-end; text-align: right; }

.banner-text-content {
    width: 100%;
    max-width: 100%;
}

.banner-inner--text .banner-text-content p,
.banner-inner--text .banner-text-content div,
.banner-inner--text .banner-text-content li,
.banner-inner--text .banner-text-content td,
.banner-inner--text .banner-text-content th,
.banner-inner--text .banner-text-content h1,
.banner-inner--text .banner-text-content h2,
.banner-inner--text .banner-text-content h3,
.banner-inner--text .banner-text-content h4,
.banner-inner--text .banner-text-content h5,
.banner-inner--text .banner-text-content h6,
.banner-inner--text .banner-text-content h1 span,
.banner-inner--text .banner-text-content h2 span,
.banner-inner--text .banner-text-content h3 span,
.banner-inner--text .banner-text-content h4 span,
.banner-inner--text .banner-text-content h5 span,
.banner-inner--text .banner-text-content h6 span {
    background-color: transparent !important;
    background-image: none !important;
}

/* Centered lists: shrink-wrap so bullets sit beside the text, not on the far edge */
.banner-text-pos-center .banner-text-content ul,
.banner-text-pos-center .banner-text-content ol,
.banner-text-pos-center-vertical .banner-text-content ul,
.banner-text-pos-center-vertical .banner-text-content ol,
.banner-text-pos-top-center .banner-text-content ul,
.banner-text-pos-top-center .banner-text-content ol,
.banner-text-pos-bottom-center .banner-text-content ul,
.banner-text-pos-bottom-center .banner-text-content ol,
.banner-text-content[style*="text-align: center"] ul,
.banner-text-content[style*="text-align:center"] ul,
.banner-text-content[style*="text-align: center"] ol,
.banner-text-content[style*="text-align:center"] ol,
.banner-text-content [style*="text-align: center"] ul,
.banner-text-content [style*="text-align:center"] ul,
.banner-text-content [style*="text-align: center"] ol,
.banner-text-content [style*="text-align:center"] ol {
    display: inline-block;
    width: auto;
    max-width: 100%;
    text-align: left;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25em;
    list-style-position: outside;
    vertical-align: top;
}

.banner-text-pos-top-right .banner-text-content ul,
.banner-text-pos-top-right .banner-text-content ol,
.banner-text-pos-middle-right .banner-text-content ul,
.banner-text-pos-middle-right .banner-text-content ol,
.banner-text-pos-bottom-right .banner-text-content ul,
.banner-text-pos-bottom-right .banner-text-content ol,
.banner-text-content[style*="text-align: right"] ul,
.banner-text-content[style*="text-align:right"] ul,
.banner-text-content[style*="text-align: right"] ol,
.banner-text-content[style*="text-align:right"] ol,
.banner-text-content [style*="text-align: right"] ul,
.banner-text-content [style*="text-align:right"] ul,
.banner-text-content [style*="text-align: right"] ol,
.banner-text-content [style*="text-align:right"] ol {
    display: inline-block;
    width: auto;
    max-width: 100%;
    text-align: left;
    margin-left: auto;
    margin-right: 0;
    padding-left: 1.25em;
    list-style-position: outside;
    vertical-align: top;
}

.banner-text-content ul[style*="text-align: center"],
.banner-text-content ul[style*="text-align:center"],
.banner-text-content ol[style*="text-align: center"],
.banner-text-content ol[style*="text-align:center"] {
    display: inline-block;
    width: auto;
    max-width: 100%;
    text-align: left;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25em;
    list-style-position: outside;
    vertical-align: top;
}

.banner-text-content ul[style*="text-align: right"],
.banner-text-content ul[style*="text-align:right"],
.banner-text-content ol[style*="text-align: right"],
.banner-text-content ol[style*="text-align:right"] {
    display: inline-block;
    width: auto;
    max-width: 100%;
    text-align: left;
    margin-left: auto;
    margin-right: 0;
    padding-left: 1.25em;
    list-style-position: outside;
    vertical-align: top;
}

.banner-text-content ul.inline-rich-align-left,
.banner-text-content ol.inline-rich-align-left {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-left: 0;
    margin-right: auto;
    padding-left: 1.25em;
    list-style-position: outside;
    text-align: left;
}

.banner-text-content ul.inline-rich-align-center,
.banner-text-content ol.inline-rich-align-center {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25em;
    list-style-position: outside;
    text-align: left;
}

.banner-text-content ul.inline-rich-align-right,
.banner-text-content ol.inline-rich-align-right {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: 0;
    padding-left: 1.25em;
    list-style-position: outside;
    text-align: left;
}

.banner-text-content .inline-embed-inline {
    display: inline-block;
    vertical-align: middle;
    max-width: 100%;
    line-height: normal;
}

.banner-text-content .inline-embed-inline img {
    display: inline-block;
    vertical-align: middle;
    max-width: 100%;
    height: auto;
}

.banner-text-content .inline-embed-media:not(.inline-embed-inline):not(.inline-embed-video) {
    display: block;
    width: fit-content;
    max-width: 100%;
}

.banner-text-content .inline-embed-media.inline-rich-align-center {
    margin-left: auto;
    margin-right: auto;
}

.banner-text-content .inline-embed-media.inline-rich-align-right {
    margin-left: auto;
    margin-right: 0;
}

.banner-text-content .inline-embed-media.inline-rich-align-left {
    margin-left: 0;
    margin-right: auto;
}

.banner-text-content .inline-embed-media,
.banner-text-content img {
    max-width: 100%;
    height: auto;
}

.banner-text-pos-center .banner-text-content .inline-embed-media,
.banner-text-pos-center-vertical .banner-text-content .inline-embed-media,
.banner-text-pos-top-center .banner-text-content .inline-embed-media,
.banner-text-pos-bottom-center .banner-text-content .inline-embed-media,
.banner-text-pos-center .banner-text-content img:not(.banner-edit-btn img),
.banner-text-pos-center-vertical .banner-text-content img:not(.banner-edit-btn img),
.banner-text-pos-top-center .banner-text-content img:not(.banner-edit-btn img),
.banner-text-pos-bottom-center .banner-text-content img:not(.banner-edit-btn img) {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: block;
}

.banner-text-pos-top-right .banner-text-content .inline-embed-media,
.banner-text-pos-middle-right .banner-text-content .inline-embed-media,
.banner-text-pos-bottom-right .banner-text-content .inline-embed-media,
.banner-text-pos-top-right .banner-text-content img:not(.banner-edit-btn img),
.banner-text-pos-middle-right .banner-text-content img:not(.banner-edit-btn img),
.banner-text-pos-bottom-right .banner-text-content img:not(.banner-edit-btn img) {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: 0;
    display: block;
}

.banner-text-pos-top-left .banner-text-content .inline-embed-media,
.banner-text-pos-middle-left .banner-text-content .inline-embed-media,
.banner-text-pos-bottom-left .banner-text-content .inline-embed-media,
.banner-text-pos-top-left .banner-text-content img:not(.banner-edit-btn img),
.banner-text-pos-middle-left .banner-text-content img:not(.banner-edit-btn img),
.banner-text-pos-bottom-left .banner-text-content img:not(.banner-edit-btn img) {
    width: fit-content;
    max-width: 100%;
    margin-left: 0;
    margin-right: auto;
    display: block;
}

.banner-text-pos-center .banner-text-content .inline-embed-video.ratio,
.banner-text-pos-center-vertical .banner-text-content .inline-embed-video.ratio,
.banner-text-pos-top-center .banner-text-content .inline-embed-video.ratio,
.banner-text-pos-bottom-center .banner-text-content .inline-embed-video.ratio {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.banner-text-pos-top-right .banner-text-content .inline-embed-video.ratio,
.banner-text-pos-middle-right .banner-text-content .inline-embed-video.ratio,
.banner-text-pos-bottom-right .banner-text-content .inline-embed-video.ratio {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: 0;
}

.banner-text-pos-top-left .banner-text-content .inline-embed-video.ratio,
.banner-text-pos-middle-left .banner-text-content .inline-embed-video.ratio,
.banner-text-pos-bottom-left .banner-text-content .inline-embed-video.ratio {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: auto;
}

.banner-text-pos-top-left .banner-base-image,
.banner-text-pos-top-left .banner-inner > img,
.banner-text-pos-top-left .banner-video-player { object-position: left top !important; }
.banner-text-pos-top-center .banner-base-image,
.banner-text-pos-top-center .banner-inner > img,
.banner-text-pos-top-center .banner-video-player { object-position: center top !important; }
.banner-text-pos-top-right .banner-base-image,
.banner-text-pos-top-right .banner-inner > img,
.banner-text-pos-top-right .banner-video-player { object-position: right top !important; }
.banner-text-pos-middle-left .banner-base-image,
.banner-text-pos-middle-left .banner-inner > img,
.banner-text-pos-middle-left .banner-video-player { object-position: left center !important; }
.banner-text-pos-center .banner-base-image,
.banner-text-pos-center .banner-inner > img,
.banner-text-pos-center .banner-video-player,
.banner-text-pos-center-vertical .banner-base-image,
.banner-text-pos-center-vertical .banner-inner > img,
.banner-text-pos-center-vertical .banner-video-player { object-position: center center !important; }
.banner-text-pos-middle-right .banner-base-image,
.banner-text-pos-middle-right .banner-inner > img,
.banner-text-pos-middle-right .banner-video-player { object-position: right center !important; }
.banner-text-pos-bottom-left .banner-base-image,
.banner-text-pos-bottom-left .banner-inner > img,
.banner-text-pos-bottom-left .banner-video-player { object-position: left bottom !important; }
.banner-text-pos-bottom-center .banner-base-image,
.banner-text-pos-bottom-center .banner-inner > img,
.banner-text-pos-bottom-center .banner-video-player { object-position: center bottom !important; }
.banner-text-pos-bottom-right .banner-base-image,
.banner-text-pos-bottom-right .banner-inner > img,
.banner-text-pos-bottom-right .banner-video-player { object-position: right bottom !important; }

body.pagebuilder-mode .banner-text-content.inline-editable {
    cursor: text;
    min-height: 1.5em;
}

body.pagebuilder-mode .banner-text-content .inline-rich-button-wrap,
body.pagebuilder-mode .banner-text-content .inline-rich-button {
    pointer-events: auto;
}

body.pagebuilder-mode .banner-text-content.inline-editable:hover {
    outline: 1px dashed rgba(13, 110, 253, 0.55);
    outline-offset: 2px;
}

body.pagebuilder-mode .banner-overlay-text-editable.inline-editable {
    cursor: text;
    pointer-events: auto;
    position: relative;
    z-index: 6;
    min-height: 1.25em;
}

body.pagebuilder-mode .banner-overlay-text-editable.inline-editable:hover {
    outline: 1px dashed rgba(255, 255, 255, 0.65);
    outline-offset: 2px;
}

body.pagebuilder-mode .banner-overlay-text-editable.inline-editing-active {
    outline: 2px dashed #0d6efd !important;
    outline-offset: 2px;
}

body.pagebuilder-mode .banner-overlay-button-editable.inline-editable {
    cursor: pointer;
    pointer-events: auto;
    position: relative;
    z-index: 6;
}

body.pagebuilder-mode .banner-overlay-button-editable.inline-editable:hover {
    outline: 2px dashed rgba(255, 255, 255, 0.85);
    outline-offset: 2px;
}

body.pagebuilder-mode .banner-overlay-button-editable.inline-rich-button-selected {
    outline: 2px dashed #0d6efd !important;
    outline-offset: 2px;
}

.banner-overlay .btn.banner-overlay-btn-shape-pill,
.banner-overlay a.btn.banner-overlay-btn-shape-pill {
    border-radius: 25px !important;
}

.banner-overlay .btn.banner-overlay-btn-shape-rounded,
.banner-overlay a.btn.banner-overlay-btn-shape-rounded {
    border-radius: 8px !important;
}

.banner-overlay .btn.banner-overlay-btn-shape-square,
.banner-overlay a.btn.banner-overlay-btn-shape-square {
    border-radius: 0 !important;
}

.banner-overlay a.btn[data-button-style="custom"][data-button-bg-color],
.banner-overlay a.btn-primary[data-button-style="custom"][data-button-bg-color] {
    --bs-btn-bg: var(--banner-btn-bg);
    --bs-btn-border-color: var(--banner-btn-border, var(--banner-btn-bg));
    --bs-btn-hover-bg: var(--banner-btn-bg);
    --bs-btn-hover-border-color: var(--banner-btn-border, var(--banner-btn-bg));
    --bs-btn-active-bg: var(--banner-btn-bg);
    --bs-btn-active-border-color: var(--banner-btn-border, var(--banner-btn-bg));
    background-color: var(--banner-btn-bg) !important;
    border-color: var(--banner-btn-border, var(--banner-btn-bg)) !important;
}

.banner-overlay a.btn[data-button-style="custom"][data-button-text-color],
.banner-overlay a.btn-primary[data-button-style="custom"][data-button-text-color] {
    --bs-btn-color: var(--banner-btn-text);
    --bs-btn-hover-color: var(--banner-btn-text);
    --bs-btn-active-color: var(--banner-btn-text);
    color: var(--banner-btn-text) !important;
}

.banner-overlay a.btn[data-button-style="primary"],
.banner-overlay a.btn-primary:not([data-button-style="custom"]) {
    background-color: #000000 !important;
    border-color: #000000 !important;
    color: #ffffff !important;
}

.banner-overlay a.btn[data-button-style="primary"]:hover,
.banner-overlay a.btn-primary:not([data-button-style="custom"]):hover {
    background-color: #222222 !important;
    border-color: #222222 !important;
    color: #ffffff !important;
}

body.pagebuilder-mode .banner-cell.banner-cell-editing {
    z-index: 20;
}

body:not(.pagebuilder-mode) .banner-overlay-title.banner-overlay-field-empty,
body:not(.pagebuilder-mode) .banner-overlay-subtitle.banner-overlay-field-empty,
body:not(.pagebuilder-mode) .banner-overlay-title:empty,
body:not(.pagebuilder-mode) .banner-overlay-subtitle:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body:not(.pagebuilder-mode) .banner-overlay-inline-placeholder {
    display: none !important;
}

.banner-overlay-inline-placeholder {
    opacity: 0.75;
    font-style: italic;
    display: inline-block;
    min-width: 3rem;
    pointer-events: none;
}

body.pagebuilder-mode .banner-overlay-title .banner-overlay-inline-placeholder {
    font-size: max(1rem, 1em) !important;
    line-height: 1.35;
}

body.pagebuilder-mode .banner-overlay-subtitle .banner-overlay-inline-placeholder {
    font-size: max(0.875rem, 1em) !important;
    line-height: 1.4;
}

body.pagebuilder-mode .banner-overlay-title.banner-overlay-field-empty,
body.pagebuilder-mode .banner-overlay-subtitle.banner-overlay-field-empty {
    display: block !important;
}

body.pagebuilder-mode .banner-overlay-title.banner-overlay-text-editable,
body.pagebuilder-mode .banner-overlay-subtitle.banner-overlay-text-editable {
    pointer-events: auto;
    cursor: text;
    min-height: 1.25em;
}

body.pagebuilder-mode .banner-text-content.inline-editing-active {
    outline: 2px dashed #0d6efd;
    outline-offset: 2px;
}

body.pagebuilder-mode .banner-cell--text.banner-cell-editing {
    z-index: 20;
}

body.pagebuilder-mode .banner-cell--container {
    overflow: visible;
}

body.pagebuilder-mode .banner-cell--container .banner-inner--container {
    overflow: visible;
}

body.pagebuilder-mode .banner-cell--container .container-column .block-admin-wrapper {
    position: relative;
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
}

.banner-cell-container-wrap {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.banner-cell-container-header {
    display: none;
    margin-bottom: 15px;
    padding: 8px 12px;
    background: #007bff;
    color: #fff;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 600;
}

.banner-cell-container-column {
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

body.pagebuilder-mode .banner-cell--container .banner-inner--container {
    padding: 0;
    align-items: stretch;
    justify-content: stretch;
}

body.pagebuilder-mode .banner-cell--container .banner-cell-container-wrap {
    min-height: 0;
    padding: 8px;
    border: 2px dashed #dee2e6;
    border-radius: 8px;
    background: #f8f9fa;
}

body.pagebuilder-mode .banner-cell--container .banner-cell-container-header {
    display: block !important;
}

body.pagebuilder-mode .banner-cell--container .container-column-empty-placeholder,
body.pagebuilder-mode .banner-cell--container .add-block-to-container {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body.pagebuilder-mode .banner-cell--container .container-column {
    min-height: 100px;
    padding: 6px;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    margin-bottom: 0;
    background: #fff;
    flex: 1 1 auto;
}

body.pagebuilder-mode .banner-cell--container .container-column-empty-placeholder {
    min-height: 100px !important;
    flex: 1 1 auto;
}

body.pagebuilder-mode .banner-cell--container .add-block-to-container {
    min-height: 36px !important;
}

body.pagebuilder-add-block-modal-open.pagebuilder-mode .banner-cell--container .banner-cell-container-header,
body.pagebuilder-add-block-modal-open.pagebuilder-mode .banner-cell--container .container-column-empty-placeholder,
body.pagebuilder-add-block-modal-open.pagebuilder-mode .banner-cell--container .add-block-to-container {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body.pagebuilder-add-block-modal-open.pagebuilder-mode .banner-cell--container .banner-cell-container-wrap {
    z-index: 0 !important;
}

.banner-cell--container .container-column > *:not(.container-column-empty-placeholder):not(.add-block-to-container) {
    visibility: visible !important;
    opacity: 1 !important;
    max-width: 100%;
    min-width: 0;
}

.banner-cell-container-blocks {
    width: 100%;
}

.banner-cell-hover-zoom:hover .banner-base-image,
.banner-cell-hover-zoom:hover .banner-inner img {
    transform: scale(1.05);
    transition: transform 0.35s ease;
}

.banner-cell-hover-fade:hover {
    opacity: 0.92;
    transition: opacity 0.35s ease;
}

.banner-cell-hover-scale:hover .banner-base-image,
.banner-cell-hover-scale:hover .banner-inner img {
    transform: scale(1.08);
    transition: transform 0.35s ease;
}

.banner-cell-hover-slide:hover .banner-overlay {
    transform: translateY(-6px);
    transition: transform 0.35s ease;
}

.banner-overlay h3,
.banner-overlay h3.banner-overlay-title {
    margin-bottom: 10px;
    font-size: 1rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
    line-height: 1.35;
}

.banner-overlay p,
.banner-overlay p.banner-overlay-subtitle {
    margin-bottom: 15px;
    font-size: 0.875rem;
    line-height: 1.4;
    text-transform: none;
}

.banner-overlay .btn,
.banner-overlay .btn-primary,
.banner-overlay a.btn,
.banner-overlay a.btn-primary {
    pointer-events: auto;
    position: relative;
    z-index: 5;
    border: none !important;
    padding: 10px 20px !important;
    border-radius: 25px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
}

.banner-overlay .btn:hover,
.banner-overlay .btn-primary:hover,
.banner-overlay a.btn:hover,
.banner-overlay a.btn-primary:hover {
    transform: translateY(-2px);
}

.banner-edit-btn {
    position: absolute;
    top: 33.33%;
    left: 10px;
    transform: translateY(-50%);
    background: #28a745;
    color: white;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: none; /* Hidden by default */
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
    z-index: 10;
}

/* Show edit buttons only in PageBuilder mode */
body.pagebuilder-mode .banner-edit-btn {
    display: flex;
}

.banner-edit-btn:hover {
    background: #218838;
    transform: translateY(-50%) scale(1.1);
}

.banner-edit-btn i {
    font-size: 14px;
}

body.pagebuilder-mode .banner-col-wrapper {
    position: relative;
}

body.pagebuilder-mode .banner-block-container {
    position: relative;
    overflow: visible;
}

body.pagebuilder-mode .banner-block-row {
    position: relative;
    overflow: visible;
}

body.pagebuilder-mode .banner-block-container--height-auto-desktop > .banner-block-row:not(.banner-split-row),
body.pagebuilder-mode .banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) {
    aspect-ratio: auto !important;
    height: auto !important;
    align-items: stretch !important;
}

body.pagebuilder-mode .banner-block-container--height-auto-desktop > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
body.pagebuilder-mode .banner-block-container--height-auto-desktop > .banner-block-row:not(.banner-split-row) > [class*="col-"],
body.pagebuilder-mode .banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
body.pagebuilder-mode .banner-block-container--height-auto-mobile > .banner-block-row:not(.banner-split-row) > [class*="col-"] {
    height: auto !important;
    align-self: stretch !important;
}

body.pagebuilder-mode .banner-block-container[data-banner-block-id] > .banner-block-row.banner-block-row--resizing:not(.banner-split-row),
body.pagebuilder-mode .banner-block-container[data-banner-block-id] > .row.banner-block-row.banner-block-row--resizing:not(.banner-split-row) {
    display: flex !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    align-items: stretch !important;
    aspect-ratio: auto !important;
    min-height: var(--banner-live-resize-height, 120px) !important;
    height: var(--banner-live-resize-height, auto) !important;
}

body.pagebuilder-mode .banner-block-container[data-banner-block-id] > .banner-block-row.banner-split-row.banner-block-row--resizing,
body.pagebuilder-mode .banner-block-container[data-banner-block-id] > .row.banner-block-row.banner-split-row.banner-block-row--resizing {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    aspect-ratio: auto !important;
    min-height: var(--banner-live-resize-height, 120px) !important;
    height: var(--banner-live-resize-height, auto) !important;
}

body.pagebuilder-mode .banner-block-row--resizing:not(.banner-split-row) {
    display: flex !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    align-items: stretch !important;
}

body.pagebuilder-mode .banner-block-row--resizing.banner-split-row {
    display: grid !important;
    aspect-ratio: auto !important;
}

body.pagebuilder-mode .banner-block-row--resizing:not(.banner-split-row) > .banner-col-wrapper,
body.pagebuilder-mode .banner-block-row--resizing:not(.banner-split-row) > [class*="col-"] {
    flex: 0 0 auto !important;
    max-width: none !important;
    width: auto !important;
    grid-column: auto !important;
    grid-row: auto !important;
    align-self: stretch !important;
    min-height: 0 !important;
}

body.pagebuilder-mode .banner-block-row--resizing.banner-split-row > .banner-col-wrapper,
body.pagebuilder-mode .banner-block-row--resizing.banner-split-row > [class*="col-"] {
    align-self: stretch !important;
    min-height: 0 !important;
    height: 100% !important;
}

body.pagebuilder-mode .banner-block-row--resizing .banner-stack-rows {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
}

body.pagebuilder-mode .banner-block-row--resizing .banner-full-height,
body.pagebuilder-mode .banner-block-row--resizing .banner-half-height,
body.pagebuilder-mode .banner-block-row--resizing .banner-large {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
}

body.pagebuilder-mode .banner-block-row--resizing .banner-fit-cover .banner-inner {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

body.pagebuilder-mode .banner-block-row--resizing .banner-fit-cover .banner-inner img,
body.pagebuilder-mode .banner-block-row--resizing .banner-fit-cover .banner-base-image {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
}

body.pagebuilder-mode .banner-column-resize-handle {
    position: absolute;
    top: 0;
    left: 0;
    width: 12px;
    min-height: 24px;
    cursor: col-resize;
    z-index: 100050;
    background: transparent;
    touch-action: none;
    pointer-events: auto !important;
}

body.pagebuilder-mode .layout-header-blocks .block-admin-wrapper[data-block-slug="Banner"],
body.pagebuilder-mode .layout-header-blocks .block-admin-wrapper[data-block-type="banner"],
body.pagebuilder-mode .layout-footer-blocks .block-admin-wrapper[data-block-slug="Banner"],
body.pagebuilder-mode .layout-footer-blocks .block-admin-wrapper[data-block-type="banner"],
body.pagebuilder-mode .main-content > .block-admin-wrapper[data-block-slug="Banner"],
body.pagebuilder-mode .main-content > .block-admin-wrapper[data-block-type="banner"] {
    overflow: visible !important;
}

body.pagebuilder-mode .banner-column-resize-handle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 4px;
    height: 36px;
    border-radius: 4px;
    background: #28a745;
    opacity: 0.65;
    transition: opacity 0.15s ease, background 0.15s ease;
}

body.pagebuilder-mode .banner-column-resize-handle:hover::after,
body.pagebuilder-mode .banner-column-resizing .banner-column-resize-handle::after {
    opacity: 1;
    background: #1e7e34;
}

body.pagebuilder-mode .banner-block-height-handle {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 56px;
    height: 14px;
    cursor: ns-resize;
    z-index: 100051;
    touch-action: none;
    pointer-events: auto !important;
}

body.pagebuilder-mode .banner-block-height-handle::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 36px;
    height: 4px;
    border-radius: 4px;
    background: #28a745;
    opacity: 0.65;
}

body.pagebuilder-mode .banner-block-height-handle:hover::after,
body.pagebuilder-mode .banner-block-height-resizing .banner-block-height-handle::after {
    opacity: 1;
    background: #1e7e34;
}

body.pagebuilder-mode .banner-stack-rows {
    position: relative;
}

body.pagebuilder-mode .banner-stack-row-resize-handle {
    position: absolute;
    left: 0;
    width: 100%;
    height: 12px;
    cursor: row-resize;
    z-index: 100050;
    background: transparent;
    touch-action: none;
    pointer-events: auto !important;
}

body.pagebuilder-mode .banner-stack-row-resize-handle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 36px;
    height: 4px;
    border-radius: 4px;
    background: #28a745;
    opacity: 0.65;
    transition: opacity 0.15s ease, background 0.15s ease;
}

body.pagebuilder-mode .banner-stack-row-resize-handle:hover::after,
body.pagebuilder-mode .banner-stack-row-resizing .banner-stack-row-resize-handle::after {
    opacity: 1;
    background: #1e7e34;
}

body.pagebuilder-mode.banner-column-resizing {
    user-select: none;
    cursor: col-resize;
}

body.pagebuilder-mode.banner-column-resizing .block-admin-wrapper[data-block-slug="Banner"],
body.pagebuilder-mode.banner-column-resizing .block-admin-wrapper[data-block-type="banner"],
body.pagebuilder-mode.banner-block-height-resizing .block-admin-wrapper[data-block-slug="Banner"],
body.pagebuilder-mode.banner-block-height-resizing .block-admin-wrapper[data-block-type="banner"],
body.pagebuilder-mode.banner-stack-row-resizing .block-admin-wrapper[data-block-slug="Banner"],
body.pagebuilder-mode.banner-stack-row-resizing .block-admin-wrapper[data-block-type="banner"],
body.pagebuilder-mode.banner-live-resizing .block-admin-wrapper.banner-block-wrapper--live-resize,
body.pagebuilder-mode .block-admin-wrapper.banner-block-wrapper--live-resize {
    background-color: transparent !important;
    border-color: transparent !important;
}

body.pagebuilder-mode .banner-block-container--live-resize.banner-block-container--height-auto-desktop .banner-cell.banner-fit-cover,
body.pagebuilder-mode .banner-block-container--live-resize.banner-block-container--height-auto-desktop .banner-full-height,
body.pagebuilder-mode .banner-block-container--live-resize.banner-block-container--height-auto-desktop .banner-half-height,
body.pagebuilder-mode .banner-block-container--live-resize.banner-block-container--height-auto-desktop .banner-large,
body.pagebuilder-mode.banner-column-resizing .banner-block-container--height-auto-desktop .banner-cell.banner-fit-cover,
body.pagebuilder-mode.banner-column-resizing .banner-block-container--height-auto-desktop .banner-full-height,
body.pagebuilder-mode.banner-column-resizing .banner-block-container--height-auto-desktop .banner-half-height,
body.pagebuilder-mode.banner-column-resizing .banner-block-container--height-auto-desktop .banner-large {
    height: 100% !important;
    min-height: 0 !important;
}

body.pagebuilder-mode .banner-block-container--live-resize.banner-block-container--height-auto-desktop .banner-fit-cover .banner-inner,
body.pagebuilder-mode.banner-column-resizing .banner-block-container--height-auto-desktop .banner-fit-cover .banner-inner,
body.pagebuilder-mode .banner-block-row--resizing .banner-fit-cover .banner-inner {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    aspect-ratio: auto !important;
    background: #fff !important;
}

body.pagebuilder-mode .banner-block-container--live-resize .banner-fit-cover .banner-inner img,
body.pagebuilder-mode .banner-block-container--live-resize .banner-fit-cover .banner-base-image,
body.pagebuilder-mode.banner-column-resizing .banner-fit-cover .banner-inner img,
body.pagebuilder-mode.banner-column-resizing .banner-fit-cover .banner-base-image,
body.pagebuilder-mode .banner-block-row--resizing .banner-fit-cover .banner-inner img,
body.pagebuilder-mode .banner-block-row--resizing .banner-fit-cover .banner-base-image {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
}

body.pagebuilder-mode .banner-block-container--live-resize.banner-block-container--height-auto-desktop.banner-layout-1-2 > .banner-block-row,
body.pagebuilder-mode .banner-block-container--live-resize.banner-block-container--height-auto-desktop.banner-layout-2-1 > .banner-block-row,
body.pagebuilder-mode.banner-column-resizing .banner-block-container--height-auto-desktop.banner-layout-1-2 > .banner-block-row,
body.pagebuilder-mode.banner-column-resizing .banner-block-container--height-auto-desktop.banner-layout-2-1 > .banner-block-row {
    align-items: stretch !important;
}

body.pagebuilder-mode.banner-block-height-resizing {
    user-select: none;
    cursor: ns-resize;
}

body.pagebuilder-mode.banner-cell-resizing {
    user-select: none;
}

body.pagebuilder-mode .banner-cell.resizable-banner-cell {
    overflow: visible;
}

body.pagebuilder-mode .banner-cell.resizable-banner-cell .resize-handle {
    position: absolute;
    z-index: 25;
    touch-action: none;
    pointer-events: auto;
    opacity: 0;
    transition: opacity 0.15s ease;
}

body.pagebuilder-mode .banner-cell.resizable-banner-cell:hover .resize-handle,
body.pagebuilder-mode .banner-cell.resizable-banner-cell.banner-cell-resizing .resize-handle {
    opacity: 1;
}

body.pagebuilder-mode .banner-cell .resize-handle::after {
    content: "";
    position: absolute;
    background: #28a745;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85);
}

body.pagebuilder-mode .banner-cell .resize-handle-n,
body.pagebuilder-mode .banner-cell .resize-handle-s {
    left: 50%;
    width: 28px;
    height: 12px;
    transform: translateX(-50%);
    cursor: ns-resize;
}

body.pagebuilder-mode .banner-cell .resize-handle-n {
    top: -6px;
}

body.pagebuilder-mode .banner-cell .resize-handle-s {
    bottom: -6px;
}

body.pagebuilder-mode .banner-cell .resize-handle-n::after,
body.pagebuilder-mode .banner-cell .resize-handle-s::after {
    left: 50%;
    top: 50%;
    width: 14px;
    height: 4px;
    transform: translate(-50%, -50%);
}

body.pagebuilder-mode .banner-cell .resize-handle-e,
body.pagebuilder-mode .banner-cell .resize-handle-w {
    top: 50%;
    width: 12px;
    height: 28px;
    transform: translateY(-50%);
    cursor: ew-resize;
}

body.pagebuilder-mode .banner-cell .resize-handle-e {
    right: -6px;
}

body.pagebuilder-mode .banner-cell .resize-handle-w {
    left: -6px;
}

body.pagebuilder-mode .banner-cell .resize-handle-e::after,
body.pagebuilder-mode .banner-cell .resize-handle-w::after {
    left: 50%;
    top: 50%;
    width: 4px;
    height: 14px;
    transform: translate(-50%, -50%);
}

body.pagebuilder-mode .banner-cell .resize-handle-ne,
body.pagebuilder-mode .banner-cell .resize-handle-nw,
body.pagebuilder-mode .banner-cell .resize-handle-se,
body.pagebuilder-mode .banner-cell .resize-handle-sw {
    width: 14px;
    height: 14px;
}

body.pagebuilder-mode .banner-cell .resize-handle-ne {
    top: -4px;
    right: -4px;
    cursor: nesw-resize;
}

body.pagebuilder-mode .banner-cell .resize-handle-nw {
    top: -4px;
    left: -4px;
    cursor: nwse-resize;
}

body.pagebuilder-mode .banner-cell .resize-handle-se {
    bottom: -4px;
    right: -4px;
    cursor: nesw-resize;
}

body.pagebuilder-mode .banner-cell .resize-handle-sw {
    bottom: -4px;
    left: -4px;
    cursor: nwse-resize;
}

body.pagebuilder-mode .banner-cell .resize-handle-ne::after,
body.pagebuilder-mode .banner-cell .resize-handle-nw::after,
body.pagebuilder-mode .banner-cell .resize-handle-se::after,
body.pagebuilder-mode .banner-cell .resize-handle-sw::after {
    left: 50%;
    top: 50%;
    width: 8px;
    height: 8px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
}

/* Banner block container — outer margins come from --banner-margin-* on the element */
.banner-block-container {
    padding: 0 !important;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Critical layout: zero Bootstrap gutters + CSS grid (inline so production works without theme CSS sync) */
.banner-block-container:not([data-mobile-layout="carousel"]) .row,
.banner-block-container[data-mobile-layout="carousel"] .row {
    --bs-gutter-x: 0 !important;
    --bs-gutter-y: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--banner-col-gap, 0px);
    row-gap: var(--banner-row-gap, 0px);
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
    height: auto;
    align-items: stretch;
}

@media (max-width: 768px) {
    /* After grid rule above — carousel must win when banner.css loads last on storefront */
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row),
    .banner-block-container[data-mobile-layout="carousel"] > .row.banner-block-row:not(.banner-split-row) {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        overscroll-behavior-x: contain;
        touch-action: pan-x pan-y;
        grid-template-columns: none !important;
    }
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row)::-webkit-scrollbar,
    .banner-block-container[data-mobile-layout="carousel"] > .row.banner-block-row:not(.banner-split-row)::-webkit-scrollbar {
        display: none;
    }
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container[data-mobile-layout="carousel"] > .row.banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"] > .row.banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
        grid-column: auto !important;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        min-width: 0 !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="1"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="1"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="1"] > .row.banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="1"] > .row.banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="2"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="2"] > .row.banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="2"] > .row.banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
        width: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
        max-width: calc((100% - var(--banner-col-gap, 0px)) / 2) !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="3"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="3"] > .row.banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="3"] > .row.banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
        width: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
        max-width: calc((100% - (2 * var(--banner-col-gap, 0px))) / 3) !important;
    }
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="4"] > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="4"] > .row.banner-block-row:not(.banner-split-row) > [class*="col-"],
    .banner-block-container[data-mobile-layout="carousel"][data-mobile-columns="4"] > .row.banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        flex-basis: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
        width: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
        max-width: calc((100% - (3 * var(--banner-col-gap, 0px))) / 4) !important;
    }
    .banner-block-container[data-mobile-layout="carousel"] .banner-cell:hover {
        transform: none;
    }
}

.banner-block-container .row > [class*="col-"] {
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    grid-column: span 12;
    display: flex;
    flex-direction: column;
    align-self: stretch;
    min-height: 0;
}

.banner-block-container .banner-col-wrapper {
    grid-column: span 12;
}

@media (min-width: 769px) {
    .banner-block-container .banner-col-wrapper[data-banner-grid-span] {
        grid-column: span var(--banner-grid-span, 12) !important;
    }

    .banner-block-container .banner-layout-6x1 > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper {
        grid-column: span var(--banner-grid-span, 2) !important;
    }

    .banner-block-container .banner-layout-6x1.banner-block-container--height-auto-desktop > .banner-block-row:not(.banner-split-row) {
        aspect-ratio: auto !important;
        height: auto !important;
        align-items: start;
    }

    .banner-block-container .banner-layout-6x1.banner-block-container--height-auto-desktop > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper,
    .banner-block-container .banner-layout-6x1.banner-block-container--height-auto-desktop > .banner-block-row:not(.banner-split-row) > [class*="col-"] {
        height: auto !important;
        align-self: start !important;
    }
}

@media (max-width: 768px) {
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row,
    .banner-block-container.banner-block-container--height-auto-desktop > .banner-block-row {
        aspect-ratio: auto !important;
        height: auto !important;
    }
    .banner-block-container.banner-block-container--height-auto-mobile .banner-col-wrapper,
    .banner-block-container.banner-block-container--height-auto-mobile > .banner-block-row > [class*="col-"],
    .banner-block-container.banner-block-container--height-auto-desktop .banner-col-wrapper,
    .banner-block-container.banner-block-container--height-auto-desktop > .banner-block-row > [class*="col-"] {
        height: auto !important;
        align-self: auto !important;
    }
    .banner-block-container .banner-layout-1-2 .banner-full-height,
    .banner-block-container .banner-layout-1-2 .banner-half-height,
    .banner-block-container .banner-layout-2-1 .banner-half-height,
    .banner-block-container .banner-layout-2-1 .banner-large,
    .banner-block-container .banner-layout-1-2 .banner-right-column,
    .banner-block-container .banner-layout-2-1 .banner-right-column {
        height: auto !important;
        min-height: 0 !important;
    }
    .banner-block-container .banner-layout-1-2 .banner-full-height.banner-fit-cover .banner-inner,
    .banner-block-container .banner-layout-1-2 .banner-half-height.banner-fit-cover .banner-inner,
    .banner-block-container .banner-layout-2-1 .banner-half-height.banner-fit-cover .banner-inner,
    .banner-block-container .banner-layout-2-1 .banner-large.banner-fit-cover .banner-inner {
        aspect-ratio: 16 / 9;
        height: auto !important;
    }
}

.banner-block-container .row > [class*="col-"] > .banner-cell {
    flex: 1 1 auto;
}

.banner-block-container .banner-cell-height-auto:not(.banner-fit-contain):not(.banner-fit-none) {
    height: 100% !important;
    min-height: 100%;
    align-self: stretch;
    flex: 1 1 auto;
}

.banner-block-container .banner-cell-height-auto.banner-fit-contain,
.banner-block-container .banner-cell-height-auto.banner-fit-none {
    height: auto !important;
    min-height: 0 !important;
    align-self: auto;
    flex: 0 0 auto;
}

.banner-block-container .banner-cell-height-auto:not(.banner-fit-contain):not(.banner-fit-none) .banner-inner,
.banner-block-container .banner-cell-height-auto:not(.banner-fit-contain):not(.banner-fit-none).banner-cell--text .banner-inner--text,
.banner-block-container .banner-cell-height-auto:not(.banner-fit-contain):not(.banner-fit-none).banner-cell--container .banner-inner--container {
    height: 100% !important;
    min-height: 100%;
    flex: 1 1 auto;
}

.banner-block-container .banner-cell-height-auto.banner-fit-contain .banner-inner,
.banner-block-container .banner-cell-height-auto.banner-fit-none .banner-inner {
    height: auto !important;
    min-height: 0 !important;
    flex: 0 0 auto;
}

.banner-block-container .banner-cell-height-content {
    height: auto !important;
    min-height: 0 !important;
    flex: 0 0 auto;
}

.banner-block-container .banner-cell-height-content .banner-inner,
.banner-block-container .banner-cell-height-content.banner-cell--text .banner-inner--text,
.banner-block-container .banner-cell-height-content.banner-cell--container .banner-inner--container {
    height: auto !important;
    min-height: 0 !important;
}

.banner-block-container .banner-cell-height-custom {
    height: var(--banner-cell-custom-height) !important;
    min-height: var(--banner-cell-custom-height) !important;
    flex: 0 0 auto;
    align-self: stretch;
}

.banner-block-container .banner-cell-height-custom .banner-inner,
.banner-block-container .banner-cell-height-custom.banner-cell--text .banner-inner--text,
.banner-block-container .banner-cell-height-custom.banner-cell--container .banner-inner--container {
    height: 100% !important;
    min-height: 100% !important;
}

.banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-cell-height-custom,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-cell-height-custom,
.banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-cell.banner-cell-height-custom {
    height: var(--banner-cell-custom-height) !important;
    min-height: var(--banner-cell-custom-height) !important;
}

.banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-cell-height-custom .banner-inner,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-cell-height-custom .banner-inner,
.banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-cell-height-custom .banner-inner--text,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-cell-height-custom .banner-inner--text,
.banner-block-container.banner-block-container--height-auto-desktop .banner-cell.banner-cell-height-custom .banner-inner--container,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell.banner-cell-height-custom .banner-inner--container,
.banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-cell.banner-cell-height-custom .banner-inner,
.banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-cell.banner-cell-height-custom .banner-inner--text {
    height: 100% !important;
    min-height: 100% !important;
}

.banner-block-container.banner-block-container--height-auto-desktop .banner-cell-height-auto,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell-height-auto {
    height: 100% !important;
    min-height: 100%;
}

.banner-block-container.banner-block-container--height-auto-desktop .banner-cell-height-auto .banner-inner,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell-height-auto .banner-inner,
.banner-block-container.banner-block-container--height-auto-desktop .banner-cell-height-auto .banner-inner--text,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell-height-auto .banner-inner--text,
.banner-block-container.banner-block-container--height-auto-desktop .banner-cell-height-auto .banner-inner--container,
.banner-block-container.banner-block-container--height-auto-mobile .banner-cell-height-auto .banner-inner--container {
    height: 100% !important;
    min-height: 100% !important;
}

.banner-block-container .row > .col-6 {
    grid-column: span 6;
}

@media (min-width: 768px) {
    .banner-block-container .row > .col-md-3 {
        grid-column: span 3;
    }

    .banner-block-container .row > .col-md-4 {
        grid-column: span 4;
    }

    .banner-block-container .row > .col-md-6 {
        grid-column: span 6;
    }

    .banner-block-container .row > .col-md-8 {
        grid-column: span 8;
    }

    .banner-block-container .row > .col-md-7 {
        grid-column: span 7;
    }

    .banner-block-container .row > .col-md-5 {
        grid-column: span 5;
    }
}

.banner-block-container .row.banner-right-column {
    display: flex !important;
    flex-direction: column;
    grid-template-columns: unset;
    justify-content: flex-start;
    gap: var(--banner-row-gap, 0px);
}

.banner-block-container .row.banner-stack-rows {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: var(--banner-row-gap, 0px);
    width: 100%;
    min-height: 0;
    height: 100%;
    flex: 1 1 auto;
}

.banner-block-container .row.banner-stack-rows > [class*="col-"] {
    grid-column: 1;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    min-height: 0;
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
}

@media (min-width: 769px) {
    .banner-block-container .banner-split-row--1-2,
    .banner-block-container .banner-split-row--2-1 {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
        aspect-ratio: auto !important;
        height: auto !important;
        align-items: stretch !important;
    }

    .banner-block-container .banner-split-row--1-2 .banner-col-wrapper[data-banner-col-index="0"],
    .banner-block-container .banner-split-row--2-1 .banner-col-wrapper[data-banner-col-index="1"] {
        grid-row: 1 / span 2;
        display: flex;
        flex-direction: column;
        min-height: 0;
        align-self: stretch;
    }

    .banner-block-container .banner-split-row--1-2 .banner-col-wrapper[data-banner-col-index="1"],
    .banner-block-container .banner-split-row--2-1 .banner-col-wrapper[data-banner-col-index="0"] {
        grid-row: 1 / span 2;
        display: flex;
        flex-direction: column;
        min-height: 0;
        align-self: stretch;
    }

    .banner-block-container .banner-split-row--1-2 .banner-full-height,
    .banner-block-container .banner-split-row--2-1 .banner-large {
        flex: 1 1 auto;
        height: 100% !important;
        min-height: 0;
    }

    .banner-block-container .banner-split-row--1-2 .banner-half-height,
    .banner-block-container .banner-split-row--2-1 .banner-half-height {
        flex: 1 1 auto;
        height: 100% !important;
        min-height: 0;
    }

    .banner-block-container .banner-split-row--1-2 .banner-full-height .banner-inner,
    .banner-block-container .banner-split-row--1-2 .banner-half-height .banner-inner,
    .banner-block-container .banner-split-row--2-1 .banner-large .banner-inner,
    .banner-block-container .banner-split-row--2-1 .banner-half-height .banner-inner {
        height: 100% !important;
        min-height: 0;
    }

    .banner-block-container .banner-split-row--1-2 .banner-fit-cover .banner-inner img,
    .banner-block-container .banner-split-row--1-2 .banner-fit-cover .banner-base-image,
    .banner-block-container .banner-split-row--2-1 .banner-fit-cover .banner-inner img,
    .banner-block-container .banner-split-row--2-1 .banner-fit-cover .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center;
    }

    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-1-2 .banner-split-row--1-2,
    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-2-1 .banner-split-row--2-1 {
        grid-template-rows: minmax(0, auto) !important;
    }

    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-1-2 .banner-col-wrapper,
    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-2-1 .banner-col-wrapper {
        grid-row: 1 !important;
        align-self: stretch;
    }

    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-1-2 .banner-stack-rows,
    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-2-1 .banner-stack-rows {
        grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
        height: 100% !important;
        min-height: 0;
    }

    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-1-2 .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner,
    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-2-1 .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner {
        aspect-ratio: auto !important;
        height: 100% !important;
        min-height: 0;
        overflow: hidden;
    }

    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-1-2 .banner-full-height.banner-fit-cover .banner-inner,
    .banner-block-container.banner-block-container--height-auto-desktop.banner-layout-2-1 .banner-large.banner-fit-cover .banner-inner {
        height: 100% !important;
        min-height: 100%;
        aspect-ratio: auto !important;
    }
}

@media (max-width: 768px) {
    .banner-block-container .banner-split-row--1-2,
    .banner-block-container .banner-split-row--2-1 {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: none !important;
        grid-template-rows: none !important;
        aspect-ratio: auto !important;
        height: auto !important;
        align-items: stretch !important;
    }

    .banner-block-container .banner-split-row--1-2 > .banner-col-wrapper,
    .banner-block-container .banner-split-row--2-1 > .banner-col-wrapper,
    .banner-block-container .banner-split-row--1-2 > .col-md-8,
    .banner-block-container .banner-split-row--1-2 > .col-md-4,
    .banner-block-container .banner-split-row--2-1 > .col-md-8,
    .banner-block-container .banner-split-row--2-1 > .col-md-4 {
        display: flex !important;
        flex-direction: column !important;
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        min-height: 0 !important;
        align-self: stretch !important;
    }

    .banner-block-container .banner-split-row .banner-stack-rows,
    .banner-block-container .banner-split-row .banner-right-column,
    .banner-block-container .banner-split-row .banner-left-column {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        grid-template-columns: none !important;
        grid-template-rows: none !important;
        flex: 0 0 auto !important;
        gap: var(--banner-row-gap, 0px);
    }

    .banner-block-container .banner-split-row .banner-stack-rows > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        grid-column: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .banner-block-container .banner-split-row--1-2 .banner-cell,
    .banner-block-container .banner-split-row--2-1 .banner-cell {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        flex: 0 0 auto !important;
    }

    .banner-block-container .banner-split-row .banner-full-height,
    .banner-block-container .banner-split-row .banner-half-height,
    .banner-block-container .banner-split-row .banner-large {
        height: auto !important;
        min-height: 0 !important;
        flex: 0 0 auto !important;
    }

    .banner-block-container .banner-split-row .banner-stack-rows .banner-half-height.banner-fit-cover,
    .banner-block-container .banner-split-row .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-split-row .banner-stack-rows .banner-half-height.banner-fit-cover,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-split-row .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner {
        flex: 0 0 auto !important;
        height: auto !important;
        min-height: 0 !important;
    }

    .banner-block-container .banner-split-row .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner,
    .banner-block-container.banner-block-container--height-auto-mobile .banner-split-row .banner-stack-rows .banner-half-height.banner-fit-cover .banner-inner {
        aspect-ratio: 16 / 9 !important;
        overflow: hidden;
    }

    .banner-block-container .banner-split-row .banner-cell.banner-fit-cover .banner-inner,
    .banner-block-container .banner-split-row .banner-full-height.banner-fit-cover .banner-inner,
    .banner-block-container .banner-split-row .banner-half-height.banner-fit-cover .banner-inner,
    .banner-block-container .banner-split-row .banner-large.banner-fit-cover .banner-inner {
        aspect-ratio: 16 / 9 !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: hidden;
    }

    .banner-block-container .banner-split-row .banner-fit-cover .banner-inner img,
    .banner-block-container .banner-split-row .banner-fit-cover .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center;
    }

    .banner-block-container.banner-block-container--fixed-height-mobile.banner-layout-1-2 .banner-split-row .banner-cell,
    .banner-block-container.banner-block-container--fixed-height-mobile.banner-layout-2-1 .banner-split-row .banner-cell,
    .banner-block-container.banner-block-container--fixed-height-mobile.banner-layout-1-2 .banner-split-row .banner-full-height,
    .banner-block-container.banner-block-container--fixed-height-mobile.banner-layout-1-2 .banner-split-row .banner-half-height,
    .banner-block-container.banner-block-container--fixed-height-mobile.banner-layout-2-1 .banner-split-row .banner-half-height,
    .banner-block-container.banner-block-container--fixed-height-mobile.banner-layout-2-1 .banner-split-row .banner-large {
        height: auto !important;
        min-height: 0 !important;
    }
}

/* Ensure banner cells fill their containers completely */
.banner-block-container .banner-cell {
    padding: 0 !important;
    border: none;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

@media (min-width: 769px) {
    .banner-block-container.banner-block-container--height-auto-desktop .banner-cell:not(.banner-cell-height-custom) {
        height: auto !important;
        min-height: auto !important;
    }
}

@media (max-width: 768px) {
    .banner-block-container.banner-block-container--height-auto-mobile .banner-cell:not(.banner-cell-height-custom) {
        height: auto !important;
        min-height: auto !important;
    }
}

/* Specific styling for 1-2 / 2-1 layout alignment */
@media (min-width: 769px) {
    .banner-block-container.banner-block-container--fixed-height-desktop.banner-layout-1-2,
    .banner-block-container.banner-block-container--fixed-height-desktop.banner-layout-2-1 {
        --banner-stack-total: calc(var(--banner-stack-base, auto) * 2 + var(--banner-row-gap, 0px));
        --banner-stack-half: calc((var(--banner-stack-total) - var(--banner-row-gap, 0px)) / 2);
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop > .banner-block-row,
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop > .banner-block-row {
        align-items: stretch;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-col-wrapper,
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-col-wrapper {
        display: flex;
        flex-direction: column;
        align-self: stretch;
        min-height: 0;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="0"] > .banner-full-height {
        flex: 1 1 auto;
        height: var(--banner-stack-total) !important;
        min-height: 0;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="1"] {
        min-height: var(--banner-stack-total);
    }
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="0"] {
        min-height: var(--banner-stack-total);
    }
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="0"] > .row {
        flex: 1 1 auto;
        display: flex !important;
        flex-direction: column !important;
        height: var(--banner-stack-total) !important;
        min-height: 0;
    }
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="0"] > .row > [class*="col-"] {
        flex: 1 1 0;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="1"] > .banner-large {
        flex: 1 1 auto;
        height: var(--banner-stack-total) !important;
        min-height: 0;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-right-column,
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="0"] > .row {
        flex: 1 1 auto;
        display: flex !important;
        flex-direction: column !important;
        height: var(--banner-stack-total) !important;
        min-height: 0;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-right-column > [class*="col-"],
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-col-wrapper[data-banner-col-index="0"] > .row > [class*="col-"] {
        flex: 1 1 0;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-half-height,
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-half-height {
        flex: 1 1 0;
        height: auto !important;
        min-height: 0;
        max-height: none;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-half-height.banner-fit-cover .banner-inner,
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-half-height.banner-fit-cover .banner-inner {
        height: 100% !important;
        min-height: 0;
        aspect-ratio: auto !important;
        overflow: hidden;
    }
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-half-height.banner-fit-cover .banner-inner img,
    .banner-block-container .banner-layout-1-2.banner-block-container--fixed-height-desktop .banner-half-height.banner-fit-cover .banner-base-image,
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-half-height.banner-fit-cover .banner-inner img,
    .banner-block-container .banner-layout-2-1.banner-block-container--fixed-height-desktop .banner-half-height.banner-fit-cover .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        min-height: 0;
        object-fit: cover !important;
        object-position: center;
    }
    .banner-block-container .banner-layout-2x1.banner-block-container--fixed-height-desktop .banner-col-wrapper {
        display: flex;
        flex-direction: column;
        align-self: stretch;
    }
    .banner-block-container .banner-layout-2x1.banner-block-container--fixed-height-desktop .banner-col-wrapper > .banner-cell {
        flex: 1 1 auto;
        height: var(--banner-fixed-height, auto) !important;
        min-height: 0;
    }
}

.banner-block-container .banner-right-column {
    height: auto;
}



.banner-block-container .banner-album-mosaic-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    flex-direction: unset;
    height: 100%;
    align-content: stretch;
}

.banner-block-container .banner-album-hero .banner-inner,
.banner-block-container .banner-album-feature .banner-inner {
    min-height: 220px;
}

.banner-block-container .banner-album-thumb .banner-inner {
    min-height: 120px;
}

@media (min-width: 769px) {
    .banner-block-container .banner-layout-mosaic-5 > .row {
        align-items: stretch;
    }
    .banner-block-container .banner-layout-mosaic-5 .banner-album-feature {
        height: 100%;
    }
}

/* Mobile responsive - auto height unless fixed mobile height is set */
@media (max-width: 768px) {
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) > .banner-block-row:not(.banner-split-row) > [class*="col-"]:not(.col-12) .banner-cell--text,
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper .banner-cell--text {
        height: 100% !important;
        min-height: 100%;
    }
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) > .banner-block-row:not(.banner-split-row) > [class*="col-"]:not(.col-12) .banner-cell--text .banner-inner--text,
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) > .banner-block-row:not(.banner-split-row) > .banner-col-wrapper .banner-cell--text .banner-inner--text {
        height: 100% !important;
        min-height: 100%;
    }
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-cell,
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-vertical,
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-large,
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-full-height,
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-half-height {
        height: auto !important;
    }
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-inner {
        height: auto !important;
    }
    .banner-block-container :not(.banner-block-container--fixed-height-mobile) .banner-cell:not(.banner-fit-cover) .banner-inner img {
        height: auto !important;
        object-fit: contain !important;
    }
}

@media (max-width: 576px) {
    .banner-overlay {
        padding: 12px 14px;
    }

    .banner-overlay h3,
    .banner-overlay h3.banner-overlay-title {
        font-size: 0.9rem;
        line-height: 1.25;
        margin-bottom: 5px;
    }

    .banner-overlay p,
    .banner-overlay p.banner-overlay-subtitle {
        font-size: 0.78rem;
        line-height: 1.35;
        margin-bottom: 8px;
    }

    .banner-overlay .btn,
    .banner-overlay .btn-primary,
    .banner-overlay a.btn,
    .banner-overlay a.btn-primary {
        padding: 8px 16px !important;
        border: none !important;
        font-size: 0.7rem;
        letter-spacing: 0.4px;
    }
}

/* PageBuilder live resize must override split-layout auto heights above */
@media (min-width: 769px) {
    body.pagebuilder-mode .banner-block-container.banner-block-container--fixed-height-desktop .banner-split-row--1-2,
    body.pagebuilder-mode .banner-block-container.banner-block-container--fixed-height-desktop .banner-split-row--2-1,
    body.pagebuilder-mode .banner-block-container .banner-block-container.banner-block-height-resizing .banner-split-row--1-2,
    body.pagebuilder-mode .banner-block-container .banner-block-container.banner-block-height-resizing .banner-split-row--2-1,
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-split-row--1-2,
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-split-row--2-1,
    body.pagebuilder-mode .banner-block-container > .banner-block-row.banner-block-row--resizing.banner-split-row--1-2,
    body.pagebuilder-mode .banner-block-container > .banner-block-row.banner-block-row--resizing.banner-split-row--2-1 {
        height: var(--banner-live-resize-height, 100%) !important;
        min-height: var(--banner-live-resize-height, 120px) !important;
        align-items: stretch !important;
    }

    body.pagebuilder-mode .banner-block-container.banner-block-container--fixed-height-desktop .banner-stack-rows,
    body.pagebuilder-mode .banner-block-container .banner-block-container.banner-block-height-resizing .banner-stack-rows,
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-stack-rows {
        height: 100% !important;
        min-height: 0 !important;
    }

    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize.banner-block-container--height-auto-desktop .banner-cell:not(.banner-cell-height-custom),
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-cell.banner-fit-cover,
    body.pagebuilder-mode .banner-block-container > .banner-block-row.banner-block-row--resizing .banner-cell.banner-fit-cover,
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-full-height,
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-half-height,
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-large {
        height: 100% !important;
        min-height: 0 !important;
    }

    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-fit-cover .banner-inner,
    body.pagebuilder-mode .banner-block-container > .banner-block-row.banner-block-row--resizing .banner-fit-cover .banner-inner {
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        aspect-ratio: auto !important;
        background: #fff !important;
    }

    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-fit-cover .banner-inner img,
    body.pagebuilder-mode .banner-block-container.banner-block-container--live-resize .banner-fit-cover .banner-base-image,
    body.pagebuilder-mode .banner-block-container > .banner-block-row.banner-block-row--resizing .banner-fit-cover .banner-inner img,
    body.pagebuilder-mode .banner-block-container > .banner-block-row.banner-block-row--resizing .banner-fit-cover .banner-base-image {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        object-fit: cover !important;
        object-position: center !important;
    }

    body.pagebuilder-mode .banner-block-container.banner-block-container--fixed-height-desktop .banner-cell.banner-cell-height-custom,
    body.pagebuilder-mode .banner-block-container .banner-block-container.banner-block-height-resizing .banner-cell.banner-cell-height-custom,
    body.pagebuilder-mode .banner-block-container .banner-block-container.banner-block-height-resizing .banner-cell.banner-cell-resizing {
        height: var(--banner-cell-custom-height) !important;
        min-height: var(--banner-cell-custom-height) !important;
    }
}


/* STOREFRONT_FIXED_HEIGHT_VARS */
/* Storefront fixed heights via CSS variables set on each .banner-block-container */
@media (min-width: 769px) {
    .banner-block-container.banner-block-container--fixed-height-desktop:not(.banner-layout-1-2):not(.banner-layout-2-1) .banner-cell {
        height: var(--banner-fixed-height) !important;
    }
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-inner {
        height: 100% !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-fit-cover .banner-inner img,
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-fit-cover .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        min-height: 0 !important;
        object-fit: cover !important;
        object-position: center;
    }
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-fit-contain .banner-inner img,
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-fit-contain .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
        object-position: center;
    }
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-vertical {
        height: var(--banner-vertical-height, var(--banner-fixed-height)) !important;
    }
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-full-height,
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-large {
        height: var(--banner-full-height, var(--banner-fixed-height)) !important;
    }
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-half-height {
        height: var(--banner-half-height, calc(var(--banner-fixed-height) / 2)) !important;
    }
    .banner-block-container.banner-block-container--fixed-height-desktop .banner-right-column {
        height: var(--banner-full-height, var(--banner-fixed-height));
    }
}
@media (max-width: 768px) {
    .banner-block-container.banner-block-container--fixed-height-mobile .banner-cell {
        height: var(--banner-fixed-height-mobile, var(--banner-fixed-height)) !important;
    }
    .banner-block-container.banner-block-container--fixed-height-mobile .banner-inner {
        height: 100% !important;
        min-height: 0 !important;
    }
    .banner-block-container.banner-block-container--fixed-height-mobile .banner-fit-cover .banner-inner img,
    .banner-block-container.banner-block-container--fixed-height-mobile .banner-fit-cover .banner-base-image {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center;
    }
}
