.case .product-banner{position:relative;isolation:isolate}
.product-banner-slide{position:absolute;inset:0;visibility:hidden;opacity:0;transition:opacity .5s ease,visibility .5s;pointer-events:none}
.product-banner-slide.is-active{visibility:visible;opacity:1;pointer-events:auto}
.case .product-banner .text{padding:20px 80px;box-sizing:border-box}
.product-banner .text pre{white-space:pre-wrap}
.product-banner-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;border:0;border-radius:50%;width:44px;height:44px;background:rgba(0,0,0,.3);color:#fff;font-size:32px;line-height:1;cursor:pointer}
.product-banner-prev{left:20px}.product-banner-next{right:20px}
.product-banner-dots{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:12px;z-index:3}
.product-banner-dot{width:12px;height:12px;padding:0;border:1px solid #fff;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer}
.product-banner-dot[aria-current="true"]{background:#fff}
.product-banner button:focus-visible{outline:3px solid #fff;outline-offset:4px}
.product-banner [hidden]{display:none!important}
@media(max-width:767px){.case .product-banner .text{padding:12px 46px}.product-banner-arrow{width:30px;height:30px;font-size:24px}.product-banner-prev{left:8px}.product-banner-next{right:8px}.product-banner-dots{bottom:8px;gap:10px}.product-banner-dot{width:9px;height:9px}.case .product-banner .text .name{font-size:12px;line-height:1.5}.case .product-banner .text .nname{font-size:clamp(14px,3.2vw,24px);line-height:1.5}}
@media(prefers-reduced-motion:reduce){.product-banner-slide{transition:none}}
.case .product-banner .product-banner-slide:nth-child(2){background:#090717}
.case .product-banner .product-banner-slide:nth-child(2) .lh-case-banner-img{object-fit:contain;object-position:center center}

/* Soft crossfade, staggered captions and compact progress indicators. */
.product-banner-slide{transition:opacity .65s cubic-bezier(.22,.61,.36,1),visibility .65s}
.product-banner-slide .text>div{opacity:0;transform:translateY(12px);transition:opacity .4s ease,transform .55s cubic-bezier(.22,.61,.36,1)}
.product-banner-slide.is-active .text>div{opacity:1;transform:translateY(0);transition-delay:.12s}
.product-banner-arrow{width:46px;height:46px;font-size:28px;background:rgba(12,18,45,.24);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);box-shadow:0 4px 18px rgba(0,0,0,.12);transition:background .2s,box-shadow .2s}
.product-banner-arrow:hover{background:rgba(59,40,125,.65);box-shadow:0 4px 22px rgba(0,0,0,.2)}
.product-banner-dots{gap:9px;bottom:20px;align-items:center}
.product-banner-dot{position:relative;width:22px;height:5px;border:0;border-radius:8px;background:rgba(255,255,255,.4);overflow:hidden;transition:width .3s ease,background .3s ease}
.product-banner-dot[aria-current="true"]{width:48px;background:rgba(255,255,255,.35)}
.product-banner-dot[aria-current="true"]:after{content:"";position:absolute;inset:0;background:#fff;border-radius:inherit;transform-origin:left;transform:scaleX(1)}
.product-banner.is-auto .product-banner-dot[aria-current="true"]:after{animation:product-banner-progress 2s linear both}
@keyframes product-banner-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:767px){.product-banner-arrow{width:30px;height:30px;font-size:22px}.product-banner-dots{bottom:10px;gap:7px}.product-banner-dot{width:16px;height:4px}.product-banner-dot[aria-current="true"]{width:34px}}
@media(prefers-reduced-motion:reduce){.product-banner-slide,.product-banner-slide .text>div,.product-banner-dot{transition:none}.product-banner-slide .text>div{transform:none}.product-banner.is-auto .product-banner-dot[aria-current="true"]:after{animation:none}}

/* Keep captions still and crossfade each complete slide together. */
.product-banner-slide{transition:opacity 1.15s cubic-bezier(.4,0,.2,1),visibility 1.15s}
.product-banner-slide .text>div,.product-banner-slide.is-active .text>div{opacity:1;transform:none;transition:none;transition-delay:0s}
@media(prefers-reduced-motion:reduce){.product-banner-slide{transition:none}}
