/* Shared round dots; HERO alone shows playback progress. Keep touch hit areas. */
.carousel-pagination{--dot-active:#111;--dot-idle:#c4c4c4;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;max-width:100%;color:var(--dot-active)}
.carousel-pagination--light{--dot-active:#fff;--dot-idle:rgba(255,255,255,.48)}
.carousel-pagination .carousel-dot{display:grid;place-items:center;flex:0 0 24px;width:24px;min-width:24px;height:44px;padding:0;border:0;background:none;border-radius:0;color:inherit}
.carousel-pagination .carousel-dot>span{display:block;flex:none;position:static;width:8px;height:8px;min-width:8px;border-radius:50%;background:var(--dot-idle);box-shadow:none;transition:background-color .25s ease,opacity .25s ease}
.carousel-pagination .carousel-dot[aria-pressed="true"]>span{width:9px;height:9px;background:var(--dot-active)}
.carousel-pagination .carousel-dot>span::after{content:none}
.carousel-pagination .carousel-dot:focus-visible{outline:2px solid var(--dot-active);outline-offset:-5px;border-radius:50%}
.hero-controls{left:50%;height:44px}
.hero-pagination{flex-wrap:nowrap}
.hero-pagination.carousel-pagination .carousel-dot{flex-basis:36px;width:36px;min-width:36px}
.hero-pagination.carousel-pagination .carousel-dot[aria-pressed="true"]>span{position:relative;overflow:hidden;width:32px;height:8px;border-radius:999px;background:var(--dot-idle)}
.hero-pagination.carousel-pagination .carousel-dot[aria-pressed="true"]>span::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--dot-active);transform:scaleX(var(--slide-progress,0));transform-origin:left center}
.hero-controls .play-toggle{position:static;margin-left:8px;width:36px;height:44px}
.hero-controls .play-toggle span{width:auto;height:auto}
.product-pagination,.space-pagination,.related-pagination,.studio-pagination,.rail-pagination{margin-top:var(--home-control-gap,24px)}
.space-pagination,.studio-pagination{width:100%}
.related-pagination{width:calc((100% - 48px)/2 + 24px)}
.check-gallery-dots.carousel-pagination{margin-top:12px;width:100%}
.gallery-pagination{margin-top:16px}
.gallery-pagination .carousel-dot>span{box-shadow:0 0 2px #0008}
@media(max-width:767px){.related-pagination{width:100%}}
@media(prefers-reduced-motion:reduce){.carousel-pagination .carousel-dot>span{transition:none}}
/* Only the two opt-in home rails use edge elasticity. Card geometry is intact. */
:is(#product-track,.space-track)[data-rail-spring]{touch-action:pan-y pinch-zoom;scroll-snap-type:none;scroll-behavior:auto;overscroll-behavior-x:contain}
:is(#product-track,.space-track)[data-rail-spring]>:is(.product-card,article){translate:var(--rail-elastic-offset,0px) 0}
.space-track[data-rail-dragging]{cursor:grabbing;user-select:none}
/* Product touch uses the browser's horizontal and vertical gesture handling. */
#product-track[data-rail-native-touch]{touch-action:auto;scroll-snap-type:x mandatory}
#product-track[data-rail-native-touch]:is([data-rail-dragging],[data-rail-animating]){scroll-snap-type:none}
