/* ==========================================================================
   ZŠ a MŠ Nemojov – návrh A
   ========================================================================== */

:root {
	--ground: #FAF8F3;
	--surface: #FFFFFF;
	--soft: #F3F1EA;
	--ink: #16203A;
	--muted: #54617C;
	--line: #E4DFD4;
	--line-soft: #EDE9E0;
	--blue: #2F4FB5;
	--blue-dark: #17265C;
	/* Tmavá barva horní lišty, jídelníčku a patičky – přepisuje ji Nastavení školy → Vzhled webu */
	--dark: #17265C;
	--blue-soft: #EEF2FB;
	/* --blue* = barva tlačítek a odkazů – přepisuje ji Nastavení školy → Vzhled webu (zelená / modrá) */
	--blue-line: #D9E1F5;
	--green: #2D7355;
	--green-dark: #1F5C43;
	--green-soft: #EAF3EE;
	--warm: #A8481C;
	--warm-soft: #FBF0E7;
	--warm-line: #F0DCC8;
	--purple: #5B4B9E;
	--purple-soft: #F1EDF9;
	--weekend: #766B5D;
	--on-dark: #C9D4EE;
	--on-dark-muted: #A9BBE4;
	--on-dark-head: #8FA6DC;

	--font-display: 'Source Serif 4', Georgia, 'Times New Roman', serif;
	--font-body: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--wrap: 1200px;
	--gutter: 24px;
	--radius: 18px;
	--radius-lg: 24px;
}

/* ---------- Základ ---------- */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--ground);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.6;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--blue); text-underline-offset: 3px; }
a:hover { color: var(--blue-dark); }

h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.2; margin: 0; color: var(--ink); }

:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: 4px; }

.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.skip-link {
	position: absolute; left: 16px; top: -60px; z-index: 100;
	background: var(--blue-dark); color: #fff; padding: 12px 18px; border-radius: 10px;
	font-weight: 600; text-decoration: none;
}
.skip-link:focus { top: 12px; color: #fff; }

.site-main:focus { outline: none; }

.icon { flex-shrink: 0; }

.muted { color: var(--muted); }

/* ---------- Tlačítka a drobné prvky ---------- */

.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	min-height: 46px; padding: 0 20px; border-radius: 12px; border: 1.5px solid transparent;
	font: 600 15px/1.2 var(--font-body); text-decoration: none; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.btn--lg { min-height: 52px; padding: 0 24px; font-size: 16px; }
.btn--sm { min-height: 40px; padding: 0 14px; font-size: 14px; }
.btn--round { border-radius: 999px; }
.btn--block { display: flex; width: 100%; }
.btn--primary { background: var(--blue); color: #fff; }
.btn--primary:hover { background: var(--blue-dark); color: #fff; }
.btn--outline { background: var(--surface); color: var(--ink); border-color: #D8D2C5; }
.btn--outline:hover { border-color: var(--blue); color: var(--blue); }
.btn--warm { background: var(--surface); color: var(--warm); border-color: #E8C9AC; }
.btn--warm:hover { border-color: var(--warm); color: var(--warm); }
.btn--light { background: var(--surface); color: var(--dark); }
.btn--light:hover { background: var(--blue-soft); color: var(--dark); }
.btn--green { background: var(--green); color: #fff; }
.btn--green:hover { background: var(--green-dark); color: #fff; }

.pill {
	display: inline-flex; align-items: center; padding: 5px 14px; border-radius: 999px;
	background: rgba(255, 255, 255, .13); color: #fff; font-weight: 600; text-decoration: none;
}
.pill:hover { background: rgba(255, 255, 255, .24); color: #fff; }

.badge {
	display: inline-flex; align-items: center; gap: 7px; padding: 4px 9px; border-radius: 6px;
	font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; line-height: 1.3;
}
.badge--lg { padding: 7px 16px; border-radius: 999px; font-size: 14px; letter-spacing: 0; text-transform: none; font-weight: 600; }
.badge--blue { background: var(--blue-soft); color: var(--blue); }
.badge--green { background: var(--green-soft); color: var(--green-dark); }
.badge--warm { background: var(--warm-soft); color: var(--warm); }

.icon-tile {
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 46px; height: 46px; border-radius: 13px;
}
.icon-tile--sm { width: 40px; height: 40px; border-radius: 11px; }
.icon-tile--blue { background: var(--blue-soft); color: var(--blue); }
.icon-tile--green { background: var(--green-soft); color: var(--green); }
.icon-tile--warm { background: #F5EFE4; color: var(--warm); }
.icon-tile--purple { background: var(--purple-soft); color: var(--purple); }

.icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 9px; border: 1px solid var(--line);
	background: var(--surface); color: var(--muted);
}
.icon-btn:hover { border-color: var(--blue); color: var(--blue); }

.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; }
.link-arrow--back { color: var(--muted); }

.empty { color: var(--muted); font-size: 18px; }

/* ---------- Servisní lišta ---------- */

.topbar { background: var(--dark); color: var(--on-dark); font-size: 14px; }
.topbar__inner { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.topbar__contacts { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.topbar__contacts a, .topbar__address { display: inline-flex; align-items: center; gap: 7px; }
.topbar__contacts a { color: #fff; font-weight: 600; text-decoration: none; }
.topbar__contacts a:hover { text-decoration: underline; color: #fff; }
.topbar__contacts .icon { color: var(--on-dark-head); }
.topbar__links { display: flex; gap: 8px; }
/* Odkaz s ikonou (horní lišta) – na užší obrazovce jen ikona, název zůstává pro čtečky a v bublině */
.pill--icon { gap: 6px; padding: 5px 12px 5px 10px; }
.pill--icon .icon { flex-shrink: 0; color: #fff; }
/* Přihlášení zaměstnanců – odděleně od odkazů na systémy */
.pill--login { margin-left: 6px; background: transparent; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); }
.pill--login:hover { background: rgba(255, 255, 255, .18); }

/* ---------- Hlavička ---------- */

/* Lišta školy pro přihlášené (místo lišty WordPressu) */
.schoolbar { position: sticky; top: 0; z-index: 90; background: var(--dark); color: #fff; font-size: 14px; }
.schoolbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 42px; }
.schoolbar__list { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.schoolbar__panel { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 8px; }
.schoolbar__toggle { display: none; align-items: center; gap: 8px; min-height: 40px; padding: 0 12px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, .14); color: #fff; font: 600 15px var(--font-body); cursor: pointer; }
.schoolbar__toggle[aria-expanded="true"] { background: rgba(255, 255, 255, .24); }
.schoolbar__menu { position: relative; }
.schoolbar__button { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 10px; border-radius: 8px; color: #fff; font-weight: 600; cursor: pointer; list-style: none; white-space: nowrap; user-select: none; }
.schoolbar__button::-webkit-details-marker { display: none; }
.schoolbar__button .icon:last-child { opacity: .7; }
.schoolbar__button:hover, .schoolbar__menu[open] > .schoolbar__button { background: rgba(255, 255, 255, .14); }
a.schoolbar__button { text-decoration: none; }
a.schoolbar__button:hover { color: #fff; }
.schoolbar__button:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
.schoolbar__item--main .schoolbar__button { background: rgba(255, 255, 255, .18); }
.schoolbar__dropdown { position: absolute; left: 0; top: calc(100% + 6px); z-index: 95; min-width: 230px; margin: 0; padding: 6px; list-style: none; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px rgba(20, 30, 60, .18); }
.schoolbar__dropdown--right { left: auto; right: 0; }
.schoolbar__dropdown a { display: block; padding: 8px 12px; border-radius: 8px; color: var(--ink); text-decoration: none; font-weight: 500; }
.schoolbar__dropdown a:hover { background: var(--blue-soft); color: var(--blue-dark); }
/* Správce: skupiny s nadpisem a ikonami, na počítači ve dvou sloupcích */
.schoolbar__dropdown--groups { left: auto; right: 0; width: max-content; max-width: calc(100vw - 24px); columns: 2 250px; column-gap: 4px; padding: 8px; }
.schoolbar__group { break-inside: avoid; padding-bottom: 8px; }
.schoolbar__group ul { margin: 0; padding: 0; list-style: none; }
.schoolbar__dropdown--groups a { display: flex; align-items: center; gap: 10px; padding: 6px 12px; }
.schoolbar__dropdown--groups a .icon { flex: none; color: var(--muted); }
.schoolbar__dropdown--groups a:hover .icon { color: var(--blue); }
.schoolbar__heading { display: block; padding: 6px 12px 3px; color: var(--muted); font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
/* Plovoucí tlačítko úprav se nezobrazuje – vše je v liště školy (i na mobilu) */
.has-schoolbar .edit-bar { display: none; }
@media (max-width: 900px) {
	.schoolbar { position: static; }
	/* Mobil: tlačítko „Správa webu“ (hamburger), po rozbalení nabídky pod sebou jako rozklikávací sekce */
	.schoolbar__inner { flex-wrap: wrap; padding-top: 4px; padding-bottom: 4px; }
	.schoolbar__toggle { display: inline-flex; }
	.schoolbar__panel { display: none; flex: 0 0 100%; width: 100%; padding: 4px 0 8px; }
	.schoolbar.is-open .schoolbar__panel { display: block; }
	.schoolbar__list { flex-direction: column; align-items: stretch; gap: 2px; }
	.schoolbar__button { display: flex; width: 100%; min-height: 44px; padding: 0 10px; }
	.schoolbar__button .icon:last-child { margin-left: auto; }
	.schoolbar__menu[open] > .schoolbar__button .icon:last-child { transform: rotate(180deg); }
	.schoolbar__dropdown, .schoolbar__dropdown--right { position: static; min-width: 0; margin: 2px 0 6px; padding: 4px 0 4px 28px; background: transparent; border: 0; box-shadow: none; }
	.schoolbar__dropdown a { color: #fff; padding: 10px 12px; }
	.schoolbar__dropdown a:hover { background: rgba(255, 255, 255, .14); color: #fff; }
	.schoolbar__dropdown--groups a .icon, .schoolbar__dropdown--groups a:hover .icon { color: rgba(255, 255, 255, .75); }
	.schoolbar__heading { color: rgba(255, 255, 255, .6); }
	.schoolbar__dropdown--groups { width: auto; max-width: none; columns: auto; }
	.schoolbar__user { margin-top: 4px; padding-top: 4px; border-top: 1px solid rgba(255, 255, 255, .2); }
}

.site-header { background: var(--surface); border-bottom: 1px solid var(--line); }
.site-header__inner { min-height: 108px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }

.brand { display: flex; align-items: center; gap: 16px; color: var(--ink); text-decoration: none; min-width: 0; }
.brand:hover { color: var(--ink); }
.brand__logo { width: 64px; height: 64px; }
.brand__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.brand__name { font-family: var(--font-display); font-size: 23px; font-weight: 600; letter-spacing: -.2px; line-height: 1.2; }
.brand__sub { font-size: 15px; font-weight: 500; color: var(--muted); }

.site-header__actions { display: flex; align-items: center; gap: 14px; }

.search-form {
	display: flex; align-items: center; gap: 8px; height: 46px; padding: 0 16px;
	background: var(--soft); border: 1px solid var(--line); border-radius: 999px; color: var(--muted);
}
.search-form:focus-within { border-color: var(--blue); outline: 2px solid var(--blue); outline-offset: 1px; }
.search-form__input {
	border: 0; background: transparent; outline: none; width: 150px;
	font: 15px var(--font-body); color: var(--ink);
}
.search-form__input::placeholder { color: var(--muted); opacity: 1; }

.nav-toggle {
	display: none; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 12px; border: 0;
	background: var(--blue); color: #fff; cursor: pointer;
}
.nav-toggle .icon--close { display: none; }
.nav-toggle[aria-expanded="true"] .icon--menu { display: none; }
.nav-toggle[aria-expanded="true"] .icon--close { display: block; }

/* ---------- Hlavní menu ---------- */

.main-nav { background: var(--surface); border-bottom: 1px solid var(--line); }
.main-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; min-height: 56px; }
.main-nav__list li { display: flex; }
.main-nav__list a {
	display: flex; align-items: center; padding: 0 18px;
	font-size: 16px; font-weight: 500; color: var(--ink); text-decoration: none;
}
.main-nav__list a:hover { color: var(--blue); }
.main-nav__list .current-menu-item > a,
.main-nav__list .current-menu-ancestor > a,
.main-nav__list .current_page_parent > a,
.main-nav__list .current-page-ancestor > a {
	color: var(--blue); font-weight: 600; box-shadow: inset 0 -3px 0 var(--blue);
}
.main-nav__search { display: none; }

/* „Pro rodiče“ – barevně odlišená položka */
.main-nav__list .menu-item-pro-rodice > a { align-self: center; min-height: 40px; margin: 0 6px; padding: 0 16px; border-radius: 999px; background: var(--green-soft); color: var(--green-dark); font-weight: 600; box-shadow: inset 0 0 0 1px #BFDCCB; }
.main-nav__list .menu-item-pro-rodice > a:hover,
.main-nav__list .menu-item-pro-rodice.current-menu-item > a,
.main-nav__list .menu-item-pro-rodice.current-menu-ancestor > a,
.main-nav__list .menu-item-pro-rodice.current-page-ancestor > a { background: var(--green); color: #fff; box-shadow: none; }

/* Podnabídka (skupina položek) */
.main-nav__list > li { position: relative; align-items: stretch; }
.main-nav__sub-toggle { display: flex; align-items: center; margin-left: -14px; padding: 0 10px 0 4px; border: 0; background: none; color: var(--muted); cursor: pointer; }
.main-nav__sub-toggle .icon { transition: transform .15s; }
.main-nav__list li.is-open > .main-nav__sub-toggle .icon { transform: rotate(180deg); }
.main-nav__list .sub-menu {
	display: none; position: absolute; top: 100%; left: 0; z-index: 60; min-width: 220px; margin: 0; padding: 6px;
	list-style: none; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 12px 28px rgba(22, 32, 58, .14);
}
.main-nav__list li:hover > .sub-menu,
.main-nav__list li:focus-within > .sub-menu,
.main-nav__list li.is-open > .sub-menu { display: block; }
.main-nav__list .sub-menu li { display: block; }
.main-nav__list .sub-menu a { padding: 10px 14px; border-radius: 10px; font-size: 15.5px; box-shadow: none !important; }
.main-nav__list .sub-menu a:hover { background: var(--blue-soft); }
.main-nav__list .sub-menu .current-menu-item > a { background: var(--blue-soft); }
/* Rychlé odkazy části školy (Akce, Aktuality, Dokumenty, Fotogalerie) oddělené od podstránek */
.main-nav__list .sub-menu .menu-item-part-first { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line-soft); }

/* ---------- Úvodní stránka – hero ---------- */

.hero { background: var(--surface); border-bottom: 1px solid var(--line); }
.hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 64px; padding-top: 56px; padding-bottom: 64px; }
.hero__text { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.hero__title { font-size: clamp(34px, 4.2vw, 52px); line-height: 1.1; letter-spacing: -1px; }
.hero__lead { margin: 0; font-size: 19px; line-height: 1.6; color: var(--muted); max-width: 520px; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 6px; }
.hero__media { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 3 / 2; background: var(--line); }
.hero__image { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Sekce ---------- */

.section { padding-top: 60px; }
.section--tight { padding-top: 28px; }
.section--first { padding-top: 40px; }
.section--last { padding-bottom: 0; }

.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.section-head__title { font-size: clamp(26px, 3vw, 34px); letter-spacing: -.5px; }
.section-head__lead { margin: 6px 0 0; font-size: 17px; color: var(--muted); }
.section-head--on-dark .section-head__title { color: #fff; }
.section-head--on-dark .section-head__lead { color: var(--on-dark-muted); }

/* ---------- Upozornění ---------- */

.notice-box {
	display: flex; align-items: flex-start; gap: 20px; padding: 26px 30px;
	background: var(--warm-soft); border: 1px solid var(--warm-line); border-radius: var(--radius);
}
.notice-box__icon {
	flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px;
	background: var(--warm); color: #fff; display: flex; align-items: center; justify-content: center;
}
.notice-box__body { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.notice-box__meta { margin: 0; display: flex; gap: 12px; align-items: center; font-size: 14px; color: #6E5E50; }
.notice-box__label { font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--warm); }
.notice-box__title { font-size: 22px; }
.notice-box__text { margin: 0; font-size: 17px; line-height: 1.55; color: var(--muted); }
.notice-box .btn { align-self: center; flex-shrink: 0; }

/* ---------- Rychlé odkazy ---------- */

.quicklinks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.quicklink {
	height: 100%; display: flex; flex-direction: column; gap: 6px; padding: 24px;
	background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
	text-decoration: none; transition: border-color .15s, transform .15s;
}
.quicklink:hover { border-color: var(--blue); }
.quicklink .icon-tile { margin-bottom: 8px; }
.quicklink__title { font-family: var(--font-display); font-size: 19px; font-weight: 600; color: var(--ink); }
.quicklink__text { font-size: 15px; line-height: 1.45; color: var(--muted); }

/* ---------- Karty aktualit ---------- */

.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: border-color .15s; }
.card:hover { border-color: var(--blue); }
.card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.card__link:hover { color: inherit; }
.card__image { width: 100%; height: 180px; object-fit: cover; }
.card__body { display: flex; flex-direction: column; gap: 10px; padding: 22px; }
.card__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; color: var(--muted); }
.card__title { font-family: var(--font-display); font-size: 21px; font-weight: 600; line-height: 1.25; color: var(--ink); }
.card__link:hover .card__title { color: var(--blue); }
.card__text { font-size: 16px; line-height: 1.55; color: var(--muted); }

/* ---------- Jídelníček ---------- */

.menu-week { background: var(--dark); border-radius: var(--radius-lg); padding: 36px 40px 40px; }
.menu-week__days { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.menu-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }

.menu-day { background: var(--surface); border-radius: 16px; padding: 22px 24px; border: 1px solid var(--line); }
.menu-week .menu-day { border: 0; }
.menu-day--today { box-shadow: inset 0 0 0 2px var(--green); }
.menu-day__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.menu-day__title { font-size: 19px; }
.menu-day__list { margin: 0; display: flex; flex-direction: column; gap: 11px; }
.menu-day__list dt { font-size: 13px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--muted); }
.menu-day__list dd { margin: 2px 0 0; font-size: 15.5px; line-height: 1.45; }
.menu-day__allergens { color: var(--muted); font-size: 14px; }

/* ---------- Kalendář + části školy ---------- */

.home-split { display: grid; grid-template-columns: 384px minmax(0, 1fr); gap: 24px; align-items: start; }
.home-split__main { display: flex; flex-direction: column; gap: 18px; }

.calendar { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 26px 28px; display: flex; flex-direction: column; gap: 16px; }
.calendar__head { display: flex; align-items: center; justify-content: space-between; }
.calendar__title { font-size: 22px; }
.calendar__nav { display: flex; gap: 6px; }
.calendar__grid { width: 100%; border-collapse: separate; border-spacing: 4px; margin: -4px; width: calc(100% + 8px); table-layout: fixed; }
.calendar__grid th { font-size: 12px; font-weight: 700; color: var(--muted); padding-bottom: 4px; }
.calendar__grid th abbr { text-decoration: none; }
.calendar__grid td { padding: 0; }
.calendar__day {
	height: 38px; display: flex; align-items: center; justify-content: center;
	border-radius: 9px; font-size: 15px; color: var(--ink); text-decoration: none;
}
.calendar__day.is-weekend { color: var(--weekend); }
.calendar__day.is-today { background: var(--blue); color: #fff; font-weight: 700; }
/* Barvy akcí podle části školy: ev-zs, ev-ms, ev-sd, ev-all (celá škola), ev-off (volno) */
.ev-zs { --ev: #2F4FB5; --ev-soft: #EEF2FB; --ev-line: #C9D4F0; --ev-ink: #17265C; }
.ev-ms { --ev: var(--warm); --ev-soft: var(--warm-soft); --ev-line: #E8C9AC; --ev-ink: #8A3A15; }
.ev-sd { --ev: var(--green); --ev-soft: var(--green-soft); --ev-line: #BFDCCB; --ev-ink: var(--green-dark); }
.ev-all { --ev: var(--purple); --ev-soft: var(--purple-soft); --ev-line: #D5CCEC; --ev-ink: #473A80; }
.ev-off { --ev: #6B7280; --ev-soft: #EEEFF1; --ev-line: #D5D8DD; --ev-ink: #4B5260; }
.calendar__day.is-event { flex-direction: column; gap: 2px; background: var(--ev-soft, var(--soft)); color: var(--ev-ink, var(--ink)); font-weight: 700; box-shadow: inset 0 0 0 1.5px var(--ev-line, var(--line)); }
.calendar__day.is-event:hover { box-shadow: inset 0 0 0 2px var(--ev, var(--ink)); }
.calendar__day.is-event.is-today { background: var(--blue); color: #fff; box-shadow: inset 0 0 0 2px var(--ev-line, var(--line)); }
.calendar__num { line-height: 1; }
.calendar__dots { display: flex; gap: 3px; height: 6px; }
.calendar__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ev); }
.calendar__day.is-today .calendar__dot { box-shadow: 0 0 0 1.5px #fff; }
.calendar__legend { list-style: none; margin: 0; padding: 14px 0 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-size: 14.5px; color: var(--muted); }
.calendar__legend li { display: inline-flex; align-items: center; gap: 8px; }
.calendar__swatch { width: 12px; height: 12px; border-radius: 4px; background: var(--ev-soft); box-shadow: inset 0 0 0 2px var(--ev); }
.calendar__subtitle { font-family: var(--font-body); font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--muted); }
.calendar__upcoming { list-style: none; margin: -6px 0 0; padding: 0; }
.calendar__upcoming a { display: flex; gap: 12px; padding: 8px 0; border-top: 1px solid var(--line-soft); color: var(--ink); text-decoration: none; font-size: 15.5px; line-height: 1.4; }
.calendar__upcoming a:hover span { color: var(--blue); }
.calendar__upcoming time { flex-shrink: 0; min-width: 44px; font-weight: 700; color: var(--ev, var(--warm)); }

.parts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.part {
	display: flex; align-items: stretch; min-height: 132px; height: 100%;
	background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
	overflow: hidden; text-decoration: none; transition: border-color .15s;
}
.part:hover { border-color: var(--blue); }
.part__image { width: 118px; height: auto; object-fit: cover; flex-shrink: 0; }
.part__body { display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 18px 20px; }
.part__title { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--ink); }
.part__text { font-size: 15px; line-height: 1.45; color: var(--muted); }
.part--solid { background: var(--green); border-color: var(--green); align-items: center; padding-left: 22px; gap: 4px; }
.part--solid:hover { background: var(--green-dark); border-color: var(--green-dark); }
.part--solid .part__title { color: #fff; }
.part--solid .part__text { color: #D4E8DD; }
.part__icon {
	flex-shrink: 0; width: 52px; height: 52px; border-radius: 14px;
	background: rgba(255, 255, 255, .18); color: #fff; display: flex; align-items: center; justify-content: center;
}

.systems { list-style: none; margin: 0; padding: 4px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; }
.system {
	display: flex; align-items: center; gap: 14px; padding: 18px 20px; height: 100%;
	background: var(--surface); border: 1px solid var(--line); border-radius: 16px; text-decoration: none;
}
.system:hover { border-color: var(--blue); }
.system > span:last-child { display: flex; flex-direction: column; }
.system strong { font-size: 16px; color: var(--ink); }
.system span span { font-size: 14px; color: var(--muted); }

/* ---------- Pás fotek ---------- */

.photo-strip { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.photo-strip a { display: block; border-radius: 16px; overflow: hidden; aspect-ratio: 3 / 2; }
.photo-strip img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.photo-strip a:hover img { transform: scale(1.03); }

/* ---------- Záhlaví vnitřní stránky ---------- */

.page-header { background: var(--surface); border-bottom: 1px solid var(--line); padding: 22px 0 34px; }
.breadcrumbs ol { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 9px; font-size: 14.5px; color: var(--muted); }
.breadcrumbs li:not(:last-child)::after { content: "›"; margin-left: 9px; }
.breadcrumbs a { color: var(--muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--blue); text-decoration: underline; }
.breadcrumbs [aria-current] { color: var(--ink); font-weight: 600; }
.page-header__title { font-size: clamp(32px, 4vw, 44px); letter-spacing: -.8px; line-height: 1.1; }
.page-header__lead { margin: 16px 0 0; max-width: 720px; font-size: 18.5px; line-height: 1.55; color: var(--muted); }

/* ---------- Rozvržení s postranním sloupcem ---------- */

.layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; }
.layout--nav { grid-template-columns: 280px minmax(0, 1fr); }
.layout--narrow { grid-template-columns: minmax(0, 820px); }
.layout--full { grid-template-columns: minmax(0, 1fr); }
.layout__main { min-width: 0; }
.layout__aside { display: flex; flex-direction: column; gap: 20px; }

.section-nav { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 20px 10px; position: sticky; top: 20px; }
.section-nav__title { margin: 0 0 6px; padding: 0 12px; font-family: var(--font-display); font-size: 19px; font-weight: 600; }
.section-nav__title a { color: var(--ink); text-decoration: none; }
.section-nav ul { list-style: none; margin: 0; padding: 0; }
.section-nav ul ul { padding-left: 14px; }
.section-nav li a { display: block; padding: 9px 12px; border-radius: 10px; color: var(--ink); text-decoration: none; font-size: 16px; line-height: 1.35; }
.section-nav li a:hover { background: var(--soft); color: var(--blue); }
.section-nav .current_page_item > a { background: var(--blue-soft); color: var(--blue); font-weight: 600; }

.box { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 24px 26px; display: flex; flex-direction: column; gap: 14px; }
.box p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--muted); }
.box__title { font-size: 20px; }
.box--dark { background: var(--dark); border-color: var(--dark); }
.box--dark .box__title { color: #fff; }
.box--green { background: var(--green); border-color: var(--green); }
.box--green .box__title { color: #fff; }
.box--green p { color: #E3F0E9; }

.contact-line { display: flex; align-items: center; gap: 13px; padding: 14px 16px; border-radius: 12px; background: rgba(255, 255, 255, .12); color: #fff; text-decoration: none; }
.contact-line:hover { background: rgba(255, 255, 255, .2); color: #fff; }
.contact-line > span { display: flex; flex-direction: column; min-width: 0; }
.contact-line small { font-size: 12.5px; color: var(--on-dark-muted); }
.contact-line strong { font-size: 17px; overflow-wrap: anywhere; }

.link-list { list-style: none; margin: 0; padding: 0; }
.link-list a { display: flex; flex-direction: column; gap: 2px; padding: 10px 0; border-top: 1px solid var(--line-soft); color: var(--ink); text-decoration: none; font-size: 16px; line-height: 1.4; }
.link-list li:first-child a { border-top: 0; padding-top: 0; }
.link-list a:hover span { color: var(--blue); }
.link-list small { color: var(--muted); font-size: 14px; }

.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 32px 36px; margin-bottom: 24px; }
.panel__title { font-size: 27px; }
.panel__subtitle { font-size: 22px; margin-bottom: 16px; }
.panel__lead { margin: 8px 0 22px; font-size: 18px; color: var(--muted); }
.panel--map { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.panel--map .panel__subtitle { margin-bottom: 4px; }
.panel--map p { margin: 0; }
.panel__map { flex: 0 0 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }
.panel__map iframe { display: block; width: 100%; height: 260px; border: 0; }

.facts { margin: 0; }
.facts--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 44px; }
.facts--grid > div { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-top: 1px solid var(--line-soft); }
.facts--grid dt { color: var(--muted); }
.facts--grid dd { margin: 0; font-weight: 600; text-align: right; }
.facts--grid a { text-decoration: none; }
.facts--box { display: flex; flex-wrap: wrap; gap: 12px 32px; padding: 20px 24px; margin-bottom: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.facts--box dt { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--muted); }
.facts--box dd { margin: 3px 0 0; font-size: 18px; font-weight: 600; }

.people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
.person { display: flex; gap: 14px; align-items: flex-start; }
.person__photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.person__photo--empty { display: flex; align-items: center; justify-content: center; background: var(--blue-soft); color: var(--blue); font-family: var(--font-display); font-size: 22px; font-weight: 600; }
.person__body { display: flex; flex-direction: column; gap: 1px; font-size: 15.5px; line-height: 1.45; }
.person__body strong { font-size: 16.5px; }
.person__body span { color: var(--muted); }
.person__body a { text-decoration: none; overflow-wrap: anywhere; }
/* Kontakty: přepínač celá škola / části */
.contacts-filter { margin-bottom: 20px; }

/* Leták u akce */
.event-leaflet { margin-bottom: 28px; }
.event-leaflet figcaption { margin-top: 6px; font-size: 14px; color: var(--muted); }
.card__leaflet { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--warm); }

/* Pedagogické obsazení ([zsn_obsazeni]) – v textu stránky */
.staffing { display: flex; flex-direction: column; gap: 26px; margin: 1.2em 0; }
.staffing__title { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font-size: 19px; }
.entry-content .staffing__title { margin: 0 0 14px; font-size: 22px; }
.staffing__icon { width: 40px; height: 40px; object-fit: contain; border-radius: 0 !important; }
.entry-content .people { padding-left: 0; }
.entry-content .person { margin-bottom: 0; }
.entry-content .person__photo { border-radius: 50%; }

/* ---------- Obsah článku a stránky ---------- */

.entry-meta { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; color: var(--muted); font-size: 15px; }
.entry-image { margin: 0 0 28px; border-radius: var(--radius); overflow: hidden; }
.entry-image img { width: 100%; }

.entry-content { font-size: 18px; line-height: 1.7; }
.entry-content > * { margin-top: 0; margin-bottom: 1.1em; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content h2 { font-size: 27px; margin-top: 1.6em; margin-bottom: .6em; }
.entry-content h3 { font-size: 22px; margin-top: 1.4em; margin-bottom: .5em; }
.entry-content h4 { font-size: 19px; margin-top: 1.2em; margin-bottom: .4em; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li { margin-bottom: .35em; }
/* Dlaždice dokumentů v textu stránky (např. Ochrana osobních údajů) */
.entry-content .doc-grid { padding-left: 0; margin: 14px 0 18px; }
.entry-content .doc-grid li { margin-bottom: 0; }
.entry-content blockquote { margin-left: 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--line); color: var(--muted); font-style: italic; }
.entry-content figure { margin-left: 0; margin-right: 0; }
.entry-content img { border-radius: 12px; }
.entry-content figcaption { font-size: 14.5px; color: var(--muted); margin-top: 8px; }
.entry-content hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.entry-content table, .table { width: 100%; border-collapse: collapse; font-size: 16px; }
.entry-content th, .entry-content td, .table th, .table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.entry-content thead th, .table thead th { font-size: 13.5px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--muted); border-bottom-width: 2px; }
.entry-content .wp-block-table { overflow-x: auto; }
.entry-content .wp-block-file {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
	padding: 14px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
}
.entry-content .wp-block-file a:not(.wp-block-file__button) { font-weight: 600; text-decoration: none; }
.entry-content .wp-block-file__button {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px !important;
	border-radius: 10px !important; background: var(--blue) !important; color: #fff !important;
	font-size: 14px !important; font-weight: 600; text-decoration: none;
}
.entry-content .wp-block-gallery { gap: 12px; }
.entry-content .wp-block-gallery img { border-radius: 12px; }
.entry-content .wp-block-details { padding: 14px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; }
.entry-content .wp-block-details summary { font-weight: 600; cursor: pointer; }

.back-link { margin: 36px 0 0; }

/* ---------- Výpisy: filtr, akce, dokumenty, galerie, hledání ---------- */

.filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
/* Filtr podle části školy + tlačítko Přidat (dokumenty, fotogalerie) */
.archive-tools { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 20px; margin-bottom: 28px; }
.archive-tools .filter, .archive-tools .view-switch { margin-bottom: 0; }
.archive-tools__actions { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.filter__item {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
	border-radius: 999px; border: 1px solid var(--line); background: var(--surface);
	color: var(--ink); font-size: 15px; font-weight: 600; text-decoration: none;
}
.filter__item:hover { border-color: var(--blue); color: var(--blue); }
.filter__item.is-active { background: var(--blue-dark); border-color: var(--blue-dark); color: #fff; }

.event-list, .doc-list, .result-list, .gallery-grid { list-style: none; margin: 0; padding: 0; }
.event-list { display: flex; flex-direction: column; gap: 12px; max-width: 860px; }
.event { display: flex; align-items: center; gap: 20px; padding: 16px 20px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; color: var(--ink); }
.event:hover { border-color: var(--blue); color: var(--ink); }
.event__date { flex-shrink: 0; width: 66px; height: 66px; border-radius: 14px; background: var(--ev-soft, var(--warm-soft)); color: var(--ev-ink, var(--warm)); box-shadow: inset 4px 0 0 var(--ev, transparent); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; }
.event__day { font-family: var(--font-display); font-size: 26px; font-weight: 600; }
.event__month { font-size: 12.5px; font-weight: 700; }
.event__body { display: flex; flex-direction: column; gap: 3px; }
.event__title { font-family: var(--font-display); font-size: 20px; font-weight: 600; }
.event:hover .event__title { color: var(--blue); }
.event__meta { font-size: 15px; color: var(--muted); }

.doc-list { display: flex; flex-direction: column; gap: 12px; max-width: 900px; }
.doc { display: flex; align-items: center; gap: 18px; padding: 18px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.doc--large { margin-bottom: 28px; }
.doc__body { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.doc__title { font-size: 18px; font-weight: 600; text-decoration: none; color: var(--ink); overflow-wrap: anywhere; }
a.doc__title:hover { color: var(--blue); }
.doc__meta { font-size: 14.5px; color: var(--muted); }
.doc__text { font-size: 15.5px; color: var(--muted); }

.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gallery-card { display: block; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--ink); }
.gallery-card:hover { border-color: var(--blue); color: var(--ink); }
.gallery-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.gallery-card__body { display: flex; flex-direction: column; gap: 3px; padding: 16px 20px 18px; }
.gallery-card__title { font-family: var(--font-display); font-size: 19px; font-weight: 600; }
.gallery-card__meta { font-size: 14.5px; color: var(--muted); }

.result-list { display: flex; flex-direction: column; gap: 10px; }
.result-list a { display: flex; flex-direction: column; gap: 3px; padding: 18px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; text-decoration: none; color: var(--ink); }
.result-list a:hover { border-color: var(--blue); }
.result-list small { font-size: 12.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--muted); }
.result-list strong { font-family: var(--font-display); font-size: 20px; font-weight: 600; }
.result-list span { font-size: 15.5px; color: var(--muted); }
.search-again { margin-bottom: 24px; }
.search-again .search-form { max-width: 480px; }
.search-again .search-form__input { width: 100%; }

.archive-switch { margin: 28px 0 0; }

.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.nav-links .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px;
	border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; font-weight: 600;
}
.nav-links .page-numbers.current { background: var(--blue-dark); border-color: var(--blue-dark); color: #fff; }
.nav-links a.page-numbers:hover { border-color: var(--blue); color: var(--blue); }

/* ---------- Patička ---------- */

.site-footer { background: var(--dark); color: var(--on-dark); margin-top: 60px; font-size: 15.5px; }
.site-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 48px; padding-top: 48px; }
.site-footer__brand { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.site-footer__brand img { width: 52px; height: 52px; }
.site-footer__brand > span { display: flex; flex-direction: column; gap: 2px; }
.site-footer__brand strong { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: #fff; }
.site-footer__brand span span { font-size: 14px; color: var(--on-dark-muted); }
.site-footer p { margin: 0 0 12px; line-height: 1.6; }
.site-footer__title { font-family: var(--font-body); font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--on-dark-head); margin-bottom: 14px; }
.site-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.site-footer a { color: var(--on-dark); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer .on-dark-strong { color: #fff; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 40px; padding-top: 22px; padding-bottom: 26px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: 14.5px; color: var(--on-dark-head); }

/* ==========================================================================
   Responzivita
   ========================================================================== */

@media (max-width: 1100px) {
	.home-split { grid-template-columns: minmax(0, 1fr); }
	.home-split__aside { order: 2; }
	.layout { grid-template-columns: minmax(0, 1fr) 300px; }
	.layout--nav { grid-template-columns: 240px minmax(0, 1fr); }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.topbar__address { display: none !important; }
	.pill--icon { width: 32px; height: 32px; padding: 0; justify-content: center; }
	.pill--icon .pill__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

@media (max-width: 900px) {
	:root { --gutter: 16px; }

	/* Hlavička a menu na mobilu */
	.site-header__inner { min-height: 72px; gap: 12px; }
	.brand { gap: 11px; }
	.brand__logo { width: 44px; height: 44px; }
	.brand__name { font-size: 17px; }
	.brand__sub { font-size: 12.5px; }
	.site-header__search { display: none; }
	.site-header__actions .btn--primary { width: 48px; padding: 0; }
	.site-header__actions .btn--primary span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.nav-toggle { display: inline-flex; }

	.js .main-nav { display: none; }
	.js .main-nav.is-open { display: block; }
	.main-nav__list { flex-direction: column; gap: 0; padding: 8px 0; }
	.main-nav__list a { padding: 14px 4px; min-height: 48px; border-bottom: 1px solid var(--line-soft); }
	.main-nav__list .current-menu-item > a,
	.main-nav__list .current-menu-ancestor > a,
	.main-nav__list .current_page_parent > a,
	.main-nav__list .current-page-ancestor > a { box-shadow: inset 3px 0 0 var(--blue); padding-left: 14px; }
	.main-nav__search { display: block; padding: 12px 0 18px; }
	/* Mobil: Pro rodiče jako zvýrazněný řádek, podnabídka pod položkou (rozbalí šipka) */
	.main-nav__list .menu-item-pro-rodice > a { margin: 6px 0; min-height: 48px; padding: 0 14px; }
	.main-nav__list > li { flex-wrap: wrap; }
	.main-nav__list > li > a { flex: 1; }
	.main-nav__sub-toggle { margin-left: 0; padding: 0 14px; border-bottom: 1px solid var(--line-soft); }
	.main-nav__list .sub-menu { position: static; width: 100%; min-width: 0; padding: 0 0 6px 16px; border: 0; border-radius: 0; box-shadow: none; }
	.main-nav__list li:hover > .sub-menu, .main-nav__list li:focus-within > .sub-menu { display: none; }
	.main-nav__list li.is-open > .sub-menu { display: block; }
	.main-nav__list .sub-menu a { padding: 12px 4px; border-radius: 0; border-bottom: 1px solid var(--line-soft); }
	.main-nav__search .search-form__input { width: 100%; }

	/* Mobil: kontakty vlevo, odkazy jen jako ikony vpravo (při nedostatku místa pod sebe) */
	.topbar__inner { flex-wrap: wrap; row-gap: 6px; padding-top: 6px; padding-bottom: 6px; }
	.topbar__contacts { gap: 16px; }
	.topbar__links { gap: 6px; flex-wrap: wrap; }

	/* Obsah */
	.hero__inner { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 20px; padding-bottom: 28px; }
	.hero__media { order: -1; aspect-ratio: 16 / 9; }
	.hero__lead { font-size: 17px; }
	/* Tlačítko Kontakty v úvodu na mobilu skryté – kontakty jsou v menu a níž na stránce */
	.hero__actions { display: none; }

	.quicklinks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.quicklink { padding: 18px; }
	.quicklink__text { display: none; }

	.cards, .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.menu-week { padding: 24px 20px; }
	.menu-week__days, .menu-list { grid-template-columns: minmax(0, 1fr); }
	.parts { grid-template-columns: minmax(0, 1fr); }
	.systems { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.system { flex-direction: column; text-align: center; padding: 14px 8px; gap: 8px; }
	.system span span { display: none; }
	.photo-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

	.layout, .layout--nav { grid-template-columns: minmax(0, 1fr); }
	.section-nav { position: static; }
	.panel { padding: 22px 20px; }
	.facts--grid, .people { grid-template-columns: minmax(0, 1fr); }

	.notice-box { flex-direction: column; padding: 20px; gap: 12px; }
	.notice-box .btn { align-self: flex-start; }

	.section { padding-top: 40px; }
	.section--tight { padding-top: 18px; }
	.page-header { padding: 16px 0 24px; }
	.page-header__lead { font-size: 17px; }
	.entry-content { font-size: 17px; }

	.site-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 32px; }
}

@media (max-width: 560px) {
	.cards, .gallery-grid { grid-template-columns: minmax(0, 1fr); }
	/* Mobil: vše na jednom řádku – u e-mailu jen ikona, menší mezery */
	.topbar__inner { gap: 10px; }
	.topbar__contacts { gap: 12px; }
	.topbar__email .topbar__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.topbar__links { gap: 4px; }
	.pill--login { margin-left: 2px; }
	.pill--icon { width: 30px; height: 30px; }
	.doc { flex-wrap: wrap; }
	.event { gap: 14px; padding: 14px; }
	.event__date { width: 56px; height: 56px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

@media print {
	.topbar, .main-nav, .site-header__actions, .site-footer, .layout__aside, .section-nav, .skip-link { display: none !important; }
	body { background: #fff; font-size: 12pt; }
	.page-header, .panel, .box, .card { border: 0; }
	a { color: inherit; }
}

/* ==========================================================================
   Rozvrh hodin (z Bakalářů)
   ========================================================================== */

.timetable-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; scroll-margin-top: 20px; }

.segmented { display: inline-flex; padding: 4px; gap: 4px; background: var(--soft); border: 1px solid var(--line); border-radius: 12px; }
.segmented__item { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 9px; color: var(--ink); font-size: 15px; font-weight: 600; text-decoration: none; }
.segmented__item:hover { color: var(--blue); }
.segmented__item.is-active { background: var(--surface); color: var(--blue); box-shadow: 0 1px 2px rgba(22, 32, 58, .12); }

.timetable-wrap { overflow-x: auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.timetable-wrap:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.timetable { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; }
.timetable th, .timetable td { border-bottom: 1px solid var(--line-soft); border-left: 1px solid var(--line-soft); padding: 8px; vertical-align: top; text-align: left; }
.timetable thead th { background: var(--ground); font-weight: 600; padding: 10px 8px; }
.timetable thead td { background: var(--ground); border-left: 0; width: 120px; }
.timetable tbody th { width: 120px; border-left: 0; position: sticky; left: 0; background: var(--surface); z-index: 1; }
.timetable tr:last-child th, .timetable tr:last-child td { border-bottom: 0; }
.timetable__num { display: block; font-family: var(--font-display); font-size: 17px; color: var(--ink); }
.timetable__time { display: block; font-size: 12.5px; color: var(--muted); font-weight: 500; }
.timetable__day { display: block; font-weight: 700; font-size: 15.5px; }
.timetable__date { display: block; font-size: 13px; color: var(--muted); }
.timetable tr.is-today th { box-shadow: inset 4px 0 0 var(--blue); }
.timetable tr.is-today th .timetable__date { color: var(--blue); font-weight: 600; }
.timetable td.is-empty { background: repeating-linear-gradient(135deg, transparent 0 6px, var(--ground) 6px 7px); }
.timetable__off { text-align: center !important; vertical-align: middle !important; color: var(--muted); font-weight: 600; background: var(--ground); }

.tt-lesson { display: flex; flex-direction: column; gap: 1px; padding: 6px 8px; border-radius: 8px; background: var(--blue-soft); line-height: 1.3; }
.tt-lesson + .tt-lesson { margin-top: 6px; }
.tt-lesson__subject { font-size: 15px; color: var(--ink); }
.tt-lesson__subject abbr, .tt-lesson__meta abbr { text-decoration: none; }
.tt-lesson__meta { display: flex; gap: 8px; font-size: 13px; color: var(--muted); }
.tt-lesson__group { font-size: 12px; color: var(--muted); }
.tt-lesson__change { font-size: 12.5px; color: var(--warm); font-weight: 600; }
.tt-lesson.is-changed { background: var(--warm-soft); box-shadow: inset 0 0 0 1.5px #E8C9AC; }
.tt-lesson.is-removed { background: var(--ground); box-shadow: inset 0 0 0 1.5px var(--line); }
.tt-lesson.is-removed .tt-lesson__subject { color: var(--muted); text-decoration: line-through; }
/* Hodina s tématem z třídní knihy – tečka v rohu, bublina při najetí / klepnutí (main.js) */
.tt-lesson { position: relative; }
.tt-lesson.has-tip { cursor: help; }
.tt-lesson.has-tip:hover, .tt-lesson.has-tip:focus-visible, .tt-lesson.has-tip.is-tip-open { box-shadow: inset 0 0 0 1.5px var(--blue); outline: none; }
/* Vyplněné téma hodiny – zelené zatržítko vpravo dole (jako v Bakalářích) */
.tt-lesson.has-theme { padding-right: 24px; }
.tt-lesson.has-theme::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 15px; height: 15px; border-radius: 3px; background: #22A35A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat; }
.tt-swatch--theme { background: #22A35A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10px no-repeat; }
/* Bublina u hodiny: bílé okénko s řádky popisek – hodnota */
.tt-tip { position: fixed; z-index: 200; width: max-content; max-width: min(360px, calc(100vw - 24px)); padding: 9px 12px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); font-size: 13.5px; line-height: 1.4; box-shadow: 0 6px 20px rgba(22, 32, 58, .18); pointer-events: none; }
.tt-tip__row { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 10px; }
.tt-tip__row + .tt-tip__row { margin-top: 3px; }
.tt-tip em { font-style: normal; color: var(--muted); }
.tt-tip b { font-weight: 600; }

.timetable-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: center; margin: 14px 0 0; font-size: 14.5px; color: var(--muted); }
.timetable-legend > span { display: inline-flex; align-items: center; gap: 8px; }
.tt-swatch { width: 14px; height: 14px; border-radius: 4px; }
.tt-swatch--changed { background: var(--warm-soft); box-shadow: inset 0 0 0 1.5px #E8C9AC; }
.tt-swatch--removed { background: var(--ground); box-shadow: inset 0 0 0 1.5px var(--line); }
.timetable-note { margin-top: 32px; max-width: 820px; }
/* Rozvrh tříd na jeden den (stránka Základní školy): řádek = třída */
.timetable--day { min-width: 640px; }
.timetable--day thead td, .timetable--day tbody th { width: 70px; }
.timetable__class { font-family: var(--font-display); font-size: 19px; font-weight: 600; color: var(--ink); text-decoration: none; }
.timetable__class:hover { color: var(--blue); }
.tt-days button.segmented__item { border: 0; background: transparent; font-family: inherit; cursor: pointer; }
.tt-days button.segmented__item.is-active { background: var(--surface); }
.tt-days__date { margin: 0 0 10px; font-weight: 600; color: var(--muted); }

.notice-box--info { background: var(--blue-soft); border-color: var(--blue-line); }
.notice-box--info .notice-box__icon { background: var(--blue); }

@media (max-width: 900px) {
	.timetable-head { margin-bottom: 12px; }
	.timetable tbody th, .timetable thead td { width: 92px; }
	.timetable th, .timetable td { padding: 6px; }
}

@media print {
	.segmented, .filter, .timetable-legend { display: none !important; }
	.timetable-wrap { overflow: visible; border: 0; }
	.timetable { min-width: 0; }
}

/* ==========================================================================
   Úpravy pro přihlášené (plovoucí tlačítka vpravo dole)
   ========================================================================== */

.edit-bar {
	position: fixed; right: 20px; bottom: 20px; z-index: 90;
	display: flex; flex-direction: column; align-items: flex-end; gap: 8px;
}
.edit-bar__link {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px;
	border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink);
	font-size: 14px; font-weight: 600; text-decoration: none;
	box-shadow: 0 4px 14px rgba(22, 32, 58, .14);
}
.edit-bar__link:hover { border-color: var(--blue); color: var(--blue); }
.edit-bar__link--main { order: 1; min-height: 48px; padding: 0 18px; background: var(--blue); border-color: var(--blue); color: #fff; font-size: 15px; }
.edit-bar__link--main:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: #fff; }
/* Vedlejší odkazy se ukážou po najetí / fokusu, aby tlačítko nezakrývalo obsah */
.edit-bar__link:not(.edit-bar__link--main) { display: none; }
.edit-bar:hover .edit-bar__link, .edit-bar:focus-within .edit-bar__link { display: inline-flex; }
/* Dotykový displej: další úpravy rozbalí kulaté tlačítko + nad hlavním (najetí myší tam nejde) */
.edit-bar__toggle { display: none; order: 1; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); color: var(--blue); box-shadow: 0 4px 14px rgba(22, 32, 58, .14); cursor: pointer; }
.edit-bar__toggle .icon { transition: transform .15s; }
/* Nabídka „Přidat“ (stránka části školy): hlavní tlačítko rozbalí seznam i kliknutím */
button.edit-bar__link { cursor: pointer; font-family: inherit; }
.edit-bar.is-open .edit-bar__link { display: inline-flex; }
.edit-bar__menu .icon { transition: transform .15s; }
.edit-bar.is-open .edit-bar__menu .icon { transform: rotate(45deg); }
@media (hover: none) {
	.edit-bar__toggle { display: inline-flex; }
	.edit-bar:hover .edit-bar__link:not(.edit-bar__link--main), .edit-bar:focus-within .edit-bar__link:not(.edit-bar__link--main) { display: none; }
	.edit-bar.is-open .edit-bar__link:not(.edit-bar__link--main) { display: inline-flex; }
	.edit-bar.is-open .edit-bar__toggle .icon { transform: rotate(45deg); }
}

@media (max-width: 560px) {
	.edit-bar { right: 12px; bottom: 12px; }
	.edit-bar__link--main span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.edit-bar__link--main { width: 48px; padding: 0; justify-content: center; }
}

@media print {
	.edit-bar { display: none !important; }
}

/* ==========================================================================
   Rozcestník stránky (podstránky, aktuality části školy)
   ========================================================================== */

.entry-content + .subpages, .entry-content + .page-block { margin-top: 36px; }
.subpages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.subpage {
	position: relative; height: 100%; display: flex; flex-direction: column; gap: 5px;
	padding: 20px 52px 20px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px;
	text-decoration: none; color: var(--ink); transition: border-color .15s;
}
.subpage:hover { border-color: var(--blue); color: var(--ink); }
.subpage__title { font-family: var(--font-display); font-size: 19px; font-weight: 600; line-height: 1.25; }
.subpage:hover .subpage__title { color: var(--blue); }
.subpage__text { font-size: 15px; line-height: 1.5; color: var(--muted); }
.subpage .icon { position: absolute; right: 20px; top: 22px; color: var(--blue); }
.section-nav__events { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line-soft); }

.page-block { margin-top: 44px; }
.page-block .section-head { margin-bottom: 18px; }
/* Stránka s dokumenty: kartičky dokumentů (víc druhů = po druzích s nadpisem) */
.doc-page { margin-top: 28px; }
.doc-page__title { margin: 0 0 12px; font-size: 22px; }
.doc-grid--page { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.page-block .section-head__title { font-size: 26px; }
.cards--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cards--compact .card__image { height: 150px; }

/* Karty akcí: barva části školy nahoře a v datu */
.card--event { border-top: 4px solid var(--ev, var(--line)); }
.card--event:hover { border-color: var(--ev, var(--blue)); }
.card--event .card__link:hover .card__title { color: var(--ev-ink, var(--blue)); }
.card__media { position: relative; display: block; }
.event-badge {
	position: absolute; left: 14px; top: 14px; min-width: 58px; padding: 7px 10px;
	display: flex; flex-direction: column; align-items: center; line-height: 1.1;
	background: var(--surface); color: var(--ev-ink, var(--ink)); border-radius: 12px;
	box-shadow: 0 4px 14px rgba(22, 32, 58, .16);
}
.card--no-image .event-badge { position: static; align-self: flex-start; background: var(--ev-soft, var(--soft)); box-shadow: none; }
.event-badge__day { font-family: var(--font-display); font-size: 24px; font-weight: 600; }
.event-badge__month { font-size: 12.5px; font-weight: 700; }
.ev-badge { background: var(--ev-soft); color: var(--ev-ink); }
.card--event .class-chips { margin-top: 0; }

@media (max-width: 900px) {
	.subpages, .cards--compact { grid-template-columns: minmax(0, 1fr); }
}

/* Rozcestník přes celou šířku: text stránky v čitelné šířce, dlaždice ve třech sloupcích */
.layout--full .entry-content { max-width: 820px; }
.layout--full .subpages, .layout--full .cards--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.layout--full .menu-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 1100px) {
	.layout--full .subpages, .layout--full .cards--compact, .layout--full .menu-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.layout--full .subpages, .layout--full .cards--compact, .layout--full .menu-list { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   Tabulky vložené z Wordu (převedený obsah i nové vložení)
   ========================================================================== */

.entry-content table { font-size: 15.5px; line-height: 1.45; }
.entry-content > table { display: block; max-width: 100%; overflow-x: auto; }
.entry-content td p, .entry-content th p { margin: 0; }
.entry-content td p + p, .entry-content th p + p { margin-top: .4em; }
/* Nadpisy použité v buňce jen jako formátování → běžný tučný text */
.entry-content td :is(h1, h2, h3, h4, h5, h6),
.entry-content th :is(h1, h2, h3, h4, h5, h6) {
	margin: 0; font-family: var(--font-body); font-size: inherit; font-weight: 700; line-height: inherit; color: inherit;
}
.entry-content td ul, .entry-content td ol { margin: 0; padding-left: 1.1em; }
.entry-content tr:first-child td { font-weight: 600; background: var(--ground); }

/* Úvodní blok bez fotky: text přes celou šířku, bez prázdného místa vpravo */
.hero--no-image .hero__inner { grid-template-columns: minmax(0, 820px); }

/* Detail galerie */
.gallery-intro { max-width: 820px; margin-bottom: 24px; }
.photo-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.photo-grid a { display: block; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--line); }
.photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.photo-grid a:hover img { transform: scale(1.03); }
/* Video v galerii: přehrávač ve stejné dlaždici jako fotka */
.photo-grid__video video { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; background: #000; }
@media (max-width: 1100px) { .photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } }

/* Přihlášení v patičce */
.site-footer__meta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; }
.site-footer__login { display: inline-flex; align-items: center; gap: 6px; color: var(--on-dark-head) !important; }
.site-footer__login:hover { color: #fff !important; }

/* ==========================================================================
   Úvodní část: podkres a prezentace fotek
   ========================================================================== */

.hero { position: relative; overflow: hidden; background: #EFF3FB; border-bottom: 0; }
/* Tečkovaný vzor vlevo nahoře */
.hero::before {
	content: ""; position: absolute; left: 0; top: 0; width: 420px; height: 300px; pointer-events: none;
	background-image: radial-gradient(#C3CEEA 1.6px, transparent 1.8px); background-size: 18px 18px;
	-webkit-mask-image: linear-gradient(135deg, #000 20%, transparent 75%); mask-image: linear-gradient(135deg, #000 20%, transparent 75%);
}
/* Zelený kruhový nádech za fotkou */
.hero::after {
	content: ""; position: absolute; right: -160px; top: -140px; width: 720px; height: 720px; border-radius: 50%; pointer-events: none;
	background: radial-gradient(circle at 40% 40%, rgba(45, 115, 85, .16), rgba(45, 115, 85, 0) 68%);
}
.hero__inner { position: relative; z-index: 1; padding-bottom: 104px; }
.hero__wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 64px; display: block; fill: var(--ground); z-index: 1; }

/* Barevná podložka posunutá za fotkou */
.hero__visual { position: relative; }
.hero__visual::before {
	content: ""; position: absolute; inset: 22px -22px -22px 22px; border-radius: var(--radius-lg);
	background: #D6E7DE; transform: rotate(2deg);
}
.hero-slider {
	position: relative; z-index: 1; aspect-ratio: 3 / 2; border-radius: var(--radius-lg); overflow: hidden;
	background: var(--line); box-shadow: 0 20px 44px rgba(23, 38, 92, .18);
}
.hero-slider__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .9s ease; }
.hero-slider__slide.is-active { opacity: 1; }
.hero-slider__slide img { width: 100%; height: 100%; object-fit: cover; }

.hero-slider__controls {
	position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 2;
	display: flex; align-items: center; gap: 2px; padding: 4px 6px;
	background: rgba(14, 22, 46, .58); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-radius: 999px;
}
.hero-slider__btn {
	width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #fff;
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.hero-slider__btn:hover { background: rgba(255, 255, 255, .18); }
.hero-slider__btn:focus-visible, .hero-slider__dot:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
.hero-slider__toggle .icon--play { display: none; }
.hero-slider__toggle.is-paused .icon--play { display: block; }
.hero-slider__toggle.is-paused .icon--pause { display: none; }
.hero-slider__dots { display: flex; }
.hero-slider__dot { width: 24px; height: 34px; padding: 0; border: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.hero-slider__dot::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: rgba(255, 255, 255, .55); transition: width .25s, background-color .25s; }
.hero-slider__dot[aria-current="true"]::before { width: 18px; background: #fff; }

.hero .badge--green { background: #DCEDE4; }

/* Záhlaví vnitřních stránek ve stejném stylu jako úvodní stránka (modrý podklad, tečky, vlnka) */
.page-header { position: relative; overflow: hidden; background: #EFF3FB; border-bottom: 0; padding-bottom: 76px; }
.page-header::before {
	content: ""; position: absolute; left: 0; top: 0; width: 360px; height: 220px; pointer-events: none;
	background-image: radial-gradient(#C3CEEA 1.6px, transparent 1.8px); background-size: 18px 18px;
	-webkit-mask-image: linear-gradient(135deg, #000 20%, transparent 75%); mask-image: linear-gradient(135deg, #000 20%, transparent 75%);
}
.page-header::after {
	content: ""; position: absolute; right: -140px; top: -220px; width: 560px; height: 560px; border-radius: 50%; pointer-events: none;
	background: radial-gradient(circle at 40% 40%, rgba(45, 115, 85, .14), rgba(45, 115, 85, 0) 68%);
}
.page-header > .wrap { position: relative; z-index: 1; }

/* Kreslený obrázek v záhlaví podle ročního období (Nastavení školy → Vzhled webu) – v obou stylech */
.season-jaro { --season-bg: #EEF6E6; --season-img: url(../img/season-jaro.svg?v=2); }
.season-leto { --season-bg: #FFF5DA; --season-img: url(../img/season-leto.svg?v=2); }
.season-podzim { --season-bg: #FCEDE2; --season-img: url(../img/season-podzim.svg?v=2); }
.season-zima { --season-bg: #EAF2FB; --season-img: url(../img/season-zima.svg?v=2); }
/* Vlastní scéna pro ZŠ (škola), družinu (hřiště) a jídelnu (hrnec); MŠ a ostatní stránky mají základní scénu */
.part-zs.season-jaro { --season-img: url(../img/season-jaro-zs.svg?v=2); }
.part-sd.season-jaro { --season-img: url(../img/season-jaro-sd.svg?v=2); }
.part-sj.season-jaro { --season-img: url(../img/season-jaro-sj.svg?v=2); }
.part-zs.season-leto { --season-img: url(../img/season-leto-zs.svg?v=2); }
.part-sd.season-leto { --season-img: url(../img/season-leto-sd.svg?v=2); }
.part-sj.season-leto { --season-img: url(../img/season-leto-sj.svg?v=2); }
.part-zs.season-podzim { --season-img: url(../img/season-podzim-zs.svg?v=2); }
.part-sd.season-podzim { --season-img: url(../img/season-podzim-sd.svg?v=2); }
.part-sj.season-podzim { --season-img: url(../img/season-podzim-sj.svg?v=2); }
.part-zs.season-zima { --season-img: url(../img/season-zima-zs.svg?v=2); }
.part-sd.season-zima { --season-img: url(../img/season-zima-sd.svg?v=2); }
.part-sj.season-zima { --season-img: url(../img/season-zima-sj.svg?v=2); }
/* Mateřská škola na podzim: místo houby hračky (kostky a medvídek) */
.part-ms.season-podzim { --season-img: url(../img/season-podzim-ms.svg?v=2); }
.has-season .page-header { background: var(--season-bg); }
.has-season .page-header::before { display: none; }
.has-season .page-header::after {
	right: 0; top: auto; bottom: 0; width: min(46vw, 600px); height: 100%; border-radius: 0; opacity: 1;
	background: var(--season-img) right bottom / contain no-repeat;
}
.has-season .page-header > .wrap { padding-right: min(30vw, 380px); }
/* Úvodní stránka: obrázek období vlevo dole pod nadpisem a tlačítky, vlna ho dole zakryje */
body.has-season .hero {
	background: var(--season-img) left max(var(--gutter), calc((100% - var(--wrap)) / 2)) bottom 18px / auto 200px no-repeat, var(--season-bg);
}
.has-season .hero::before { display: none; }
.has-season .hero__inner { padding-bottom: 230px; }
.page-header__wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 48px; display: block; fill: var(--ground); z-index: 1; }
.page-header + .section--first { padding-top: 24px; }

@media (max-width: 900px) {
	/* Mobil: obrázek období menší a za textem jen naznačený */
	.has-season .page-header::after { width: 70vw; opacity: .45; }
	.has-season .page-header > .wrap { padding-right: 0; }
	body.has-season .hero { background-size: auto 130px; background-position: left 8px bottom 10px; }
	.has-season .hero__inner { padding-bottom: 150px; }
	.hero::before { width: 240px; height: 180px; }
	.hero::after { width: 420px; height: 420px; right: -180px; top: -120px; }
	.hero__inner { padding-bottom: 64px; }
	.hero__wave { height: 36px; }
	.page-header { padding-bottom: 52px; }
	.page-header::before { width: 200px; height: 140px; }
	.page-header__wave { height: 28px; }
	.hero__visual { order: -1; margin: 0 10px 10px 0; }
	.hero__visual::before { inset: 12px -10px -10px 12px; }
	.hero-slider { aspect-ratio: 16 / 9; }
	.hero-slider__controls { bottom: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.hero-slider__slide { transition: none; }
}

/* Ovládání prezentace pod fotkou (ne přes ni) – tečky v barvě webu, malá kulatá tlačítka */
.hero__visual .hero-slider__controls {
	position: relative; left: auto; bottom: auto; transform: none; z-index: 1;
	justify-content: flex-start; gap: 4px; margin-top: 38px; padding: 0;
	background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; border-radius: 0;
}
.hero__visual .hero-slider__dots { margin-right: 6px; }
.hero__visual .hero-slider__dot::before { background: #B9C5E4; }
.hero__visual .hero-slider__dot[aria-current="true"]::before { width: 22px; background: var(--blue); }
.hero__visual .hero-slider__btn { width: 34px; height: 34px; color: var(--ink); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.hero__visual .hero-slider__btn:hover { color: var(--blue); box-shadow: inset 0 0 0 1.5px var(--blue); background: var(--surface); }
.hero__visual .hero-slider__btn:focus-visible, .hero__visual .hero-slider__dot:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.hero__visual .hero-slider__dots { order: -1; }

@media (max-width: 900px) {
	.hero__visual .hero-slider__controls { margin-top: 22px; justify-content: center; }
}

/* Prezentace bez viditelného ovládání – tlačítko Pozastavit jen pro klávesnici (objeví se při fokusu) */
.hero-slider__toggle--hidden {
	position: absolute; left: 14px; top: 14px; z-index: 3;
	display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px;
	border: 0; border-radius: 999px; background: rgba(14, 22, 46, .75); color: #fff;
	font: 600 14px var(--font-body); cursor: pointer;
	opacity: 0; pointer-events: none;
}
.hero-slider__toggle--hidden:focus-visible { opacity: 1; pointer-events: auto; outline: 2px solid #fff; outline-offset: 2px; }
.hero-slider__toggle--hidden.is-paused .hero-slider__toggle-text::after { content: " – spustit"; }

/* Facebook v patičce */
.site-footer__social { display: inline-flex; align-items: center; gap: 8px; color: #fff !important; font-weight: 600; }
.site-footer__social .icon { color: var(--on-dark-head); }

/* ==========================================================================
   Třídy u akcí
   ========================================================================== */

.class-chips { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.class-chips--compact { display: flex; margin-top: 3px; }
.class-chip { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 999px; background: var(--ev-soft, var(--blue-soft)); color: var(--ev-ink, var(--blue-dark)); font-size: 12.5px; font-weight: 600; line-height: 1.5; }
.class-chips--compact .class-chip { padding: 1px 7px; font-size: 12px; }
.facts--box dd .class-chips { margin-top: 2px; }
.calendar__upcoming a > span { display: flex; flex-direction: column; }

.calendar__filter { display: flex; align-items: center; gap: 10px; margin-top: -4px; font-size: 14.5px; color: var(--muted); }
.calendar__filter select {
	flex: 1; min-width: 0; min-height: 40px; padding: 0 34px 0 12px; border: 1px solid var(--line); border-radius: 10px;
	background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2354617C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
	font: 500 15px var(--font-body); color: var(--ink); -webkit-appearance: none; appearance: none; cursor: pointer;
}
.calendar__filter select:focus-visible { outline: 3px solid var(--blue); outline-offset: 1px; }

/* ==========================================================================
   Měsíční plán z akcí (plakát A4, obrázek pozadí volitelný po měsících)
   ========================================================================== */

.plan { max-width: 760px; }
.plan__bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.plan__current { min-width: 140px; text-align: center; font-family: var(--font-display); font-size: 20px; font-weight: 600; }
.plan__print { margin-left: auto; }
.plan__content { margin-top: 32px; }

.plan-poster {
	container-type: inline-size;
	position: relative; width: 100%; aspect-ratio: 210 / 297;
	border-radius: var(--radius-lg);
	background-color: #FFF8EC; background-size: cover; background-position: center;
	box-shadow: 0 10px 30px rgba(22, 32, 58, .12);
	-webkit-print-color-adjust: exact; print-color-adjust: exact;
}
/* Poster roste s obsahem (aspect-ratio je jen minimum, proto bez overflow: hidden) */
/* Obsah uprostřed – nahoře a dole zůstává místo pro ozdobu obrázku */
/* Odsazení a písmo laditelné v náhledu (proměnné --pt/--pr/--pb/--pl v % šířky, --ps násobek písma) */
.plan-poster__inner { padding: calc(var(--pt, 27) * 1cqw) calc(var(--pr, 9) * 1cqw) calc(var(--pb, 27) * 1cqw) calc(var(--pl, 9) * 1cqw); color: #1B1B1B; }
.plan-poster__month { margin: 0 0 5cqw; text-align: center; font-family: var(--font-display); font-size: 6.5cqw; font-weight: 700; line-height: 1.15; color: #1B1B1B; text-wrap: balance; }
/* Datum vlevo ve sloupci (šířka podle nejdelšího data), akce dne pod sebou vpravo */
.plan-poster__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: calc(2.4cqw * var(--ps, 1)) 1.1em; font-size: calc(2.6cqw * var(--ps, 1)); line-height: 1.3; font-weight: 700; }
.plan-poster__day { display: contents; }
.plan-poster__date { white-space: nowrap; }
.plan-poster__events { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.6cqw; }
.plan-poster__class { white-space: nowrap; }
.plan-poster__icon { display: inline-block; width: 1.4em; height: 1.4em; object-fit: contain; vertical-align: middle; margin: -.2em .25em 0 .15em; }
.plan-poster__title { color: inherit; text-decoration: none; }
.plan-poster__title:hover { text-decoration: underline; }
.plan-poster__detail { display: block; margin-top: .3em; font-size: .82em; font-weight: 500; }
.plan-poster__empty { text-align: center; font-size: 3.2cqw; font-weight: 600; }
.plan-poster__note { margin: 6cqw 0 0; font-size: calc(3.1cqw * var(--ps, 1)); line-height: 1.4; font-weight: 700; }

/* Bez vlastního obrázku: barevné skvrny nahoře a dole podle ročního období */
.plan-poster--jaro { --p1: #F4B6C8; --p2: #A8D5A2; --p3: #FFE08A; }
.plan-poster--leto { --p1: #FFD166; --p2: #8FD3E8; --p3: #F7A072; }
.plan-poster--podzim { --p1: #F2A541; --p2: #C8553D; --p3: #9BB06B; }
.plan-poster--zima { --p1: #B8D8F2; --p2: #D9D2F0; --p3: #9FC4DE; }
.plan-poster--jaro, .plan-poster--leto, .plan-poster--podzim, .plan-poster--zima {
	background-image:
		radial-gradient(circle at 8% 4%, var(--p1) 0 13%, transparent 13.5%),
		radial-gradient(circle at 30% -2%, var(--p3) 0 10%, transparent 10.5%),
		radial-gradient(circle at 92% 6%, var(--p2) 0 15%, transparent 15.5%),
		radial-gradient(circle at 70% 1%, var(--p1) 0 7%, transparent 7.5%),
		radial-gradient(circle at 6% 97%, var(--p2) 0 15%, transparent 15.5%),
		radial-gradient(circle at 34% 102%, var(--p1) 0 11%, transparent 11.5%),
		radial-gradient(circle at 95% 95%, var(--p3) 0 14%, transparent 14.5%),
		radial-gradient(circle at 68% 101%, var(--p2) 0 8%, transparent 8.5%);
}

@media print {
	@page { size: A4 portrait; margin: 0; }
	.page-template-mesicni-plan .page-header,
	.page-template-mesicni-plan .plan__bar,
	.page-template-mesicni-plan .plan__content,
	.page-template-mesicni-plan .site-header,
	.page-template-mesicni-plan .breadcrumbs { display: none !important; }
	.page-template-mesicni-plan .section { padding: 0; }
	.page-template-mesicni-plan .wrap.layout { display: block; max-width: none; padding: 0; margin: 0; }
	.page-template-mesicni-plan .plan { max-width: none; }
	.plan-poster { width: 210mm; min-height: 297mm; aspect-ratio: auto; border-radius: 0; box-shadow: none; break-inside: avoid; }
	.plan-poster__title { text-decoration: none; }
}

/* Přidávání obsahu z webu (jen pro přihlášené) */
.section-head__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: flex-end; }
.btn--add .icon { margin-right: 2px; }

/* Dokument vložený do textu tlačítkem „Vložit dokument“ */
.entry-content a.zsn-doc {
	display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 12px;
	background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
	color: var(--ink); font-weight: 600; text-decoration: none;
}
.entry-content a.zsn-doc::before {
	content: ""; flex-shrink: 0; width: 22px; height: 22px; background: var(--warm);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M12 11v6M9 14l3 3 3-3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M12 11v6M9 14l3 3 3-3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.entry-content a.zsn-doc:hover { border-color: var(--blue); color: var(--blue); }
.entry-content .zsn-doc__meta { color: var(--muted); font-size: .9em; }

/* Měsíční plán – akce čekající na schválení (vidí jen přihlášení) */
/* Pozadí plánu v náhledu (přihlášení) – lišta a okno Pixabay mimo administraci */
.zsn-plan-bg { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-bottom: 14px; padding: 10px 14px; background: var(--surface); border: 1px dashed var(--line); border-radius: var(--radius); font-size: 15px; }
.zsn-plan-bg .zsn-file-name img { width: 44px; height: 62px; object-fit: cover; border-radius: 6px; vertical-align: middle; }
.zsn-plan-bg__msg { flex-basis: 100%; color: var(--muted); font-size: 14px; }
.zsn-plan-bg__msg.is-error { color: #B3261E; }
.zsn-plan-bg .button, .zsn-pxb .button { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.zsn-plan-bg .button:hover, .zsn-pxb .button:hover { border-color: var(--blue); color: var(--blue); }
.zsn-pxb .button-primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.zsn-plan-bg .button-link { border: 0; background: none; color: var(--blue); font: inherit; font-size: 14px; text-decoration: underline; cursor: pointer; }
.zsn-plan-fb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 14px; padding: 10px 14px; background: #EEF3FD; border: 1px solid #CFDBF5; border-radius: var(--radius); font-size: 15px; }
.zsn-plan-fb svg { color: #1877F2; flex-shrink: 0; }
.zsn-plan-fb form { margin: 0; }
.zsn-plan-fb .is-error { color: #B3261E; }
.zsn-plan-fb .btn { gap: 6px; }
@media print {
	.zsn-plan-fb { display: none !important; }
}
.zsn-plan-layout { flex-basis: 100%; }
.zsn-plan-layout summary { cursor: pointer; font-weight: 600; color: var(--blue); }
.zsn-plan-layout__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px 18px; margin-top: 10px; }
.zsn-plan-layout__grid label { display: grid; grid-template-columns: 80px 1fr 40px; align-items: center; gap: 8px; font-size: 14px; }
.zsn-plan-layout__grid output { font-variant-numeric: tabular-nums; color: var(--muted); }
.zsn-plan-layout__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0 0; }
.zsn-plan-layout__msg { color: var(--muted); font-size: 14px; }
.zsn-plan-layout__msg.is-error { color: #B3261E; }
@media print {
	.zsn-plan-bg { display: none !important; }
}
.plan-approval { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; margin-bottom: 18px; padding: 14px 18px; background: var(--warm-soft); border: 1px solid var(--warm-line); border-radius: var(--radius); font-size: 15.5px; }
.plan-approval p { margin: 0; }
.plan-approval--done { background: var(--green-soft); border-color: #BFDCCB; color: var(--green-dark); font-weight: 600; }
.plan-approval__note { color: var(--muted); }
.plan-poster__item--pending { outline: 2px dashed var(--warm); outline-offset: .25em; border-radius: 4px; }
.plan-poster__pending { display: inline-block; margin-right: .5em; padding: .1em .5em; border-radius: 999px; background: var(--warm); color: #fff; font-size: .6em; font-weight: 700; vertical-align: middle; text-transform: uppercase; letter-spacing: .5px; }

@media print {
	.plan-approval, .plan-poster__pending { display: none !important; }
	.plan-poster__item--pending { outline: 0; }
}


/* ==========================================================================
   Co nás čeká (úvodní stránka) – nejbližší akce s velkým datem v barvě části školy
   ========================================================================== */

.section-head__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.agenda__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.agenda-item {
	display: flex; gap: 14px; height: 100%; padding: 16px; text-decoration: none; color: var(--ink);
	background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
	border-top: 4px solid var(--ev, var(--line)); transition: border-color .15s, transform .15s;
}
.agenda-item:hover { border-color: var(--ev, var(--blue)); color: var(--ink); transform: translateY(-2px); }
.agenda-item__date {
	flex-shrink: 0; width: 64px; padding: 8px 0; border-radius: 12px;
	display: flex; flex-direction: column; align-items: center; line-height: 1.1;
	background: var(--ev-soft, var(--soft)); color: var(--ev-ink, var(--ink));
}
.agenda-item__weekday { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.agenda-item__day { font-family: var(--font-display); font-size: 30px; font-weight: 700; }
.agenda-item__month { font-size: 12.5px; font-weight: 700; }
.agenda-item__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.agenda-item__part { font-size: 12px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--ev-ink, var(--muted)); }
.agenda-item__title { font-family: var(--font-display); font-size: 18px; font-weight: 600; line-height: 1.25; }
.agenda-item:hover .agenda-item__title { color: var(--ev-ink, var(--blue)); }
.agenda-item__meta { font-size: 14px; color: var(--muted); }

/* Části školy přes celou šířku */
.home-parts__main { display: flex; flex-direction: column; gap: 18px; }
.home-parts .parts { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ==========================================================================
   Akce – přepínač Seznam / Kalendář a velký měsíční kalendář
   ========================================================================== */

.view-switch { margin-bottom: 20px; }
.view-switch .segmented__item { gap: 8px; }
.month-cal__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.month-cal__title { min-width: 190px; margin: 0; text-align: center; font-size: 26px; }
.month-cal__today { margin-left: 4px; }
.month-cal__legend { list-style: none; margin: 0 0 0 auto; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; color: var(--muted); }
.month-cal__legend li { display: inline-flex; align-items: center; gap: 7px; }
.month-cal__grid { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.month-cal__grid th { padding: 10px 8px; font-size: 13px; font-weight: 700; color: var(--muted); text-align: left; border-bottom: 1px solid var(--line); background: var(--soft); }
.month-cal__grid th abbr { text-decoration: none; }
.month-cal__grid td { height: 118px; padding: 6px; vertical-align: top; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.month-cal__grid td:last-child { border-right: 0; }
.month-cal__grid tr:last-child td { border-bottom: 0; }
.month-cal__empty { background: #FBFAF6; }
.month-cal__day.is-weekend { background: #FBFAF6; }
.month-cal__day.is-past .month-cal__num { color: var(--muted); }
.month-cal__num { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; border-radius: 999px; font-size: 14px; font-weight: 700; color: var(--ink); }
.month-cal__day.is-today .month-cal__num { background: var(--blue); color: #fff; }
.month-cal__events { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.month-cal__event {
	display: block; padding: 3px 7px; border-radius: 6px; border-left: 3px solid var(--ev);
	background: var(--ev-soft); color: var(--ev-ink); font-size: 12.5px; font-weight: 600; line-height: 1.3;
	text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.month-cal__event:hover { background: var(--ev); color: #fff; }
.month-cal__event.is-continued { opacity: .75; }
.month-cal__more { font-size: 12px; color: var(--muted); padding-left: 4px; }
.month-cal__mobile { display: none; }

@media (max-width: 1100px) {
	.agenda__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.home-parts .parts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.agenda__list, .home-parts .parts { grid-template-columns: minmax(0, 1fr); }
	.month-cal__legend { margin-left: 0; }
	/* Na mobilu jen malá mřížka s barevnými proužky, akce se čtou v seznamu pod ní */
	.month-cal__grid td { height: 52px; padding: 3px; }
	.month-cal__event { height: 5px; padding: 0; border-left: 0; background: var(--ev); font-size: 0; }
	.month-cal__more { display: none; }
	.month-cal__mobile { display: block; margin-top: 20px; }
}

/* ==========================================================================
   Dokumenty jako dlaždice (celá dlaždice je odkaz na soubor)
   ========================================================================== */

/* Dokumenty: stálé dokumenty školy podle druhu nad úřední deskou */
.doc-section { margin-bottom: 40px; }
.doc-section__title { margin: 0 0 18px; font-size: clamp(24px, 2.6vw, 30px); }
/* Druh dokumentu = vlastní řádek s nadpisem (Školní řád, ŠVP…) */
.doc-group + .doc-group { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.doc-group__title { margin: 0 0 12px; font-family: var(--font-body); font-size: 15px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--muted); }
.doc-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.doc-tile {
	position: relative; display: flex; align-items: flex-start; gap: 14px; height: 100%; padding: 16px 18px;
	background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); transition: border-color .15s, transform .15s;
}
.doc-tile:hover { border-color: var(--doc, var(--blue)); transform: translateY(-2px); }
.doc-tile:focus-within { outline: 3px solid var(--blue); outline-offset: 2px; }
.doc-tile--pdf { --doc: #C62828; --doc-soft: #FDECEA; }
.doc-tile--doc { --doc: #2B579A; --doc-soft: #E8EEF8; }
.doc-tile--xls { --doc: #217346; --doc-soft: #E6F2EA; }
.doc-tile--other { --doc: var(--warm); --doc-soft: var(--warm-soft); }
.doc-tile__icon {
	position: relative; flex-shrink: 0; width: 48px; height: 56px; border-radius: 10px;
	display: flex; align-items: center; justify-content: center; background: var(--doc-soft); color: var(--doc);
}
.doc-tile__icon--custom, .icon-tile--custom { background: var(--surface); border: 1px solid var(--line); }
.doc-icon-img { display: block; width: 40px; height: 40px; object-fit: contain; }
.doc-tile__ext { position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%); padding: 1px 5px; border-radius: 4px; background: var(--doc); color: #fff; font-size: 9.5px; font-weight: 700; letter-spacing: .3px; }
.doc-tile__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.doc-tile__title { font-size: 16.5px; font-weight: 600; line-height: 1.35; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
/* Klikací celá dlaždice */
.doc-tile__title::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.doc-tile__title:focus-visible { outline: none; }
.doc-tile:hover .doc-tile__title { color: var(--doc, var(--blue)); }
.doc-tile__kind { font-size: 12px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--muted); }
.doc-tile__meta { font-size: 13.5px; color: var(--muted); }
.doc-tile__text { font-size: 14.5px; color: var(--muted); }

@media (max-width: 1000px) {
	.doc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.doc-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Interní dokumenty (jen pro zaměstnance, /interni-dokumenty/) */
.internal-pending { margin-bottom: 28px; padding: 18px 22px; border: 1.5px solid var(--warm-line); border-radius: var(--radius); background: var(--warm-soft); }
.internal-pending__title { margin: 0 0 8px; font-size: 20px; }
.internal-pending ul { margin: 0 0 8px; padding-left: 20px; }
.internal-pending p { margin: 0; }
.internal-docs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.internal-doc { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 18px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); scroll-margin-top: 90px; }
.internal-doc.is-pending { border-color: var(--warm); box-shadow: inset 4px 0 0 var(--warm); }
.internal-doc__body { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.internal-doc__title { margin: 0; font-family: var(--font-body); font-size: 18px; font-weight: 600; overflow-wrap: anywhere; }
.internal-doc__meta, .internal-doc__text { margin: 0; font-size: 14px; color: var(--muted); }
.internal-doc__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.internal-doc__confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; }
.internal-doc__confirm .btn[disabled] { opacity: .5; cursor: not-allowed; }
.internal-doc__hint { font-size: 13px; color: var(--muted); }
.internal-doc__ok { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--green); }
.internal-doc__manage { display: inline-flex; gap: 14px; font-size: 14px; }
.internal-doc__manage a { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); text-decoration: none; }
.internal-doc__manage a:hover { color: var(--blue); text-decoration: underline; }
.internal-doc__manage .internal-doc__delete:hover { color: #b32d2e; }

/* Povinné stránky (povinně zveřejňované informace, přístupnost, osobní údaje) */
.site-footer__list--legal { margin-top: 10px; }
.legal h2 { margin-top: 1.6em; font-size: 23px; }
.legal h2:first-child { margin-top: 0; }
.legal h3 { margin-top: 1.1em; font-size: 18px; }
.legal-facts { display: grid; grid-template-columns: minmax(0, 15em) minmax(0, 1fr); gap: 8px 20px; margin: 0; }
.legal-facts dt { font-weight: 600; }
.legal-facts dd { margin: 0; }
.legal-todo { display: inline-block; padding: 2px 8px; border-radius: 6px; background: #FFF4DE; color: #7A4B00; font-size: .9em; }
.legal-todo a { color: inherit; }
.legal-missing { color: var(--muted); font-style: italic; }
@media (max-width: 560px) {
	.legal-facts { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.legal-facts dd { margin-bottom: 10px; }
}

/* Úvodní stránka: odkaz na rozcestník Pro rodiče pod rychlými odkazy */
.quicklinks__more { margin: 14px 0 0; text-align: right; }

/* Pro rodiče – rozcestník */
.parents__intro { margin-bottom: 28px; max-width: 820px; }
.parents { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.parents__tile { display: flex; flex-direction: column; gap: 8px; padding: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; scroll-margin-top: 90px; }
.parents__tile:target { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.parents__title { font-size: 21px; margin-top: 4px; }
.parents__text { margin: 0; font-size: 16px; line-height: 1.55; color: var(--ink); }
.parents__text--muted { color: var(--muted); }
.parents__links { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
/* Dokument v dlaždici Pro rodiče: ikona souboru, název, typ a velikost – odlišený od odkazu na stránku */
.parents__doc { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--ground); color: var(--ink); text-decoration: none; }
.parents__doc:hover { border-color: var(--blue); color: var(--blue-dark); }
.parents__doc:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.parents__doc-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 8px; background: var(--blue-soft); color: var(--blue); }
.parents__doc-body { display: grid; gap: 1px; min-width: 0; }
.parents__doc-title { font-weight: 600; line-height: 1.3; }
.parents__doc-meta { font-size: 13px; color: var(--muted); }
.parents__doc > .icon:last-child { flex: none; margin-left: auto; color: var(--muted); }

/* Školní rok – prázdniny a volné dny */
.year-switch { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; font-size: 18px; }
.year-title { font-size: 24px; margin-bottom: 14px; }
.year-off { display: grid; grid-template-columns: minmax(0, 11em) minmax(0, 1fr); gap: 10px 20px; margin: 0 0 12px; }
.year-off dt { font-weight: 700; color: var(--navy, var(--ink)); }
.year-off dd { margin: 0; }
.year-off ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.year-off__date { font-weight: 600; font-variant-numeric: tabular-nums; }
.year-content { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--line); }
@media (max-width: 560px) {
	.year-off { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.year-off dd { margin-bottom: 12px; }
}

/* ==========================================================================
   Úvodní stránka: fotka přes celou šířku (Nastavení školy → Úvodní stránka → Rozložení úvodu, ?uvod=sirka)
   ========================================================================== */
.hero.hero--wide, body.has-season .hero.hero--wide { display: flex; align-items: center; min-height: min(78vh, 640px); background: #1D2A2A; }
.hero--wide::before, .hero--wide::after { display: none; }
.hero--wide .hero__inner, .has-season .hero--wide .hero__inner { position: static; display: block; width: 100%; padding-top: 72px; padding-bottom: 120px; }
.hero--wide .hero__visual { position: absolute; inset: 0; z-index: 0; }
.hero--wide .hero__visual::before { display: none; }
/* Ztmavení zleva, aby byl text na fotce čitelný */
.hero--wide .hero__visual::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(10, 25, 25, .74) 0%, rgba(10, 25, 25, .48) 42%, rgba(10, 25, 25, .06) 78%); }
.hero--wide .hero-slider { position: absolute; inset: 0; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.hero--wide .hero__text { position: relative; z-index: 2; max-width: 600px; }
.hero--wide .hero__title { color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, .35); }
.hero--wide .hero__lead { color: rgba(255, 255, 255, .92); }
.hero--wide .btn--outline { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .8); color: #fff; }
.hero--wide .btn--outline:hover { background: #fff; color: var(--ink); }
.hero--wide .hero__wave { z-index: 2; }
.hero--wide .hero-slider__toggle { z-index: 3; }
@media (max-width: 900px) {
	.hero.hero--wide, body.has-season .hero.hero--wide { align-items: flex-end; min-height: 560px; }
	.hero--wide .hero__inner, .has-season .hero--wide .hero__inner { padding-top: 140px; padding-bottom: 64px; }
	.hero--wide .hero__visual::after { background: linear-gradient(0deg, rgba(10, 25, 25, .82) 0%, rgba(10, 25, 25, .5) 55%, rgba(10, 25, 25, .1) 100%); }
}

/* Varianty: zrcadlo = fotka vlevo, stred = text uprostřed fotky, karta = text na bílé kartě na fotce */
@media (min-width: 901px) {
	.hero--mirror .hero__visual { order: -1; }
	.hero.hero--mirror .hero__visual::before { inset: 22px 22px -22px -22px; transform: rotate(-2deg); }
}
.hero--center .hero__text { align-items: center; max-width: 760px; margin: 0 auto; text-align: center; }
.hero--center .hero__lead { max-width: 640px; }
.hero--center .hero__actions { justify-content: center; }
.hero--center .hero__visual::after { background: radial-gradient(ellipse at center, rgba(10, 25, 25, .62) 0%, rgba(10, 25, 25, .42) 55%, rgba(10, 25, 25, .25) 100%); }
.hero.hero--card, body.has-season .hero.hero--card { align-items: flex-end; min-height: min(82vh, 680px); }
.hero--card .hero__visual::after { background: linear-gradient(0deg, rgba(10, 25, 25, .22) 0%, rgba(10, 25, 25, 0) 45%); }
.hero--card .hero__text { max-width: 560px; padding: 30px 34px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 18px 44px rgba(10, 25, 25, .28); }
.hero--card .hero__title { color: var(--ink); text-shadow: none; font-size: clamp(30px, 3.4vw, 44px); }
.hero--card .hero__lead { color: var(--muted); font-size: 17.5px; }
.hero--card .btn--outline { background: var(--surface); border-color: var(--line); color: var(--ink); }
.hero--card .btn--outline:hover { border-color: var(--blue); color: var(--blue); background: var(--surface); }
@media (max-width: 900px) {
	.hero--center .hero__visual::after { background: linear-gradient(0deg, rgba(10, 25, 25, .8) 0%, rgba(10, 25, 25, .5) 60%, rgba(10, 25, 25, .25) 100%); }
	.hero.hero--card, body.has-season .hero.hero--card { min-height: 600px; }
	.hero--card .hero__text { padding: 22px 20px; }
	.hero--card .hero__visual::after { background: none; }
}

/* Varianta mozaika (?uvod=mozaika): až čtyři fotky z prezentace v jednom zaobleném panelu,
   rozdělené šikmými mezerami – svislá se dolů stáčí doprava, vodorovné jsou vlevo a vpravo v jiné výšce (ne kříž) */
.hero--mosaic .hero__inner { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 48px; }
/* Zelená podložka posunutá za mozaikou – prosvítá i šikmými mezerami mezi fotkami (přednost i před stylem Hravý) */
.hero.hero--mosaic .hero__visual::before { display: block; inset: 22px -22px 38px 22px; border-radius: 28px; background: #C0DD97; transform: rotate(2.5deg); }
/* Nižší úvod: menší odsazení nahoře (obrázek období je na počítači vlevo vedle textu, ne pod ním) */
.hero--mosaic .hero__inner { padding-top: 44px; }
/* Fotky sahají i do prostoru pod textem (nahoře zarovnané s textem), úvod se tím nezvyšuje */
.hero--mosaic .hero__visual { align-self: start; margin-bottom: -90px; }
.has-season .hero--mosaic .hero__visual { margin-bottom: -60px; }
.hero-mosaic { position: relative; z-index: 1; aspect-ratio: 3 / 2; border-radius: 28px; overflow: hidden; }
.hero-mosaic__tile { position: absolute; margin: 0; overflow: hidden; background: var(--line); }
.hero-mosaic__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .9s ease; }
.hero-mosaic__tile img.is-entering { opacity: 0; }
/* Čtyři fotky: dlaždice = obdélník kolem výřezu, clip-path vůči němu; vlevo dělení níž, vpravo výš.
   Vodorovné předěly jsou kolmé na svislý (90°) jen při poměru panelu 3 : 2 – poměr proto neměnit ani na mobilu */
.hero-mosaic--4 .hero-mosaic__tile:nth-child(1) { left: 0; top: 0; width: 49.13%; height: 60.5%; clip-path: polygon(0 0, 91.6% 0, 100% 85.4%, 0 100%); }
.hero-mosaic--4 .hero-mosaic__tile:nth-child(2) { left: 47%; top: 0; width: 53%; height: 38.49%; clip-path: polygon(0 0, 100% 0, 100% 76.6%, 5.8% 100%); }
.hero-mosaic--4 .hero-mosaic__tile:nth-child(3) { left: 0; top: 54.61%; width: 53%; height: 45.39%; clip-path: polygon(0 19.6%, 93.2% 0, 100% 100%, 0 100%); }
.hero-mosaic--4 .hero-mosaic__tile:nth-child(4) { left: 50.32%; top: 32.5%; width: 49.68%; height: 67.5%; clip-path: polygon(0 13.2%, 100% 0, 100% 100%, 9.4% 100%); }
/* Tři fotky: vlevo jedna přes celou výšku, vpravo dvě */
.hero-mosaic--3 .hero-mosaic__tile:nth-child(1) { left: 0; top: 0; width: 53%; height: 100%; clip-path: polygon(0 0, 84.9% 0, 100% 100%, 0 100%); }
.hero-mosaic--3 .hero-mosaic__tile:nth-child(2) { left: 47%; top: 0; width: 53%; height: 38.49%; clip-path: polygon(0 0, 100% 0, 100% 76.6%, 5.8% 100%); }
.hero-mosaic--3 .hero-mosaic__tile:nth-child(3) { left: 50.32%; top: 32.5%; width: 49.68%; height: 67.5%; clip-path: polygon(0 13.2%, 100% 0, 100% 100%, 9.4% 100%); }
/* Dvě fotky vedle sebe */
.hero-mosaic--2 .hero-mosaic__tile:nth-child(1) { left: 0; top: 0; width: 53%; height: 100%; clip-path: polygon(0 0, 84.9% 0, 100% 100%, 0 100%); }
.hero-mosaic--2 .hero-mosaic__tile:nth-child(2) { left: 47%; top: 0; width: 53%; height: 100%; clip-path: polygon(0 0, 100% 0, 100% 100%, 15.1% 100%); }
@media (max-width: 900px) {
	.hero--mosaic .hero__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.has-season .hero--mosaic .hero__inner { padding-top: 28px; padding-bottom: 120px; }
	body.has-season .hero.hero--mosaic { background-size: auto 110px; }
	.hero--mosaic .hero__visual, .has-season .hero--mosaic .hero__visual { align-self: auto; margin-bottom: 0; }
	.hero-mosaic { border-radius: 20px; }
}

/* ==========================================================================
   Úvodní stránka: barva pozadí úvodu (Nastavení školy → Úvodní stránka → Barva pozadí úvodu, ?pozadi=obdobi)
   a obrázek ročního období na výšku vlevo vedle textu v prázdném okraji mimo obsah stránky.
   Na užších obrazovkách (901–1559 px) není vlevo místo – obrázek se skryje; na mobilu zůstává pod textem.
   ========================================================================== */
body .hero.hero--green { --season-bg: #EAF3DE; background-color: #EAF3DE; }
/* Nadpis úvodu v tmavém odstínu barvy pozadí (jako nadpis Družiny); fotka přes celou šířku si nechá bílý nadpis */
.hero.hero--green:not(.hero--wide) .hero__title { color: #27500A; }
body.has-season.season-jaro .hero:not(.hero--green):not(.hero--wide) .hero__title { color: #27500A; }
body.has-season.season-leto .hero:not(.hero--green):not(.hero--wide) .hero__title { color: #633806; }
body.has-season.season-podzim .hero:not(.hero--green):not(.hero--wide) .hero__title { color: #712B13; }
body.has-season.season-zima .hero:not(.hero--green):not(.hero--wide) .hero__title { color: #0C447C; }
.season-jaro { --season-img-v: url(../img/season-jaro-v.svg?v=2); }
.season-leto { --season-img-v: url(../img/season-leto-v.svg?v=2); }
.season-podzim { --season-img-v: url(../img/season-podzim-v.svg?v=2); }
.season-zima { --season-img-v: url(../img/season-zima-v.svg?v=2); }
/* Styl obrázků „jako z dětské knížky“ (Nastavení školy → Vzhled webu → Styl kreslených obrázků, ?obrazky=ploche) */
.ill-kniha.season-jaro { --season-img-v: url(../img/season-jaro-v-kniha.svg?v=4); }
.ill-kniha.season-leto { --season-img-v: url(../img/season-leto-v-kniha.svg?v=4); }
.ill-kniha.season-podzim { --season-img-v: url(../img/season-podzim-v-kniha.svg?v=4); }
.ill-kniha.season-zima { --season-img-v: url(../img/season-zima-v-kniha.svg?v=4); }
/* Obrázky na výšku ve stylu knížky mají kopce přes celou šířku: posun kresby (1720 / 280 šířky kresby) */
.ill-kniha.has-season { --art-shift-k: 6.142857; }
/* Záhlaví stránek ve stylu dětské knížky: základní scéna, vlastní scéna ZŠ (škola), družiny (hřiště), jídelny (hrnec), MŠ na podzim (hračky) */
.ill-kniha.season-jaro { --season-img: url(../img/season-jaro-kniha.svg?v=2); }
.ill-kniha.season-leto { --season-img: url(../img/season-leto-kniha.svg?v=2); }
.ill-kniha.season-podzim { --season-img: url(../img/season-podzim-kniha.svg?v=2); }
.ill-kniha.season-zima { --season-img: url(../img/season-zima-kniha.svg?v=2); }
.ill-kniha.part-zs.season-jaro { --season-img: url(../img/season-jaro-zs-kniha.svg?v=2); }
.ill-kniha.part-sd.season-jaro { --season-img: url(../img/season-jaro-sd-kniha.svg?v=2); }
.ill-kniha.part-sj.season-jaro { --season-img: url(../img/season-jaro-sj-kniha.svg?v=2); }
.ill-kniha.part-zs.season-leto { --season-img: url(../img/season-leto-zs-kniha.svg?v=2); }
.ill-kniha.part-sd.season-leto { --season-img: url(../img/season-leto-sd-kniha.svg?v=2); }
.ill-kniha.part-sj.season-leto { --season-img: url(../img/season-leto-sj-kniha.svg?v=2); }
.ill-kniha.part-zs.season-podzim { --season-img: url(../img/season-podzim-zs-kniha.svg?v=2); }
.ill-kniha.part-sd.season-podzim { --season-img: url(../img/season-podzim-sd-kniha.svg?v=2); }
.ill-kniha.part-sj.season-podzim { --season-img: url(../img/season-podzim-sj-kniha.svg?v=2); }
.ill-kniha.part-zs.season-zima { --season-img: url(../img/season-zima-zs-kniha.svg?v=2); }
.ill-kniha.part-sd.season-zima { --season-img: url(../img/season-zima-sd-kniha.svg?v=2); }
.ill-kniha.part-sj.season-zima { --season-img: url(../img/season-zima-sj-kniha.svg?v=2); }
.ill-kniha.part-ms.season-podzim { --season-img: url(../img/season-podzim-ms-kniha.svg?v=2); }
/* Obrázek v záhlaví přes celou šířku: kopce vedou až k levému okraji, kresba zůstává vpravo (výška nejvýš 280 px) */
.ill-kniha.has-season .page-header::after { left: 0; width: auto; background: var(--season-img) right bottom / auto min(100%, 280px) no-repeat; }
@media (min-width: 901px) {
	body.has-season .hero { background-image: none; }
	.has-season .hero__inner { padding-bottom: 104px; }
}
@media (min-width: 1560px) {
	/* --art-w = šířka kresby; obrázky ve stylu knížky mají kopce prodloužené doleva i doprava (viewBox od -1720),
	   proto je posun --art-shift-k (u plochých a vlastních obrázků 0) */
	body.has-season .hero {
		--art-w: min(280px, calc((100vw - var(--wrap)) / 2 - 40px));
		background: var(--season-img-v) left calc(max(16px, (100vw - var(--wrap)) / 2 - var(--art-w) - 24px) - var(--art-w) * var(--art-shift-k, 0)) bottom 30px / auto calc(var(--art-w) * 440 / 280) no-repeat, var(--season-bg);
	}
}

/* Ozdoby podle ročního období přes levý horní a pravý dolní roh fotky / mozaiky v úvodu (jen styl obrázků
   „jako z dětské knížky“, ne u fotky přes celou šířku; na mobilu menší) */
.hero-deco { display: none; position: absolute; z-index: 3; width: 130px; height: 130px; pointer-events: none; background: center / contain no-repeat; }
.ill-kniha .hero:not(.hero--wide) .hero-deco { display: block; }
.hero-deco--tl { left: -50px; top: -56px; }
.hero-deco--br { right: -56px; bottom: -18px; }
.ill-kniha.season-jaro .hero-deco--tl { background-image: url(../img/deco-jaro-tl.svg?v=2); }
.ill-kniha.season-jaro .hero-deco--br { background-image: url(../img/deco-jaro-br.svg?v=2); }
.ill-kniha.season-leto .hero-deco--tl { background-image: url(../img/deco-leto-tl.svg?v=2); }
.ill-kniha.season-leto .hero-deco--br { background-image: url(../img/deco-leto-br.svg?v=2); }
.ill-kniha.season-podzim .hero-deco--tl { background-image: url(../img/deco-podzim-tl.svg?v=2); }
.ill-kniha.season-podzim .hero-deco--br { background-image: url(../img/deco-podzim-br.svg?v=2); }
.ill-kniha.season-zima .hero-deco--tl { background-image: url(../img/deco-zima-tl.svg?v=2); }
.ill-kniha.season-zima .hero-deco--br { background-image: url(../img/deco-zima-br.svg?v=2); }
@media (max-width: 1200px) {
	.hero-deco { width: 100px; height: 100px; }
	.hero-deco--tl { left: -34px; top: -40px; }
	.hero-deco--br { right: -30px; bottom: -14px; }
}
@media (max-width: 900px) {
	.hero-deco { width: 74px; height: 74px; }
	.hero-deco--tl { left: -8px; top: -16px; }
	.hero-deco--br { right: -10px; bottom: -22px; }
}

/* Varianta „vedle“ (fotka / prezentace vpravo): fotka stejně velká jako mozaika – širší sloupec, nahoře zarovnaná
   s textem, sahá i do prostoru pod textem; podložka za fotkou na zeleném pozadí zelená jako u mozaiky */
@media (min-width: 901px) {
	.hero:not(.hero--wide):not(.hero--mosaic):not(.hero--mirror):not(.hero--no-image) .hero__inner { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 48px; padding-top: 44px; }
	.hero:not(.hero--wide):not(.hero--mosaic):not(.hero--mirror):not(.hero--no-image) .hero__visual { align-self: start; margin-bottom: -60px; }
}
.hero.hero--green:not(.hero--mosaic) .hero__visual::before { background: #C0DD97; }

/* Mobil, styl knížky: obrázek na šířku (kopce prodloužené doleva) zarovnat vpravo, kresba zůstane vidět */
@media (max-width: 900px) {
	body.ill-kniha.has-season .hero { background-position: right 8px bottom 10px; }
}
