/* TV Mrągowo 2.14.0 — stopka, pas współpracy, pasek „Słuchaj Radia Mrągowo”, formularz kontaktowy,
   Redakcja (karty redakcyjne) i atlas regionu. Ostatnia warstwa platformy (po bands.css).
   Zastępuje wcześniejsze style stopki rozrzucone po shell/components/mobile-*.css. */

/* ---------- Nagłówek: ikony kanałów, most pod menu rozwijanym ---------- */
.tvm-header-socials,
.tvm-footer-social,
.tvm-mobile-sheet__socials {
    display: flex;
    align-items: center;
    gap: 8px;
}

.tvm-header-socials__link,
.tvm-footer-social__link,
.tvm-mobile-sheet__socials__link {
    display: inline-grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid var(--tvm-line);
    border-radius: 50%;
    color: var(--tvm-muted);
    transition: color var(--tvm-fast, .16s), border-color var(--tvm-fast, .16s), background var(--tvm-fast, .16s);
}

.tvm-header-socials__link svg,
.tvm-footer-social__link svg,
.tvm-mobile-sheet__socials__link svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

.tvm-header-socials__link:hover,
.tvm-header-socials__link:focus-visible,
.tvm-footer-social__link:hover,
.tvm-footer-social__link:focus-visible,
.tvm-mobile-sheet__socials__link:hover,
.tvm-mobile-sheet__socials__link:focus-visible {
    border-color: transparent;
    background: var(--tvm-accent);
    color: var(--tvm-action-ink);
}

.tvm-footer-social__link { width: 40px; height: 40px; }
.tvm-mobile-sheet__socials { margin-top: 18px; }
.tvm-mobile-sheet__socials__link { width: 44px; height: 44px; }

/* Menu rozwijane otwiera się po najechaniu — pasek łączy przycisk z panelem, żeby zjazd kursora go nie zamykał. */
@media (hover: hover) and (pointer: fine) and (min-width: 981px) {
    .tvm-nav-shelf::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 100%;
        height: 34px;
    }
}

button.tvm-radio-listen {
    border: 0;
    font: inherit;
    cursor: pointer;
}

button.tvm-radio-listen.is-playing small { color: #e0b23c; }
button.tvm-mobile-radio-button { border: 0; font: inherit; cursor: pointer; }
button.tvm-mobile-radio-button.is-playing { color: #e0b23c; }

button.tvm-mobile-sheet__radio {
    font: inherit;
    text-align: left;
    cursor: pointer;
}

/* ---------- Pas „Masz historię albo temat?” (jeden dla całego serwisu) ---------- */
.tvm-prefooter {
    position: relative;
    padding: clamp(44px, 5vw, 64px) 0;
    background: #ffffff;
    color: var(--tvm-paper-ink);
}

.tvm-prefooter.tvm-band { padding: clamp(44px, 5vw, 64px) 0; }

.tvm-prefooter__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px 56px;
}

.tvm-prefooter__copy { max-width: 720px; }

.tvm-prefooter h2 {
    margin: 0 0 10px;
    color: inherit;
    font-size: clamp(1.7rem, 2.4vw, 2.25rem);
    line-height: 1.08;
    letter-spacing: -.02em;
}

.tvm-prefooter__copy > p:last-child {
    margin: 0;
    color: var(--tvm-paper-muted);
    font-size: .95rem;
    line-height: 1.6;
}

.tvm-prefooter .tvm-kicker { color: #087f78; }

.tvm-prefooter__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.tvm-prefooter__actions a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 20px;
    border: 1px solid var(--tvm-paper-line-strong);
    border-radius: 999px;
    color: inherit;
    font-weight: 700;
    transition: background var(--tvm-fast, .16s), border-color var(--tvm-fast, .16s), transform var(--tvm-fast, .16s);
}

.tvm-prefooter__actions a:hover,
.tvm-prefooter__actions a:focus-visible { transform: translateY(-1px); border-color: currentColor; }

.tvm-prefooter__actions a.is-primary {
    border-color: transparent;
    background: #087f78;
    color: #ffffff;
}

.tvm-prefooter.tvm-band--dark { background: #082f33; color: #f4fbfa; }
.tvm-prefooter.tvm-band--dark .tvm-kicker { color: var(--tvm-brand-sea); }
.tvm-prefooter.tvm-band--dark .tvm-prefooter__copy > p:last-child { color: #c0d9d6; }
.tvm-prefooter.tvm-band--dark .tvm-prefooter__actions a { border-color: rgba(214, 248, 244, .24); }
.tvm-prefooter.tvm-band--dark .tvm-prefooter__actions a.is-primary { background: var(--tvm-brand-sea); color: #042b2d; }

/* ---------- Stopka ---------- */
.tvm-footer {
    position: relative;
    padding: clamp(52px, 5vw, 68px) 0 26px;
    border-top: 1px solid rgba(214, 248, 244, .08);
    background: #04272a;
    color: var(--tvm-ink);
}

.tvm-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 40px clamp(28px, 4vw, 64px);
}

.tvm-footer__brand .tvm-brand { display: inline-flex; }
.tvm-footer__brand p {
    max-width: 380px;
    margin: 20px 0 22px;
    color: var(--tvm-muted);
    font-size: .92rem;
    line-height: 1.65;
}

.tvm-footer__column { min-width: 0; }
.tvm-footer__column > summary { list-style: none; }
.tvm-footer__column > summary::-webkit-details-marker { display: none; }
.tvm-footer__column > summary span { display: none; }

.tvm-footer .tvm-footer__title {
    display: flex;
    align-items: center;
    min-height: 28px;
    margin: 0 0 12px;
    color: var(--tvm-subtitle);
    font-size: .7rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: default;
    pointer-events: none;
}

.tvm-footer__column > nav { display: grid; gap: 2px; }

.tvm-footer__link {
    display: block;
    width: fit-content;
    max-width: 100%;
    padding: 6px 0;
    border: 0;
    background: none;
    color: var(--tvm-muted);
    font: inherit;
    font-size: .92rem;
    line-height: 1.4;
    text-align: left;
    cursor: pointer;
    transition: color var(--tvm-fast, .16s), transform var(--tvm-fast, .16s);
}

.tvm-footer__link:hover,
.tvm-footer__link:focus-visible { color: var(--tvm-ink); transform: translateX(3px); }
.tvm-footer__link span { color: var(--tvm-dim); font-size: .8em; }

.tvm-footer__group,
.tvm-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 32px;
    border-top: 1px solid rgba(214, 248, 244, .08);
}

.tvm-footer__group { margin-top: 44px; padding-top: 22px; padding-bottom: 22px; }
.tvm-footer__group p { margin: 0; color: var(--tvm-muted); font-size: .84rem; }
.tvm-footer__group p a { color: var(--tvm-ink); text-decoration: underline; text-underline-offset: 3px; }
.tvm-footer__label {
    margin-right: 14px;
    color: var(--tvm-subtitle);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.tvm-footer__group nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.tvm-footer__group nav a { color: var(--tvm-muted); font-size: .82rem; }
.tvm-footer__group nav a:hover,
.tvm-footer__group nav a:focus-visible { color: var(--tvm-ink); }
.tvm-footer__group nav a.is-agency { color: var(--tvm-gold); }

.tvm-footer__bottom { padding-top: 20px; }
.tvm-footer__bottom p { margin: 0; color: var(--tvm-dim); font-size: .75rem; }
.tvm-footer__publisher { text-align: right; }

@media (max-width: 1100px) and (min-width: 981px) {
    .tvm-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tvm-footer__brand { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 28px; }
    .tvm-footer__brand p { margin: 0; }
}

@media (max-width: 980px) {
    .tvm-prefooter__inner { grid-template-columns: 1fr; }
    .tvm-prefooter__actions { justify-content: flex-start; }
    .tvm-prefooter__actions a { flex: 1 1 auto; justify-content: center; }

    .tvm-footer__grid { grid-template-columns: 1fr; gap: 0; }
    .tvm-footer__brand { padding-bottom: 26px; }
    .tvm-footer__column { border-top: 1px solid rgba(214, 248, 244, .1); }
    .tvm-footer .tvm-footer__title { min-height: 54px; margin: 0; color: var(--tvm-muted); cursor: pointer; pointer-events: auto; }
    .tvm-footer__column > summary span { display: block; margin-left: auto; color: var(--tvm-dim); font-size: 1rem; transition: transform .16s; }
    .tvm-footer__column[open] > summary span { transform: rotate(45deg); }
    .tvm-footer__column > nav { padding-bottom: 12px; }
    .tvm-footer__link { display: flex; align-items: center; width: 100%; min-height: 42px; }
    .tvm-footer__group { margin-top: 18px; }
    .tvm-footer__group,
    .tvm-footer__bottom { display: grid; justify-content: stretch; }
    .tvm-footer__publisher { text-align: left; }
}

/* ---------- Pasek „Słuchaj Radia Mrągowo” ---------- */
.tvm-radio-bar {
    --rb-bottom: 14px;
    position: sticky;
    z-index: 900;
    bottom: var(--rb-bottom);
    padding: 0 16px;
    color: #ffffff;
    pointer-events: none;
}

.tvm-radio-bar__inner {
    pointer-events: auto;
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 14px;
    width: min(100%, 1180px);
    min-height: 68px;
    margin: 0 auto;
    padding: 10px 12px 10px 10px;
    border: 1px solid rgba(214, 248, 244, .16);
    border-radius: 20px;
    background: linear-gradient(120deg, rgba(4, 39, 42, .97), rgba(12, 70, 74, .97));
    box-shadow: 0 18px 48px rgba(0, 24, 28, .36);
    backdrop-filter: blur(18px) saturate(1.1);
    -webkit-backdrop-filter: blur(18px) saturate(1.1);
    transition: border-radius .22s ease, box-shadow .22s ease, background .22s ease;
}

.tvm-radio-bar__inner[hidden] { display: none; }

.tvm-radio-bar.is-docked { padding: 0; }
.tvm-radio-bar.is-docked .tvm-radio-bar__inner {
    width: 100%;
    max-width: none;
    padding-inline: max(16px, calc((100% - var(--tvm-shell, 1280px)) / 2));
    border-width: 1px 0 0;
    border-color: rgba(214, 248, 244, .08);
    border-radius: 0;
    background: #031f22;
    box-shadow: none;
}

.tvm-radio-bar__logo {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    overflow: hidden;
    border-radius: 14px;
    background: #ffffff;
}

.tvm-radio-bar__logo img { width: 42px; height: 42px; object-fit: contain; }

.tvm-radio-bar__play {
    display: inline-grid;
    grid-template-columns: 44px auto;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 2px 16px 2px 2px;
    border: 1px solid rgba(214, 248, 244, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: #ffffff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.tvm-radio-bar__play:hover { background: rgba(255, 255, 255, .12); transform: translateY(-1px); }

.tvm-radio-bar__play:focus-visible,
.tvm-radio-bar__collapse:focus-visible,
.tvm-radio-bar__program:focus-visible,
.tvm-radio-bar__pill button:focus-visible,
.tvm-radio-bar__logo:focus-visible { outline: 3px solid #e0b23c; outline-offset: 3px; }

.tvm-radio-bar__icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    background: var(--tvm-brand-sea);
    color: #042b2d;
}

.tvm-radio-bar svg { width: 18px; height: 18px; fill: currentColor; }
.tvm-radio-bar__program svg,
.tvm-radio-bar__collapse svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.tvm-radio-bar__icon-play,
.tvm-radio-bar__icon-pause { display: inline-flex; }
.tvm-radio-bar__icon-pause { display: none; }

.tvm-radio-bar__cta { display: grid; line-height: 1.15; }
.tvm-radio-bar__cta small { color: rgba(255, 255, 255, .62); font-size: .64rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.tvm-radio-bar__cta strong { color: #ffffff; font-size: .92rem; }

.tvm-radio-bar__play.is-playing { border-color: rgba(224, 178, 60, .45); background: rgba(224, 178, 60, .12); }
.tvm-radio-bar__play.is-playing .tvm-radio-bar__icon,
.tvm-radio-bar__pill .tvm-radio-bar__pill-play.is-playing { background: #e0b23c; }
.tvm-radio-bar__play.is-playing .tvm-radio-bar__icon-play,
.tvm-radio-bar__pill-play.is-playing .tvm-radio-bar__icon-play { display: none; }
.tvm-radio-bar__play.is-playing .tvm-radio-bar__icon-pause,
.tvm-radio-bar__pill-play.is-playing .tvm-radio-bar__icon-pause { display: inline-flex; }
.tvm-radio-bar__play.is-loading .tvm-radio-bar__icon,
.tvm-radio-bar__pill .tvm-radio-bar__pill-play.is-loading { animation: tvm-radio-pulse 1s ease-in-out infinite; }
.tvm-radio-bar__play.is-error .tvm-radio-bar__icon { background: #f3a3a8; }

.tvm-radio-bar__now { display: grid; min-width: 0; gap: 2px; }
.tvm-radio-bar__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: rgba(255, 255, 255, .6);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.tvm-radio-bar__dot { width: 7px; height: 7px; border-radius: 50%; background: #5ad19a; box-shadow: 0 0 0 4px rgba(90, 209, 154, .14); }
.tvm-radio-bar__dot.is-live { background: #ff6868; box-shadow: 0 0 0 4px rgba(255, 104, 104, .14); }
.tvm-radio-bar__track {
    overflow: hidden;
    color: #ffffff;
    font-size: .98rem;
    font-weight: 700;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tvm-radio-bar__track.is-new { animation: tvm-radio-new .6s ease; }
.tvm-radio-bar__host { overflow: hidden; color: rgba(255, 255, 255, .68); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }

.tvm-radio-bar__program {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    color: rgba(255, 255, 255, .86);
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
}

.tvm-radio-bar__program:hover { background: rgba(255, 255, 255, .08); color: #ffffff; }

.tvm-radio-bar__collapse {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(214, 248, 244, .16);
    border-radius: 12px;
    background: transparent;
    color: rgba(255, 255, 255, .8);
    cursor: pointer;
}

.tvm-radio-bar__collapse:hover { background: rgba(255, 255, 255, .08); color: #ffffff; }

.tvm-radio-bar.is-collapsed { position: fixed; left: 0; bottom: var(--rb-bottom); padding: 0 0 0 12px; }

.tvm-radio-bar__pill {
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid rgba(214, 248, 244, .18);
    border-radius: 999px;
    background: rgba(4, 39, 42, .96);
    box-shadow: 0 12px 32px rgba(0, 24, 28, .34);
}

.tvm-radio-bar__pill[hidden] { display: none; }
.tvm-radio-bar__pill button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    border: 0;
    background: transparent;
    color: #ffffff;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
}

.tvm-radio-bar__pill .tvm-radio-bar__pill-play { justify-content: center; width: 44px; padding: 0; border-radius: 50%; background: var(--tvm-brand-sea); color: #042b2d; }
.tvm-radio-bar__pill-open { padding: 0 14px 0 8px; border-radius: 999px; }
.tvm-radio-bar__pill .tvm-radio-bar__pill-open:hover { background: rgba(255, 255, 255, .08); }
.tvm-radio-bar__eq { display: inline-flex; align-items: flex-end; gap: 2px; height: 14px; }
.tvm-radio-bar__eq i { width: 3px; height: 40%; border-radius: 2px; background: rgba(255, 255, 255, .7); }
.tvm-radio-bar.is-playing .tvm-radio-bar__eq i { background: #e0b23c; animation: tvm-radio-eq .9s ease-in-out infinite alternate; }
.tvm-radio-bar__eq i:nth-child(2) { animation-delay: -.3s; }
.tvm-radio-bar__eq i:nth-child(3) { animation-delay: -.6s; }
.tvm-radio-bar-sentinel { height: 1px; margin-top: -1px; }

@keyframes tvm-radio-eq { from { height: 25%; } to { height: 100%; } }
@keyframes tvm-radio-new { from { opacity: .2; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes tvm-radio-pulse { 50% { opacity: .35; transform: scale(.8); } }

@media (prefers-reduced-motion: reduce) {
    .tvm-radio-bar__eq i,
    .tvm-radio-bar__track.is-new,
    .tvm-radio-bar__play.is-loading .tvm-radio-bar__icon { animation: none !important; }
}

@media (max-width: 980px) {
    .tvm-radio-bar {
        --rb-bottom: calc(var(--tvm-mobile-dock-height, 84px) + var(--tvm-mobile-safe-bottom, 0px) + 10px);
        padding: 0 8px;
    }
    .tvm-radio-bar__inner { grid-template-columns: 44px auto minmax(0, 1fr) auto auto; gap: 10px; min-height: 60px; padding: 8px; border-radius: 18px; }
    .tvm-radio-bar__logo { width: 44px; height: 44px; border-radius: 12px; }
    .tvm-radio-bar__logo img { width: 38px; height: 38px; }
    .tvm-radio-bar__play { grid-template-columns: 44px; padding: 0; border: 0; background: transparent; }
    .tvm-radio-bar__play:hover,
    .tvm-radio-bar__play.is-playing { background: transparent; }
    .tvm-radio-bar__cta { display: none; }
    .tvm-radio-bar__program { width: 44px; justify-content: center; padding: 0; }
    .tvm-radio-bar__program span { display: none; }
    .tvm-radio-bar__collapse { width: 36px; height: 44px; border: 0; }
    .tvm-radio-bar__track { font-size: .88rem; }
    .tvm-radio-bar__host { font-size: .74rem; }
    .tvm-radio-bar.is-docked .tvm-radio-bar__inner { padding-inline: 12px; }
    .tvm-radio-bar.is-collapsed { padding-left: 8px; }
    body.is-mobile-layer-open .tvm-radio-bar,
    body.is-search-open .tvm-radio-bar,
    body.is-mobile-keyboard-open .tvm-radio-bar { opacity: 0; pointer-events: none; }
}

@media (max-width: 360px) {
    .tvm-radio-bar__inner { grid-template-columns: 44px minmax(0, 1fr) auto auto; }
    .tvm-radio-bar__logo { display: none; }
}

@media print {
    .tvm-radio-bar,
    .tvm-radio-bar-sentinel { display: none; }
}

/* ---------- Formularz kontaktowy ---------- */
.tvm-contact-form {
    padding-top: clamp(36px, 4vw, 56px);
    padding-bottom: clamp(36px, 4vw, 56px);
}

.tvm-contact-form__head { max-width: 680px; margin-bottom: 24px; }
.tvm-contact-form__head h2 { margin: 0 0 8px; font-size: clamp(1.6rem, 2.3vw, 2.1rem); }
.tvm-contact-form__head p:last-child { margin: 0; color: var(--tvm-muted); }

.tvm-contact-form__form {
    display: grid;
    gap: 16px;
    max-width: 920px;
}

.tvm-contact-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

.tvm-contact-form label { display: grid; gap: 7px; }
.tvm-contact-form label > span { color: var(--tvm-muted); font-size: .8rem; font-weight: 700; }
.tvm-contact-form label small { font-weight: 400; color: var(--tvm-dim); }

.tvm-contact-form input,
.tvm-contact-form select,
.tvm-contact-form textarea {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--tvm-line-strong);
    border-radius: 12px;
    background: rgba(255, 255, 255, .96);
    color: #121817;
    font: inherit;
    font-size: 1rem;
}

.tvm-contact-form textarea { min-height: 170px; resize: vertical; line-height: 1.55; }

.tvm-contact-form input:focus-visible,
.tvm-contact-form select:focus-visible,
.tvm-contact-form textarea:focus-visible { outline: 3px solid var(--tvm-focus); outline-offset: 1px; border-color: transparent; }

.tvm-contact-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.tvm-contact-form__foot { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 18px 28px; }
.tvm-contact-form__clause { margin: 0; color: var(--tvm-dim); font-size: .78rem; line-height: 1.55; }
.tvm-contact-form__clause a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.tvm-contact-form button[type="submit"] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 50px;
    padding: 12px 24px;
    border: 0;
    border-radius: 999px;
    background: #087f78;
    color: #ffffff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.tvm-band--dark .tvm-contact-form button[type="submit"] { background: var(--tvm-brand-sea); color: #042b2d; }

.tvm-contact-form__notice {
    max-width: 920px;
    margin: 0 0 18px;
    padding: 14px 16px;
    border-radius: 12px;
    font-weight: 700;
}

.tvm-contact-form__notice.is-ok { background: #e3f6f1; color: #0b5a4f; }
.tvm-contact-form__notice.is-error { background: #fde8e9; color: #8b1d24; }

@media (max-width: 720px) {
    .tvm-contact-form__row,
    .tvm-contact-form__foot { grid-template-columns: 1fr; }
    .tvm-contact-form button[type="submit"] { justify-content: center; width: 100%; }
}

/* ---------- Redakcja: lista ---------- */
.tvm-team-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.tvm-team-grid--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.tvm-team-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--tvm-line);
    border-radius: 18px;
    background: var(--tvm-paper, #ffffff);
    color: inherit;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.tvm-band--dark .tvm-team-card { background: rgba(255, 255, 255, .04); }
.tvm-team-card:hover,
.tvm-team-card:focus-visible { transform: translateY(-2px); border-color: var(--tvm-line-strong); box-shadow: var(--tvm-shadow-sm); }

.tvm-team-card__photo {
    position: relative;
    display: grid;
    aspect-ratio: 4 / 5;
    place-items: center;
    overflow: hidden;
    border-radius: 12px;
    background: #0e4a4d;
}

.tvm-team-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.tvm-team-card__photo b { color: rgba(255, 255, 255, .5); font-size: 2.4rem; }
.tvm-team-card__no {
    position: absolute;
    left: 6px;
    bottom: 6px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(4, 39, 42, .82);
    color: #e0b23c;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.tvm-team-card__copy { display: grid; gap: 6px; min-width: 0; }
.tvm-team-card__copy small { color: #087f78; font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.tvm-band--dark .tvm-team-card__copy small { color: var(--tvm-brand-sea); }
.tvm-team-card__copy strong { font-size: 1.18rem; line-height: 1.2; }
.tvm-team-card__copy em,
.tvm-team-card__copy > span:not(.tvm-team-card__more) { color: var(--tvm-muted); font-size: .86rem; line-height: 1.5; }
.tvm-team-card__more { color: var(--tvm-dim); font-size: .78rem; font-weight: 700; }
.tvm-team-grid--compact .tvm-team-card { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; }
.tvm-team-grid--compact .tvm-team-card__copy strong { font-size: 1rem; }

/* ---------- Redakcja: karta redakcyjna ---------- */
.tvm-member-hero { padding: 26px 0 clamp(44px, 5vw, 64px); }
.tvm-member-hero .tvm-breadcrumbs { margin-bottom: 22px; color: #8db8b4; }
.tvm-member-hero .tvm-breadcrumbs a { color: #c0d9d6; }

.tvm-idcard {
    max-width: 1000px;
    overflow: hidden;
    border: 1px solid rgba(214, 248, 244, .14);
    border-radius: 16px;
    background: linear-gradient(150deg, #0a3b3f, #062f32 60%);
    box-shadow: 0 28px 70px rgba(0, 20, 22, .35);
    color: #ffffff;
}

.tvm-idcard__top,
.tvm-idcard__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 18px;
    padding: 14px 24px;
    background: #03262a;
}

.tvm-idcard__top { border-bottom: 1px solid rgba(214, 248, 244, .12); }
.tvm-idcard__foot { justify-content: space-between; border-top: 1px solid rgba(214, 248, 244, .12); color: rgba(255, 255, 255, .66); font-size: .8rem; }

.tvm-idcard__logo { display: grid; width: 42px; height: 42px; place-items: center; overflow: hidden; border-radius: 10px; background: #ffffff; }
.tvm-idcard__logo img { width: 38px; height: 38px; object-fit: contain; }
.tvm-idcard__logo b { color: #062f32; font-weight: 900; }
.tvm-idcard__brand { font-size: 1.2rem; font-weight: 900; letter-spacing: -.02em; }
.tvm-idcard__brand i { margin-left: 8px; color: var(--tvm-brand-sea); font-size: .82rem; font-style: normal; font-weight: 700; }
.tvm-idcard__type { color: rgba(255, 255, 255, .6); font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.tvm-idcard__rec { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; color: #ff8a8f; font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.tvm-idcard__rec i { width: 9px; height: 9px; border-radius: 50%; background: #ff5a62; box-shadow: 0 0 0 4px rgba(255, 90, 98, .18); animation: tvm-rec 1.6s ease-in-out infinite; }
@keyframes tvm-rec { 50% { opacity: .3; } }

.tvm-idcard__body { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 30px; padding: 28px 24px; }
.tvm-idcard__photo { margin: 0; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 12px; background: #0e4a4d; }
.tvm-idcard__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tvm-idcard__photo span { display: grid; height: 100%; place-items: center; color: rgba(255, 255, 255, .4); font-size: 4rem; }
.tvm-idcard__data h1 { margin: 0; color: #ffffff; font-size: clamp(2rem, 3.4vw, 2.7rem); line-height: 1.05; letter-spacing: -.03em; }
.tvm-idcard__role { margin: 10px 0 0; color: #e0b23c; font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tvm-idcard__facts { display: flex; flex-wrap: wrap; gap: 14px 34px; margin: 22px 0 0; }
.tvm-idcard__facts div { display: grid; gap: 2px; }
.tvm-idcard__facts dt { color: rgba(255, 255, 255, .55); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tvm-idcard__facts dd { margin: 0; font-size: 1.2rem; font-weight: 800; }
.tvm-idcard__motto { margin: 22px 0 0; padding-left: 16px; border-left: 3px solid #e0b23c; color: rgba(255, 255, 255, .9); font-size: 1.12rem; line-height: 1.5; }
.tvm-idcard__areas { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.tvm-idcard__areas li { padding: 5px 11px; border: 1px solid rgba(214, 248, 244, .2); border-radius: 999px; color: #c0d9d6; font-size: .76rem; font-weight: 700; }

.tvm-idcard__sign { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 24px 22px; }
.tvm-idcard__stamp {
    display: grid;
    width: 96px;
    height: 96px;
    flex: 0 0 auto;
    place-items: center;
    align-content: center;
    gap: 2px;
    border: 2px solid rgba(53, 201, 187, .7);
    border-radius: 50%;
    outline: 1px dashed rgba(53, 201, 187, .45);
    outline-offset: -7px;
    color: var(--tvm-brand-sea);
    text-align: center;
    opacity: .85;
    transform: rotate(-9deg);
}

.tvm-idcard__stamp span { max-width: 76px; font-size: .45rem; font-weight: 800; line-height: 1.15; letter-spacing: .06em; text-transform: uppercase; }
.tvm-idcard__stamp b { font-size: 1.25rem; font-weight: 900; letter-spacing: -.02em; }

@font-face { font-family: "TVM Caveat"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/caveat-600-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "TVM Caveat"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/caveat-600-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

.tvm-idcard__signature { text-align: right; }
.tvm-idcard__signature em { display: block; color: rgba(255, 255, 255, .7); font-family: "TVM Caveat", cursive; font-size: 1.05rem; font-style: normal; font-weight: 600; }
.tvm-idcard__signature b { display: block; margin: 2px 0; color: #ffffff; font-family: "TVM Caveat", cursive; font-size: 2.5rem; font-weight: 600; line-height: 1; }
.tvm-idcard__signature small { color: rgba(255, 255, 255, .55); font-size: .72rem; }
.tvm-idcard__no { color: #e0b23c; font-weight: 800; letter-spacing: .1em; }

.tvm-member-bio__inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 72px); }
.tvm-member-bio h2 { margin: 0; font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
.tvm-member-bio__text { color: var(--tvm-muted); font-size: 1rem; line-height: 1.75; }
.tvm-member-bio__text p:first-child { margin-top: 0; }
.tvm-member-work__empty { margin: 0; color: var(--tvm-muted); }
.tvm-member-work__sub { margin: 40px 0 14px; font-size: 1.1rem; }
.tvm-member-work__list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--tvm-line); }
.tvm-member-work__list li { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--tvm-line); }
.tvm-member-work__list time { color: var(--tvm-dim); font-size: .8rem; white-space: nowrap; }

@media (max-width: 1100px) {
    .tvm-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tvm-team-grid--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .tvm-team-grid,
    .tvm-team-grid--compact { grid-template-columns: 1fr; }
    .tvm-team-card { grid-template-columns: 92px minmax(0, 1fr); }
    .tvm-idcard__body { grid-template-columns: 112px minmax(0, 1fr); gap: 18px; padding: 20px 16px; }
    .tvm-idcard__top,
    .tvm-idcard__foot { padding-inline: 16px; }
    .tvm-idcard__brand i,
    .tvm-idcard__type { display: none; }
    .tvm-idcard__data h1 { font-size: 1.6rem; }
    .tvm-idcard__facts { gap: 10px 20px; }
    .tvm-idcard__facts dd { font-size: 1rem; }
    .tvm-idcard__motto { font-size: 1rem; }
    .tvm-idcard__sign { padding-inline: 16px; }
    .tvm-idcard__stamp { width: 80px; height: 80px; }
    .tvm-idcard__signature b { font-size: 2rem; }
    .tvm-member-bio__inner { grid-template-columns: 1fr; gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .tvm-idcard__rec i { animation: none; }
}

/* ---------- Atlas regionu ---------- */
.tvm-region-atlas { padding-top: var(--tvm-band-gap, 52px); padding-bottom: var(--tvm-band-gap, 52px); }

.tvm-region-atlas__toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr);
    align-items: end;
    gap: 20px 34px;
    margin-bottom: 18px;
}

.tvm-region-atlas__toolbar h2 { margin: 0 0 8px; font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
.tvm-region-atlas__toolbar p:last-child { margin: 0; color: var(--tvm-muted); }

.tvm-region-atlas__search {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 16px;
    border: 1px solid var(--tvm-line-strong);
    border-radius: 16px;
    background: #ffffff;
    color: #465451;
}

.tvm-region-atlas__search svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; }
.tvm-region-atlas__search input { width: 100%; min-width: 0; border: 0; background: transparent; color: #121817; font: inherit; font-size: 1rem; outline: 0; }

.tvm-region-atlas__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.tvm-region-atlas__filters button {
    min-height: 40px;
    padding: 8px 16px;
    border: 1px solid var(--tvm-line-strong);
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .86rem;
    font-weight: 700;
    cursor: pointer;
}

.tvm-region-atlas__filters button.is-active { border-color: transparent; background: #062f32; color: #ffffff; }
.tvm-band--dark .tvm-region-atlas__filters button.is-active { background: var(--tvm-brand-sea); color: #042b2d; }

.tvm-region-atlas__layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: 22px; }

.tvm-region-atlas__index {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: 620px;
    padding: 18px;
    border: 1px solid var(--tvm-line);
    border-radius: 22px;
    background: var(--tvm-paper-soft, #f6f8f7);
}

.tvm-band--dark .tvm-region-atlas__index { background: rgba(255, 255, 255, .04); }
.tvm-region-atlas__stats { margin: 0 0 12px; color: var(--tvm-dim); font-size: .8rem; }
.tvm-region-atlas__stats strong { color: var(--tvm-ink); }
.tvm-region-atlas__list { flex: 1; margin: 0; padding: 0; overflow: auto; list-style: none; }
.tvm-region-atlas__list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 10px;
    border-radius: 12px;
    color: inherit;
}

.tvm-region-atlas__list a:hover,
.tvm-region-atlas__list li.is-active a,
.tvm-region-atlas__list a:focus-visible { background: rgba(8, 127, 120, .09); }
.tvm-region-atlas__list span { display: grid; gap: 2px; min-width: 0; }
.tvm-region-atlas__list strong { font-size: .98rem; }
.tvm-region-atlas__list small { color: var(--tvm-dim); font-size: .74rem; }
.tvm-region-atlas__list b { min-width: 30px; padding: 3px 8px; border-radius: 999px; background: rgba(8, 127, 120, .1); color: #087f78; font-size: .74rem; text-align: center; }
.tvm-band--dark .tvm-region-atlas__list b { color: var(--tvm-brand-sea); }

.tvm-region-atlas__more {
    margin-top: 10px;
    min-height: 44px;
    border: 1px dashed var(--tvm-line-strong);
    border-radius: 12px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.tvm-region-atlas__more[hidden] { display: none; }
.tvm-region-atlas__count { margin: 8px 0 0; color: var(--tvm-dim); font-size: .78rem; }
.tvm-region-atlas__count:empty { display: none; }

.tvm-region-atlas__surface {
    position: relative;
    aspect-ratio: 10 / 8;
    min-height: 420px;
    overflow: hidden;
    border-radius: 24px;
    background:
        radial-gradient(circle at 76% 62%, rgba(47, 157, 206, .28), transparent 22%),
        radial-gradient(circle at 42% 30%, rgba(53, 201, 187, .16), transparent 30%),
        linear-gradient(155deg, #0b3f43, #062f32 62%, #083539);
}

.tvm-region-atlas__surface::after {
    content: "";
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(214, 248, 244, .1);
    border-radius: 16px;
    pointer-events: none;
}

.tvm-region-atlas__grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(214, 248, 244, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(214, 248, 244, .06) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 55%, transparent 100%);
    mask-image: radial-gradient(circle at 50% 50%, #000 55%, transparent 100%);
}

.tvm-region-atlas__compass i {
    position: absolute;
    color: rgba(214, 248, 244, .38);
    font-size: .62rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.tvm-region-atlas__compass i:nth-child(1) { top: 22px; left: 50%; transform: translateX(-50%); }
.tvm-region-atlas__compass i:nth-child(2) { top: 50%; left: 22px; transform: translateY(-50%); }
.tvm-region-atlas__compass i:nth-child(3) { top: 50%; right: 22px; transform: translateY(-50%); }
.tvm-region-atlas__compass i:nth-child(4) { bottom: 22px; left: 50%; transform: translateX(-50%); }

.tvm-region-atlas__label {
    position: absolute;
    left: 26px;
    bottom: 24px;
    display: grid;
    color: rgba(214, 248, 244, .8);
    font-size: 1.1rem;
    font-weight: 800;
}

.tvm-region-atlas__label small { color: var(--tvm-brand-sea); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }

.tvm-region-atlas__point {
    position: absolute;
    z-index: 1;
    left: var(--x);
    top: var(--y);
    transform: translate(-50%, -50%);
    color: #ffffff;
}

.tvm-region-atlas__point[hidden] { display: none; }
.tvm-region-atlas__point > span {
    display: block;
    width: 12px;
    height: 12px;
    border: 2px solid #062f32;
    border-radius: 50%;
    background: #a6ebe3;
    box-shadow: 0 0 0 5px rgba(166, 235, 227, .18);
    transition: transform .16s ease, background .16s ease;
}

.tvm-region-atlas__point.is-lake > span { background: #72c9ec; box-shadow: 0 0 0 5px rgba(114, 201, 236, .2); }
.tvm-region-atlas__point.is-featured > span { width: 16px; height: 16px; background: #e0b23c; box-shadow: 0 0 0 6px rgba(224, 178, 60, .2); }

.tvm-region-atlas__point strong,
.tvm-region-atlas__point small {
    position: absolute;
    left: 20px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease;
}

.tvm-region-atlas__point strong { top: -11px; padding: 3px 9px; border-radius: 8px; background: rgba(3, 38, 42, .9); font-size: .82rem; }
.tvm-region-atlas__point small { top: 14px; padding: 0 9px; color: #a7ceca; font-size: .68rem; }
.tvm-region-atlas__point.is-featured strong { opacity: 1; }
.tvm-region-atlas__point:hover,
.tvm-region-atlas__point:focus-visible,
.tvm-region-atlas__point.is-active { z-index: 3; }
.tvm-region-atlas__point:hover > span,
.tvm-region-atlas__point:focus-visible > span,
.tvm-region-atlas__point.is-active > span { transform: scale(1.35); background: #ffffff; }
.tvm-region-atlas__point:hover strong,
.tvm-region-atlas__point:hover small,
.tvm-region-atlas__point:focus-visible strong,
.tvm-region-atlas__point:focus-visible small,
.tvm-region-atlas__point.is-active strong,
.tvm-region-atlas__point.is-active small { opacity: 1; }

.tvm-region-atlas__note { margin: 10px 0 0; color: var(--tvm-dim); font-size: .74rem; }

/* Gminy powiatu */
.tvm-region-gminas { padding-top: var(--tvm-band-gap, 52px); padding-bottom: var(--tvm-band-gap, 52px); }
.tvm-region-gminas__head { margin-bottom: 22px; }
.tvm-region-gminas__head h2 { margin: 0; font-size: clamp(1.5rem, 2.2vw, 2rem); }
.tvm-region-gminas__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.tvm-region-gminas .tvm-region-place { flex: none; min-height: 150px; border: 1px solid var(--tvm-line); border-radius: 18px; }
.tvm-band--dark .tvm-region-gminas .tvm-region-place { background: rgba(255, 255, 255, .05); color: #f4fbfa; }
.tvm-band--dark .tvm-region-gminas .tvm-region-place:hover { background: rgba(255, 255, 255, .1); }
.tvm-band--dark .tvm-region-gminas .tvm-region-place small,
.tvm-band--dark .tvm-region-gminas .tvm-region-place i { color: var(--tvm-brand-sea); }

@media (max-width: 1100px) {
    .tvm-region-atlas__layout { grid-template-columns: 1fr; }
    .tvm-region-atlas__index { max-height: 420px; }
    .tvm-region-gminas__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .tvm-region-atlas__toolbar { grid-template-columns: 1fr; }
    .tvm-region-atlas__filters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .tvm-region-atlas__filters::-webkit-scrollbar { display: none; }
    .tvm-region-atlas__filters button { flex: none; }
    .tvm-region-atlas__surface { min-height: 0; aspect-ratio: 1 / 1; }
    .tvm-region-atlas__point strong { font-size: .72rem; }
    .tvm-region-atlas__point small { display: none; }
    .tvm-region-gminas__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tvm-region-gminas .tvm-region-place { min-height: 128px; }
}

/* Jednakowe linki i przycisk „Ustawienia prywatności” w stopce (wygrywa z ogólnymi stylami przycisków i linków). */
.tvm-footer .tvm-footer__column .tvm-footer__link {
    color: var(--tvm-muted);
    font-family: inherit;
    font-size: .92rem;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.4;
}

.tvm-footer .tvm-footer__column .tvm-footer__link:hover,
.tvm-footer .tvm-footer__column .tvm-footer__link:focus-visible { color: var(--tvm-ink); }

/* Dwa kolorowe pasy obok siebie (np. seria + podcasty): drugi o ton jaśniejszy, z delikatną linią. */
.tvm-main .tvm-band.tvm-band--dark.tvm-band--seam {
    --tvm-band-bg: #0c3d41;
    box-shadow: inset 0 1px 0 rgba(214, 248, 244, .08);
}

/* Etykiety punktów mapy zawsze jasne (mapa jest ciemna także w jasnym pasie). */
.tvm-main .tvm-region-atlas__point strong { color: #ffffff; }
.tvm-main .tvm-region-atlas__point small { color: #a7ceca; }

/* Karty gmin w ciemnym pasie. */
.tvm-region-gminas.tvm-band--dark .tvm-region-place { background: rgba(255, 255, 255, .05); border-color: rgba(214, 248, 244, .14); color: #f4fbfa; }
.tvm-region-gminas.tvm-band--dark .tvm-region-place:hover,
.tvm-region-gminas.tvm-band--dark .tvm-region-place:focus-visible { background: rgba(255, 255, 255, .1); }
.tvm-region-gminas.tvm-band--dark .tvm-region-place strong { color: #ffffff; }
.tvm-region-gminas.tvm-band--dark .tvm-region-place span { color: #a7ceca; }
.tvm-region-gminas.tvm-band--dark .tvm-region-place small,
.tvm-region-gminas.tvm-band--dark .tvm-region-place i { color: var(--tvm-brand-sea); }

/* Pasek osiada na końcu strony: na komputerze staje się dolną częścią stopki. Pod stopką (miejsce
   na dolne menu telefonu) tło ma kolor stopki, a nie biały pas. */
@media (min-width: 981px) {
    .tvm-radio-bar.is-docked { bottom: 0; }
}

body.tvm-platform { background: #04272a; }
.tvm-platform .tvm-main { background: var(--tvm-paper); }

/* Punkty przy wschodniej krawędzi mapy: etykieta po lewej stronie kropki. */
.tvm-region-atlas__point.is-east strong,
.tvm-region-atlas__point.is-east small { left: auto; right: 20px; text-align: right; }

/* ---------- Strona główna: dwie sekcje obok siebie (50/50) w jednym pasie ---------- */
.tvm-home-duo__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: clamp(32px, 4vw, 64px);
}

.tvm-home-duo__grid > .tvm-home-duo__col:only-child { grid-column: 1 / -1; }

.tvm-main .tvm-home-duo .tvm-home-duo__col {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

.tvm-home-duo .tvm-home-duo__col > .tvm-shell { width: auto; margin: 0; }
.tvm-home-duo .tvm-section-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 14px 24px; margin-bottom: 22px; }
.tvm-home-duo .tvm-section-heading h2 { font-size: clamp(1.5rem, 2.1vw, 2rem); }

@media (min-width: 981px) {
    /* Delikatna pionowa linia między kolumnami. */
    .tvm-home-duo__col + .tvm-home-duo__col { position: relative; }
    .tvm-home-duo__col + .tvm-home-duo__col::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: calc(clamp(32px, 4vw, 64px) / -2);
        width: 1px;
        background: var(--tvm-line);
    }

    /* Taśmy przewijane w bok zamiast pełnych siatek. */
    .tvm-home-duo .tvm-series-list,
    .tvm-home-duo .tvm-portrait-grid,
    .tvm-home-duo .tvm-region-grid {
        display: flex;
        gap: 16px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        padding-bottom: 6px;
    }

    .tvm-home-duo .tvm-series-list::-webkit-scrollbar,
    .tvm-home-duo .tvm-portrait-grid::-webkit-scrollbar,
    .tvm-home-duo .tvm-region-grid::-webkit-scrollbar { display: none; }

    .tvm-home-duo .tvm-series-list > *,
    .tvm-home-duo .tvm-portrait-grid > *,
    .tvm-home-duo .tvm-region-grid > * { scroll-snap-align: start; }

    .tvm-home-duo .tvm-series-list > * { flex: 0 0 100%; min-height: 400px; }
    .tvm-home-duo .tvm-series-list > *:not(:only-child) { flex-basis: 86%; }
    .tvm-home-duo .tvm-portrait-grid > * { flex: 0 0 calc(50% - 8px); }
    .tvm-home-duo .tvm-region-grid > * { flex: 0 0 calc(50% - 8px); aspect-ratio: 3 / 4; }
    .tvm-home-duo .tvm-social-card { flex-basis: calc(33.333% - 12px); }
}

@media (max-width: 980px) {
    .tvm-home-duo__grid { grid-template-columns: 1fr; gap: 44px; }
}

/* ---------- Kanały i twórcy (2.15.0) ---------- */
.tvm-channel { --ch: #087f78; --ch-soft: rgba(8, 127, 120, .12); }
.tvm-channel--owned { --ch: #1f8fc0; --ch-soft: rgba(31, 143, 192, .14); }
.tvm-channel--group { --ch: #b8912f; --ch-soft: rgba(184, 145, 47, .14); }
.tvm-channel--partner { --ch: #1f7a4f; --ch-soft: rgba(31, 122, 79, .13); }
.tvm-channel--public { --ch: #4a5a70; --ch-soft: rgba(74, 90, 112, .13); }
.tvm-channel--archive { --ch: #7a5f3e; --ch-soft: rgba(122, 95, 62, .13); }

.tvm-channel-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.tvm-channel-grid--count-1 { grid-template-columns: minmax(0, 420px); }
.tvm-channel-grid--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tvm-channel-grid--count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.tvm-channel {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--tvm-line);
    border-radius: 20px;
    background: var(--tvm-paper, #ffffff);
    color: var(--tvm-ink);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.tvm-band--dark .tvm-channel { background: rgba(255, 255, 255, .04); }
.tvm-channel:hover { transform: translateY(-4px); border-color: var(--ch); box-shadow: 0 18px 44px rgba(0, 24, 28, .16); }
.tvm-channel__banner { position: relative; display: block; height: 118px; overflow: hidden; background: linear-gradient(135deg, var(--ch), #062f32); }
.tvm-channel__banner img { width: 100%; height: 100%; object-fit: cover; opacity: .9; transition: transform .35s ease; }
.tvm-channel__banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(4, 39, 42, .55)); }
.tvm-channel:hover .tvm-channel__banner img { transform: scale(1.05); }
.tvm-channel__head { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: -40px; padding: 0 18px; }
.tvm-channel__avatar { display: grid; width: 80px; height: 80px; place-items: center; overflow: hidden; border: 4px solid var(--tvm-paper, #fff); border-radius: 50%; background: var(--ch); box-shadow: 0 0 0 2px var(--ch); color: #ffffff; font-size: 1.4rem; font-weight: 900; }
.tvm-band--dark .tvm-channel__avatar { border-color: #0b3a3e; }
.tvm-channel__avatar img { width: 100%; height: 100%; object-fit: cover; background: #fff; }
.tvm-channel__role { margin-bottom: 6px; padding: 4px 10px; border-radius: 999px; background: var(--ch-soft); color: var(--ch); font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tvm-band--dark .tvm-channel__role { background: var(--ch); color: #f4fbfa; }
.tvm-channel__body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 12px 18px 18px; }
.tvm-channel__body h3 { margin: 0; font-size: 1.2rem; line-height: 1.2; }
.tvm-channel__body h3 a { color: inherit; }
.tvm-channel__body > p { margin: 0; color: var(--tvm-muted); font-size: .86rem; line-height: 1.5; }
.tvm-channel__stats { display: flex; gap: 22px; margin: 2px 0 0; }
.tvm-channel__stats div { display: grid; gap: 1px; }
.tvm-channel__stats dt { color: var(--tvm-dim); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tvm-channel__stats dd { margin: 0; font-weight: 800; }
.tvm-channel__strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 2px 0 0; padding: 0; list-style: none; }
.tvm-channel__strip a { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 8px; background: #0e4a4d; }
.tvm-channel__strip img { width: 100%; height: 100%; object-fit: cover; }
.tvm-channel__strip span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(4, 39, 42, .45); color: #fff; font-size: .7rem; opacity: 0; transition: opacity .16s ease; }
.tvm-channel__strip a:hover span,
.tvm-channel__strip a:focus-visible span { opacity: 1; }
.tvm-channel__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 6px; }
.tvm-channel__open { color: var(--ch); font-size: .86rem; font-weight: 800; }
.tvm-band--dark .tvm-channel__open { color: var(--tvm-brand-sea); }
.tvm-channel__yt { display: inline-flex; align-items: center; gap: 6px; color: var(--tvm-dim); font-size: .78rem; font-weight: 700; }
.tvm-channel__yt svg { width: 18px; height: 18px; fill: #e33; }

.tvm-channel-hero { padding: 26px 0 clamp(40px, 5vw, 60px); }
.tvm-channel-hero .tvm-breadcrumbs { margin-bottom: 26px; color: #8db8b4; }
.tvm-channel-hero .tvm-breadcrumbs a { color: #c0d9d6; }
.tvm-channel-hero__grid { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: clamp(20px, 3vw, 40px); }
.tvm-channel-hero__avatar { display: grid; width: clamp(96px, 12vw, 150px); aspect-ratio: 1; place-items: center; overflow: hidden; border-radius: 50%; background: var(--ch); box-shadow: 0 0 0 4px rgba(255, 255, 255, .12), 0 0 0 7px var(--ch); color: #fff; font-size: 2.4rem; font-weight: 900; }
.tvm-channel-hero__avatar img { width: 100%; height: 100%; object-fit: cover; background: #fff; }
.tvm-channel-hero h1 { margin: 0 0 10px; color: #fff; font-size: clamp(2rem, 3.4vw, 2.8rem); }
.tvm-channel-hero__lead { max-width: 720px; margin: 0 0 10px; color: #c0d9d6; }
.tvm-channel-hero__meta { margin: 0 0 18px; color: #8db8b4; font-size: .9rem; }
.tvm-channel-hero__meta strong { color: #fff; }
.tvm-channel-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.tvm-channel-hero__actions a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 10px 18px; border: 1px solid rgba(214, 248, 244, .24); border-radius: 999px; color: #fff; font-weight: 700; }
.tvm-channel-hero__actions a.is-primary { border-color: transparent; background: var(--tvm-brand-sea); color: #042b2d; }

@media (max-width: 1100px) {
    .tvm-channel-grid,
    .tvm-channel-grid--count-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .tvm-channel-grid,
    .tvm-channel-grid--count-2,
    .tvm-channel-grid--count-3 { grid-template-columns: 1fr; }
    .tvm-channel-hero__grid { grid-template-columns: 1fr; }
}

@media (hover: none), (prefers-reduced-motion: reduce) {
    .tvm-channel:hover { transform: none; }
    .tvm-channel:hover .tvm-channel__banner img { transform: none; }
}

/* ---------- Profil miejsca i „W pobliżu” (2.15.0) ---------- */
.tvm-place-profile {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    align-items: start;
    gap: clamp(28px, 4vw, 56px);
    padding-top: clamp(36px, 4vw, 52px);
    padding-bottom: clamp(36px, 4vw, 52px);
}

.tvm-place-profile__text h2 { margin: 0 0 14px; font-size: clamp(1.5rem, 2.2vw, 2rem); }
.tvm-place-profile__text > p { max-width: 760px; color: var(--tvm-muted); font-size: 1rem; line-height: 1.75; }
.tvm-place-profile__text > p.tvm-place-profile__source { margin-top: 14px; padding: 10px 14px; border-left: 3px solid var(--tvm-accent); background: rgba(8, 127, 120, .06); color: var(--tvm-dim); font-size: .8rem; line-height: 1.5; }
.tvm-place-profile__source a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.tvm-place-profile__facts { display: grid; gap: 14px; padding: 18px; border: 1px solid var(--tvm-line); border-radius: 20px; background: var(--tvm-paper-soft, #f6f8f7); }
.tvm-band--dark .tvm-place-profile__facts { background: rgba(255, 255, 255, .04); }
.tvm-place-profile__photo { margin: 0; overflow: hidden; border-radius: 14px; }
.tvm-place-profile__photo img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.tvm-place-profile__photo figcaption { padding: 8px 2px 0; color: var(--tvm-dim); font-size: .7rem; line-height: 1.4; }
.tvm-place-profile__photo figcaption a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.tvm-place-profile__facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin: 0; }
.tvm-place-profile__facts dt { color: var(--tvm-dim); font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tvm-place-profile__facts dd { margin: 2px 0 0; font-weight: 700; }
.tvm-place-profile__atlas { color: var(--tvm-accent); font-size: .86rem; font-weight: 800; }

.tvm-empty--place { margin: 10px 0 20px; padding: clamp(28px, 4vw, 44px); border: 1px dashed var(--tvm-line-strong); border-radius: 20px; text-align: left; }
.tvm-empty--place h2 { margin: 0 0 8px; font-size: clamp(1.3rem, 2vw, 1.7rem); }
.tvm-empty--place p:not(.tvm-kicker) { max-width: 620px; color: var(--tvm-muted); }
.tvm-empty--place a { display: inline-flex; min-height: 46px; align-items: center; padding: 10px 20px; border-radius: 999px; background: #087f78; color: #fff; font-weight: 800; }

.tvm-place-nearby { padding-top: clamp(36px, 4vw, 52px); padding-bottom: clamp(36px, 4vw, 52px); }
.tvm-place-nearby__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.tvm-place-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; gap: 14px; padding: 10px; border: 1px solid var(--tvm-line); border-radius: 16px; color: inherit; transition: border-color .16s ease, transform .16s ease; }
.tvm-place-card:hover,
.tvm-place-card:focus-visible { border-color: var(--tvm-line-strong); transform: translateY(-2px); }
.tvm-place-card__media { display: grid; aspect-ratio: 4 / 3; place-items: center; overflow: hidden; border-radius: 10px; background: linear-gradient(135deg, #0e4a4d, #062f32); color: rgba(255, 255, 255, .6); font-size: 1.6rem; font-weight: 800; }
.tvm-place-card__media img { width: 100%; height: 100%; object-fit: cover; }
.tvm-place-card__copy { display: grid; gap: 3px; min-width: 0; }
.tvm-place-card__copy small { color: var(--tvm-accent); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tvm-place-card__copy strong { font-size: 1.02rem; }
.tvm-place-card__copy span { color: var(--tvm-dim); font-size: .76rem; }

@media (max-width: 980px) {
    .tvm-place-profile { grid-template-columns: 1fr; }
    .tvm-place-nearby__grid { grid-template-columns: 1fr; }
}

/* Atlas: rodzaje miejsc i gęstsza mapa. */
.tvm-region-atlas__filters--types { margin-top: -10px; }
.tvm-region-atlas__filters--types i { display: inline-block; width: 9px; height: 9px; margin-right: 7px; border-radius: 50%; background: #a6ebe3; vertical-align: 1px; }
.tvm-region-atlas__filters--types i.is-jeziora { background: #72c9ec; }
.tvm-region-atlas__filters--types i.is-przyroda { background: #7fd08a; }
.tvm-region-atlas__point.is-nature > span { background: #7fd08a; box-shadow: 0 0 0 5px rgba(127, 208, 138, .18); }
.tvm-region-atlas__point:not(.is-featured) > span { width: 9px; height: 9px; border-width: 1.5px; }
.tvm-region-atlas__surface { aspect-ratio: 9 / 8; }

.tvm-place-profile__credit { margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--tvm-line); color: var(--tvm-dim); font-size: .72rem; line-height: 1.45; }
.tvm-place-profile__credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Odstęp między filmami a pasem „Odkrywaj dalej”. */
.tvm-archive .tvm-place-nearby { margin-top: clamp(36px, 4vw, 56px); }

/* ---------- 2.15.1: równe kolumny w parach 50/50 ----------
   Nagłówki obu połówek w jednym wierszu siatki (subgrid), treść rozciągnięta do wspólnego dołu. */
@media (min-width: 981px) {
    .tvm-home-duo__grid { grid-template-rows: auto 1fr; align-items: stretch; row-gap: 0; }
    .tvm-main .tvm-home-duo .tvm-home-duo__col { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
    .tvm-home-duo .tvm-home-duo__col > .tvm-shell { display: contents; }
    .tvm-home-duo .tvm-section-heading { align-self: end; }

    .tvm-home-duo .tvm-series-list,
    .tvm-home-duo .tvm-portrait-grid,
    .tvm-home-duo .tvm-region-grid,
    .tvm-home-duo .tvm-social-strip { align-items: stretch; min-height: 0; }

    /* Karta serii i karty regionu wypełniają całą wysokość kolumny. */
    .tvm-home-duo .tvm-series-list > .tvm-series-card { height: auto; min-height: 420px; }
    .tvm-home-duo .tvm-region-grid > * { aspect-ratio: auto; min-height: 380px; }
    .tvm-home-duo .tvm-portrait-grid > .tvm-card { display: flex; flex-direction: column; }
    .tvm-home-duo .tvm-social-card { display: flex; flex-direction: column; }
}

/* Karta serii: opis i najnowszy odcinek. */
.tvm-series-card__copy { max-width: 640px; }
.tvm-series-card__lead { color: rgba(244, 251, 250, .82); font-size: .92rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tvm-series-card__latest { color: #a7ceca; font-size: .78rem; font-weight: 700; }
.tvm-series-card .tvm-series-card__wash { background: linear-gradient(to top, rgba(4, 39, 42, .96) 8%, rgba(4, 39, 42, .45) 55%, rgba(4, 39, 42, .08) 85%); }

/* ---------- 2.15.1: bez pustych połówek w sekcjach strony głównej ---------- */

/* Małe historie: jedna ciekawostka bez listy obok = karta na całą szerokość. */
.tvm-curiosities-home__grid:not(:has(.tvm-curiosity-rail article)) { grid-template-columns: 1fr; }
.tvm-curiosity-rail:not(:has(article)) { display: none; }
.tvm-curiosities-home__grid:not(:has(.tvm-curiosity-rail article)) .tvm-curiosity-feature { min-height: 420px; }
.tvm-curiosities-home__grid { align-items: stretch; }

@media (min-width: 981px) {
    /* Podcasty: 1 = cała szerokość, 3 = pierwszy duży po lewej, dwa po prawej (bez samotnej karty w drugim rzędzie). */
    .tvm-podcast-grid { align-items: stretch; }
    .tvm-podcast-grid > .tvm-card:only-child { grid-column: 1 / -1; }
    .tvm-podcast-grid > .tvm-card:only-child .tvm-card__link { grid-template-columns: minmax(320px, 48%) minmax(0, 1fr); }
    .tvm-podcast-grid:has(> .tvm-card:nth-child(3)) { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); grid-template-rows: repeat(2, auto); }
    .tvm-podcast-grid:has(> .tvm-card:nth-child(3)) > .tvm-card:first-child { grid-row: 1 / span 2; }
    .tvm-podcast-grid:has(> .tvm-card:nth-child(3)) > .tvm-card:first-child .tvm-card__link { grid-template-columns: 1fr; align-items: start; height: 100%; }
    .tvm-podcast-grid:has(> .tvm-card:nth-child(3)) > .tvm-card:first-child .tvm-card__media { aspect-ratio: 16 / 9; }
    .tvm-podcast-grid:has(> .tvm-card:nth-child(4)) > .tvm-card:nth-child(n+4) { display: none; }
}

@media (min-width: 981px) {
    /* TV Kętrzyn: miniatury rosną do wysokości ramki Radia Kętrzyn, tytuły równo pod nimi. */
    .tvm-network-latest__videos { align-items: stretch; }
    .tvm-network-video > a { grid-template-rows: minmax(170px, 1fr) auto; }
    .tvm-network-video__media { aspect-ratio: auto; min-height: 170px; }
}

/* Filmowa historia regionu: siatka lat dopasowana do ich liczby. */
.tvm-year-line:has(> a:only-child) { grid-template-columns: minmax(0, 1fr); }
.tvm-year-line:has(> a:nth-child(2)):not(:has(> a:nth-child(3))) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 981px) {
    /* Równe miniatury TV Kętrzyn niezależnie od długości tytułu (do 3 wierszy). */
    .tvm-network-video > a { grid-template-rows: minmax(170px, 1fr) 128px; }
    .tvm-network-video__copy { height: 128px; overflow: hidden; }
}

/* ---------- 2.15.2: telefon — 4 przyciski w dolnym pasku, hamburger w nagłówku, wyśrodkowana stopka ---------- */
@media (max-width: 980px) {
    .tvm-mobile-dock__surface { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .tvm-mobile-menu-button {
        display: grid;
        place-items: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1px solid var(--tvm-line);
        border-radius: 50%;
        background: rgba(255, 255, 255, .04);
        color: var(--tvm-ink);
        cursor: pointer;
    }
    .tvm-mobile-menu-button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
    .tvm-mobile-menu-button[aria-expanded="true"] { border-color: transparent; background: var(--tvm-brand-sea); color: #042b2d; }

    .tvm-footer__brand { display: grid; justify-items: center; text-align: center; }
    .tvm-footer__brand p { margin-inline: auto; }
    .tvm-footer .tvm-footer-social { justify-content: center; }
    .tvm-footer__group,
    .tvm-footer__bottom { justify-items: center; text-align: center; }
    .tvm-footer__group p { max-width: 36ch; }
    .tvm-footer__label { display: block; margin: 0 0 6px; }
    .tvm-footer__group nav { justify-content: center; }
    .tvm-footer__publisher { text-align: center; }
}

@media (min-width: 981px) {
    .tvm-mobile-menu-button { display: none; }
}

/* ---------- 2.16.0: kompaktowe podstrony na telefonie ----------
   Taśmy przewijane w bok zamiast długich list, filmy w 2 kolumnach, zwijane rozdziały i długie teksty. */
@media (max-width: 760px) {
    /* Taśmy w bok (karta ~78% szerokości, widać fragment następnej). */
    .tvm-information-next__grid,
    .tvm-info-points,
    .tvm-process-list,
    .tvm-region-gminas__grid,
    .tvm-place-nearby__grid,
    .tvm-related__grid,
    .tvm-team-grid,
    .tvm-team-grid--compact,
    .tvm-channel-grid,
    .tvm-channel-grid--count-2,
    .tvm-channel-grid--count-3 {
        display: grid;
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 78%;
        gap: 12px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        padding-bottom: 6px;
    }

    .tvm-information-next__grid::-webkit-scrollbar,
    .tvm-info-points::-webkit-scrollbar,
    .tvm-process-list::-webkit-scrollbar,
    .tvm-region-gminas__grid::-webkit-scrollbar,
    .tvm-place-nearby__grid::-webkit-scrollbar,
    .tvm-related__grid::-webkit-scrollbar,
    .tvm-team-grid::-webkit-scrollbar,
    .tvm-channel-grid::-webkit-scrollbar { display: none; }

    .tvm-information-next__grid > *,
    .tvm-info-points > *,
    .tvm-process-list > *,
    .tvm-region-gminas__grid > *,
    .tvm-place-nearby__grid > *,
    .tvm-related__grid > *,
    .tvm-team-grid > *,
    .tvm-channel-grid > * { scroll-snap-align: start; min-width: 0; }

    .tvm-information-next__grid,
    .tvm-region-gminas__grid { grid-auto-columns: 62%; }
    .tvm-channel-grid--count-1 { grid-auto-columns: 100%; }

    /* „Czytaj dalej” na stronach informacyjnych — niskie kafelki. */
    .tvm-information-next__grid a { min-height: 108px; padding: 16px; border: 1px solid var(--tvm-line); border-radius: 14px; }
    .tvm-info-points article,
    .tvm-process-list > li { height: 100%; padding: 18px; border: 1px solid var(--tvm-line); border-radius: 16px; }

    /* Filmy w siatce 2 kolumn: katalog, kategorie, miejsca, kanał, materiały redaktora. */
    .tvm-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 10px; }
    .tvm-archive-grid .tvm-card__description,
    .tvm-archive-grid .tvm-card__cta,
    .tvm-archive-grid .tvm-card__duration { display: none; }
    .tvm-archive-grid .tvm-card__copy { gap: 4px; padding-top: 8px; }
    .tvm-archive-grid .tvm-card__copy h2,
    .tvm-archive-grid .tvm-card__copy h3,
    .tvm-archive-grid .tvm-card__copy strong { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; font-size: .86rem; line-height: 1.3; }
    .tvm-archive-grid .tvm-card__meta { font-size: .66rem; }
    .tvm-archive-grid .tvm-card__format { transform: scale(.86); transform-origin: left top; }
    .tvm-archive-grid .tvm-card__save { transform: scale(.82); transform-origin: right top; }
    .tvm-archive-grid .tvm-card__play { transform: scale(.8); transform-origin: left bottom; }
    .tvm-archive-grid .tvm-card__media { border-radius: 12px; }

    /* Rozwijane rozdziały dokumentów prawnych. */
    .tvm-legal .tvm-fold { border-top: 1px solid var(--tvm-line); }
    .tvm-legal .tvm-fold:last-of-type { border-bottom: 1px solid var(--tvm-line); }
    .tvm-legal .tvm-fold > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        min-height: 56px;
        padding: 12px 0;
        font-size: 1.02rem;
        font-weight: 800;
        line-height: 1.3;
        list-style: none;
        cursor: pointer;
    }
    .tvm-legal .tvm-fold > summary::-webkit-details-marker { display: none; }
    .tvm-legal .tvm-fold > summary::after { content: "+"; flex: none; color: var(--tvm-accent); font-size: 1.3rem; transition: transform .16s ease; }
    .tvm-legal .tvm-fold[open] > summary::after { transform: rotate(45deg); }
    .tvm-legal .tvm-fold > :not(summary):last-child { margin-bottom: 18px; }

    /* Kroki Akademii: zwinięty krok pokazuje tylko numer, etap i tytuł. */
    .tvm-film-school > li { padding: 18px 0; }
    .tvm-film-school > li h2 { font-size: 1.12rem; line-height: 1.3; cursor: pointer; }
    .tvm-film-school > li h2::after { content: " +"; color: var(--tvm-accent); }
    .tvm-film-school > li:not(.is-folded) h2::after { content: " −"; }
    .tvm-film-school > li.is-folded > div > :not(.tvm-kicker):not(h2) { display: none; }

    /* Długie teksty: skrót z wygaszeniem. */
    .is-clamped { position: relative; max-height: var(--tvm-clamp, 260px); overflow: hidden; }
    .is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(transparent, var(--tvm-band-bg, var(--tvm-paper, #fff))); pointer-events: none; }
    .tvm-clamp-toggle {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        margin: 8px 0 4px;
        padding: 8px 18px;
        border: 1px solid var(--tvm-line-strong);
        border-radius: 999px;
        background: transparent;
        color: inherit;
        font: inherit;
        font-size: .86rem;
        font-weight: 800;
        cursor: pointer;
    }

    /* Nagłówki podstron i profil miejsca — niżej. */
    .tvm-information-hero { padding-top: 34px; padding-bottom: 30px; }
    .tvm-information-hero h1 { font-size: clamp(1.7rem, 8vw, 2.2rem); }
    .tvm-page-intro__visual { max-height: 210px; }
    .tvm-page-intro__visual img { max-height: 210px; object-fit: cover; }
    .tvm-place-profile { gap: 18px; padding-top: 26px; padding-bottom: 26px; }
    .tvm-place-profile__facts dl { gap: 10px 12px; }

    /* Atlas: krótsza lista, mapa pod spodem. */
    .tvm-region-atlas__index { max-height: 300px; padding: 12px; }
    .tvm-region-atlas__stats { margin-bottom: 6px; }

    /* Pas „Masz historię albo temat?”: główny przycisk na całą szerokość, dwa kolejne obok siebie. */
    .tvm-prefooter__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .tvm-prefooter__actions a { justify-content: center; min-height: 46px; padding: 10px 12px; font-size: .9rem; }
    .tvm-prefooter__actions a.is-primary { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
    /* Karty w taśmach nie mogą się ściskać. */
    .tvm-information-next__grid > *,
    .tvm-related__grid > *,
    .tvm-place-nearby__grid > *,
    .tvm-team-grid > *,
    .tvm-channel-grid > * { width: 100%; }

    /* Metryka filmu w dwóch kolumnach. */
    .tvm-video-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
    .tvm-video-facts dl > div { min-width: 0; }
    .tvm-video-facts dd { overflow-wrap: anywhere; }
}

@media (max-width: 760px) {
    /* Przycisk „Czytaj dalej” w środku skróconego bloku, nad wygaszeniem. */
    [data-tvm-clamp] { position: relative; }
    .tvm-main [data-tvm-clamp].is-clamped { padding-bottom: 68px; }
    [data-tvm-clamp].is-clamped::after { z-index: 1; height: 140px; }
    [data-tvm-clamp] > .tvm-clamp-toggle { position: relative; z-index: 2; justify-self: start; }
    [data-tvm-clamp].is-clamped > .tvm-clamp-toggle { position: absolute; left: 50%; bottom: 14px; margin: 0; transform: translateX(-50%); background: var(--tvm-band-bg, var(--tvm-paper, #fff)); white-space: nowrap; }
    .tvm-band--dark .tvm-clamp-toggle { border-color: rgba(214, 248, 244, .3); color: #f4fbfa; }
}

/* 2.16.2: film / transmisja z Facebooka na podstronie materiału */
.tvm-player__live{position:absolute;top:14px;left:14px;z-index:4;display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border-radius:999px;background:rgba(4,20,22,.78);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;pointer-events:none}
.tvm-player__live i{width:8px;height:8px;border-radius:50%;background:var(--tvm-live,#e4454e);box-shadow:0 0 0 5px rgba(228,69,78,.22)}

/* 2.17.1: format odtwarzacza Facebooka (pionowy live z telefonu, kwadrat) */
.tvm-player.tvm-player--ratio-9x16{aspect-ratio:9/16;width:min(100%,430px);max-height:86vh;margin-inline:auto}
.tvm-player.tvm-player--ratio-1x1{aspect-ratio:1/1;width:min(100%,660px);margin-inline:auto}
.tvm-live-feature__player.is-ratio-9x16{aspect-ratio:9/16;width:auto;height:min(80vh,760px);max-width:100%;justify-self:center}
.tvm-live-feature__player.is-ratio-1x1{aspect-ratio:1/1;width:min(100%,640px);justify-self:center}
@media (max-width:760px){.tvm-live-feature__player.is-ratio-9x16{height:auto;width:min(100%,380px)}}
.tvm-player .tvm-consent-embed__poster,.tvm-live-feature__player .tvm-consent-embed__poster{height:100%!important;max-height:none}

/* 2.18.0: grupa w stopce w trzech poziomach (Z Serca Mazur → grupa medialna → Radio Mazurskie + Festiwalowe Mazury) */
.tvm-footer__group { align-items: flex-start; }
.tvm-footer__group nav.tvm-footer__tiers { display: grid; gap: 9px; flex: 1 1 560px; max-width: 780px; }
.tvm-footer__tier { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 4px 18px; align-items: baseline; }
.tvm-footer__tier-label { color: var(--tvm-dim); font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.tvm-footer__tier-links { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.tvm-footer__tier-links a,
.tvm-footer__tier-links .is-current { color: var(--tvm-muted); font-size: .82rem; }
.tvm-footer__tier-links .is-current { color: var(--tvm-ink); font-weight: 700; }
.tvm-footer__tier-links small { margin-left: 3px; color: var(--tvm-dim); font-size: .72rem; }
.tvm-footer__tier--top a.is-agency { color: var(--tvm-gold); font-weight: 700; }
@media (max-width: 760px) {
    .tvm-footer__tier { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .tvm-footer__tier-links { justify-content: center; }
}

/* 2.18.0: strony „Nasza grupa” i „Z Serca Mazur” — grupa w trzech poziomach */
.tvm-ecosystem-tier + .tvm-ecosystem-tier { margin-top: 44px; }
.tvm-ecosystem-tier__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 18px; margin-bottom: 14px; }
.tvm-ecosystem-tier__head h3 { margin: 0; font-size: .74rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--tvm-accent); }
.tvm-ecosystem-tier--top .tvm-ecosystem-tier__head h3 { color: var(--tvm-gold); }
.tvm-ecosystem-tier__head p { margin: 0; color: var(--tvm-dim); font-size: .86rem; }
/* nieparzysta liczba kart: ostatnia na całą szerokość — bez pustej połówki */
.tvm-ecosystem-tier .tvm-ecosystem-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
.tvm-ecosystem-card.is-current { padding-right: 0; }
.tvm-ecosystem-card.is-current strong::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 10px; border-radius: 50%; background: var(--tvm-accent); vertical-align: middle; }
.tvm-ecosystem-card.is-current:hover { transform: none; }
