/* ================================================= */
/*  LOCAL FONTS — Inter v4, WOFF2                     */
/*  Stejný font jako předtím (TTF), jen Brotli        */
/*  komprimace pro WOFF2 — vizuálně bit-identické.    */
/* ================================================= */

@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-300.woff2') format('woff2');
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-400.woff2') format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-500.woff2') format('woff2');
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-600.woff2') format('woff2');
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

/* ================================================= */
/*  GLOBAL RESET & ROOT                               */
/* ================================================= */

html {
    background: #FFFFFF;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}

html.dark {
    background: #0B0F14;
}

/* ================================================= */
/*  THEME SWITCH — plynulý přechod světlý ⇄ tmavý     */
/*  Aktivní jen ~300ms během přepnutí (třída se       */
/*  v JS odebere), aby transition nezasahoval         */
/*  do běžného renderu a nezpomaloval scroll/hover.   */
/* ================================================= */

html.theme-anim,
html.theme-anim body,
html.theme-anim .card,
html.theme-anim section,
html.theme-anim header,
html.theme-anim footer,
html.theme-anim nav,
html.theme-anim .page-header-band,
html.theme-anim .btn,
html.theme-anim .btn-outline,
html.theme-anim .chip,
html.theme-anim .chip-blue,
html.theme-anim .hero-mesh,
html.theme-anim .img-skeleton {
    transition: background-color 280ms ease, color 280ms ease, border-color 280ms ease, fill 280ms ease, stroke 280ms ease;
}

/* View Transitions API (Chrome/Edge) — jemný cross-fade */
::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: 320ms;
    animation-timing-function: ease;
}

/* ================================================= */
/*  IMAGE SKELETON — shimmer placeholder dokud       */
/*  se obrázek nenačte.                              */
/* ================================================= */
@keyframes skeleton-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
.img-skeleton-bg {
    background-color: #E5E9EF;
    background-image: linear-gradient(
        110deg,
        transparent 35%,
        rgba(255, 255, 255, 0.55) 50%,
        transparent 65%
    );
    background-size: 200% 100%;
    background-repeat: no-repeat;
    animation: skeleton-shimmer 1.6s ease-in-out infinite;
}
html.dark .img-skeleton-bg {
    background-color: #1C232C;
    background-image: linear-gradient(
        110deg,
        transparent 35%,
        rgba(255, 255, 255, 0.05) 50%,
        transparent 65%
    );
}
.img-skeleton-bg.img-loaded {
    background-image: none;
    background-color: transparent;
    animation: none;
}
.img-skeleton-target {
    opacity: 0;
    transition: opacity 320ms ease-out;
}
.img-skeleton-target.is-loaded { opacity: 1; }

/* Page loader CSS žije inline v <head> (header.php) — kritická cesta. */

@media (prefers-reduced-motion: reduce) {
    .img-skeleton-bg { animation: none; }
}

body {
    margin: 0;
    padding: 0;
    overscroll-behavior: none;
    overflow-x: hidden;
}

/* ================================================= */
/*  SCROLLBAR — žluto/modrý brand                     */
/* ================================================= */

* {
    scrollbar-width: auto;
    scrollbar-color: rgba(0, 173, 239, 0.7) transparent;
}

html.dark * {
    scrollbar-color: rgba(251, 199, 7, 0.6) transparent;
}

::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(
        180deg,
        rgba(0, 173, 239, 0.85),
        rgba(0, 144, 199, 0.85)
    );
    border-radius: 999px;
    border: 3px solid transparent;
    background-clip: padding-box;
}

html.dark ::-webkit-scrollbar-thumb {
    background: linear-gradient(
        180deg,
        rgba(251, 199, 7, 0.8),
        rgba(224, 174, 0, 0.8)
    );
    border: 3px solid transparent;
    background-clip: padding-box;
}

::-webkit-scrollbar-corner {
    background: transparent;
}

* {
    -webkit-tap-highlight-color: transparent;
}

/* ================================================= */
/*  HERO BACKDROP HELPER                              */
/* ================================================= */

.hero-mesh {
    background:
        radial-gradient(60% 50% at 80% 10%, rgba(251, 199, 7, 0.22), transparent 70%),
        radial-gradient(70% 60% at 0% 100%, rgba(0, 173, 239, 0.18), transparent 65%),
        #F6F8FB;
}

html.dark .hero-mesh {
    background:
        radial-gradient(60% 50% at 80% 10%, rgba(251, 199, 7, 0.18), transparent 70%),
        radial-gradient(70% 60% at 0% 100%, rgba(0, 173, 239, 0.20), transparent 65%),
        #0B0F14;
}

/* ================================================= */
/*  PAGE HEADER → CONTENT SECTION GAP                 */
/*  Když .section následuje hned za page-header-band, */
/*  zmenšíme top padding aby gap nebyl moc velký.     */
/* ================================================= */

.page-header-band + section.section {
    padding-top: 3rem;         /* 48px (default .section má 64px top) */
}
@media (min-width: 768px) {
    .page-header-band + section.section {
        padding-top: 4.5rem;   /* 72px (default md: 96px top) */
    }
}

/* MOBIL: sjednocená mezera header→obsah na VŠECH stránkách = jako /dokumenty (28px).
   Pokrývá i stránky, kde mezi hlavičkou a sekcí stojí <style> (aktuality apod.) —
   tam běžný `+ section.section` selektor adjacency jinak nechytí. Desktop NEMĚNÍME. */
@media (max-width: 767px) {
    .page-header-band + section.section,
    .page-header-band + style + section.section {
        padding-top: 1.75rem;  /* 28px */
    }
}

/* ================================================= */
/*  EYEBROW KICKER LABELY — jen mobil/tablet          */
/*  Modré labely (.eyebrow) byly opticky moc výrazné  */
/*  a splývaly s nadpisy. Zmenšíme je a zklidníme     */
/*  tracking, ať jasně dominují nadpisy.              */
/*  Desktop (>=1024px) NEDOTČEN.                      */
/* ================================================= */
@media (max-width: 1023px) {
    /* Zdvojená třída = vyšší specificita, aby přebila .eyebrow z tailwind.css
       (ten se načítá PO global.css). Bez !important. */
    .eyebrow.eyebrow {
        font-size: 0.625rem;    /* 10px (z 12px) — jasně menší než nadpis */
        font-weight: 600;       /* z 700 — lehčí, ustupuje, není to druhý nadpis */
        letter-spacing: 0.08em; /* z 0.2em — klidnější, nesplývá */
        margin-bottom: 0.125rem;/* drobné oddělení od nadpisu */
    }
    /* Stejný eyebrow vzhled, ale postavený inline (text-xs uppercase text-brand-blue),
       ne přes komponentu .eyebrow — sjednotit na mobilu/tabletu. Titěrné badge
       (text-[10px]/[11px]) vynecháme. Desktop nedotčen (media query). */
    .uppercase.text-brand-blue:not([class*="text-["]) {
        font-size: 0.625rem;
        font-weight: 600;
        letter-spacing: 0.08em;
    }
}

/* ================================================= */
/*  HERO — ruční zalomení nadpisu jen na mobilu/tabletu */
/*  <br class="br-mob"> vynutí stejné řádky jako na PC; */
/*  na desktopu (>=1024px) se schová → desktop nedotčen */
/*  (drží si vlastní text-balance zalamování).         */
/* ================================================= */
@media (min-width: 1024px) {
    br.br-mob { display: none; }
}

/* Hero text + CTA vystředěné jen na mobilu/tabletu (na PC je text vedle
   obrázku ve 2 sloupcích → zůstává vlevo). Úřední hodiny (tabulka) nedotčeny. */
@media (max-width: 1023px) {
    .hero-copy h1 { text-align: center; }
    .hero-copy > p { text-align: center; margin-left: auto; margin-right: auto; }
    .hero-cta { align-items: center; justify-content: center; }
    /* === Sídlo: obrázek budovy + úřední hodiny v JEDNÉ kartě === */
    .hero-card {
        max-width: 30rem; margin-inline: auto;
        border-radius: 1rem; overflow: hidden;
        background: #fff;
        box-shadow: 0 1px 2px rgba(11,15,20,.06), 0 12px 32px rgba(11,15,20,.09), inset 0 0 0 1px rgba(11,15,20,.06);
    }
    .hero-card-media img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
    .hero-card-body { padding: 1rem 1.1rem 1.15rem; text-align: left; }
    .hero-hours-head {
        display: flex; align-items: center; flex-wrap: wrap;
        gap: 0.15rem 0.5rem; margin-bottom: 0.8rem;
        color: #0090C7;
    }
    .hero-hours-title {
        font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;
        letter-spacing: 0.16em; color: #0090C7;
    }
    .hero-hours-addr { font-size: 0.75rem; color: #5B6776; position: relative; top: 0.5px; }
    .hero-hours-dept + .hero-hours-dept {
        margin-top: 0.75rem; padding-top: 0.75rem;
        border-top: 1px solid rgba(11,15,20,.08);
    }
    .hero-hours-dept-name {
        display: flex; align-items: center; gap: 0.45rem;
        font-size: 0.625rem; font-weight: 700; text-transform: uppercase;
        letter-spacing: 0.12em; margin-bottom: 0.45rem;
    }
    .hero-hours-dept-name::before {
        content: ""; width: 0.45rem; height: 0.45rem; border-radius: 9999px; flex: none;
    }
    .hh-blue  .hero-hours-dept-name { color: #0090C7; }
    .hh-blue  .hero-hours-dept-name::before { background: #00ADEF; }
    .hh-amber .hero-hours-dept-name { color: #E0AE00; }
    .hh-amber .hero-hours-dept-name::before { background: #FBC707; }
    .hero-hours-rows { display: flex; flex-direction: column; gap: 0.25rem; }
    .hero-hours-row {
        display: flex; align-items: baseline; gap: 0.6rem;
        font-size: 0.8125rem; line-height: 1.35;
    }
    .hero-hours-row .hh-day { font-weight: 700; color: #0B0F14; width: 1.5rem; flex: none; }
    .hero-hours-row .hh-time { color: #5B6776; }
    .dark .hero-hours-head { color: #FBC707; }
    .dark .hero-hours-title { color: #FBC707; }
    .dark .hero-hours-addr { color: rgba(255,255,255,.55); }
    .dark .hero-card { background: #1C232C; box-shadow: 0 1px 2px rgba(0,0,0,.35), 0 12px 32px rgba(0,0,0,.4), inset 0 0 0 1px rgba(255,255,255,.08); }
    .dark .hero-hours-dept + .hero-hours-dept { border-top-color: rgba(255,255,255,.1); }
    .dark .hh-blue  .hero-hours-dept-name { color: #00ADEF; }
    .dark .hh-amber .hero-hours-dept-name { color: #FBC707; }
    .dark .hero-hours-row .hh-day { color: #fff; }
    .dark .hero-hours-row .hh-time { color: rgba(255,255,255,.7); }
}
/* Větší hlavní nadpis + menší podnadpis na mobilu/tabletu (desktop >=1024px nedotčen). */
@media (max-width: 767px) {
    .hero-copy h1 { font-size: 1.95rem; line-height: 1.12; }
    .hero-copy > p { font-size: 0.8125rem; }   /* 13px (z 15px) */
    /* Popisky sekcí (Co hledáte?, Volné prostory, Krátká historie) na 13px — jako hero podnadpis. */
    [data-sitemap-search] .lead,
    .sec-head .lead { font-size: 0.8125rem; line-height: 1.55; }
    [data-sitemap-search] [data-search-status] { font-size: 0.8125rem; }
    /* Nadpisy sekcí na home o něco větší na mobilu (z 24px na 28px). */
    .sec-head .h2,
    [data-sitemap-search] .h2 { font-size: 1.75rem; }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .hero-copy h1 { font-size: 3.1rem; }
    .hero-copy > p { font-size: 0.9375rem; }    /* 15px (z 18px) */
}

/* Hlavička úředních hodin (ikona + 2 texty) — jednotná výška řádku = výška
   ikony (16px), aby ikona i oba texty seděly přesně v jedné svislé rovině.
   Bez tohoto měly texty různý line-height (arbitrary text-[11px] dědí 1.5)
   → boxy různě vysoké → opticky poskočené. Platí na PC i mobilu/tabletu. */
.hh-headrow { line-height: 1rem; }
.hh-headrow > * { line-height: 1rem; }
/* Velká písmena „ÚŘEDNÍ HODINY" nemají dolní dotahy → opticky sedí výš.
   Drobný posun dolů, aby byla na výšku opticky na středu s ikonou i adresou. */
.hh-title { position: relative; top: 0.5px; }

/* Hlavičky sekcí na home (eyebrow + nadpis + lead) vystředěné na mobilu/tabletu;
   na desktopu (>=1024px) zůstávají vlevo (auto-margin centruje i flex položku). */
@media (max-width: 1023px) {
    .sec-head { text-align: center; margin-left: auto; margin-right: auto; }
    /* Přepínací pill (Nebytové prostory / Byty) — sbalit na šířku obsahu a
       vycentrovat, ať nevisí vlevo s prázdným místem a sedí s vystředěným nadpisem.
       (overflow-x-auto z .rental-tabs zůstává jako pojistka pro velmi úzké displeje.) */
    .rental-tabs { width: fit-content; max-width: 100%; margin-left: auto; margin-right: auto; }
}

/* ===================================================================== */
/*  SDÍLENÝ MOBILNÍ/TABLETOVÝ ZÁKLAD — sjednocení všech veřejných stránek */
/*  na úroveň home. Stejné velikosti textů, vystředěné hlavičky.          */
/*  VŠE jen <=1023px / <=767px → desktop (>=1024px) NEDOTČEN.             */
/* ===================================================================== */
@media (max-width: 767px) {
    /* Lead/podnadpis na mobilu 13px (jako hero podnadpis na home) — všude.
       Zdvojená třída = vyšší specificita, aby přebila .lead/.h2 z tailwind.css
       (ten se načítá PO global.css). */
    .lead.lead { font-size: 0.8125rem; line-height: 1.55; }
    /* Sekční nadpisy (.h2) na mobilu sjednocené na 28px jako na home. */
    .h2.h2 { font-size: 1.75rem; line-height: 1.2; }
}
/* Sdílená hlavička stránek (page_header.php) — na mobilu/tabletu vystředěná
   (breadcrumbs/eyebrow + h1 + lead), jako hero/sekce na home. */
@media (max-width: 1023px) {
    .page-header-band { text-align: center; }
    .page-header-band nav { justify-content: center; }
    .page-header-band .lead { margin-left: auto; margin-right: auto; }
}
@media (max-width: 767px) {
    .page-header-band .h1 { font-size: 1.95rem; line-height: 1.15; }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .page-header-band .h1 { font-size: 2.6rem; }
}

/* Prázdný stav (žádné volné byty / nebytové prostory) — červená vykřičníková ikona. */
.home-empty-ico { background: #FEE2E2; color: #DC2626; }
html.dark .home-empty-ico { background: rgba(248,113,113,.14); color: #F87171; }

/* Home CTA „Potřebujete poradit?" na mobilu (dle návrhu):
   - tlačítka přes celou šířku (jednotná hrana, velké tap-targety pro seniory),
     „Všechna oddělení" s list-ikonou,
   - kontaktní fakta = 2 jemně podbarvené karty s ikonou u štítku.
   Ikony jsou mobile-only (.cta-ico → na desktopu display:none), takže desktop
   (≥768) zůstává nedotčen: inline tlačítka bez ikony + 2sloupcová mřížka karet. */
.cta-ico { display: none; }
@media (max-width: 767px) {
    #main[data-page="home"] [data-cta-actions]            { flex-direction: column; gap: 0.625rem; }
    #main[data-page="home"] [data-cta-actions] > a        { width: 100%; justify-content: center; }
    #main[data-page="home"] [data-cta-actions] .cta-ico   { display: inline-block; }

    #main[data-page="home"] [data-cta-info]               { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
    #main[data-page="home"] [data-cta-info] > div         { background: #F6F8FB; padding: 0.875rem 0.875rem; border-radius: 0.875rem; }
    #main[data-page="home"] [data-cta-info] .cta-ico      { display: inline-flex; }
    #main[data-page="home"] [data-cta-info] .cta-fact-label { font-size: 0.625rem; letter-spacing: 0.03em; gap: 0.375rem; }
    #main[data-page="home"] [data-cta-info] .cta-fact-val   { font-size: 0.8125rem; margin-top: 0.375rem; }

    html.dark #main[data-page="home"] [data-cta-info] > div { background: rgba(255,255,255,.04); }
}

/* Footer na mobilu — profesionální struktura: brand → linka → 2-sloupcová
   navigace → linka → kontakt. Sekce oddělené hairline linkami, vyvážený rytmus.
   (zdvojená třída kvůli přebití .grid-cols-1 z tailwind.css). Desktop nedotčen. */
/* Footer — wrapper navigace (.footer-nav s WEB+DALŠÍ) na desktopu „zmizí" přes
   display:contents → WEB a DALŠÍ jsou přímé položky 4-sloupcového gridu (desktop nedotčen).
   Na mobilu se z něj stane vystředěný těsný pár (víc místa po stranách, sloupce blíž u sebe). */
.footer-sep { display: none; }
.footer-nav { display: contents; }
@media (max-width: 767px) {
    .footer-wrap.footer-wrap { padding-left: 1.75rem; padding-right: 1.75rem; padding-top: 2.25rem; }
    /* row-gap = stejná mezera nad i pod menu (footer-nav → linka = footer pt nad WEB). */
    .footer-grid.footer-grid { grid-template-columns: 1fr 1fr; column-gap: 1.25rem; row-gap: 2.25rem; }
    /* Nahoře: WEB + DALŠÍ jako JEDEN vystředěný seznam (nadpis „Další" skrytý,
       mezera mezi bloky = rozteč odkazů, takže to plyne jako jeden sloupec). */
    .footer-nav { display: flex; flex-direction: column; align-items: center; gap: 0.625rem; text-align: center; grid-column: 1 / -1; order: 1; }
    .footer-nav > div:nth-child(2) > h4 { display: none; } /* skrýt nadpis „Další" */
    .footer-sep     { display: block; grid-column: 1 / -1; order: 2; border-top: 1px solid #E5E9EF; }
    /* Dole: brand vlevo, kontakt přitisknutý k pravému okraji (zarovnaný zespodu k logu). */
    .footer-brand   { order: 3; }
    .footer-contact { order: 4; align-self: end; width: fit-content; margin-left: auto; }
    /* Spodní bar (©): stejná mezera nad ním (blok→linka) jako nad blokem (linka→blok). */
    .footer-wrap > div:last-child { margin-top: 2.25rem; }
}
html.dark .footer-sep { border-color: rgba(255,255,255,.12); }

/* ================================================= */
/*  ARTICLE CONTENT — pro HTML z WYSIWYG editoru     */
/*  (aktuality, popisy bytů, popisy pozic apod.)     */
/* ================================================= */

.prose-content { line-height: 1.7; }
.prose-content > * + * { margin-top: 1em; }
.prose-content h2 {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    color: #0B0F14;
    margin-top: 1.75em;
    margin-bottom: .35em;
    letter-spacing: -.005em;
}
html.dark .prose-content h2 { color: #FFFFFF; }
.prose-content h3 {
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.3;
    margin-top: 1.5em;
    margin-bottom: .35em;
}
.prose-content ul,
.prose-content ol {
    padding-left: 1.5rem;
    margin-top: .5em;
}
.prose-content ul { list-style: disc; }
.prose-content ol { list-style: decimal; }
.prose-content li { margin: .35em 0; }
.prose-content li::marker { color: #00ADEF; }
html.dark .prose-content li::marker { color: #FBC707; }
.prose-content blockquote {
    margin: 1.25em 0;
    padding: .75em 1em;
    border-left: 3px solid #FBC707;
    background: rgba(251,199,7,.08);
    border-radius: 0 8px 8px 0;
    color: #5B6776;
}
html.dark .prose-content blockquote {
    color: rgba(255,255,255,.75);
    background: rgba(251,199,7,.06);
}
.prose-content a {
    color: #0090C7;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
html.dark .prose-content a { color: #FBC707; }
.prose-content strong { color: #0B0F14; font-weight: 700; }
html.dark .prose-content strong { color: #FFFFFF; }
.prose-content p:first-child { margin-top: 0; }
.prose-content > h2:first-child,
.prose-content > h3:first-child { margin-top: 0; }

/* ================================================= */
/*  MIMOŘÁDNÁ SDĚLENÍ — labely a banner aktualit      */
/*  Vlastní CSS (nezávislé na Tailwind purge), aby     */
/*  červené zvýraznění fungovalo i bez rebuildu CSS.  */
/* ================================================= */

/* Chip „Mimořádné sdělení" ve výpisu aktualit */
.news-flag-urgent {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 9999px;
    background: #dc2626;
    color: #fff;
    padding: 6px 12px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 4px 12px -3px rgba(220, 38, 38, .5);
}
html.dark .news-flag-urgent { box-shadow: 0 4px 12px -3px rgba(220, 38, 38, .55); }
.news-flag-urgent svg { width: 14px; height: 14px; display: block; flex-shrink: 0; }
/* Optické vystředění: verzálky + česká diakritika tvoří blok, který kvůli
   prázdnému prostoru pod účařím sedí vysoko. Posun o 2px dolů srovná mezery
   nad/pod textem (ikonu nech být — je vystředěná, takže se s textem zarovná). */
.news-flag-urgent span { display: block; line-height: 1; position: relative; top: 2px; }

/* Počítadlo aktualit ve filtru používá osvědčený .rental-tab__count (box-centrovaný flex,
   ostrý na 1× i při zoomu). Tady jen kontrast badge na aktivním (žlutém) tabu aktualit. */
[data-news-tab].btn-primary .rental-tab__count,
[data-doc-cat].btn-primary .rental-tab__count {
    background: rgba(11, 15, 20, .15);
    color: #0B0F14;
}

/* Počítadlo přechází stejně plynule jako tlačítko (.btn má transition 150ms) — bez toho
   pozadí počítadla skočí okamžitě, zatímco tlačítko přechází → „problikne". Navíc jemný
   stálý obrys, aby počítadlo nesplynulo s pozadím tlačítka při hoveru (oba paperSoft). */
[data-news-tab] .rental-tab__count,
[data-doc-cat] .rental-tab__count {
    transition: background-color .15s ease, color .15s ease;
    box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .07);
}
html.dark [data-news-tab] .rental-tab__count,
html.dark [data-doc-cat] .rental-tab__count {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14);
}

/* Karta mimořádné aktuality ve výpisu — klidné, ale jasné zvýraznění
   laděné s bannerem na detailu: jemný červený nádech + měkký lem,
   bez tvrdého ringu i bez „plovoucího" horního pruhu (rušil na zaoblených rozích). */
/* Vyšší specificita (.card.news-card-urgent) — musí přebít Tailwind utility
   .border-brand-line a .shadow-soft z .card (jinak zůstane šedý lem). */
.card.news-card-urgent {
    border-color: #ef9a9a;
    background: linear-gradient(180deg, #fff5f4 0%, #ffffff 55%);
    box-shadow: 0 1px 2px rgba(220, 38, 38, .05), 0 10px 28px -18px rgba(220, 38, 38, .5);
}
.card.news-card-urgent:hover {
    border-color: #e57373;
    box-shadow: 0 1px 2px rgba(220, 38, 38, .06), 0 22px 46px -22px rgba(220, 38, 38, .6);
}
html.dark .card.news-card-urgent {
    border-color: rgba(248, 113, 113, .45);
    background: linear-gradient(180deg, rgba(220, 38, 38, .16) 0%, transparent 55%);
    box-shadow: 0 10px 30px -20px rgba(220, 38, 38, .55);
}
html.dark .card.news-card-urgent:hover {
    border-color: rgba(248, 113, 113, .65);
    box-shadow: 0 22px 48px -22px rgba(220, 38, 38, .6);
}

/* Banner na detailu mimořádné aktuality */
.news-banner-urgent {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 2.25rem;
    padding: 18px 20px;
    border: 1px solid #fecaca;
    border-radius: 18px;
    background: linear-gradient(180deg, #fef2f2, #ffffff);
}
html.dark .news-banner-urgent {
    border-color: rgba(220, 38, 38, .4);
    background: linear-gradient(180deg, rgba(220, 38, 38, .14), transparent);
}
.news-banner-urgent-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 9999px;
    background: #dc2626;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.news-banner-urgent-icon svg { width: 22px; height: 22px; }
.news-banner-urgent-title {
    font-weight: 800;
    font-size: 1.05rem;
    line-height: 1.25;
    color: #991b1b;
}
html.dark .news-banner-urgent-title { color: #fecaca; }
.news-banner-urgent-text {
    margin-top: 3px;
    font-size: .9rem;
    line-height: 1.5;
    color: #b91c1c;
}
html.dark .news-banner-urgent-text { color: rgba(254, 202, 202, .85); }

/* Meta řádek detailu aktuality (kategorie + datum publikace) */
.news-detail-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #E5E9EF;
}
html.dark .news-detail-meta { border-color: rgba(255, 255, 255, .1); }

/* ================================================= */
/*  TISK — čistý výstup (hlavička s logem + obsah).   */
/*  Skryje navigaci, panely, patičku a widget.        */
/* ================================================= */

/* Tiskové prvky jsou na obrazovce skryté, viditelné jen při tisku. */
.print-only { display: none; }

@media print {
    /* Schovej veškerý web chrome a doplňky */
    .print-hide,
    footer,
    #urgent-widget,
    #page-loader { display: none !important; }

    /* Ukaž tiskovou hlavičku (letterhead) */
    .print-only { display: block !important; }

    /* Bílé pozadí, černý text */
    html, body {
        background: #fff !important;
        color: #000 !important;
    }
    body { font-size: 11pt; }

    /* Tisková hlavička s logem */
    .print-letterhead {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding: 0 0 10px;
        margin-bottom: 24px;
        border-bottom: 0.5px solid #0B0F14;
    }
    .print-letterhead img { height: 46px; width: auto; }
    .print-letterhead-meta {
        font-size: 9pt;
        line-height: 1.45;
        color: #444;
        text-align: right;
    }

    /* Page header → jen titulek + perex, bez pásu a breadcrumbů */
    .page-header-band {
        background: #fff !important;
        border: 0 !important;
        padding: 0 !important;
    }
    /* Zruš velký vnitřní vertikální padding hlavičky (py-12/py-16) */
    .page-header-band > div { padding-top: 0 !important; padding-bottom: 0 !important; }
    .page-header-band nav { display: none !important; }   /* breadcrumbs */
    .page-header-band .eyebrow { color: #b91c1c !important; }
    /* Meta řádek: oddělit datum od obsahu i od perexu */
    .news-detail-meta { margin: 16px 0 24px !important; padding-bottom: 12px !important; }
    .h1 { color: #000 !important; margin-top: 0 !important; }
    .lead { color: #333 !important; }

    /* Sekce a karty bez ozdob, obsah přes celou šířku */
    section.section { padding: 0 !important; }
    .card {
        box-shadow: none !important;
        border: 0 !important;
        background: #fff !important;
        padding: 0 !important;
    }
    .max-w-8xl, .max-w-7xl, .max-w-5xl, .max-w-3xl { max-width: 100% !important; }
    .grid { display: block !important; }

    .prose-content { color: #000 !important; line-height: 1.6; }
    .prose-content h2, .prose-content h3, .prose-content strong { color: #000 !important; }
    .prose-content a { color: #000 !important; text-decoration: underline; }

    /* Obrázky se nesmí ořezat přes okraj stránky */
    img { max-width: 100% !important; }

    /* Zalomení stránky uvnitř článku potlačit u nadpisů */
    .prose-content h2, .prose-content h3 { break-after: avoid; }

    @page { margin: 1.6cm; }
}

/* Skeleton placeholder (image not yet loaded) */
.img-skeleton {
    background:
        linear-gradient(135deg, rgba(0, 173, 239, 0.12), rgba(251, 199, 7, 0.12)),
        #F6F8FB;
}

html.dark .img-skeleton {
    background:
        linear-gradient(135deg, rgba(0, 173, 239, 0.18), rgba(251, 199, 7, 0.10)),
        #161B22;
}

/* ── Filtr sekcí (aktuality + dokumenty): vlastní rozbalovací dropdown JEN na
   mobilu (≤767px). JS ho v footer.php vyskládá z desktopových pilulek
   [data-filter-pills]; na desktopu/tabletu zůstávají pilulky a dropdown je skrytý.
   Centrovaný text, čisté počítadlo (řeší „rozbité (45)" u nativního selectu). ── */
.fselect { display: none; }

@media (max-width: 767px) {
    .fselect {
        display: block;
        position: relative;
        width: 100%;
        max-width: 22rem;
        margin: 0 auto;
    }

    /* Spínač (zavřený stav) — popisek + počet opticky na střed, šipka vpravo. */
    .fselect__trigger {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        width: 100%;
        /* symetrický levý/pravý padding → obsah přesně na střed (šipka je absolutní) */
        padding: 0.85rem 2.75rem;
        border: 2px solid #E5E9EF;
        border-radius: 1rem;
        background: #FFFFFF;
        color: #0B0F14;
        font-size: 0.9375rem;
        font-weight: 700;
        line-height: 1.2;
        cursor: pointer;
        box-shadow: 0 1px 2px rgba(11, 15, 20, 0.04);
        transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .fselect__trigger:focus-visible {
        outline: none;
        border-color: #00ADEF;
        box-shadow: 0 0 0 4px rgba(0, 173, 239, 0.15);
    }
    .fselect.is-open .fselect__trigger {
        border-color: #00ADEF;
        box-shadow: 0 0 0 4px rgba(0, 173, 239, 0.12);
    }
    .fselect__label { white-space: nowrap; }

    /* Počítadlo — pilulka, číslo opticky vystředěné (tabular-nums, fixní výška). */
    .fselect__count {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 1.5rem;
        height: 1.5rem;
        padding: 0 0.45rem;
        border-radius: 999px;
        background: rgba(0, 173, 239, 0.12);
        color: #0090C7;
        font-size: 0.75rem;
        font-weight: 700;
        line-height: 1;
        font-variant-numeric: tabular-nums;
    }

    .fselect__chev {
        position: absolute;
        right: 1rem;
        top: 50%;
        width: 1.15rem;
        height: 1.15rem;
        margin-top: -0.575rem;
        color: #5B6776;
        transition: transform 0.2s ease;
        pointer-events: none;
    }
    .fselect.is-open .fselect__chev { transform: rotate(180deg); }

    /* Rozbalený panel s možnostmi. */
    .fselect__panel {
        position: absolute;
        left: 0;
        right: 0;
        top: calc(100% + 0.5rem);
        z-index: 60;
        padding: 0.4rem;
        background: #FFFFFF;
        border: 1px solid #E5E9EF;
        border-radius: 1rem;
        box-shadow: 0 16px 40px -12px rgba(11, 15, 20, 0.28);
        max-height: 60vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        animation: fselect-in 0.16s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .fselect__panel[hidden] { display: none; }

    @keyframes fselect-in {
        from { opacity: 0; transform: translateY(-0.375rem); }
        to   { opacity: 1; transform: translateY(0); }
    }

    .fselect__opt {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        width: 100%;
        padding: 0.7rem 1rem;
        border: 0;
        border-radius: 0.7rem;
        background: transparent;
        color: #0B0F14;
        font-size: 0.9375rem;
        font-weight: 600;
        line-height: 1.2;
        cursor: pointer;
        text-align: center;
        transition: background-color 0.12s ease;
    }
    .fselect__opt + .fselect__opt { margin-top: 0.15rem; }
    .fselect__opt:hover { background: #F6F8FB; }
    .fselect__opt:focus-visible { outline: none; background: #F6F8FB; }
    .fselect__opt.is-active {
        background: rgba(251, 199, 7, 0.16);
        color: #0B0F14;
        font-weight: 700;
    }
    .fselect__opt.is-active .fselect__count {
        background: rgba(224, 174, 0, 0.22);
        color: #8A6A00;
    }

    /* Dark mode */
    html.dark .fselect__trigger {
        background: #1C232C;
        border-color: rgba(255, 255, 255, 0.12);
        color: #FFFFFF;
    }
    html.dark .fselect.is-open .fselect__trigger,
    html.dark .fselect__trigger:focus-visible {
        border-color: #FBC707;
        box-shadow: 0 0 0 4px rgba(251, 199, 7, 0.15);
    }
    html.dark .fselect__panel {
        background: #1C232C;
        border-color: rgba(255, 255, 255, 0.12);
    }
    html.dark .fselect__opt { color: #FFFFFF; }
    html.dark .fselect__opt:hover,
    html.dark .fselect__opt:focus-visible { background: rgba(255, 255, 255, 0.06); }
    html.dark .fselect__opt.is-active { background: rgba(251, 199, 7, 0.2); }
    html.dark .fselect__count {
        background: rgba(0, 173, 239, 0.2);
        color: #7FD4F5;
    }
    html.dark .fselect__opt.is-active .fselect__count {
        background: rgba(251, 199, 7, 0.25);
        color: #FBC707;
    }

    @media (prefers-reduced-motion: reduce) {
        .fselect__chev { transition: none; }
        .fselect__panel { animation: none; }
    }
}
