/* Interaction-only overrides. Preserve Žilina geometry, colour and typography. */
.carousel,.compact-nav .appnav{scroll-snap-type:none!important;scroll-behavior:auto!important;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.carousel.dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}
.carousel.dragging *{cursor:grabbing!important}
/* Keep the page width stable when a modal or results pane changes overflow. */
@supports(scrollbar-gutter:stable){html{scrollbar-gutter:stable}}
@media(prefers-reduced-motion:reduce){.carousel,.compact-nav .appnav{scroll-behavior:auto!important}.arrival-photo{animation:none!important}}

/* Keep the document on the vertical axis, including iOS Safari.
   Clip on body avoids creating a second scroll container around the sticky header.
   Individual carousels and navigation keep their native horizontal scrolling. */
html{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}
body{width:100%;max-width:100%;min-width:0;overflow-x:clip;overscroll-behavior-x:none}
@supports(overflow:clip){html{overflow-x:clip}}
.shell{width:100%;min-width:0;max-width:100%}
#main,.compact-nav{min-width:0}
.carousel,.compact-nav .appnav,.event-periods,.week-tabs,.day-theme-filters,.mood-filters{overscroll-behavior-x:contain}
