/* =============================================================
   WP Page Banner — Frontend Styles  v1.0.0
   ============================================================= */

/* ── Banner shell ────────────────────────────────────────────── */
.wpb-banner {
    position: relative;
    width: 100%;
    height: var(--wpb-height, 85vh);
    min-height: var(--wpb-min-height, 400px);
    overflow: hidden;
    box-sizing: border-box;
    background: var(--wpb-bg, var(--brand-color-bg-dark, var(--wpc-surface-3, #1a1a1a)));
}

/* ── Behind-header mode (slides under fixed header) ─────────── */
.wpb-behind-header.wpb-banner {
    margin-top: calc(-1 * var(--whn-h-desk, 0px));
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-behind-header.wpb-banner {
        margin-top: calc(-1 * var(--whn-h-tab, 0px));
    }
}

@media (max-width: 768px) {
    .wpb-behind-header.wpb-banner {
        margin-top: calc(-1 * var(--whn-h-mob, 0px));
    }
}

/* ── Track ───────────────────────────────────────────────────── */
.wpb-track {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* ── Individual slide ────────────────────────────────────────── */
.wpb-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.wpb-slide-overlay-link {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: block;
}

/* ── Fade transition ─────────────────────────────────────────── */
.wpb-transition-fade .wpb-slide {
    opacity: 0;
    transition: opacity 0.7s ease;
    z-index: 0;
}

.wpb-transition-fade .wpb-slide.wpb-active {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}

.wpb-transition-fade .wpb-slide.wpb-leaving {
    z-index: 2;
}

/* ── Slide transition ────────────────────────────────────────── */
.wpb-transition-slide .wpb-slide {
    transform: translateX(100%);
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.wpb-transition-slide .wpb-slide.wpb-active {
    transform: translateX(0);
    pointer-events: auto;
}

.wpb-transition-slide .wpb-slide.wpb-exiting-left   { transform: translateX(-100%); }
.wpb-transition-slide .wpb-slide.wpb-entering-right { transform: translateX(100%); }

/* ── Background ──────────────────────────────────────────────── */
.wpb-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.wpb-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: var(--wpb-slide-img-fit, var(--wpb-img-fit, cover));
    object-position: var(--wpb-slide-img-pos, var(--wpb-img-pos, center center));
    display: block;
    z-index: 1;
}

/* ── Blur background (behind sharp image) ────────────────────── */
.wpb-bg-blur {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transform: scale(1.1);
    z-index: 0;
}

.wpb-bg-blur-tab,
.wpb-bg-blur-mob { display: none; }

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-bg-blur-desk { display: none; }
    .wpb-bg-blur-tab  { display: block; }
}

@media (max-width: 768px) {
    .wpb-bg-blur-desk { display: none; }
    .wpb-bg-blur-tab  { display: none; }
    .wpb-bg-blur-mob  { display: block; }
}

.woocommerce .wpb-banner .wpb-bg-img,
.woocommerce-page .wpb-banner .wpb-bg-img {
    width: 100%;
    height: 100%;
    max-width: none;
}

.wpb-bg-tab { display: none; }
.wpb-bg-mob { display: none; }

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-bg-tab { display: block; }
    .wpb-bg:has(.wpb-bg-tab) .wpb-bg-desk { display: none; }
    .wpb-bg-img { object-position: var(--wpb-slide-img-pos-tab, var(--wpb-slide-img-pos, var(--wpb-img-pos-tab, var(--wpb-img-pos, center center)))); object-fit: var(--wpb-slide-img-fit-tab, var(--wpb-slide-img-fit, var(--wpb-img-fit-tab, var(--wpb-img-fit, cover)))); }
    .wpb-banner {
        height: var(--wpb-height-tab, var(--wpb-height, 75vh));
        min-height: var(--wpb-min-height-tab, var(--wpb-min-height, 360px));
    }
}

@media (max-width: 768px) {
    .wpb-bg-desk { display: none; }
    .wpb-bg-tab  { display: none; }
    .wpb-bg-mob  { display: block; }
    .wpb-bg-mob:not([src])  { display: none; }
    .wpb-bg-mob[src=""]     { display: none; }
    .wpb-bg-img { object-position: var(--wpb-slide-img-pos-mob, var(--wpb-slide-img-pos, var(--wpb-img-pos-mob, var(--wpb-img-pos, center center)))); object-fit: var(--wpb-slide-img-fit-mob, var(--wpb-slide-img-fit, var(--wpb-img-fit-mob, var(--wpb-img-fit, cover)))); }
    .wpb-banner {
        height: var(--wpb-height-mob, var(--wpb-height, 60vh));
        min-height: var(--wpb-min-height-mob, var(--wpb-min-height, 280px));
    }
}

.wpb-bg-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.wpb-bg-poster { z-index: -1; }

/* ── Overlay ─────────────────────────────────────────────────── */
.wpb-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

/* ── Contain mode: constrain text to image area ─────────────── */
.wpb-contain-desk .wpb-content-text,
.wpb-contain-desk .wpb-content-buttons {
    top: var(--wpb-ct-top, 0);
    left: var(--wpb-ct-left, 0);
    width: var(--wpb-ct-w, 100%);
    height: var(--wpb-ct-h, 100%);
    right: auto;
    bottom: auto;
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-contain-tab .wpb-content-text,
    .wpb-contain-tab .wpb-content-buttons {
        top: var(--wpb-ct-top, 0);
        left: var(--wpb-ct-left, 0);
        width: var(--wpb-ct-w, 100%);
        height: var(--wpb-ct-h, 100%);
        right: auto;
        bottom: auto;
    }
}

@media (max-width: 768px) {
    .wpb-contain-mob .wpb-content-text,
    .wpb-contain-mob .wpb-content-buttons {
        top: var(--wpb-ct-top, 0);
        left: var(--wpb-ct-left, 0);
        width: var(--wpb-ct-w, 100%);
        height: var(--wpb-ct-h, 100%);
        right: auto;
        bottom: auto;
    }
}

/* ── Content ─────────────────────────────────────────────────── */
.wpb-content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: 40px 60px;
    z-index: 10;
    box-sizing: border-box;
    justify-content: var(--wpb-pos-j-desk, center);
    align-items: var(--wpb-pos-a-desk, center);
    text-align: var(--wpb-pos-t-desk, center);
    pointer-events: none;
}

.wpb-content .wpb-cta {
    pointer-events: auto;
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-content {
        justify-content: var(--wpb-pos-j-tab, var(--wpb-pos-j-desk, center));
        align-items: var(--wpb-pos-a-tab, var(--wpb-pos-a-desk, center));
        text-align: var(--wpb-pos-t-tab, var(--wpb-pos-t-desk, center));
    }
}

@media (max-width: 768px) {
    .wpb-content {
        justify-content: var(--wpb-pos-j-mob, var(--wpb-pos-j-desk, center));
        align-items: var(--wpb-pos-a-mob, var(--wpb-pos-a-desk, center));
        text-align: var(--wpb-pos-t-mob, var(--wpb-pos-t-desk, center));
    }
}

.wpb-pos-top-left, .wpb-pos-top-center, .wpb-pos-top-right {
    justify-content: flex-start;
    padding-top: 80px;
}
.wpb-pos-middle-left, .wpb-pos-middle-center, .wpb-pos-middle-right {
    justify-content: center;
}
.wpb-pos-bottom-left, .wpb-pos-bottom-center, .wpb-pos-bottom-right {
    justify-content: flex-end;
    padding-bottom: 80px;
}

.wpb-pos-top-left, .wpb-pos-middle-left, .wpb-pos-bottom-left {
    align-items: flex-start;
    text-align: left;
    padding-left: max(60px, 8vw);
}
.wpb-pos-top-center, .wpb-pos-middle-center, .wpb-pos-bottom-center {
    align-items: center;
    text-align: center;
}
.wpb-pos-top-right, .wpb-pos-middle-right, .wpb-pos-bottom-right {
    align-items: flex-end;
    text-align: right;
    padding-right: max(60px, 8vw);
}

.wpb-headline {
    color: var(--wpb-slide-color, #ffffff);
    font-size: clamp(26px, 4.5vw, 64px);
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.01em;
    margin: 0 0 16px;
    max-width: 800px;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
}

.wpb-subtext {
    color: var(--wpb-slide-color, #ffffff);
    font-size: clamp(14px, 1.4vw, 18px);
    font-weight: 400;
    line-height: 1.6;
    margin: 0 0 28px;
    max-width: 560px;
    opacity: 0.9;
    overflow-wrap: break-word;
    word-break: break-word;
}

.wpb-ctas {
    position: relative;
    z-index: 10;
    pointer-events: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: var(--wpb-cta-j-desk, center);
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-ctas {
        justify-content: var(--wpb-cta-j-tab, var(--wpb-cta-j-desk, center));
    }
}

@media (max-width: 768px) {
    .wpb-ctas {
        justify-content: var(--wpb-cta-j-mob, var(--wpb-cta-j-desk, center));
    }
}

.wpb-ctas-below-text {
    display: none;
    margin-top: 8px;
}

@media (min-width: 1024px) {
    .wpb-ctas-below-text.wpb-ctas-below-text-desk {
        display: flex;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-ctas-below-text.wpb-ctas-below-text-tab {
        display: flex;
    }
}

@media (max-width: 768px) {
    .wpb-ctas-below-text.wpb-ctas-below-text-mob {
        display: flex;
    }
}

@media (min-width: 1024px) {
    .wpb-content.wpb-text-hide-desk {
        display: none;
    }
    .wpb-content.wpb-btn-hide-desk {
        display: none;
    }
    .wpb-content.wpb-btn-floating-hide-desk {
        display: none;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-content.wpb-text-hide-tab {
        display: none;
    }
    .wpb-content.wpb-btn-hide-tab {
        display: none;
    }
    .wpb-content.wpb-btn-floating-hide-tab {
        display: none;
    }
}

@media (max-width: 768px) {
    .wpb-content.wpb-text-hide-mob {
        display: none;
    }
    .wpb-content.wpb-btn-hide-mob {
        display: none;
    }
    .wpb-content.wpb-btn-floating-hide-mob {
        display: none;
    }
}

.wpb-pos-top-center .wpb-ctas,
.wpb-pos-middle-center .wpb-ctas,
.wpb-pos-bottom-center .wpb-ctas { justify-content: center; }

.wpb-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 30px;
    min-height: 44px;
    min-width: 44px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
    white-space: nowrap;
}

.wpb-cta-filled {
    background: var(--wpb-cta-bg, var(--wpb-slide-color, #ffffff));
    color: var(--wpb-cta-text, var(--wpb-btn-contrast, #1a1a1a));
    border: 1px solid var(--wpb-cta-bg, var(--wpb-slide-color, #ffffff));
}
.wpb-cta-filled:hover {
    background: var(--wpb-cta-hover-bg, rgba(0, 0, 0, 0.2));
    color: var(--wpb-cta-hover-text, var(--wpb-cta-text, var(--wpb-btn-contrast, #ffffff)));
    border-color: var(--wpb-cta-hover-bg, rgba(0, 0, 0, 0.2));
    opacity: 0.92;
}
.wpb-cta-filled:focus-visible {
    outline: 3px solid -webkit-focus-ring-color;
    outline-offset: 2px;
}

.wpb-cta-outline {
    background: var(--wpb-cta-bg, transparent);
    color: var(--wpb-cta-text, var(--wpb-slide-color, #ffffff));
    border: 1px solid var(--wpb-cta-text, var(--wpb-slide-color, rgba(255,255,255,0.7)));
}
.wpb-cta-outline:hover {
    background: var(--wpb-cta-hover-bg, var(--wpb-slide-color, #ffffff));
    color: var(--wpb-cta-hover-text, var(--wpb-btn-contrast, #1a1a1a));
    border-color: var(--wpb-cta-hover-bg, var(--wpb-slide-color, #ffffff));
    opacity: 1;
}
.wpb-cta-outline:focus-visible {
    outline: 3px solid -webkit-focus-ring-color;
    outline-offset: 2px;
}

/* ── Arrows ──────────────────────────────────────────────────── */
.wpb-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.wpb-arrow svg { display: block; }
.wpb-arrow:hover { background: rgba(255, 255, 255, 0.3); }
.wpb-prev { left: 20px; }
.wpb-next { right: 20px; }

/* ── Dots ─────────────────────────────────────────────────────── */
.wpb-dots {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
    display: flex;
    gap: 7px;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(12, 12, 12, 0.24);
    border: 1px solid rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.wpb-dot {
    position: relative;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.72);
    cursor: pointer;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    transition: background 0.2s ease, transform 0.2s ease, width 0.2s ease, border-color 0.2s ease;
    flex-shrink: 0;
}
.wpb-dot::after {
    content: '';
    position: absolute;
    inset: -8px;
    border-radius: 50%;
}
.wpb-dot:hover { background: rgba(255, 255, 255, 0.74); }
.wpb-dot.wpb-dot-active {
    width: 18px;
    border-radius: 999px;
    background: #fff;
    border-color: #fff;
    transform: none;
}

/* ── Slide Counter ─────────────────────────────────────────────── */
.wpb-slide-counter {
    display: none !important;
}

.wpb-slide-counter-current {
    min-width: 1.5ch;
    text-align: right;
}

.wpb-slide-counter-total {
    min-width: 1.5ch;
    text-align: left;
    opacity: 0.7;
}

/* ── Term overlay (category title / desc) ────────────────────── */
/* .wpb-term-overlay fills the entire banner and acts as a positioning
   context. .wpb-term-scrim is the optional coloured backdrop (radial
   gradient so it fades naturally outward from the text anchor point).
   .wpb-term-content is positioned via left/top % inline styles and is
   always horizontally centred around that anchor via transform. */
.wpb-term-overlay {
    position: absolute;
    inset: 0;
    z-index: 9;
    pointer-events: none;
}

.wpb-term-scrim {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.wpb-term-content {
    position: absolute;
    /* left/top set via inline style as X%/Y% */
    transform: translate(-50%, -50%);
    z-index: 1;
    padding: 16px 28px;
    width: max-content;
    max-width: min(600px, 90vw);
    box-sizing: border-box;
}

.wpb-term-title {
    font-family: var(--wpb-title-ff, inherit);
    font-size: var(--wpb-title-size, 32px);
    font-weight: var(--wpb-title-weight, 700);
    text-transform: var(--wpb-title-transform, none);
    text-align: inherit;
    letter-spacing: var(--wpb-title-ls, 0);
    margin: 0 0 12px;
    line-height: 1.2;
    color: inherit;
    width: fit-content;
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-term-title {
        font-size: var(--wpb-title-size-tab, 28px);
        font-weight: var(--wpb-title-weight-tab, 700);
        text-align: inherit;
        letter-spacing: var(--wpb-title-ls-tab, 0);
    }
}

@media (max-width: 768px) {
    .wpb-term-title {
        font-size: var(--wpb-title-size-mob, 24px);
        font-weight: var(--wpb-title-weight-mob, 700);
        text-align: inherit;
        letter-spacing: var(--wpb-title-ls-mob, 0);
    }
}

.wpb-term-overlay .woocommerce-breadcrumb,
.wpb-term-overlay .woocommerce-breadcrumb a,
.wpb-term-overlay .woocommerce-breadcrumb span {
    color: var(--wpb-breadcrumb-color, #ffffff);
    font-size: var(--wpb-breadcrumb-size, 13px);
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-term-overlay .woocommerce-breadcrumb,
    .wpb-term-overlay .woocommerce-breadcrumb a,
    .wpb-term-overlay .woocommerce-breadcrumb span {
        font-size: var(--wpb-breadcrumb-size-tab, 12px);
    }
}

@media (max-width: 768px) {
    .wpb-term-overlay .woocommerce-breadcrumb,
    .wpb-term-overlay .woocommerce-breadcrumb a,
    .wpb-term-overlay .woocommerce-breadcrumb span {
        font-size: var(--wpb-breadcrumb-size-mob, 11px);
    }
}

.wpb-term-desc {
    margin: 4px 0 0;
    font-size: 14px;
    line-height: 1.5;
    color: rgba(255,255,255,0.88);
    width: fit-content;
}

/* ── Mobile ──────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .wpb-content { padding: 30px 24px; }
    .wpb-content.wpb-pos-top-left,
    .wpb-content.wpb-pos-middle-left,
    .wpb-content.wpb-pos-bottom-left { padding-left: 24px; }
    .wpb-content.wpb-pos-top-right,
    .wpb-content.wpb-pos-middle-right,
    .wpb-content.wpb-pos-bottom-right { padding-right: 24px; }
    .wpb-arrow { width: 44px; height: 44px; }
    .wpb-arrow svg { width: 16px; height: 16px; }
    .wpb-cta { padding: 11px 22px; font-size: 12px; }
    .wpb-term-content { padding: 16px 20px; }
}

/* ── Auto-height full-width mode (image sets banner height) ──── */
.wpb-fill-w-desk { height: auto; min-height: 0; }
.wpb-fill-w-desk.wpb-banner { background: transparent; }
.wpb-fill-w-desk .wpb-track { position: absolute; inset: 0; }
.wpb-fill-w-desk .wpb-bg {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.wpb-fill-w-desk .wpb-bg-img {
    position: static;
    width: 100%;
    height: auto;
    object-fit: unset;
    object-position: center top;
}

/* ── Natural-width mode (image at native size, centered) ────── */
.wpb-fill-nat-desk { height: auto; min-height: 0; width: auto; max-width: 100%; margin: 0 auto; }
.wpb-fill-nat-desk.wpb-banner { background: transparent; }
.wpb-fill-nat-desk .wpb-track { position: absolute; inset: 0; }
.wpb-fill-nat-desk .wpb-bg {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.wpb-fill-nat-desk .wpb-bg-img {
    position: static;
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: unset;
    object-position: center top;
}

.wpb-size-img {
    display: none;
    width: 100%;
    height: auto;
    visibility: hidden;
}
.wpb-size-img:not([src]),
.wpb-size-img[src=""] {
    display: none !important;
}
.wpb-fill-w-desk .wpb-size-img.wpb-size-desk { display: block; }
.wpb-fill-nat-desk .wpb-size-img.wpb-size-desk { display: block; }

@media (min-width: 769px) and (max-width: 1024px) {
    .wpb-size-img.wpb-size-desk { display: none; }
    .wpb-fill-w-tab { height: auto; min-height: 0; }
    .wpb-fill-w-tab.wpb-banner { background: transparent; }
    .wpb-fill-w-tab .wpb-track { position: absolute; inset: 0; }
    .wpb-fill-w-tab .wpb-size-img.wpb-size-tab { display: block; }
    .wpb-fill-w-tab .wpb-bg {
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }
    .wpb-fill-w-tab .wpb-bg-img {
        position: static;
        width: 100%;
        height: auto;
        object-fit: unset;
        object-position: center top;
    }
    .wpb-fill-nat-tab { height: auto; min-height: 0; width: auto; max-width: 100%; margin: 0 auto; }
    .wpb-fill-nat-tab.wpb-banner { background: transparent; }
    .wpb-fill-nat-tab .wpb-track { position: absolute; inset: 0; }
    .wpb-fill-nat-tab .wpb-bg {
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }
    .wpb-fill-nat-tab .wpb-bg-img {
        position: static;
        width: auto;
        height: auto;
        max-width: 100%;
        object-fit: unset;
        object-position: center top;
    }
}

@media (max-width: 768px) {
    .wpb-size-img.wpb-size-desk { display: none; }
    .wpb-size-img.wpb-size-tab  { display: none; }
    .wpb-fill-w-mob { height: auto; min-height: 0; }
    .wpb-fill-w-mob.wpb-banner { background: transparent; }
    .wpb-fill-w-mob .wpb-track { position: absolute; inset: 0; }
    .wpb-fill-w-mob .wpb-size-img.wpb-size-mob { display: block; }
    .wpb-fill-w-mob .wpb-bg {
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }
    .wpb-fill-w-mob .wpb-bg-img {
        position: static;
        width: 100%;
        height: auto;
        object-fit: unset;
        object-position: center top;
    }
    .wpb-fill-nat-mob { height: auto; min-height: 0; width: auto; max-width: 100%; margin: 0 auto; }
    .wpb-fill-nat-mob.wpb-banner { background: transparent; }
    .wpb-fill-nat-mob .wpb-track { position: absolute; inset: 0; }
    .wpb-fill-nat-mob .wpb-bg {
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }
    .wpb-fill-nat-mob .wpb-bg-img {
        position: static;
        width: auto;
        height: auto;
        max-width: 100%;
        object-fit: unset;
        object-position: center top;
    }
}

/* ── Clickable Slide Links ───────────────────────────────────── */
.wpb-slide-clickable {
    cursor: pointer;
    text-decoration: none !important;
}
.wpb-slide-clickable:hover,
.wpb-slide-clickable:focus,
.wpb-slide-clickable:active {
    text-decoration: none !important;
}
.wpb-slide-clickable:focus-visible {
    outline: 3px solid Highlight;
    outline: 3px solid -webkit-focus-ring-color;
    outline-offset: 2px;
}

/* ── Focus visible ─────────────────────────────────────────────── */
.wpb-arrow:focus-visible,
.wpb-dot:focus-visible,
.wpb-cta:focus-visible,
.wpb-slide-overlay-link:focus-visible {
    outline: 3px solid -webkit-focus-ring-color;
    outline-offset: 2px;
}

/* ── Reduced motion ───────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .wpb-banner,
    .wpb-slide,
    .wpb-bg-img,
    .wpb-bg-video,
    .wpb-overlay,
    .wpb-content,
    .wpb-cta,
    .wpb-arrow,
    .wpb-dot {
        transition: none !important;
        animation: none !important;
    }
    .wpb-transition-fade .wpb-slide {
        transition: none !important;
    }
    .wpb-transition-slide .wpb-slide {
        transition: none !important;
    }
}
