.dvm-carousel{position:relative}.dvm-carousel-arrow{position:absolute;z-index:2;top:50%;display:grid;place-items:center;width:44px;height:44px;margin:0;border:3px solid var(--i);border-radius:7px;box-shadow:4px 4px 0 var(--i);background:var(--y);color:var(--i);font:900 28px/1 system-ui,sans-serif;touch-action:manipulation;transform:translateY(-50%)}.dvm-carousel-arrow:hover{background:var(--w);transform:translate(-2px,calc(-50% - 2px));box-shadow:6px 6px 0 var(--i)}.dvm-carousel-arrow:focus-visible{outline:3px solid var(--y);outline-offset:4px}.dvm-carousel-prev{left:-18px}.dvm-carousel-next{right:-18px}.dvm-carousel .dvm-rail,.dvm-carousel .dvm-grid{scroll-padding-inline:28px}@media(max-width:700px){.dvm-carousel-arrow{width:44px;height:44px;border-width:2px;box-shadow:3px 3px 0 var(--i);font-size:22px}.dvm-carousel-prev{left:-8px}.dvm-carousel-next{right:-8px}}@media(prefers-reduced-motion:reduce){.dvm-carousel-arrow{transition:none}}
.dvm-carousel-ready .dvm-carousel-viewport{overflow:hidden;padding:3px 9px 16px 2px;touch-action:pan-y pinch-zoom;overscroll-behavior-x:contain}
.dvm-carousel-ready [data-dvm-carousel-track]{display:flex;overflow:visible;scroll-snap-type:none;scroll-behavior:auto;margin:0;padding:0;will-change:transform;cursor:grab}
.dvm-carousel-ready [data-dvm-carousel-track]>.dvm-card{flex:0 0 min(76vw,390px);scroll-snap-align:none}
.dvm-carousel-ready .dvm-grid>.dvm-card{flex-basis:clamp(250px,calc((100% - 48px)/3),390px)}
.dvm-carousel-ready .dvm-carousel-dragging{cursor:grabbing;user-select:none}
.dvm-carousel-ready .dvm-card a:focus-visible{outline:3px solid var(--i);outline-offset:-3px}
.dvm-carousel-arrow[hidden]{display:none}
@media(max-width:640px){.dvm-carousel-ready [data-dvm-carousel-track]{gap:13px}.dvm-carousel-ready [data-dvm-carousel-track]>.dvm-card{flex-basis:min(62vw,280px)}.dvm-carousel-ready .dvm-grid>.dvm-card{flex-basis:min(52vw,220px)}}
/* A finger gesture uses native momentum and keeps the release position. Arrow
   buttons still align to a card deliberately; no touch-end reindex or snap. */
@media(max-width:700px){
  .dvm-home-main .dvm-rail,.dvm-home-main .dvm-grid{scroll-snap-type:none}
  .dvm-home-main .dvm-card{scroll-snap-align:none}
  .dvm-carousel-native .dvm-carousel-viewport{touch-action:auto}
  .dvm-carousel-native [data-dvm-carousel-track]{width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;touch-action:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:none;scroll-behavior:auto;will-change:auto;cursor:auto}
  .dvm-carousel-native [data-dvm-carousel-track]>.dvm-card{scroll-snap-align:none}
}
