/*
 * Šablona "vlckov" - web obce Vlčkov.
 * Elegantní, jednoduchý vzhled: celé sekce na fotografiích v pozadí (tmavý překryv),
 * serifové nadpisy, zlatavý akcent. Žádná externí písma (ochrana soukromí návštěvníků).
 *
 * Obsah:  1 Základ · 2 Navigace · 3 Sekce s fotografií · 4 Vnitřní stránky
 *         5 Obsah stránek (styly z editoru) · 6 Bloky ze shortcode · 7 Galerie
 *         8 Patička a cookie lišta · 9 Responzivita
 */

/* ---------- 1 Základ ---------- */
:root {
    --accent: #c9a45c;
    --accent-dark: #8c6d2c;
    --dark: #14181a;
    --light-ink: #f6f3ec;
    --light-muted: #d9d4c7;
    --paper: #faf8f3;
    --paper-ink: #2b2f2e;
    --paper-line: #ddd6c6;
    --serif: 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, 'Times New Roman', serif;
    --sans: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --nav-h: 68px;
    --pad: 20px;
    /* Barvy obsahu - výchozí = tmavé sekce s fotografií; .paper je přepíše. */
    --fg: var(--light-ink);
    --fg-muted: var(--light-muted);
    --panel-bg: rgba(16, 20, 22, .58);
    --panel-line: rgba(255, 255, 255, .14);
    --link: #fff;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--nav-h); }
body { margin: 0; font-family: var(--sans); font-size: 17px; line-height: 1.7; color: var(--light-ink); background: var(--dark); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; line-height: 1.15; margin: 0 0 .5em; }
.wrap { width: min(1080px, 100% - 2 * var(--pad)); margin-inline: auto; }
.wrap.narrow { width: min(780px, 100% - 2 * var(--pad)); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.muted { color: var(--fg-muted); }
.eyebrow { font-size: .74rem; letter-spacing: .32em; text-transform: uppercase; color: var(--accent); margin: 0 0 16px; }

.btn, .btn-solid, button.btn {
    display: inline-block; padding: 12px 28px; border: 1px solid var(--accent); background: transparent; color: #fff;
    font: inherit; font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: .25s;
}
.btn:hover, .btn-solid:hover { background: var(--accent); color: #14181a; }
.btn-ghost { border-color: rgba(255, 255, 255, .35); }

/* ---------- 2 Navigace ---------- */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 50; transition: background .3s, box-shadow .3s; background: linear-gradient(rgba(12, 16, 18, .55), transparent); }
.nav.solid { background: rgba(20, 24, 26, .9); backdrop-filter: blur(10px); box-shadow: 0 1px 0 rgba(255, 255, 255, .08); }
.nav-bar { display: flex; align-items: center; justify-content: space-between; height: var(--nav-h); }
.brand { font-family: var(--serif); font-size: 1.4rem; letter-spacing: .04em; text-decoration: none; color: #fff; }
.brand small { display: block; font-family: var(--sans); font-size: .62rem; letter-spacing: .28em; text-transform: uppercase; color: var(--accent); line-height: 1; margin-top: 3px; }
.nav-menu ul { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.nav-menu li { position: relative; }
.nav-menu a { font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: var(--light-muted); padding: 6px 0; border-bottom: 1px solid transparent; transition: .2s; }
.nav-menu a:hover { color: #fff; border-color: var(--accent); }
.sub-toggle { display: none; }
.sub-menu { position: absolute; top: 100%; left: -16px; min-width: 220px; flex-direction: column; gap: 0 !important; padding: 10px 16px !important; background: rgba(20, 24, 26, .96); opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s; display: flex !important; }
.sub-menu a { display: block; padding: 8px 0; }
.has-sub:hover > .sub-menu, .has-sub:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.burger { display: none; width: 44px; height: 44px; padding: 10px; background: none; border: 1px solid rgba(255, 255, 255, .3); cursor: pointer; flex-direction: column; justify-content: center; gap: 5px; }
.burger span { display: block; height: 2px; background: #fff; transition: .25s; }
.burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2) { opacity: 0; }
.burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- 3 Sekce s fotografií v pozadí ---------- */
.scene { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 100svh; padding: calc(var(--nav-h) + 40px) 0 90px; background: #1c2224 center / cover fixed no-repeat; }
.scene::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(12, 16, 18, .42), rgba(12, 16, 18, .6)); }
.scene.hero::before { background: linear-gradient(180deg, rgba(12, 16, 18, .35), rgba(12, 16, 18, .6)); }
.scene.hero { justify-content: center; text-align: center; }
.scene-inner { width: min(1080px, 100% - 2 * var(--pad)); }
.hero .scene-inner > * { margin-inline: auto; }
.hero h1 { font-size: clamp(3.2rem, 10vw, 6.6rem); letter-spacing: .01em; margin-bottom: .15em; }
.scroll-hint { position: absolute; bottom: 26px; left: 50%; width: 24px; height: 44px; margin-left: -12px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 12px; }
.scroll-hint::after { content: ""; position: absolute; top: 8px; left: 50%; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--accent); animation: hint 1.8s infinite; }
@keyframes hint { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* ---------- 4 Vnitřní stránky ---------- */
.page-top { padding: calc(var(--nav-h) + 56px) 0 56px; background: linear-gradient(rgba(12, 16, 18, .7), rgba(12, 16, 18, .85)), url(/assets/template/img/letecky.jpg) center / cover; }
.page-top h1 { font-size: clamp(2.2rem, 6vw, 3.8rem); margin: 0; }
.paper, .content-section { --fg: var(--paper-ink); --fg-muted: #5f625e; --panel-bg: #fff; --panel-line: var(--paper-line); --link: var(--accent-dark); background: var(--paper); color: var(--paper-ink); padding: 56px 0 90px; }
.content-section { padding-top: calc(var(--nav-h) + 56px); min-height: 70vh; }
.content-inner { width: min(1080px, 100% - 2 * var(--pad)); margin-inline: auto; }
.content-inner.wide { width: min(1080px, 100% - 2 * var(--pad)); }
.content-section .section-head h1, .paper h1, .paper h2 { color: #1d2321; }
.section-head { margin-bottom: 28px; }
.back-link { margin: 0 0 18px; font-size: .9rem; }
.back-link a { color: var(--accent-dark); text-decoration: none; }
.paper .page-content a:not(.btn) { color: var(--accent-dark); }

/* ---------- 5 Obsah stránek (styly z editoru) ---------- */
.page-content { color: var(--fg); }
.page-content h2 { font-size: clamp(2rem, 4.6vw, 3.1rem); margin: 0 0 .5em; }
.page-content h3 { font-size: 1.35rem; margin: 1.4em 0 .4em; }
.page-content p { margin: 0 0 1em; }
.page-content a { color: var(--link); text-underline-offset: 3px; }
.page-content img { display: block; margin: 1.4em 0; }
.page-content ul:not([class]), .page-content ol { padding-left: 1.3em; }
.page-content .section-tag { font-size: .74rem; letter-spacing: .32em; text-transform: uppercase; color: var(--accent); margin: 0 0 14px; }
.page-content .lead-paragraph { font-size: 1.2rem; color: var(--fg-muted); }
.hero .lead-paragraph { max-width: 640px; margin-inline: auto; }
.page-content .cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.hero .cta-row { justify-content: center; }
.page-content .cta-row a { display: inline-block; padding: 12px 28px; border: 1px solid var(--accent); color: #fff; font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; transition: .25s; }
.page-content .cta-row a:hover { background: var(--accent); color: #14181a; }
.page-content .note-box { background: var(--panel-bg); border-left: 3px solid var(--accent); padding: 16px 20px; }
.page-content .text-accent { color: var(--accent); }
.page-content .info-cards, .page-content .stat-grid { list-style: none; padding: 0; margin: 1.6em 0; display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.page-content .info-cards li { background: var(--panel-bg); border: 1px solid var(--panel-line); padding: 26px 28px; backdrop-filter: blur(8px); }
.page-content .info-cards li strong { display: block; font-family: var(--serif); font-size: 1.3rem; font-weight: 400; margin-bottom: 6px; }
.page-content .stat-grid li { background: var(--panel-bg); border: 1px solid var(--panel-line); padding: 24px 28px; backdrop-filter: blur(8px); color: var(--fg-muted); font-size: .95rem; }
.page-content .stat-grid li strong { display: block; font-family: var(--serif); font-size: 2.6rem; font-weight: 400; line-height: 1.1; color: var(--accent); }
.page-content .cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 26px; margin: 1.4em 0; align-items: stretch; }
.page-content .cols.cols-2-1 { grid-template-columns: 2fr 1fr; }
.page-content .cols.cols-5-3 { grid-template-columns: 5fr 3fr; }
/* 3:1 - obsah vlevo (bez panelu) a úzká dlaždice vpravo, zarovnané nahoře */
.page-content .cols.cols-3-1 { grid-template-columns: 3fr 1fr; align-items: start; }
.page-content .col-plain > :first-child { margin-top: 0; }
.page-content .col.tile { padding: 22px 24px; }
.page-content .col.tile h3 { margin: 0 0 .6em; font-size: 1.1rem; }
.page-content .col.tile .info-cards { margin: 0; display: block; }
.page-content .col.tile .info-cards li { background: none; border: 0; padding: 0; backdrop-filter: none; }
.page-content .col.tile .info-cards li strong { font-size: 1.15rem; }
@media (max-width: 860px) { .page-content .cols.cols-2-1, .page-content .cols.cols-3-1, .page-content .cols.cols-5-3 { grid-template-columns: 1fr; } }
.page-content .col { background: var(--panel-bg); border: 1px solid var(--panel-line); padding: 28px 32px; backdrop-filter: blur(8px); min-width: 0; }
.page-content .col > :first-child { margin-top: 0; }
/* Sloupec jako svislý blok: odkaz "Více..." na konci se přisadí ke spodku, takže jsou odkazy v sousedních kartách ve stejné výšce. */
.page-content .col { display: flex; flex-direction: column; }
.page-content .col > .more-link:last-child { margin-top: auto; padding-top: 1.2em; }
/* Nadpisy, které jsou odkazy, bez podtržení */
.page-content h2 a, .page-content h3 a { text-decoration: none; }
.page-content h2 a:hover, .page-content h3 a:hover { color: var(--accent); }
/* Sloupec, ve kterém shortcode nic nevykreslil (např. zatím žádné oznámení): jen nadpis + hláška. */
.page-content .col > h3:only-child { margin-bottom: 0; }
.page-content .col > h3:only-child::after { content: "Momentálně nic k zobrazení."; display: block; margin-top: .5em; font-family: var(--sans); font-size: .92rem; color: var(--fg-muted); }
.page-content .col > :last-child { margin-bottom: 0; }
.page-content table:not(.announcement-list):not(.municipality-hours) { width: 100%; border-collapse: collapse; margin: 1.4em 0; }
.page-content table:not(.announcement-list):not(.municipality-hours) th, .page-content table:not(.announcement-list):not(.municipality-hours) td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--panel-line); vertical-align: top; }
.page-content blockquote { margin: 1.4em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--accent); color: var(--fg-muted); }
.page-content img.is-zoomable { cursor: zoom-in; }

/* Obrázky v textu */
.page-content img.img-right { float: right; width: min(46%, 420px); margin: .3em 0 1.2em 1.8em; }
.page-content img.img-left { float: left; width: min(46%, 420px); margin: .3em 1.8em 1.2em 0; }
.page-content img.img-wide { width: 100%; margin: 1.6em 0; }
.page-content img.img-poster { width: min(100%, 420px); margin: 0 auto 1em; box-shadow: 0 12px 40px rgba(0, 0, 0, .25); }
/* Plakát vpravo, text ho obtéká zleva; popisek pod ním */
.page-content .poster { float: right; width: min(38%, 360px); margin: .3em 0 1.4em 2em; text-align: left; }
.page-content .poster img.img-poster { width: 100%; margin: 0 0 .8em; }
.page-content .poster-caption { margin: 0; font-size: .9rem; color: var(--fg-muted); }
@media (max-width: 700px) { .page-content .poster { float: none; width: 100%; max-width: 360px; margin: 1em 0 1.4em; } }
.page-content .img-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin: 1.6em 0; clear: both; }
.page-content .img-row img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin: 0; }
.page-content h2, .page-content .divider { clear: both; }
.paper .page-content h2 { margin-top: 1.4em; }
.paper .page-content > h2:first-child { margin-top: 0; }
.page-content .data-table { width: auto; min-width: 240px; }
.paper .page-content .info-cards li { background: #fff; }
@media (max-width: 600px) { .page-content img.img-right, .page-content img.img-left { float: none; width: 100%; margin: 1em 0; } }

/* ---------- 6 Bloky ze shortcode ---------- */
/* Kontakt obce / pověřenec */
.municipality-contact { display: grid; grid-template-columns: auto 1fr; gap: 8px 22px; margin: 0 0 1em; }
.municipality-contact dt { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); padding-top: 5px; }
.paper .municipality-contact dt { color: var(--accent-dark); }
.municipality-contact dd { margin: 0; }
/* Tabulka údajů (popisek vlevo, hodnota vpravo) - stejný vzhled jako kontakt */
.page-content .info-table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; }
.page-content .info-table th { width: 30%; padding: 12px 20px 12px 0; text-align: left; vertical-align: top; font-size: .72rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); border-bottom: 1px solid var(--panel-line); }
.paper .page-content .info-table th { color: var(--accent-dark); }
.page-content .info-table td { padding: 10px 0; vertical-align: top; border-bottom: 1px solid var(--panel-line); }
.page-content .info-table td:empty::after { content: "—"; }
@media (max-width: 600px) { .page-content .info-table th, .page-content .info-table td { display: block; width: 100%; padding: 8px 0 0; border: 0; } .page-content .info-table td { border-bottom: 1px solid var(--panel-line); padding-bottom: 10px; } }
/* Úřední hodiny */
.municipality-hours { border-collapse: collapse; margin: 0 0 1em; }
.municipality-hours th, .municipality-hours td { text-align: left; padding: 7px 26px 7px 0; border-bottom: 1px solid var(--panel-line); font-weight: 400; }
.municipality-hours th { color: var(--accent); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
.paper .municipality-hours th { color: var(--accent-dark); }
.municipality-hours-note { color: var(--fg-muted); font-size: .9em; }
/* Zastupitelstvo (stejný vzhled jako kontakt: funkce vlevo, jména vpravo) */
.municipality-council { margin-bottom: 1em; }
/* Odkaz na stránku sekce */
.page-content .more-link { margin: 1.8em 0 0; }
.page-content .more-link a { display: inline-block; padding-bottom: 5px; border-bottom: 1px solid var(--accent); color: var(--link); font-size: .82rem; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; transition: .25s; }
.page-content .more-link a:hover { color: var(--accent); padding-right: 8px; }
.paper .page-content .more-link a { color: var(--accent-dark); }
.hero .more-link { text-align: center; }
.page-content .subscribe-link { margin: 0 0 1.2em; text-align: right; }
/* Předěl mezi bloky obsahu */
.page-content .divider { height: 1px; margin: 2.4em 0 2em; background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity: .7; }
/* Menu vložené shortcodem [menu]: dlaždice s šipkou */
.menu-block-list { list-style: none; margin: 1em 0 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.menu-block-list .menu-block-list { margin-top: 8px; grid-template-columns: 1fr; gap: 6px; padding-left: 16px; }
.menu-block-list > li > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 100%; padding: 18px 22px; background: var(--panel-bg); border: 1px solid var(--panel-line); border-left: 3px solid var(--accent); font-family: var(--serif); font-size: 1.1rem; text-decoration: none; color: var(--fg); backdrop-filter: blur(8px); transition: .25s; }
.menu-block-list > li > a::after { content: "→"; color: var(--accent); font-family: var(--sans); transition: transform .25s; }
.menu-block-list > li > a:hover { background: var(--accent); color: #14181a; border-color: var(--accent); }
.menu-block-list > li > a:hover::after { color: #14181a; transform: translateX(4px); }
.page-content .menu-block a { color: var(--fg); }
.page-content .menu-block a:hover { color: #14181a; }
/* Úřední deska */
.announcement-list { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .94rem; background: var(--panel-bg); backdrop-filter: blur(8px); }
.announcement-list th { text-align: left; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); padding: 12px 14px; border-bottom: 1px solid var(--panel-line); }
.announcement-list td { padding: 12px 14px; border-bottom: 1px solid var(--panel-line); vertical-align: top; }
.paper .announcement-list th { color: var(--accent-dark); }
.announcement-list { table-layout: auto; }
.announcement-list th, .announcement-list td { padding-left: 10px; padding-right: 10px; }
/* Název se roztáhne na maximum, ostatní sloupce jsou co nejužší (obsah se nezalamuje). */
.announcement-list .ann-min { width: 1%; white-space: nowrap; }
.announcement-list .ann-title { width: auto; overflow-wrap: break-word; }
/* Přílohy se mohou zalomit (víc štítků pod sebou), aby tabulka nepřetékla z panelu. */
.announcement-list .ann-files { white-space: normal; }
/* V úzkém panelu (homepage: dva sloupce vedle sebe) se zalamuje i kategorie a datum,
   aby tabulka po rozbalení nepřetékla z panelu. */
.cols > .col { container-type: inline-size; }
@container (max-width: 520px) {
    .announcement-list td.ann-min { white-space: normal; }
    .announcement-list td.ann-min:nth-last-child(n+3) { overflow-wrap: anywhere; }
}
.announcement-list th { letter-spacing: .06em; white-space: nowrap; }
/* Tlačítka pod výpisy (Zobrazit dalších, Celá úřední deska, Zobrazit všechny aktuality) */
.btn-more { display: inline-block; padding: 9px 22px; border: 1px solid var(--accent); background: transparent; color: inherit; font: inherit; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: .25s; }
.btn-more:hover, .btn-more[aria-expanded="true"] { background: var(--accent); color: #14181a; }
.btn-more[aria-expanded="true"]::after { content: " ▲"; }
.page-content a.btn-more { color: var(--fg); text-decoration: none; }
.page-content a.btn-more:hover { color: #14181a; }
.announcement-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 1.4em; }
.announcement-actions .btn-more { flex: 1 1 0; padding: 9px 14px; letter-spacing: .1em; font-size: .74rem; white-space: nowrap; text-align: center; }
.page-content .btn-row { margin: 1.6em 0 0; }
/* Filtr nad výpisem oznámení (roky, kategorie) */
.announcement-filter { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 0 0 1.2em; }
.ann-filter-group { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ann-filter-label { margin-right: 4px; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--accent); }
.paper .ann-filter-label { color: var(--accent-dark); }
.ann-chip { padding: 4px 14px; border: 1px solid var(--panel-line); background: transparent; color: var(--fg); font: inherit; font-size: .82rem; cursor: pointer; transition: .2s; }
.paper .ann-chip { border-color: var(--paper-line); }
.ann-chip:hover, .ann-chip.is-active { background: var(--accent); border-color: var(--accent); color: #14181a; }
.announcement-block > .announcement-list { margin-top: .4em; }
.announcement-empty td { padding: 22px 10px; text-align: center; color: var(--fg-muted); }
.announcement-list tr[hidden] { display: none; }
/* Sloupec Stav (ikonka platné / archiv) - vidět jen když se zobrazuje archiv */
.announcement-block:not(.show-state) .ann-state { display: none; }
.announcement-list .ann-state { text-align: center; }
.ann-status { display: inline-flex; vertical-align: middle; }
.ann-status.is-current { color: #6fbf73; }
.paper .ann-status.is-current { color: #3f8f45; }
.ann-status.is-archived { color: var(--fg-muted); }
.attachment-icon { white-space: nowrap; display: inline-block; padding: 2px 8px; margin: 0 4px 4px 0; border: 1px solid var(--accent); font-size: .72rem; letter-spacing: .08em; text-decoration: none; color: var(--link); }
.attachment-icon:hover { background: var(--accent); color: #14181a; }
/* Příspěvky */
.post-list { display: grid; grid-template-columns: 1fr; gap: 22px; margin: 1.4em 0; }
.post-list-item { background: var(--panel-bg); border: 1px solid var(--panel-line); padding: 24px 26px; backdrop-filter: blur(8px); }
.post-list-item h3 { margin: 0 0 12px; font-size: 1.3rem; }
.post-list-item h3 a { text-decoration: none; }
.post-list-item h3 a:hover { color: var(--accent); }
.post-list-item p { font-size: .98rem; margin: 0 0 .6em; }
/* Pod nadpisem přes celou šířku: fotka nahoře vedle data a úryvku (max. šířka, výška podle poměru stran) */
.post-list-row { display: flex; gap: 20px; align-items: flex-start; }
.post-list-body { flex: 1; min-width: 0; }
.post-list-body > p:first-child { margin-top: 0; }
.post-list-thumb { display: block; flex: 0 0 auto; width: 140px; max-width: 35%; }
.post-list-thumb img { display: block; width: 100%; height: auto; margin: 0; transition: opacity .3s; }
.post-list-thumb:hover img { opacity: .85; }
.post-more { white-space: nowrap; color: var(--accent); text-decoration: none; }
.paper .post-more { color: var(--accent-dark); }
.post-more:hover { text-decoration: underline; }
@media (max-width: 480px) { .post-list-row { flex-direction: column; } .post-list-thumb { width: 100%; max-width: 220px; } }
.post-date { font-size: .7rem !important; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.post-detail .post-content { font-size: 1.1rem; }
/* Detail příspěvku: úvodní fotka vpravo nahoře vedle data a nadpisu, výška podle poměru stran */
.post-detail-image { float: right; width: min(38%, 340px); margin: 0 0 1.2em 1.8em; }
.post-detail-image img { display: block; width: 100%; height: auto; margin: 0; }
@media (max-width: 600px) { .post-detail-image { float: none; width: 100%; max-width: 340px; margin: 0 0 1em; } }
/* Fotky ze shortcode */
.gallery-recent-photos .photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.gallery-recent-photos .photo-grid a, .photo-grid-item { display: block; overflow: hidden; aspect-ratio: 4 / 3; }
.gallery-recent-photos .photo-grid img, .photo-grid-item img { width: 100%; height: 100%; object-fit: cover; margin: 0; transition: transform .5s; }
.gallery-recent-photos .photo-grid a:hover img, .photo-grid-item:hover img { transform: scale(1.06); }
.gallery-random-photo { display: block; max-width: 420px; margin: 1.4em 0; }
/* Formuláře (Core-13) */
.core-form { max-width: 560px; }
.core-form-field { margin: 0 0 16px; }
.core-form-field label { display: block; font-size: .9rem; color: var(--fg-muted); }
.core-form input, .core-form textarea { width: 100%; margin-top: 6px; padding: 12px 14px; font: inherit; color: var(--paper-ink); background: #fff; border: 1px solid var(--paper-line); border-radius: 0; }
.core-form input:focus, .core-form textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.core-form button[type=submit] { padding: 12px 30px; border: 1px solid var(--accent); background: var(--accent); color: #14181a; font: inherit; font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
/* Odběr novinek: zaškrtávátka vedle popisků, skupiny jako rámečky */
.core-form input[type=checkbox] { width: auto; margin: 0 10px 0 0; vertical-align: middle; accent-color: var(--accent-dark); }
.newsletter-form { max-width: 640px; }
.newsletter-source { margin: 0 0 16px; padding: 12px 18px 8px; border: 1px solid var(--paper-line); background: #fff; }
.newsletter-source legend { padding: 0 8px; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--accent-dark); }
.newsletter-category { display: inline-block; margin: 0 22px 6px 0; cursor: pointer; }
.newsletter-consent label { display: block; position: relative; padding-left: 30px; line-height: 1.5; }
.newsletter-consent input[type=checkbox] { position: absolute; left: 0; top: 4px; margin: 0; }
.core-form-field-error input, .core-form-field-error textarea { border-color: #b3423a; }
.core-form-field-error-note { color: #b3423a; font-size: .85rem; }
.form-flash-wrap { position: relative; z-index: 40; width: min(1080px, 100% - 2 * var(--pad)); margin: calc(var(--nav-h) + 16px) auto 0; }
.form-flash { padding: 14px 18px; font-size: .94rem; border: 1px solid; }
.form-flash.is-success { background: #e8efe0; border-color: #a9bf92; color: #38502a; }
.form-flash.is-error { background: #f6e3e1; border-color: #d4a29d; color: #7a2a24; }

/* ---------- 7 Galerie (přehled, album, detail) ---------- */
.year-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; }
.chip { padding: 6px 16px; border: 1px solid var(--paper-line); font-size: .82rem; text-decoration: none; color: var(--paper-ink); }
.chip.is-active, .chip:hover { background: var(--accent); border-color: var(--accent); color: #14181a; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 22px; }
.gallery-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--paper-line); text-decoration: none; color: var(--paper-ink); overflow: hidden; transition: .3s; }
.gallery-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.gallery-card-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #e8e3d6; }
.gallery-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; margin: 0; }
.gallery-card:hover .gallery-card-img img { transform: scale(1.05); }
/* Dlaždice v řádku gridu mají stejnou výšku; popisek (počet/datum) se tlačí
   na spodek, takže je ve všech dlaždicích řádku na stejné vertikální pozici
   bez ohledu na počet řádků názvu. */
.gallery-card-body { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 16px 18px 20px; }
.gallery-card-title { font-family: var(--serif); font-size: 1.2rem; }
.gallery-card-meta { margin-top: auto; padding-top: 4px; font-size: .82rem; color: #6a6d68; }
.gallery-card.is-album .gallery-card-title::before { content: "▣ "; color: var(--accent-dark); }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.gallery-description { margin: 0 0 24px; max-width: 700px; }
.content-section .section-tag { font-size: .74rem; letter-spacing: .3em; text-transform: uppercase; color: var(--accent-dark); }

/* ---------- 8 Patička a cookie lišta ---------- */
.footer { background: var(--dark); color: var(--light-muted); font-size: .92rem; padding-top: 56px; border-top: 1px solid rgba(255, 255, 255, .08); }
.footer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.footer-title { font-family: var(--sans); font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: var(--accent); margin: 0 0 14px; }
.footer p { margin: 0 0 6px; }
.footer a { text-decoration: none; }
.footer a:hover { color: var(--accent); }
.footer-links { list-style: none; margin: 10px 0 0; padding: 0; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 40px; padding: 22px 0 30px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: .84rem; }
.footer-meta { display: flex; flex-wrap: wrap; gap: 18px; }
.cookie-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 90; max-width: 720px; margin-inline: auto; padding: 18px 22px; background: rgba(20, 24, 26, .96); border: 1px solid rgba(255, 255, 255, .15); box-shadow: 0 10px 40px rgba(0, 0, 0, .4); font-size: .9rem; }
.cookie-banner p { margin: 0 0 12px; }
.cookie-banner a { color: var(--accent); }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.cookie-actions .btn { padding: 9px 20px; }

/* ---------- 9 Responzivita ---------- */
@media (max-width: 900px), (hover: none) { .scene { background-attachment: scroll; } }
@media (max-width: 860px) {
    .burger { display: flex; }
    .nav-menu { position: absolute; top: var(--nav-h); left: 0; right: 0; display: none; background: rgba(20, 24, 26, .97); padding: 8px var(--pad) 20px; max-height: calc(100svh - var(--nav-h)); overflow-y: auto; }
    .nav-menu.is-open { display: block; }
    .nav-menu ul { flex-direction: column; gap: 0; }
    .nav-menu a { display: block; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
    .has-sub { display: flex; flex-wrap: wrap; align-items: center; }
    .has-sub > a { flex: 1; }
    .sub-toggle { display: block; width: 44px; height: 44px; background: none; border: 0; cursor: pointer; position: relative; }
    .sub-toggle::after { content: ""; position: absolute; top: 18px; left: 16px; width: 8px; height: 8px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); }
    .sub-menu { position: static; width: 100%; display: none !important; opacity: 1; visibility: visible; transform: none; padding: 0 0 0 16px !important; background: none; }
    .has-sub.is-open > .sub-menu { display: flex !important; }
    body.nav-locked { overflow: hidden; }
    .footer-grid { grid-template-columns: 1fr; }
    .municipality-contact { grid-template-columns: 1fr; gap: 0; }
    .municipality-contact dd { margin-bottom: 10px; }
    .scene { min-height: 0; padding-bottom: 70px; }
    .scene.hero { min-height: 100svh; }
    .page-content .col { padding: 22px; }
    .announcement-list { display: block; overflow-x: auto; }
    .announcement-list th, .announcement-list td { padding: 10px; }
}

/* [gallery-random limit="N"] - víc náhodných fotek do mřížky */
.gallery-random-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin: 1.6em 0; }
.gallery-random-list .gallery-random-photo { max-width: none; margin: 0; }
.gallery-random-list .gallery-random-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }

/* Náhledy fotek: celá fotka bez ořezu - fotky na výšku mají po stranách prázdné pole barvy karty */
.gallery-recent-photos .photo-grid img, .photo-grid-item img, .gallery-card-img img, .gallery-card img, .album-card img,
.gallery-random-photo img, .gallery-random-list .gallery-random-photo img {
  object-fit: contain; background: var(--bg-card, #ececec);
}
