/* Render the consent panel in its final position instead of animating top/left. */
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-center.cmplz-show {
    animation: none !important;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: opacity .15s;
}
@media (max-width: 425px) {
    #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-center.cmplz-show {
        left: 0;
        transform: translateY(-50%);
    }
}
/* Reserve gallery/thumbnail geometry before FlexSlider initializes. */
.woocommerce div.product div.images .woocommerce-product-gallery__image {
    overflow: hidden;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image > a > img {
    width: 100%;
    height: auto;
    object-fit: contain;
}
.woocommerce div.product div.images .flex-control-thumbs img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1;
    object-fit: contain;
}
.woocommerce div.product div.images .flex-control-thumbs {
    min-height: 0;
}
iframe[data-gb-reco-src] { min-height: 225px; }
#gb-chat-launcher { position: fixed; right: 18px; bottom: 18px; z-index: 9990; max-width: 280px; padding: 0; }
#gb-chat-launcher[hidden] { display: none; }
#gb-chat-launcher button { padding: 12px 18px; border: 0; border-radius: 24px; background: #0a55a9; color: #fff; font: inherit; box-shadow: 0 2px 12px #0002; cursor: pointer; }
#gb-chat-launcher p, #gb-chat-launcher a { background: white; color: #16334c; padding: 8px; margin: 0; }
#gb-chat-launcher button:focus-visible { outline: 3px solid #092f65; outline-offset: 3px; }
.gb-hero { position: relative; width: 100%; background: #e7edf1; aspect-ratio: 1600 / 760; overflow: hidden; }
.gb-hero-slide { position: absolute; inset: 0; }
.gb-hero-slide[hidden], .gb-hero-controls[hidden] { display: none; }
.gb-hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.gb-hero-copy { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; padding: 20px 65px; margin: 0; color: #fff; text-shadow: 0 2px 8px #0009; font-family: 'Exo 2', sans-serif; font-size: clamp(17px, 3.75vw, 60px); line-height: 1.2; }
.gb-hero-controls { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; padding: 2px 8px; border-radius: 20px; background: #0008; color: white; }
.gb-hero-controls button { border: 0; background: transparent; color: #fff; font-size: 26px; padding: 0 12px; min-height: 36px; cursor: pointer; }
.gb-hero-controls button:focus-visible { outline: 2px solid white; }
.gb-hero-position { font: 12px/1.2 sans-serif; white-space: nowrap; }
@media (max-width: 767px) { .gb-hero-controls { bottom: 5px; } .gb-hero-copy { padding: 15px 20px 40px; } }

/* Legacy Elementor sections are outside Elementor's native container lazy loader. */
.gb-lazy-backgrounds .gb-background-deferred:not(.gb-background-visible) { background-image: none !important; }

/* The first image must paint before the gallery JavaScript finishes loading. */
.woocommerce div.product div.images.woocommerce-product-gallery { opacity: 1 !important; }
.gb-has-js .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) { display: none; }
/* Reserve the thumbnail rows until FlexSlider inserts the real navigation. */
.gb-has-js .gb-gallery-has-thumbnails:not(:has(.flex-control-thumbs))::after {
    content: '';
    display: block;
    clear: none;
    aspect-ratio: var(--gb-gallery-columns) / var(--gb-gallery-rows);
}

/* FlexSlider widens its strip before assigning slide widths. Keep its canvas stable. */
@supports (container-type: inline-size) {
    .woocommerce-product-gallery { container-type: inline-size; }
    .woocommerce-product-gallery .flex-viewport { height: calc(100cqw / var(--gb-gallery-ratio, 1)) !important; }
    .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image { width: 100cqw !important; }
    .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image > a > img { max-height: calc(100cqw / var(--gb-gallery-ratio, 1)); }
}
