/* ==========================================================================
   Pakiet szablonu ZMiGDP (zmigdp_webpage) – style główne
   WCAG 2.2 AA: kontrasty >= 4.5:1 (tekst) / 3:1 (UI), widoczny fokus,
   cele dotykowe >= 24 px (zalecane 44 px), reflow do 320 px, prefers-reduced-motion.
   ========================================================================== */

:root {
    /* Paleta oparta na parseta.org.pl (niebieski #006EA6, zielony), skorygowana pod kontrast */
    --c-blue-900: #06385a;
    --c-blue-700: #0b5c8c;   /* biały na nim: 7.2:1 */
    --c-blue-500: #006ea6;   /* oryginalny niebieski serwisu, na białym 5.5:1 */
    --c-green-900: #14532d;
    --c-green-700: #00662a;  /* biały na nim: 7.2:1 */
    --c-lime: #b8e06a;       /* akcent tylko na ciemnym tle (8:1 na #06385a) */
    --c-sun: #ffd34d;        /* akcent fokusu / elementów na ciemnym tle */
    --c-text: #2b2a2a;
    --c-muted: #4a4949;
    --c-bg: #ffffff;
    --c-bg-soft: #f3f8f5;
    --c-bg-tint: #eaf4ee;
    --c-border: #6d6d6d;
    --c-border-soft: #cfd9d3;
    --c-focus: #0b3d91;
    --radius: 14px;
    --radius-sm: 8px;
    --shadow: 0 2px 4px rgba(6, 56, 90, .08), 0 8px 24px rgba(6, 56, 90, .10);
    --font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-head: Georgia, "Times New Roman", Times, serif;
    --content-max: 78rem;
    --tap: 2.75rem;
}

/* Wysoki kontrast (przełącznik w nagłówku) */
html.hc {
    --c-blue-900: #000;
    --c-blue-700: #000;
    --c-blue-500: #0000b3;
    --c-green-900: #000;
    --c-green-700: #000;
    --c-lime: #ffff00;
    --c-sun: #ffff00;
    --c-text: #000;
    --c-muted: #000;
    --c-bg: #fff;
    --c-bg-soft: #fff;
    --c-bg-tint: #fff;
    --c-border: #000;
    --c-border-soft: #000;
    --c-focus: #000;
    --shadow: none;
}
html.hc body { background: #fff; }
html.hc .site-header,
html.hc .mainnav-wrap,
html.hc .site-footer,
html.hc .cookie-notice { background: #000; }
html.hc .site-header::after { display: none; }
html.hc a { text-decoration: underline; }

*, *::before, *::after { box-sizing: border-box; }

html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    scroll-padding-top: 1rem;
}
html[data-fs="1"] { font-size: 112.5%; }
html[data-fs="2"] { font-size: 125%; }
html[data-fs="3"] { font-size: 150%; }
html[data-fs="-1"] { font-size: 93.75%; }

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--c-text);
    background: linear-gradient(180deg, var(--c-bg-tint) 0, var(--c-bg) 28rem) no-repeat, var(--c-bg);
    overflow-wrap: break-word;
}

img { max-width: 100%; height: auto; }
figure { margin: 0; }

h1, h2, h3, h4, h5 {
    font-family: var(--font-head);
    line-height: 1.25;
    color: var(--c-blue-700);
    margin: 1.6em 0 .6em;
}
h1 { font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem); margin-top: 0; }
h2 { font-size: clamp(1.4rem, 1.2rem + .9vw, 1.85rem); color: var(--c-green-700); }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.1rem; }
p, ul, ol, table, blockquote { margin: 0 0 1.1em; }

a { color: var(--c-blue-700); text-underline-offset: .2em; text-decoration-thickness: .08em; }
a:hover { color: var(--c-green-700); text-decoration-thickness: .16em; }

/* Widoczny fokus (WCAG 2.4.7, 2.4.11, 2.4.13) – dwa kontrastowe pierścienie */
:focus { outline: none; }
:focus-visible {
    outline: 3px solid var(--c-focus);
    outline-offset: 2px;
    box-shadow: 0 0 0 6px #fff;
    border-radius: 3px;
}
.site-header :focus-visible,
.mainnav-wrap :focus-visible,
.site-footer :focus-visible,
.cookie-notice :focus-visible,
.carousel :focus-visible {
    outline-color: var(--c-sun);
    box-shadow: 0 0 0 5px var(--c-blue-900);
}
#main-content:focus, #site-footer:focus { outline: none; }

.visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0; border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%);
    white-space: nowrap;
}

/* ---------- Linki pomijające ---------- */
.skip-links { position: absolute; top: 0; left: 0; z-index: 1000; }
.skip-links__link {
    position: absolute; left: -9999px; top: 0;
    background: var(--c-sun); color: #000; font-weight: 700;
    padding: .9rem 1.2rem; border-radius: 0 0 var(--radius-sm) 0; text-decoration: none;
}
.skip-links__link:focus { left: 0; }

/* ---------- Przyciski ---------- */
.btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: var(--tap); padding: .55rem 1.2rem;
    font: inherit; font-weight: 700; line-height: 1.2;
    color: #fff; background: var(--c-green-700);
    border: 2px solid var(--c-green-700); border-radius: 999px;
    text-decoration: none; cursor: pointer;
    transition: background-color .2s, color .2s, transform .2s;
}
.btn:hover { background: #fff; color: var(--c-green-700); }
.btn--small { min-height: 2.5rem; padding: .35rem 1rem; font-size: .9rem; }
.btn--light { background: #fff; color: var(--c-blue-900); border-color: #fff; }
.btn--light:hover { background: transparent; color: #fff; }

/* ---------- Nagłówek ---------- */
.site-header {
    position: relative;
    color: #fff;
    background:
        radial-gradient(60rem 18rem at 85% -20%, rgba(184, 224, 106, .28), transparent 60%),
        linear-gradient(115deg, var(--c-blue-900) 0%, var(--c-blue-700) 55%, var(--c-green-700) 130%);
    padding-bottom: 2.4rem;
}
.site-header::after {   /* fala dolna – nawiązanie do rzeki */
    content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2.2rem;
    background: var(--c-bg-tint);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 20c150-30 300 30 450 0s300-30 450 0 200 20 300 0v20H0z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 20c150-30 300 30 450 0s300-30 450 0 200 20 300 0v20H0z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}
.site-header__inner {
    max-width: var(--content-max); margin: 0 auto;
    padding: 1.25rem 1rem 0;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem;
}
.brand { display: flex; align-items: center; gap: 1rem; color: #fff; text-decoration: none; }
.brand:hover { color: #fff; }
.brand__logo { width: clamp(3.5rem, 8vw, 6rem); height: auto; flex: none; }
.brand__text { display: flex; flex-direction: column; }
.brand__title {
    font-family: var(--font-head); font-weight: 700;
    font-size: clamp(1.35rem, 1rem + 2.2vw, 2.6rem); line-height: 1.12;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}
.brand__subtitle { font-size: clamp(.95rem, .85rem + .5vw, 1.25rem); color: var(--c-lime); margin-top: .25rem; }

.a11y-tools { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.a11y-tools__btn {
    min-width: var(--tap); min-height: var(--tap); padding: 0 .75rem;
    font: inherit; font-weight: 700; color: #fff;
    background: rgba(255, 255, 255, .12);
    border: 2px solid rgba(255, 255, 255, .85); border-radius: var(--radius-sm); cursor: pointer;
}
.a11y-tools__btn:hover { background: #fff; color: var(--c-blue-900); }
.a11y-tools__btn[aria-pressed="true"] { background: var(--c-sun); color: #000; border-color: var(--c-sun); }

/* ---------- Menu główne (przyciski jak w oryginale) ---------- */
.mainnav-wrap {
    background: var(--c-bg-tint);
    padding: 0 1rem 1rem;
    position: relative;
    z-index: 20;
}
.mainnav, .mainnav-toggle { max-width: var(--content-max); margin-inline: auto; }
.mainnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.mainnav__item { position: relative; display: flex; align-items: stretch; }
.mainnav__link {
    display: inline-flex; align-items: center; min-height: var(--tap);
    padding: .45rem 1rem;
    font-weight: 700; font-size: .95rem; color: #fff; text-decoration: none;
    background: var(--c-green-700);
    border: 2px solid var(--c-green-700); border-radius: var(--radius-sm);
    box-shadow: 0 2px 0 var(--c-green-900);
    transition: background-color .2s, color .2s, transform .15s;
}
.mainnav__item--has-sub .mainnav__link { border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.mainnav__link:hover,
.mainnav__link.is-active { background: var(--c-blue-700); border-color: var(--c-blue-700); color: #fff; box-shadow: 0 2px 0 var(--c-blue-900); }
.mainnav__link[aria-current="page"] { background: var(--c-blue-900); border-color: var(--c-blue-900); }
.mainnav__link:hover { transform: translateY(-1px); }

.mainnav__sub-toggle {
    width: var(--tap); min-height: var(--tap); padding: 0; cursor: pointer;
    color: #fff; background: var(--c-green-900);
    border: 2px solid var(--c-green-900); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.mainnav__sub-toggle::before {
    content: ""; display: block; width: .55rem; height: .55rem; margin: 0 auto;
    border-right: 3px solid currentColor; border-bottom: 3px solid currentColor;
    transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s;
}
.mainnav__sub-toggle[aria-expanded="true"]::before { transform: rotate(-135deg) translate(-2px, -2px); }

.mainnav__sub {
    list-style: none; margin: 0; padding: .5rem;
    position: absolute; top: calc(100% + .35rem); left: 0; min-width: 16rem; z-index: 30;
    background: #fff; border: 2px solid var(--c-blue-700); border-radius: var(--radius); box-shadow: var(--shadow);
    display: none;
}
.mainnav__item--open > .mainnav__sub { display: block; }
.mainnav__sub-link {
    display: block; padding: .6rem .9rem; border-radius: var(--radius-sm);
    color: var(--c-blue-900); text-decoration: none; font-weight: 600;
}
.mainnav__sub-link:hover, .mainnav__sub-link.is-active { background: var(--c-bg-tint); color: var(--c-green-700); text-decoration: underline; }

.mainnav-toggle {
    display: none; width: 100%; align-items: center; gap: .75rem;
    min-height: var(--tap); padding: .5rem 1rem;
    font: inherit; font-weight: 700; color: #fff; background: var(--c-green-700);
    border: 2px solid var(--c-green-700); border-radius: var(--radius-sm); cursor: pointer;
}
.mainnav-toggle__icon, .mainnav-toggle__icon::before, .mainnav-toggle__icon::after {
    display: block; width: 1.4rem; height: 3px; background: currentColor; border-radius: 2px; content: ""; position: relative;
}
.mainnav-toggle__icon::before { position: absolute; top: -7px; }
.mainnav-toggle__icon::after { position: absolute; top: 7px; }

/* ---------- Układ ---------- */
.site__body { max-width: var(--content-max); margin: 0 auto; padding: 1.5rem 1rem 3rem; }
.layout { display: block; }
.layout--sidebar {
    display: grid; gap: 2rem 2.5rem;
    grid-template-columns: minmax(0, 17rem) minmax(0, 1fr);
    grid-template-areas: "side main";
    align-items: start;
}
.layout--sidebar > .layout__main { grid-area: main; }
.layout--sidebar > .layout__side { grid-area: side; }
.content { min-width: 0; }
.page-title::after {
    content: ""; display: block; width: 4rem; height: 5px; margin-top: .6rem; border-radius: 3px;
    background: linear-gradient(90deg, var(--c-green-700), var(--c-blue-500));
}

.breadcrumb { font-size: .9rem; margin-bottom: 1rem; }
.breadcrumb__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.breadcrumb__item + .breadcrumb__item::before { content: "›"; margin-right: .5rem; color: var(--c-muted); }
.breadcrumb a { padding: .15rem 0; }

/* ---------- Kolumna boczna ---------- */
.layout__side { min-width: 0; }
.sidebar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; min-width: 0; }
.sidebar__callout { margin: 0; }
.sidebar__callout-link {
    display: block; padding: 1rem 1.1rem; font-weight: 700; color: #fff; text-decoration: none;
    background: linear-gradient(135deg, var(--c-green-900), var(--c-green-700));
    border-radius: var(--radius); box-shadow: var(--shadow);
}
.sidebar__callout-link:hover { color: #fff; text-decoration: underline; }

.search { background: #fff; border: 1px solid var(--c-border-soft); border-radius: var(--radius); padding: 1rem; box-shadow: var(--shadow); }
.search__label { display: block; font-family: var(--font-head); font-weight: 700; font-size: 1.15rem; color: var(--c-blue-700); margin-bottom: .5rem; }
.search__row { display: flex; gap: .5rem; }
.search__input {
    flex: 1; min-width: 0; min-height: var(--tap); padding: .4rem .7rem; font: inherit; color: var(--c-text);
    background: #fff; border: 2px solid var(--c-border); border-radius: var(--radius-sm);
}

.sidemenu { background: #fff; border: 1px solid var(--c-border-soft); border-radius: var(--radius); padding: 1rem 1rem .6rem; box-shadow: var(--shadow); }
.sidemenu__title { margin: 0 0 .5rem; font-size: 1.15rem; color: var(--c-blue-700); }
.sidemenu__list { list-style: none; margin: 0; padding: 0; }
.sidemenu__list--level-2, .sidemenu__list--level-3 { margin: 0 0 .4rem .9rem; padding-left: .7rem; border-left: 3px solid var(--c-lime); }
.sidemenu__item { border-bottom: 1px dashed var(--c-border-soft); }
.sidemenu__item:last-child { border-bottom: 0; }
.sidemenu__link {
    display: block; padding: .55rem .5rem; min-height: 2.5rem;
    color: var(--c-green-700); font-weight: 600; text-decoration: none;
}
.sidemenu__link::before { content: "» "; color: var(--c-blue-500); }
.sidemenu__link:hover, .sidemenu__item.is-active > .sidemenu__link { color: var(--c-blue-900); text-decoration: underline; }

/* ---------- Karty aktualności (EXT:news) ---------- */
.news-card {
    display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem;
    padding: 1.25rem; margin-bottom: 1.25rem;
    background: #fff; border: 1px solid var(--c-border-soft); border-radius: var(--radius); box-shadow: var(--shadow);
    transition: transform .2s, box-shadow .2s;
}
.news-card:hover { transform: translateY(-2px); }
.news-card__date time {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    background: var(--c-green-700); color: #fff; border-radius: var(--radius-sm); padding: .35rem .2rem; line-height: 1.1;
}
.news-card__month { font-size: .9rem; text-transform: uppercase; letter-spacing: .04em; }
.news-card__day { font-family: var(--font-head); font-size: 1.8rem; font-weight: 700; }
.news-card__title { margin: 0 0 .6rem; font-size: 1.35rem; }
.news-card__title-link { color: var(--c-green-700); text-decoration: none; }
.news-card__title-link:hover { color: var(--c-blue-700); text-decoration: underline; }
.news-card__content { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: 1rem; align-items: start; }
.news-card__content:not(:has(.news-card__img)) { grid-template-columns: 1fr; }
.news-card__img { width: 100%; height: auto; border-radius: var(--radius-sm); object-fit: cover; }
.news-card__teaser { margin: 0 0 .9rem; }

/* Domyślne klasy EXT:news: paginacja i szczegół */
.pagination, .page-navigation ul { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 1.5rem 0; }
.pagination .page-link, .page-navigation a {
    display: inline-flex; align-items: center; justify-content: center; min-width: var(--tap); min-height: var(--tap); padding: 0 .75rem;
    border: 2px solid var(--c-blue-700); border-radius: var(--radius-sm); color: var(--c-blue-700); text-decoration: none; font-weight: 700; background: #fff;
}
.pagination .active .page-link, .page-navigation .current a { background: var(--c-blue-700); color: #fff; }
.news-single .header h1, .news-single h1 { font-size: 2rem; }
.news-single .news-img-wrap img { border-radius: var(--radius-sm); }
.news-single .news-backlink-wrap a { display: inline-flex; min-height: var(--tap); align-items: center; }

/* ---------- Karuzela ---------- */
.hero { max-width: var(--content-max); margin: 0 auto; padding: 1rem 1rem 0; }
.carousel { position: relative; margin: 0 0 1.5rem; border-radius: var(--radius); overflow: hidden; background: var(--c-blue-900); box-shadow: var(--shadow); }
.carousel__viewport { overflow: hidden; }
.carousel__track { margin: 0; padding: 0; display: grid; }
.carousel__slide { grid-area: 1 / 1; position: relative; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s linear .6s; }
.carousel__slide.is-active { opacity: 1; visibility: visible; transition: opacity .6s ease; z-index: 1; }
.carousel__link { display: block; color: inherit; text-decoration: none; }
.carousel__img { display: block; width: 100%; height: auto; aspect-ratio: 1400 / 520; object-fit: cover; }
.carousel__caption {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 2.5rem 1.25rem 4.25rem;
    font-family: var(--font-head); font-size: clamp(1.1rem, .9rem + 1.2vw, 1.9rem); font-weight: 700; color: #fff;
    background: linear-gradient(180deg, transparent, rgba(6, 56, 90, .92));
}
.carousel__controls {
    position: absolute; left: 1rem; bottom: .9rem; z-index: 3;
    display: flex; align-items: center; gap: .4rem;
    padding: .3rem; background: rgba(6, 56, 90, .92); border-radius: 999px;
}
.carousel__btn {
    min-width: var(--tap); min-height: var(--tap); padding: 0 .9rem; cursor: pointer;
    font: inherit; font-size: 1.4rem; font-weight: 700; line-height: 1; color: #fff;
    background: transparent; border: 2px solid rgba(255, 255, 255, .9); border-radius: 999px;
}
.carousel__btn--toggle { font-size: .95rem; }
.carousel__btn:hover { background: #fff; color: var(--c-blue-900); }
.carousel__status { color: #fff; font-size: .9rem; padding: 0 .6rem; font-variant-numeric: tabular-nums; }
.js .carousel:not([data-ready]) .carousel__controls { display: none; }

/* ---------- Galeria ---------- */
.gallery__grid { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); }
.gallery__link { position: relative; display: block; border-radius: var(--radius-sm); overflow: hidden; }
.gallery__img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .35s; }
.gallery__link:hover .gallery__img { transform: scale(1.04); }
.gallery__caption { font-size: .9rem; color: var(--c-muted); padding-top: .4rem; }

/* ---------- Treści (FSC) ---------- */
.frame { margin-bottom: 1.5rem; }
.frame-type-text a, .frame-type-textmedia a { word-break: break-word; }
.ce-gallery img { border-radius: var(--radius-sm); }
.ce-bodytext table, .frame table { width: 100%; border-collapse: collapse; }
.frame th, .frame td { border: 1px solid var(--c-border); padding: .5rem .7rem; text-align: left; vertical-align: top; }
.frame th { background: var(--c-bg-tint); color: var(--c-blue-900); }
.table-responsive, .ce-table { overflow-x: auto; }
blockquote { padding: .8rem 1.2rem; border-left: 5px solid var(--c-green-700); background: var(--c-bg-soft); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }

/* ---------- Stopka ---------- */
.site-footer { color: #fff; background: linear-gradient(115deg, var(--c-blue-900), var(--c-green-900)); }
.site-footer__inner { max-width: var(--content-max); margin: 0 auto; padding: 2rem 1rem 1.5rem; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--c-lime); }
.footer-nav__list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.footer-nav__link { display: inline-flex; align-items: center; min-height: var(--tap); }
.footer-nav__link::before { content: "» "; margin-right: .3rem; color: var(--c-lime); }
.site-footer__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .35); padding-top: 1.25rem; }
.site-footer__address { font-style: normal; }
.site-footer__legal { list-style: none; margin: 0; padding: 0; }
.site-footer__legal a { display: inline-flex; min-height: var(--tap); align-items: center; }
.site-footer__copy { margin: 1.25rem 0 0; font-size: .9rem; color: #e6eef2; }

/* ---------- Komunikat cookies ---------- */
.cookie-notice { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; background: var(--c-blue-900); color: #fff; box-shadow: 0 -4px 20px rgba(0, 0, 0, .3); }
.cookie-notice[hidden] { display: none; }
.cookie-notice__inner { max-width: var(--content-max); margin: 0 auto; padding: 1rem; display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; }
.cookie-notice__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); margin: 0; }
.cookie-notice__text { flex: 1 1 22rem; margin: 0; }
.cookie-notice__link { color: var(--c-lime); }

/* ---------- RWD ---------- */
@media (max-width: 62em) {
    .layout--sidebar { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main" "side"; }
    .news-card__content { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 48em) {
    .mainnav-toggle { display: flex; }
    .js .mainnav { display: none; margin-top: .5rem; }
    .js .mainnav.is-open { display: block; }
    .mainnav__list { flex-direction: column; flex-wrap: nowrap; }
    .mainnav__item { width: 100%; }
    .mainnav__link { flex: 1; }
    .mainnav__sub { position: static; width: 100%; min-width: 0; margin: .35rem 0 0; box-shadow: none; }
    .mainnav__item--has-sub { flex-wrap: wrap; }
    .mainnav__item--has-sub > .mainnav__sub { flex-basis: 100%; }
    .news-card { grid-template-columns: 1fr; }
    .news-card__date time { flex-direction: row; justify-content: center; gap: .5rem; align-items: baseline; padding: .4rem; width: max-content; }
    .carousel__caption { padding-bottom: 5rem; }
    .carousel__img { aspect-ratio: 4 / 3; }
    .a11y-tools { width: 100%; }
}

@media (max-width: 24em) {
    .carousel__controls { left: .5rem; right: .5rem; justify-content: space-between; }
    .carousel__status { display: none; }
}

/* ---------- Preferencje użytkownika ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media (forced-colors: active) {
    .btn, .mainnav__link, .a11y-tools__btn, .carousel__btn { border: 2px solid ButtonText; }
    .news-card__date time { border: 2px solid CanvasText; }
}

@media print {
    .skip-links, .site-header, .mainnav-wrap, .site-footer, .sidebar, .cookie-notice, .carousel__controls { display: none !important; }
    body { background: #fff; color: #000; font-size: 11pt; }
    a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; }
}
