/* ------------------------------------------------------------------
 * Věkové poličky a „Co teď nejvíc dělá?“ na stránce Hraček
 * (inc/hracky-police.php, 2026-11-03). Načítá se jen na téhle stránce.
 *
 * Dlaždice = věk, polička s vyříznutými hračkami, počet. Po najetí se
 * hračky zavrtí, po kliknutí poskočí (třída je-skok z assets/js/hracky-police.js).
 * Na tabletu a telefonu jsou dlaždice i pilulky vodorovně posuvné až k okraji
 * displeje; ⚠️ `position: relative` na posuvné řadě je nutné, jinak by absolutně
 * pozicované prvky uvnitř posuvného pásu roztáhly stránku.
 * ------------------------------------------------------------------ */
.mz-police {
	margin: 0 0 18px;
}

.mz-police .mz-police__nadpis {
	margin: 0 0 12px;
	font-size: clamp(21px, 2.2vw, 26px);
	text-align: left;
}

.mz-police .mz-police__nadpis--mensi {
	margin: 20px 0 10px;
	font-size: clamp(18px, 1.8vw, 21px);
}

.mz-police__rada {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.mz-police__dlazdice {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	min-height: 186px;
	padding: 12px 12px 10px;
	border-radius: 18px;
	background: var(--barva);
	color: var(--wp--preset--color--antracit);
	text-decoration: none;
	box-shadow: inset 0 0 0 2px transparent;
	/* Zvednutí a stín při najetí: style.css, sekce „Najetí na kartu“. */
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.mz-police__dlazdice:focus-visible {
	outline: 3px solid var(--wp--preset--color--mata-tmava);
	outline-offset: 2px;
}

.mz-police__dlazdice.je-aktivni {
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--koralova-syta), 0 8px 20px rgba(217, 108, 104, 0.18);
}

/* Číslo věku: Playfair je písmo nadpisů webu. */
.mz-police__vek {
	font-family: var(--wp--preset--font-family--nadpisy);
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
}

/* Polička: dřevěná deska pod hračkami. */
.mz-police__regal {
	display: flex;
	flex: 1;
	align-items: flex-end;
	margin: 6px -2px 0;
	border-bottom: 7px solid #d8b78a;
	border-radius: 0 0 3px 3px;
	box-shadow: 0 5px 0 -1px rgba(120, 84, 40, 0.14);
}

.mz-police__hracky {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 2px;
	width: 100%;
	height: 96px;
}

/* Tři hračky se musí vejít i do užší dlaždice: flex je zúží podle jejich šířky, contain je nezdeformuje. */
.mz-police__hracky img {
	flex: 0 1 auto;
	width: auto;
	min-width: 0;
	max-width: 62%;
	margin: 0;
	object-fit: contain;
	object-position: bottom;
	transform-origin: 50% 100%;
}

.mz-police__pocet {
	margin-top: 9px;
	font-size: 12px;
	color: #6f6f72;
	text-align: center;
}

/* Věk bez jediné situace: nadpis ani prázdná řada se neukážou. */
.mz-police .mz-police__nadpis--mensi:has(+ .mz-bavi-rada:empty),
.mz-bavi-rada:empty {
	display: none;
}

/* Pilulky se situacemi. */
.mz-bavi-rada {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.mz-bavi {
	box-sizing: border-box;
	padding: 8px 15px;
	border-radius: 999px;
	background: var(--wp--preset--color--bila);
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--koralova);
	color: var(--wp--preset--color--koralova-tmava);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.18s, color 0.18s, transform 0.18s;
}

.mz-bavi:hover {
	background: var(--wp--preset--color--pudrova);
	color: var(--wp--preset--color--koralova-tmava);
	transform: translateY(-2px);
}

.mz-bavi:focus-visible {
	outline: 3px solid var(--wp--preset--color--mata-tmava);
	outline-offset: 2px;
}

.mz-bavi.je-aktivni,
.mz-bavi.je-aktivni:hover {
	background: var(--wp--preset--color--koralova-syta);
	box-shadow: none;
	color: var(--wp--preset--color--bila);
}

/* Věta o výsledku. */
.mz-police .mz-police__vysledek {
	min-height: 26px;
	margin: 16px 0 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--wp--preset--color--antracit);
}

.mz-police__zrusit {
	margin-left: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--koralova-tmava);
}

/* Výpis během načítání nového výběru. */
.wp-block-query[aria-busy="true"] {
	opacity: 0.5;
	transition: opacity 0.15s;
}

/* Tablet a telefon: řady se posouvají prstem až k okraji displeje. */
@media (max-width: 900px) {
	.mz-police__rada {
		display: flex;
		overflow-x: auto;
		margin-inline: -24px;
		padding: 4px 24px 8px;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.mz-police__rada::-webkit-scrollbar,
	.mz-bavi-rada::-webkit-scrollbar {
		display: none;
	}

	.mz-police__dlazdice {
		flex: 0 0 158px;
		min-height: 156px;
		scroll-snap-align: center;
	}

	.mz-bavi-rada {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin-inline: -24px;
		padding: 2px 24px 6px;
		scrollbar-width: none;
	}
}

/* Telefon: banner s koníkem pryč, ať jsou poličky hned na první obrazovce.
   Hračky má dlaždice, banner by je jen odsouval pod okraj displeje. */
@media (max-width: 600px) {
	.mz-vypis-hlavicka--foto.mz-vypis-hlavicka--foto {
		display: block;
		min-height: 0;
		margin: 0;
		padding: 0;
		aspect-ratio: auto;
		background: transparent;
	}

	.mz-vypis-hlavicka__foto-obal {
		display: none;
	}

	.mz-vypis-hlavicka--foto .mz-vypis-hlavicka__panel {
		width: auto;
		margin: 0;
		padding: 0;
		background: transparent;
		text-align: left;
	}

	.mz-vypis-hlavicka--foto .mz-vypis-hlavicka__panel h1 {
		margin: 0 0 4px;
		font-size: 28px;
		text-align: left;
	}

	.mz-vypis-hlavicka--foto .mz-vypis-hlavicka__panel p {
		margin: 0;
		font-size: 15px;
		line-height: 1.4;
		text-align: left;
	}

	.mz-police {
		margin-top: 6px;
	}
}

/* S myší v úzkém okně: místo pro stín zvednuté dlaždice, posuvná řada by ho ořízla.
   Záporný margin vrací místo zpět, takže se pod řadou nic neposune. */
@media (hover: hover) and (pointer: fine) and (max-width: 900px) {
	.mz-police__rada {
		margin-bottom: -24px;
		padding-bottom: 32px;
	}
}

/* Pohyb jen pro ty, kdo si ho nevypnuli v systému. */
@media (prefers-reduced-motion: no-preference) {
	.mz-police__dlazdice:hover img {
		animation: mz-police-zavrt 0.6s ease calc(var(--i) * 70ms);
	}

	.mz-police__dlazdice.je-skok img {
		animation: mz-police-skok 0.62s cubic-bezier(0.3, 0.7, 0.4, 1) calc(var(--i) * 90ms);
	}

	/* Karty nového výběru vyjedou jedna po druhé (--n nastavuje skript). */
	li.je-nova {
		animation: mz-police-karta 0.46s cubic-bezier(0.2, 0.8, 0.3, 1) both;
		animation-delay: calc(var(--n) * 45ms);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mz-police__dlazdice,
	.mz-bavi {
		transition: none;
	}
}

@keyframes mz-police-zavrt {
	25% { transform: rotate(-4deg); }
	60% { transform: rotate(3deg); }
}

@keyframes mz-police-skok {
	0% { transform: scale(1, 1); }
	18% { transform: scale(1.08, 0.9); }
	50% { transform: translateY(-22px) scale(0.97, 1.04); }
	82% { transform: scale(1.05, 0.94); }
	100% { transform: none; }
}

@keyframes mz-police-karta {
	from { opacity: 0; transform: translateY(22px) scale(0.97); }
	to { opacity: 1; transform: none; }
}
