/* Wspolny komponent, niezalezny od motywu strony-corki. */
.cms-karuzela { min-width: 0; max-width: 100%; margin: 24px 0; }
.cms-karuzela:not(.cms-karuzela--gotowa) { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
.cms-karuzela .cms-karuzela__slajd { flex: 0 0 100%; min-width: 0; margin: 0; scroll-snap-align: start; }
.cms-karuzela .cms-karuzela__slajd img { display: block; width: 100%; height: auto; max-width: 100%; object-fit: contain; margin: 0; }
.cms-karuzela .cms-karuzela__slajd a { display: block; }
.cms-karuzela__okno { overflow: hidden; touch-action: pan-y pinch-zoom; }
.cms-karuzela__tor { display: flex; align-items: center; transition: transform .35s ease; }
.cms-karuzela__sterowanie { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin-top: 8px; }
.cms-karuzela__sterowanie button { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; padding: 5px 10px; margin: 0; border: 1px solid #b7bcc2; border-radius: 4px; color: #222; background: #fff; font: inherit; line-height: 1; cursor: pointer; }
.cms-karuzela__sterowanie button:focus-visible { outline: 3px solid #1765b5; outline-offset: 2px; }
.cms-karuzela__kropki { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; }
.cms-karuzela__kropki button { border-color: transparent; font-size: 24px; color: #73777d; }
.cms-karuzela__kropki button[aria-current="true"] { color: #111; background: #e7e9ec; }
.cms-karuzela__sterowanie button:disabled { cursor: default; opacity: .55; }
.cms-karuzela__status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .cms-karuzela__tor { transition: none; } }
