/* ========================================
   ZSMH Layouts — Component styles for ACF Flexible Content
   Companion to design-system.css (base) and template-parts/layouts/*.php
   Visual concept: Bold navy/purple gradients, warm orange, glass-morphism
   ======================================== */

/* ----------------------------------------
   1. Hero — Deep navy→purple gradient
   ---------------------------------------- */
.zsmh-ds-hero {
	background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 40%, var(--purple-deep) 70%, var(--gcid-secondary-color) 100%);
	color: var(--gcid-white);
	padding: var(--space-20) 0 var(--space-16);
	overflow: hidden;
	position: relative;
}

/* Decorative glow circles */
.zsmh-ds-hero::before {
	content: '';
	position: absolute;
	top: -200px;
	right: -150px;
	width: 600px;
	height: 600px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(241,158,0,.15) 0%, transparent 70%);
	pointer-events: none;
}

.zsmh-ds-hero::after {
	content: '';
	position: absolute;
	bottom: -100px;
	left: -100px;
	width: 400px;
	height: 400px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(65,71,166,.3) 0%, transparent 70%);
	pointer-events: none;
}

.zsmh-ds-hero__content {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-12);
	align-items: center;
	position: relative;
	z-index: 1;
}

.zsmh-ds-hero__text .zsmh-ds-label {
	color: var(--orange-bright);
	background: rgba(241,158,0,.1);
	padding: var(--space-2) var(--space-4);
	border-radius: 100px;
	border: 1px solid rgba(241,158,0,.2);
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin-bottom: var(--space-4, 16px);
}

.zsmh-ds-hero__title {
	color: var(--gcid-white);
	font-family: var(--font-display);
	font-size: clamp(2.2rem, 4.5vw, 3.2rem);
	font-weight: 800;
	line-height: 1.1;
	word-spacing: 0.05em;
	margin-bottom: var(--space-5);
	letter-spacing: -.01em;
}

.zsmh-ds-hero__title em {
	color: var(--orange-bright);
	font-style: italic;
}

.zsmh-ds-hero__subtitle {
	color: var(--text-on-dark-muted);
	font-size: 1.05rem;
	line-height: 1.75;
	max-width: 500px;
	margin-bottom: var(--space-10);
}

.zsmh-ds-hero__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-3);
}

.zsmh-ds-hero__stat {
	text-align: center;
	padding: var(--space-4) var(--space-2);
	background: rgba(255,255,255,.06);
	border-radius: var(--radius-md);
	border: 1px solid rgba(255,255,255,.08);
	backdrop-filter: blur(4px);
	transition: background .3s;
}

.zsmh-ds-hero__stat:hover {
	background: rgba(255,255,255,.1);
}

.zsmh-ds-hero__stat-number {
	display: block;
	font-family: var(--font-display);
	font-size: 1.7rem;
	font-weight: 800;
	color: var(--orange-bright);
	text-shadow: 0 0 30px rgba(241,158,0,.3);
}

.zsmh-ds-hero__stat-label {
	display: block;
	font-size: 12px;
	color: var(--text-on-dark-muted);
	margin-top: var(--space-1);
}

.zsmh-ds-hero__image-area {
	position: relative;
	display: flex;
	justify-content: center;
}

.zsmh-ds-hero__image-area img {
	width: 100%;
	max-width: 440px;
	height: auto;
	border-radius: var(--radius-2xl);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

@media (max-width: 1024px) {
	.zsmh-ds-hero__content {
		grid-template-columns: 1fr;
		gap: var(--space-8);
	}
	.zsmh-ds-hero__image-area {
		display: none;
	}
}

@media (max-width: 768px) {
	.zsmh-ds-hero {
		padding: var(--space-12) 0 var(--space-10);
	}
	.zsmh-ds-hero__title {
		font-size: 2rem;
	}
	.zsmh-ds-hero__stats {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.zsmh-ds-hero__stats {
		gap: var(--space-2);
	}
	.zsmh-ds-hero__stat-number {
		font-size: 1.3rem;
	}
}

/* ----------------------------------------
   2. Stats Banner — Orange gradient strip
   ---------------------------------------- */
.zsmh-ds-stats-banner {
	padding: var(--space-10) 0;
	background: linear-gradient(135deg, var(--gcid-primary-color) 0%, var(--gcid-primary-dark) 50%, var(--orange-darker) 100%);
	color: var(--gcid-white);
	position: relative;
}

/* Grid overlay pattern */
.zsmh-ds-stats-banner::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h60v60H0z' fill='none'/%3E%3Cpath d='M30 0v60M0 30h60' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E");
	pointer-events: none;
}

.zsmh-ds-stats-banner--dark {
	background: linear-gradient(170deg, var(--navy-deep) 0%, var(--navy) 60%, var(--navy-mid) 100%);
}

.zsmh-ds-stats-banner--cream {
	background: var(--gcid-primary-cream);
	color: var(--gcid-heading-color);
}

.zsmh-ds-stats-banner--cream .zsmh-ds-stats-banner__number {
	color: var(--gcid-primary-color);
}

.zsmh-ds-stats-banner__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: var(--space-6);
	text-align: center;
	position: relative;
	z-index: 1;
}
/* Banner kontajner širší ako bežný */
.zsmh-ds-stats-banner .zsmh-ds-container {
	max-width: 1200px;
}

.zsmh-ds-stats-banner__item {
	text-align: center;
}

.zsmh-ds-stats-banner__number {
	display: block;
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1;
}

.zsmh-ds-stats-banner__label {
	display: block;
	font-size: 12.5px;
	margin-top: var(--space-1);
	opacity: 0.85;
	text-transform: uppercase;
	letter-spacing: 1px;
}

@media (max-width: 768px) {
	.zsmh-ds-stats-banner__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 480px) {
	.zsmh-ds-stats-banner__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ----------------------------------------
   3. Director / Riaditeľka
   ---------------------------------------- */
.zsmh-ds-director__content {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: var(--space-10);
	align-items: start;
}

.zsmh-ds-director__photo {
	text-align: center;
}

.zsmh-ds-director__photo-frame {
	width: 210px;
	height: 260px;
	margin: 0 auto var(--space-4);
	background: linear-gradient(145deg, var(--orange-medium), var(--gcid-primary-cream));
	border-radius: var(--radius-xl);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--shadow-lg);
	position: relative;
	overflow: hidden;
}

.zsmh-ds-director__photo-frame::after {
	content: '';
	position: absolute;
	inset: -4px;
	border-radius: var(--radius-xl);
	background: linear-gradient(135deg, var(--gcid-primary-color), var(--gcid-secondary-color));
	z-index: -1;
	opacity: .15;
}

.zsmh-ds-director__photo-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-xl);
}

.zsmh-ds-director__name {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.1rem;
	margin-bottom: var(--space-1);
}

.zsmh-ds-director__role {
	color: var(--gcid-primary-color);
	font-family: var(--font-heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-bottom: var(--space-4);
}

.zsmh-ds-director__quote {
	font-size: 1.2rem;
	color: var(--gcid-heading-color);
	line-height: 1.6;
	border-left: 4px solid var(--gcid-primary-color);
	padding-left: var(--space-6);
	margin: var(--space-5) 0 var(--space-8);
	font-style: italic;
	position: relative;
}

.zsmh-ds-director__quote::before {
	content: '\201E';
	position: absolute;
	left: var(--space-6);
	top: -20px;
	font-size: 4rem;
	color: var(--gcid-primary-color);
	opacity: .15;
	font-family: Georgia, serif;
}

.zsmh-ds-director__body {
	line-height: 1.75;
	color: var(--gcid-body-color);
}

.zsmh-ds-director__body p {
	margin-bottom: var(--space-4);
}

@media (max-width: 1024px) {
	.zsmh-ds-director__content {
		grid-template-columns: 1fr;
		gap: var(--space-6);
	}
	.zsmh-ds-director__photo {
		display: flex;
		gap: var(--space-5);
		align-items: center;
	}
	.zsmh-ds-director__photo-frame {
		width: 130px;
		height: 160px;
		margin: 0;
	}
}

@media (max-width: 768px) {
	.zsmh-ds-director__content {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.zsmh-ds-director__photo {
		flex-direction: column;
	}
	.zsmh-ds-director__quote {
		border-left: none;
		border-top: 4px solid var(--gcid-primary-color);
		padding-left: 0;
		padding-top: var(--space-4);
	}
	.zsmh-ds-director__quote::before {
		display: none;
	}
}

/* ----------------------------------------
   3b. Legacy / Etela Hessová (dark bg)
   ---------------------------------------- */
.zsmh-ds-legacy {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: var(--space-8);
	align-items: start;
	max-width: 900px;
	margin: 0 auto;
}

.zsmh-ds-legacy__photo img {
	width: 160px;
	height: 200px;
	object-fit: cover;
	border-radius: var(--radius-xl);
}

.zsmh-ds-legacy__name {
	font-family: var(--font-heading);
	font-size: 1.4rem;
	font-weight: 800;
	color: var(--gcid-white);
	margin-bottom: var(--space-2);
}

.zsmh-ds-legacy__years {
	font-size: 13px;
	color: var(--orange-bright);
	font-weight: 600;
	margin-bottom: var(--space-5);
}

.zsmh-ds-legacy__content p {
	color: var(--text-on-dark-muted);
	margin-bottom: var(--space-4);
	line-height: 1.75;
}

.zsmh-ds-legacy__quote {
	border-left: 3px solid var(--gcid-primary-color);
	padding-left: var(--space-5);
	font-style: italic;
	color: var(--gcid-white);
	margin: var(--space-5) 0;
	font-size: 1.1rem;
	line-height: 1.6;
}

@media (max-width: 1024px) {
	.zsmh-ds-legacy {
		grid-template-columns: 1fr;
		gap: var(--space-5);
	}
	.zsmh-ds-legacy__photo img {
		width: 120px;
		height: 140px;
		margin: 0 auto;
	}
}

/* ----------------------------------------
   4. Card Grid — with hover gradient border
   ---------------------------------------- */
.zsmh-ds-card__icon-wrap {
	width: 48px;
	height: 48px;
	border-radius: var(--radius-md);
	background: linear-gradient(135deg, var(--gcid-primary-cream), var(--orange-medium));
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: var(--space-4);
	color: var(--gcid-primary-dark);
}

.zsmh-ds-card__icon {
	font-size: 24px;
}

.zsmh-ds-card__title {
	font-family: var(--font-heading);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--gcid-heading-color);
	margin-bottom: var(--space-3);
}

.zsmh-ds-card__text {
	color: var(--gcid-muted-color);
	font-size: .88rem;
	line-height: 1.7;
}

/* Klikateľné karty (card_grid s URL) */
a.zsmh-ds-card--link {
	text-decoration: none;
	color: inherit;
	display: block;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
a.zsmh-ds-card--link:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 25px rgba(0,0,0,.12);
}

/* Education grid (2-col) */
.zsmh-ds-education-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-6);
}

@media (max-width: 768px) {
	.zsmh-ds-education-grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   5. Text Section / Čitateľná stopa
   ---------------------------------------- */
.zsmh-ds-text-section__content {
	line-height: 1.8;
	font-size: var(--text-base);
}
.zsmh-ds-text-section__content--narrow {
	max-width: 800px;
}

.zsmh-ds-text-section__content--with-image {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-10);
	align-items: start;
	max-width: none;
}

.zsmh-ds-text-section__text p {
	margin-bottom: var(--space-4);
}

.zsmh-ds-text-section__image img {
	width: 100%;
	height: auto;
	border-radius: var(--radius-xl);
}
/* Veľkosti obrázka v text_section — riadené cez ACF pole obrazok_velkost */
.zsmh-ds-text-section__image--small img {
	max-height: 250px;
	object-fit: cover;
}
.zsmh-ds-text-section__image--medium img {
	max-height: 400px;
	object-fit: cover;
}
.zsmh-ds-text-section__image--large img {
	/* bez obmedzenia — plná výška */
}
/* Zachovať proporcie — text dostane viac miesta, obrázok menej */
.zsmh-ds-text-section__content--with-image:has(.zsmh-ds-text-section__image--keep-ratio) {
	grid-template-columns: 1fr 280px;
}
.zsmh-ds-text-section__image--keep-ratio {
	display: flex;
	align-items: start;
	justify-content: center;
}
.zsmh-ds-text-section__image--keep-ratio img {
	width: auto;
	max-width: 100%;
	height: auto;
}
@media (max-width: 768px) {
	.zsmh-ds-text-section__content--with-image:has(.zsmh-ds-text-section__image--keep-ratio) {
		grid-template-columns: 1fr;
	}
	.zsmh-ds-text-section__image--keep-ratio img {
		max-width: 250px;
		margin: 0 auto;
	}
}

/* Čitateľná stopa — special quote block */
.zsmh-ds-citatelna-stopa {
	max-width: 960px;
	margin: 0 auto;
}

.zsmh-ds-citatelna-stopa__rufus {
	background: linear-gradient(135deg, var(--navy-deep) 0%, var(--purple-deep) 100%);
	border-radius: var(--radius-xl);
	padding: var(--space-10) var(--space-8);
	margin-bottom: var(--space-12);
	position: relative;
	overflow: hidden;
	box-shadow: var(--shadow-deep);
}

.zsmh-ds-citatelna-stopa__rufus::before {
	content: '';
	position: absolute;
	top: -50px;
	right: -50px;
	width: 250px;
	height: 250px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(241,158,0,.1) 0%, transparent 70%);
}

.zsmh-ds-citatelna-stopa__rufus blockquote {
	font-size: 1.1rem;
	line-height: 1.8;
	color: rgba(255,255,255,.9);
	font-style: italic;
	margin-bottom: var(--space-4);
	position: relative;
	z-index: 1;
}

.zsmh-ds-citatelna-stopa__rufus cite {
	font-size: var(--text-sm);
	color: var(--orange-bright);
	font-weight: 600;
	font-style: normal;
	position: relative;
	z-index: 1;
}

.zsmh-ds-citatelna-stopa__content {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-6);
}

.zsmh-ds-citatelna-stopa__pillar {
	padding: var(--space-6);
	border-radius: var(--radius-lg);
	background: var(--gcid-white);
	border: 1px solid var(--gcid-border-color);
	box-shadow: var(--shadow-md);
	transition: transform .3s, box-shadow .3s;
}

.zsmh-ds-citatelna-stopa__pillar:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
}

.zsmh-ds-citatelna-stopa__pillar h4 {
	font-family: var(--font-heading);
	font-size: .9rem;
	font-weight: 700;
	color: var(--gcid-heading-color);
	margin-bottom: var(--space-3);
}

.zsmh-ds-citatelna-stopa__pillar p {
	font-size: .88rem;
	color: var(--gcid-muted-color);
	line-height: 1.7;
}

@media (max-width: 768px) {
	.zsmh-ds-text-section__content--with-image {
		grid-template-columns: 1fr;
	}
	.zsmh-ds-citatelna-stopa__content {
		grid-template-columns: 1fr;
	}
	.zsmh-ds-citatelna-stopa__rufus {
		padding: var(--space-6);
	}
}

/* ----------------------------------------
   6. Desatoro — 2-col list with circle numbers
   ---------------------------------------- */
.zsmh-ds-section--desatoro {
	background: linear-gradient(170deg, var(--navy-deep) 0%, var(--navy) 50%, var(--purple-deep) 100%);
	color: var(--gcid-white);
	position: relative;
	overflow: hidden;
}

/* Desatoro na svetlom pozadí — resetovať tmavý gradient */
.zsmh-ds-section--desatoro.zsmh-ds-section--cream {
	background: var(--gcid-primary-cream, #fffbf5);
	color: var(--gcid-body-color, #3a3a3a);
}
.zsmh-ds-section--desatoro:not(.zsmh-ds-section--dark):not(.zsmh-ds-section--burgundy).zsmh-ds-section--cream::before {
	display: none;
}
.zsmh-ds-section--desatoro.zsmh-ds-section--cream .zsmh-ds-label {
	color: var(--gcid-primary-color, #f19e00);
}
.zsmh-ds-section--desatoro.zsmh-ds-section--cream h2 {
	color: var(--gcid-heading-color, #1a1a1a);
}
.zsmh-ds-section--desatoro.zsmh-ds-section--cream .zsmh-ds-text-muted {
	color: var(--gcid-muted-color, #6b6b6b);
}

.zsmh-ds-section--desatoro::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 800px;
	height: 800px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(241,158,0,.05) 0%, transparent 60%);
	pointer-events: none;
}

.zsmh-ds-section--desatoro .zsmh-ds-label {
	color: var(--orange-bright);
}

.zsmh-ds-section--desatoro .zsmh-ds-display {
	color: var(--gcid-white);
}

.zsmh-ds-desatoro-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-4);
	max-width: 920px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.zsmh-ds-desatoro-item {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5);
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: var(--radius-md);
	transition: all .3s;
	backdrop-filter: blur(4px);
	cursor: pointer;
}

.zsmh-ds-desatoro-item:hover {
	background: rgba(241,158,0,.12);
	border-color: rgba(241,158,0,.3);
	transform: translateX(4px);
	box-shadow: 0 4px 20px rgba(241,158,0,.1);
}

.zsmh-ds-desatoro-item--has-video {
	cursor: pointer;
}

.zsmh-ds-desatoro-item__number {
	width: 40px;
	height: 40px;
	min-width: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--gcid-primary-color), var(--gcid-primary-dark));
	color: var(--gcid-white);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: .9rem;
	box-shadow: 0 4px 12px rgba(241,158,0,.3);
}

.zsmh-ds-desatoro-item__icon {
	font-size: 28px;
	margin-bottom: 0;
}

.zsmh-ds-desatoro-item__title {
	flex: 1;
	font-family: var(--font-heading);
	font-size: .88rem;
	font-weight: 500;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.85);
}

.zsmh-ds-desatoro-item__text {
	font-size: var(--text-xs);
	color: rgba(255, 255, 255, 0.6);
	margin-top: var(--space-1);
}

.zsmh-ds-desatoro-item__play {
	color: var(--orange-bright);
	opacity: .3;
	transition: opacity .3s, transform .3s;
}

.zsmh-ds-desatoro-item:hover .zsmh-ds-desatoro-item__play {
	opacity: 1;
	transform: scale(1.15);
}

.zsmh-ds-desatoro-note {
	text-align: center;
	margin-top: var(--space-10);
	font-size: .85rem;
	color: var(--text-on-dark-muted);
	position: relative;
	z-index: 1;
}

@media (max-width: 768px) {
	.zsmh-ds-desatoro-grid {
		grid-template-columns: 1fr;
	}
}

/* Desatoro na svetlom pozadí — invertované farby */
.zsmh-ds-section--desatoro:not(.zsmh-ds-section--dark) .zsmh-ds-desatoro-item {
	background: var(--gcid-white);
	border-color: #e5e7eb;
	backdrop-filter: none;
}
.zsmh-ds-section--desatoro:not(.zsmh-ds-section--dark) .zsmh-ds-desatoro-item__title {
	color: var(--gcid-heading-color);
}
.zsmh-ds-section--desatoro:not(.zsmh-ds-section--dark) .zsmh-ds-desatoro-item__text {
	color: var(--gcid-muted-color);
}
.zsmh-ds-section--desatoro:not(.zsmh-ds-section--dark) .zsmh-ds-desatoro-note {
	color: var(--gcid-muted-color);
}

/* ── Numbered štýl (princípy) ── */
.zsmh-ds-desatoro-grid--numbered {
	grid-template-columns: 1fr;
	max-width: 720px;
}
.zsmh-ds-desatoro-item--numbered {
	align-items: flex-start;
}
.zsmh-ds-desatoro-item--numbered .zsmh-ds-desatoro-item__body {
	flex: 1;
}
.zsmh-ds-desatoro-item--numbered .zsmh-ds-desatoro-item__title {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: var(--space-1);
}

/* ── Accordion štýl (rozbaliteľné) ── */
.zsmh-ds-desatoro-grid--accordion {
	grid-template-columns: 1fr;
	max-width: 720px;
}
.zsmh-ds-desatoro-item--accordion {
	cursor: pointer;
}
.zsmh-ds-desatoro-item--accordion summary {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5);
	list-style: none;
}
.zsmh-ds-desatoro-item--accordion summary::-webkit-details-marker { display: none; }
.zsmh-ds-desatoro-item--accordion summary::after {
	content: '+';
	margin-left: auto;
	font-size: 1.2rem;
	font-weight: 700;
	transition: transform .2s;
}
.zsmh-ds-desatoro-item--accordion[open] summary::after {
	content: '−';
}
.zsmh-ds-desatoro-item--accordion .zsmh-ds-desatoro-item__detail {
	padding: 0 var(--space-5) var(--space-4) calc(40px + var(--space-4) + var(--space-5));
}
.zsmh-ds-desatoro-item--accordion .zsmh-ds-desatoro-item__detail p {
	font-size: .88rem;
	line-height: 1.7;
}

/* ── Emoji rules štýl ── */
.zsmh-ds-desatoro-message {
	text-align: center;
	max-width: 600px;
	margin: 0 auto var(--space-8);
	padding: var(--space-5);
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: var(--radius-lg);
}
.zsmh-ds-section--desatoro:not(.zsmh-ds-section--dark) .zsmh-ds-desatoro-message {
	background: var(--gcid-primary-cream);
	border-color: rgba(241,158,0,.15);
}
.zsmh-ds-desatoro-message__title {
	font-family: var(--font-heading);
	font-size: 1.1rem;
	margin-bottom: var(--space-2);
}
.zsmh-ds-desatoro-item--emoji {
	align-items: flex-start;
}
.zsmh-ds-desatoro-item--emoji .zsmh-ds-desatoro-item__emoji {
	font-size: 1.8rem;
	min-width: 40px;
	text-align: center;
}
.zsmh-ds-desatoro-item--emoji .zsmh-ds-desatoro-item__body {
	flex: 1;
}
.zsmh-ds-desatoro-item--emoji .zsmh-ds-desatoro-item__title {
	display: block;
	font-size: .95rem;
	margin-bottom: var(--space-1);
}

/* ----------------------------------------
   7. Photo Strip
   ---------------------------------------- */
.zsmh-ds-photo-strip {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 4px;
}

.zsmh-ds-photo-strip__item {
	aspect-ratio: 3/2;
	overflow: hidden;
	display: block;
	cursor: pointer;
}

.zsmh-ds-photo-strip__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-base);
}

.zsmh-ds-photo-strip__item:hover img {
	transform: scale(1.05);
}

.zsmh-ds-photo-strip__item--placeholder {
	background: linear-gradient(135deg, var(--orange-medium) 0%, #e8dcc8 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

.zsmh-ds-photo-strip__item--placeholder span {
	font-size: 12px;
	color: var(--gcid-primary-dark);
	opacity: .4;
	font-weight: 500;
}

@media (max-width: 768px) {
	.zsmh-ds-photo-strip {
		grid-template-columns: repeat(3, 1fr);
	}
	.zsmh-ds-photo-strip__item:nth-child(n+4) {
		display: none;
	}
}

@media (max-width: 480px) {
	.zsmh-ds-photo-strip {
		grid-template-columns: repeat(2, 1fr);
	}
	.zsmh-ds-photo-strip__item:nth-child(n+3) {
		display: none;
	}
}

/* ----------------------------------------
   8. Testimonials — glass-morphism on dark
   ---------------------------------------- */
.zsmh-ds-testimonials-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-6);
	margin-bottom: var(--space-6);
}

.zsmh-ds-testimonial {
	background: rgba(255, 255, 255, 0.04);
	border-radius: var(--radius-xl);
	padding: var(--space-8) var(--space-6);
	border: 1px solid rgba(255, 255, 255, 0.06);
	display: flex;
	flex-direction: column;
	backdrop-filter: blur(4px);
	transition: all .3s;
}

.zsmh-ds-testimonial:hover {
	background: rgba(255, 255, 255, 0.07);
	transform: translateY(-3px);
}

.zsmh-ds-testimonial__quote {
	font-size: .92rem;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.75;
	font-style: italic;
	flex: 1;
	margin-bottom: var(--space-6);
	position: relative;
}

.zsmh-ds-testimonial__quote::before {
	content: '\201E';
	font-size: 48px;
	color: var(--gcid-primary-color);
	font-family: Georgia, serif;
	line-height: 1;
	display: block;
	margin-bottom: var(--space-2);
}

.zsmh-ds-testimonial__author {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: var(--space-4);
}

.zsmh-ds-testimonial__author strong {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: .88rem;
	color: var(--orange-bright);
	display: block;
}

.zsmh-ds-testimonial__author span {
	font-size: .78rem;
	color: var(--text-on-dark-muted);
}

/* Light background variant */
.zsmh-ds-section:not(.zsmh-ds-section--dark):not(.zsmh-ds-section--purple) .zsmh-ds-testimonial {
	background: var(--gcid-white);
	border-color: var(--gcid-border-color);
	box-shadow: var(--shadow-sm);
}

.zsmh-ds-section:not(.zsmh-ds-section--dark):not(.zsmh-ds-section--purple) .zsmh-ds-testimonial__quote {
	color: var(--gcid-body-color);
}

.zsmh-ds-section:not(.zsmh-ds-section--dark):not(.zsmh-ds-section--purple) .zsmh-ds-testimonial__author {
	border-color: var(--gcid-border-color);
}

.zsmh-ds-section:not(.zsmh-ds-section--dark):not(.zsmh-ds-section--purple) .zsmh-ds-testimonial__author strong {
	color: var(--gcid-primary-dark);
}

.zsmh-ds-section:not(.zsmh-ds-section--dark):not(.zsmh-ds-section--purple) .zsmh-ds-testimonial__author span {
	color: var(--gcid-muted-color);
}

@media (max-width: 768px) {
	.zsmh-ds-testimonials-grid {
		grid-template-columns: 1fr;
	}
}

/* ── Testimonials: Masonry štýl ── */
.zsmh-ds-testimonials-grid--masonry {
	columns: 3;
	column-gap: var(--space-5);
	display: block;
}
.zsmh-ds-testimonial--masonry {
	break-inside: avoid;
	margin-bottom: var(--space-5);
}
.zsmh-ds-testimonial__emoji {
	font-size: 1.5rem;
	display: block;
	margin-bottom: var(--space-2);
}
.zsmh-ds-testimonial--highlight {
	border-color: var(--orange-bright);
	border-width: 2px;
}
@media (max-width: 768px) {
	.zsmh-ds-testimonials-grid--masonry { columns: 1; }
}
@media (min-width: 769px) and (max-width: 1024px) {
	.zsmh-ds-testimonials-grid--masonry { columns: 2; }
}

/* ── Testimonials: Letters štýl ── */
.zsmh-ds-testimonials-grid--letters {
	max-width: 800px;
	margin: 0 auto;
	grid-template-columns: 1fr;
	gap: var(--space-6);
}
.zsmh-ds-testimonial--letter {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	position: relative;
}
.zsmh-ds-section:not(.zsmh-ds-section--dark) .zsmh-ds-testimonial--letter {
	background: var(--gcid-white);
	border-color: #e5e7eb;
	box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.zsmh-ds-testimonial--letter .zsmh-ds-testimonial__emoji {
	position: absolute;
	top: var(--space-4);
	right: var(--space-4);
	font-size: 1.8rem;
}

/* ── Testimonials: Wall štýl ── */
.zsmh-ds-testimonials-grid--wall {
	columns: 4;
	column-gap: var(--space-4);
	display: block;
}
.zsmh-ds-testimonial--wall {
	break-inside: avoid;
	margin-bottom: var(--space-4);
	padding: var(--space-4);
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.06);
	border-radius: var(--radius-md);
	font-size: .85rem;
}
.zsmh-ds-testimonial--wall .zsmh-ds-testimonial__quote {
	font-size: .85rem;
}
@media (max-width: 768px) {
	.zsmh-ds-testimonials-grid--wall { columns: 1; }
}
@media (min-width: 769px) and (max-width: 1024px) {
	.zsmh-ds-testimonials-grid--wall { columns: 2; }
}

/* ── Testimonials: International štýl ── */
.zsmh-ds-testimonials__program {
	text-align: center;
	margin-bottom: var(--space-8);
}
.zsmh-ds-testimonials__program h3 {
	font-family: var(--font-heading);
	font-size: 1.2rem;
	margin-bottom: var(--space-2);
}
.zsmh-ds-testimonial--intl {
	position: relative;
}
.zsmh-ds-testimonial__flag {
	font-size: 2rem;
	display: block;
	margin-bottom: var(--space-2);
}
.zsmh-ds-testimonial__country {
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	opacity: .7;
	display: block;
	margin-bottom: var(--space-3);
}

/* ----------------------------------------
   9. Quote Block
   ---------------------------------------- */
.zsmh-ds-quote-block {
	text-align: center;
}

.zsmh-ds-quote-block__quote {
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.5vw, 1.8rem);
	font-weight: 600;
	font-style: italic;
	line-height: 1.5;
	max-width: 800px;
	margin: 0 auto var(--space-5);
}

.zsmh-ds-section--dark .zsmh-ds-quote-block__quote {
	color: rgba(255,255,255,.9);
}

.zsmh-ds-quote-block__author {
	font-family: var(--font-display);
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--orange-bright);
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* ----------------------------------------
   10. Alumni Grid
   ---------------------------------------- */
.zsmh-ds-alumni-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
	max-width: 800px;
	margin: 0 auto var(--space-6);
}

.zsmh-ds-alumni__item {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-3) var(--space-5);
	background: var(--gcid-white);
	border: 1px solid var(--gcid-border-color);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: .88rem;
	transition: all .2s;
}

.zsmh-ds-alumni__item:hover {
	box-shadow: var(--shadow-md);
	border-color: var(--gcid-primary-color);
}

.zsmh-ds-alumni__item strong {
	display: block;
	font-family: var(--font-heading);
	color: var(--gcid-heading-color);
}

.zsmh-ds-alumni__item span {
	font-weight: 400;
	color: var(--gcid-muted-color);
	font-family: var(--font-body);
}

/* Alumni on purple/dark background */
.zsmh-ds-section--purple .zsmh-ds-alumni__item,
.zsmh-ds-section--dark .zsmh-ds-alumni__item {
	background: rgba(255,255,255,.1);
	border-color: rgba(255,255,255,.12);
	color: var(--gcid-white);
	box-shadow: none;
	backdrop-filter: blur(4px);
}

.zsmh-ds-section--purple .zsmh-ds-alumni__item:hover,
.zsmh-ds-section--dark .zsmh-ds-alumni__item:hover {
	background: rgba(255,255,255,.16);
	border-color: var(--orange-bright);
	box-shadow: 0 4px 20px rgba(0,0,0,.2);
}

.zsmh-ds-section--purple .zsmh-ds-alumni__item strong,
.zsmh-ds-section--dark .zsmh-ds-alumni__item strong {
	color: var(--gcid-white);
}

.zsmh-ds-section--purple .zsmh-ds-alumni__item span,
.zsmh-ds-section--dark .zsmh-ds-alumni__item span {
	color: rgba(255,255,255,.6);
}

@media (max-width: 768px) {
	.zsmh-ds-alumni-grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   11. CTA Contact
   ---------------------------------------- */
.zsmh-ds-cta {
	text-align: center;
}

.zsmh-ds-cta .zsmh-ds-display {
	color: var(--gcid-heading-color);
}

.zsmh-ds-section--dark.zsmh-ds-cta .zsmh-ds-display,
.zsmh-ds-section--dark .zsmh-ds-cta .zsmh-ds-display {
	color: var(--gcid-white);
}

.zsmh-ds-cta__desc {
	font-size: .95rem;
	color: var(--gcid-muted-color);
	max-width: 560px;
	margin: 0 auto var(--space-8);
	line-height: 1.7;
}

.zsmh-ds-section--dark.zsmh-ds-cta .zsmh-ds-cta__desc,
.zsmh-ds-section--dark .zsmh-ds-cta__desc {
	color: var(--text-on-dark-muted);
}

.zsmh-ds-cta__buttons {
	display: flex;
	gap: var(--space-4);
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: var(--space-12);
}

.zsmh-ds-cta__contacts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-6);
	text-align: left;
}

.zsmh-ds-cta__contact-item h4 {
	font-family: var(--font-heading);
	font-size: .88rem;
	font-weight: 700;
	margin-bottom: var(--space-2);
}

.zsmh-ds-cta__contact-item p {
	font-size: .85rem;
	color: var(--gcid-muted-color);
	line-height: 1.7;
}

.zsmh-ds-cta__contact-item a {
	color: var(--gcid-primary-dark);
}

.zsmh-ds-cta__contact-item a:hover {
	color: var(--gcid-secondary-color);
}

.zsmh-ds-section--dark.zsmh-ds-cta .zsmh-ds-cta__contact-item h4,
.zsmh-ds-section--dark .zsmh-ds-cta__contact-item h4,
.zsmh-ds-section--dark.zsmh-ds-cta .zsmh-ds-cta__contact-item strong,
.zsmh-ds-section--dark .zsmh-ds-cta__contact-item strong {
	color: var(--orange-bright);
}

.zsmh-ds-section--dark.zsmh-ds-cta .zsmh-ds-cta__contact-item p,
.zsmh-ds-section--dark .zsmh-ds-cta__contact-item p {
	color: var(--text-on-dark-muted);
}

.zsmh-ds-section--dark.zsmh-ds-cta .zsmh-ds-cta__contact-item a,
.zsmh-ds-section--dark .zsmh-ds-cta__contact-item a {
	color: var(--orange-bright);
}

.zsmh-ds-section--dark.zsmh-ds-cta .zsmh-ds-cta__contact-item a:hover,
.zsmh-ds-section--dark .zsmh-ds-cta__contact-item a:hover {
	color: var(--gcid-white);
}

@media (max-width: 768px) {
	.zsmh-ds-cta__contacts {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.zsmh-ds-cta__buttons {
		flex-direction: column;
		align-items: center;
	}
}

/* ----------------------------------------
   12. Competitions (Naša škola specific)
   ---------------------------------------- */
.zsmh-ds-competitions__list {
	display: grid;
	gap: var(--space-4);
	margin-bottom: var(--space-8);
}

.zsmh-ds-competition-highlight {
	display: flex;
	align-items: flex-start;
	gap: var(--space-5);
	padding: var(--space-6);
	background: var(--gcid-white);
	border-radius: var(--radius-lg);
	border: 1px solid var(--gcid-border-color);
	box-shadow: var(--shadow-sm);
	transition: all .3s;
	position: relative;
	overflow: hidden;
}

.zsmh-ds-competition-highlight::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 4px;
	background: linear-gradient(180deg, var(--gcid-primary-color), var(--gcid-secondary-color));
	opacity: 0;
	transition: opacity .3s;
}

.zsmh-ds-competition-highlight:hover {
	box-shadow: var(--shadow-lg);
	transform: translateY(-2px);
}

.zsmh-ds-competition-highlight:hover::before {
	opacity: 1;
}

.zsmh-ds-competitions__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	justify-content: center;
	margin-top: var(--space-6);
}

.zsmh-ds-competitions__tag {
	display: inline-block;
	font-size: 12.5px;
	padding: var(--space-1) var(--space-3);
	background: var(--gcid-primary-cream);
	color: var(--orange-darker);
	border-radius: 100px;
	font-weight: 500;
	border: 1px solid rgba(241,158,0,.15);
	transition: background .2s;
}

.zsmh-ds-competitions__tag:hover {
	background: var(--orange-medium);
}

/* ----------------------------------------
   13. SŠ Acceptance cards (dark bg)
   ---------------------------------------- */
.zsmh-ds-ss-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-6);
}

.zsmh-ds-ss-card {
	background: rgba(255,255,255,.06);
	border-radius: var(--radius-xl);
	padding: var(--space-8) var(--space-6);
	text-align: center;
	color: var(--gcid-white);
	border: 1px solid rgba(255,255,255,.1);
	position: relative;
	overflow: hidden;
	backdrop-filter: blur(8px);
	transition: all .3s;
}

.zsmh-ds-ss-card:hover {
	background: rgba(255,255,255,.1);
	transform: translateY(-3px);
	border-color: rgba(241,158,0,.3);
}

.zsmh-ds-ss-card::before {
	content: '';
	position: absolute;
	top: -20px;
	right: -20px;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(241,158,0,.1) 0%, transparent 70%);
}

.zsmh-ds-ss-card__number {
	font-family: var(--font-heading);
	font-size: 2.2rem;
	font-weight: 800;
	color: var(--orange-bright);
	margin-bottom: var(--space-3);
	text-shadow: 0 0 30px rgba(241,158,0,.3);
}

.zsmh-ds-ss-card__label {
	font-family: var(--font-heading);
	font-size: .88rem;
	font-weight: 600;
	color: rgba(255,255,255,.9);
	margin-bottom: var(--space-2);
}

.zsmh-ds-ss-card__detail {
	font-size: .8rem;
	color: var(--text-on-dark-muted);
	line-height: 1.5;
}

@media (max-width: 768px) {
	.zsmh-ds-ss-grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   14. Preschool (Naša škola specific)
   ---------------------------------------- */
/* 2-col layout: text vľavo, stats/features vpravo */
.zsmh-ds-preschool__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-10);
	align-items: start;
}

.zsmh-ds-preschool__content p,
.zsmh-ds-preschool__left p {
	color: var(--gcid-body-color);
	margin-bottom: var(--space-4);
	font-size: .92rem;
	line-height: 1.75;
}

.zsmh-ds-preschool__count {
	font-family: var(--font-heading);
	font-size: var(--text-4xl);
	font-weight: 800;
	color: var(--gcid-primary-color);
	text-align: center;
	margin-bottom: var(--space-2);
}

.zsmh-ds-preschool__features {
	display: grid;
	gap: var(--space-3);
}

.zsmh-ds-preschool__feature {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-3) var(--space-4);
	background: var(--gcid-white);
	border-radius: var(--radius-md);
	border: 1px solid var(--gcid-border-color);
	box-shadow: var(--shadow-sm);
}

.zsmh-ds-preschool__feature-icon {
	font-size: 1.3rem;
	flex-shrink: 0;
}

.zsmh-ds-preschool__feature-text {
	font-size: .88rem;
	font-weight: 500;
	color: var(--gcid-heading-color);
}

@media (max-width: 768px) {
	.zsmh-ds-preschool__grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   15. Projects grid
   ---------------------------------------- */
.zsmh-ds-projects-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-5);
	margin-bottom: var(--space-8);
}

.zsmh-ds-project-card {
	background: var(--gcid-white);
	border: 1px solid var(--gcid-border-color);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	box-shadow: var(--shadow-sm);
	transition: all .3s;
}

.zsmh-ds-project-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-lg);
}

.zsmh-ds-project-card__badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 3px 10px;
	border-radius: 100px;
	margin-bottom: var(--space-3);
}

.zsmh-ds-project-card__badge--tech { background: #e8f4fd; color: #0c7cd5; }
.zsmh-ds-project-card__badge--erasmus { background: #e8f0fd; color: var(--gcid-secondary-color); }
.zsmh-ds-project-card__badge--finance { background: #fef3e0; color: var(--orange-darker); }
.zsmh-ds-project-card__badge--social { background: #f0e8fd; color: #6b3fa0; }
.zsmh-ds-project-card__badge--charity { background: #fde8e8; color: #c53030; }
.zsmh-ds-project-card__badge--culture { background: #e8fdf0; color: #276749; }

.zsmh-ds-project-card__title {
	font-family: var(--font-heading);
	font-size: .95rem;
	font-weight: 700;
	color: var(--gcid-heading-color);
	margin-bottom: var(--space-2);
}

.zsmh-ds-project-card__desc {
	font-size: .82rem;
	color: var(--gcid-muted-color);
	line-height: 1.65;
}

@media (max-width: 768px) {
	.zsmh-ds-projects-grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   16. Traditions grid (card_grid variant)
   ---------------------------------------- */
.zsmh-ds-traditions-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-5);
}

@media (max-width: 768px) {
	.zsmh-ds-traditions-grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   17. Why Different grid (Prečo sme iní)
   ---------------------------------------- */
.zsmh-ds-why-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-6);
}

.zsmh-ds-why-card {
	background: var(--gcid-white);
	border: 1px solid var(--gcid-border-color);
	border-radius: var(--radius-md);
	padding: var(--space-8) var(--space-6);
	transition: transform .25s ease, box-shadow .25s ease;
}

.zsmh-ds-why-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 30px rgba(0,0,0,.08);
}

.zsmh-ds-why-card__icon {
	width: 48px;
	height: 48px;
	background: var(--gcid-primary-cream);
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: var(--space-4);
	color: var(--gcid-primary-color);
}

.zsmh-ds-why-card__title {
	font-family: var(--font-heading);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--gcid-heading-color);
	margin-bottom: 10px;
}

.zsmh-ds-why-card__text {
	font-size: .92rem;
	line-height: 1.65;
	color: var(--gcid-muted-color);
}

@media (max-width: 900px) {
	.zsmh-ds-why-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.zsmh-ds-why-grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   18. Milan Hodža section (dark text section)
   ---------------------------------------- */
.zsmh-ds-section--dark .zsmh-ds-text-section__content {
	color: var(--text-on-dark-muted);
}

.zsmh-ds-section--dark .zsmh-ds-text-section__text p {
	color: var(--text-on-dark-muted);
	line-height: 1.75;
}

/* ----------------------------------------
   19. Management grid
   ---------------------------------------- */
.zsmh-ds-management-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-6);
}

.zsmh-ds-management-card {
	background: var(--gcid-primary-cream);
	border-radius: var(--radius-xl);
	padding: var(--space-6);
	border: 1px solid rgba(241,158,0,.12);
}

.zsmh-ds-management-card h3 {
	font-family: var(--font-heading);
	font-size: .95rem;
	font-weight: 700;
	color: var(--gcid-heading-color);
	margin-bottom: var(--space-4);
}

.zsmh-ds-management-card__list {
	display: grid;
	gap: var(--space-2);
	font-size: .88rem;
	color: var(--gcid-body-color);
}

@media (max-width: 768px) {
	.zsmh-ds-management-grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   Dark section cards override
   ---------------------------------------- */
.zsmh-ds-section--dark .zsmh-ds-card {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.1);
	box-shadow: none;
	backdrop-filter: blur(4px);
}

.zsmh-ds-section--dark .zsmh-ds-card::before {
	display: none;
}

.zsmh-ds-section--dark .zsmh-ds-card:hover {
	background: rgba(255, 255, 255, 0.1);
	box-shadow: none;
	transform: translateY(-3px);
	border-color: rgba(241,158,0,.3);
}

.zsmh-ds-section--dark .zsmh-ds-card__title {
	color: var(--gcid-white);
}

.zsmh-ds-section--dark .zsmh-ds-card__text {
	color: rgba(255, 255, 255, 0.7);
}

/* ----------------------------------------
   História školy — špeciálna paleta
   ---------------------------------------- */

/* -- Hero -- */
/* Page-level warm background + fonty podľa dizajn manuálu */
.zsmh-ds-page--historia {
	background: #f5f2ec;
	--font-display: 'Libre Bodoni', Georgia, serif;
	font-family: var(--font-body);
	font-size: 16px;
}

/* História: hero + chapter titles = Libre Bodoni Bold */
.zsmh-ds-page--historia .zsmh-ds-hero__title,
.zsmh-ds-page--historia .zsmh-ds-section-header .zsmh-ds-display {
	font-family: var(--font-display);
	font-weight: 700;
}

/* História: citáty = Libre Bodoni Italic 18-22px */
.zsmh-ds-page--historia .zsmh-ds-quote-block__quote {
	font-family: var(--font-display);
	font-style: italic;
	font-size: clamp(18px, 2vw, 22px);
}

/* Hero variant: fullscreen (bg image + overlay + CTA) */
.zsmh-ds-hero[data-variant="fullscreen"] {
	color: var(--gcid-white);
	min-height: 80vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}
.zsmh-ds-hero[data-color="burgundy"] { background: linear-gradient(135deg, var(--historia-navy) 0%, var(--historia-burgundy) 60%, #2c1810 100%); }
.zsmh-ds-hero[data-color="navy"]     { background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 60%, #0f172a 100%); }
.zsmh-ds-hero[data-color="dark"]     { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 40%, #2d1b4e 100%); }
.zsmh-ds-hero[data-color="cream"] {
	background:
		radial-gradient(ellipse 50% 80% at 85% 30%, rgba(241,158,0,0.12) 0%, transparent 70%),
		radial-gradient(ellipse 40% 60% at 10% 80%, rgba(241,158,0,0.06) 0%, transparent 60%),
		linear-gradient(160deg, #fffbf5 0%, #fef6e8 40%, #fdf2e1 100%);
	border-bottom: 3px solid #f19e00;
}
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-hero__title,
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-label { color: #1a1a1a; }
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-hero__subtitle { color: #555; }
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-label { background: #f19e00; color: #fff; border: none; }
/* Cream hero: oranzova machula namiesto modrej/fialovej */
.zsmh-ds-hero[data-color="cream"]::before { background: radial-gradient(circle, rgba(241,158,0,.08) 0%, transparent 70%); }
.zsmh-ds-hero[data-color="cream"]::after { background: radial-gradient(circle, rgba(209,137,0,.1) 0%, transparent 70%); }

/* Oranžový hero — GDPR, právne dokumenty */
.zsmh-ds-hero[data-color="primary"] { background: linear-gradient(135deg, #f19e00 0%, #d38900 50%, #b87200 100%); }
.zsmh-ds-hero[data-color="primary"]::before { background: radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 70%); }

.zsmh-ds-hero[data-variant="fullscreen"] .zsmh-ds-hero__bg-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.zsmh-ds-hero[data-variant="fullscreen"] .zsmh-ds-hero__bg-image + .zsmh-ds-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to bottom, rgba(30,22,16,0.7) 0%, rgba(30,22,16,0.35) 50%, rgba(30,22,16,0.75) 100%),
		linear-gradient(to right, rgba(30,22,16,0.6) 0%, transparent 60%);
	z-index: 1;
}

.zsmh-ds-hero[data-variant="fullscreen"] > .zsmh-ds-container {
	position: relative;
	z-index: 2;
}

.zsmh-ds-hero[data-variant="fullscreen"] .zsmh-ds-hero__content {
	text-align: center;
	max-width: 800px;
	margin: 0 auto;
}

.zsmh-ds-hero[data-variant="fullscreen"] .zsmh-ds-hero__title {
	color: var(--gcid-white);
	font-size: clamp(2.5rem, 1rem + 5vw, 5rem);
	line-height: 1.05;
}

.zsmh-ds-hero[data-variant="fullscreen"] .zsmh-ds-label {
	color: rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.1);
	padding: 6px 16px;
	border-radius: 50px;
	font-size: 11px;
	letter-spacing: 1.5px;
	display: inline-block;
	margin-bottom: var(--space-4);
}

.zsmh-ds-hero[data-variant="fullscreen"] .zsmh-ds-hero__subtitle {
	color: rgba(255, 255, 255, 0.85);
	font-size: var(--text-lg);
	line-height: 1.6;
	margin-bottom: var(--space-8);
}

/* Hero CTA button */
.zsmh-ds-hero__cta {
	display: inline-block;
	padding: var(--space-3) var(--space-8);
	background: var(--historia-burgundy, #7a2e3b);
	color: var(--gcid-white);
	font-size: var(--text-sm);
	font-weight: 600;
	border-radius: var(--radius-lg);
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background 200ms ease, transform 200ms ease;
}

.zsmh-ds-hero__cta:hover {
	background: #5e2330;
	color: var(--gcid-white);
	transform: translateY(-1px);
}

/* ----------------------------------------
   Hero: Compact variants (compact-navy, compact-cream, compact-primary)
   ---------------------------------------- */
.zsmh-ds-hero[data-variant^="compact-"] {
	padding: var(--space-6) 0 var(--space-8);
	border-bottom: 3px solid var(--gcid-primary-color);
}
.zsmh-ds-hero--no-border { border-bottom: none !important; }
.zsmh-ds-hero[data-variant^="compact-"]::before,
.zsmh-ds-hero[data-variant^="compact-"]::after {
	display: none;
}
.zsmh-ds-hero[data-variant^="compact-"] .zsmh-ds-hero__content {
	grid-template-columns: 1fr;
}
.zsmh-ds-hero[data-variant^="compact-"] .zsmh-ds-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(1.4rem, 3vw, 1.75rem);
	font-weight: 700;
	margin-bottom: 0;
}
.zsmh-ds-hero[data-variant^="compact-"] .zsmh-ds-label {
	font-size: 10px;
	letter-spacing: .12em;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
	margin-bottom: var(--space-1);
}
/* Navy compact: label biely, subtílny */
.zsmh-ds-hero[data-variant="compact-navy"] .zsmh-ds-label {
	color: rgba(255,255,255,.5);
}
/* Cream compact: label oranžový, bez pozadia */
.zsmh-ds-hero[data-variant="compact-cream"] .zsmh-ds-label {
	color: var(--gcid-primary-color);
}
/* Primary compact: label biely */
.zsmh-ds-hero[data-variant="compact-primary"] .zsmh-ds-label {
	color: rgba(255,255,255,.6);
}
/* Green compact: zelená MŠ schéma */
.zsmh-ds-hero[data-variant="compact-green"] {
	background: linear-gradient(170deg, #f0faf3 0%, #d4edda 50%, #c8e6cf 100%);
	border-bottom-color: #27ae60;
}
.zsmh-ds-hero[data-variant="compact-green"] .zsmh-ds-label {
	color: #1e8449;
}
.zsmh-ds-hero[data-variant="compact-green"] .zsmh-ds-hero__title {
	color: #1a1a2e;
}
.zsmh-ds-hero[data-variant="compact-green"] .zsmh-ds-hero__breadcrumbs a {
	color: #6b7280;
}
.zsmh-ds-hero[data-variant="compact-green"] .zsmh-ds-hero__bc-sep {
	color: #aaa;
}
.zsmh-ds-hero[data-variant="compact-green"] .zsmh-ds-hero__bc-current {
	color: #6b7280;
}

/* ----------------------------------------
   Hero: Minimal variant (white bg, only breadcrumbs + h1)
   ---------------------------------------- */
.zsmh-ds-hero[data-variant="minimal"] {
	background: var(--gcid-white);
	color: var(--gcid-heading-color);
	padding: var(--space-4) 0 var(--space-4);
	border-bottom: 2px solid var(--gcid-border-color);
}
.zsmh-ds-hero[data-variant="minimal"]::before,
.zsmh-ds-hero[data-variant="minimal"]::after {
	display: none;
}
.zsmh-ds-hero[data-variant="minimal"] .zsmh-ds-hero__content {
	grid-template-columns: 1fr;
}
.zsmh-ds-hero[data-variant="minimal"] .zsmh-ds-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	font-weight: 700;
	color: var(--gcid-heading-color);
	margin-bottom: 0;
}
.zsmh-ds-hero[data-variant="minimal"] .zsmh-ds-label {
	color: var(--gcid-primary-color);
	background: transparent;
	border: none;
	padding: 0;
}

/* ----------------------------------------
   Hero: Breadcrumbs
   ---------------------------------------- */
.zsmh-ds-hero__breadcrumbs {
	font-size: 12px;
	margin-bottom: var(--space-2);
}
.zsmh-ds-hero__breadcrumbs a {
	color: rgba(255,255,255,.4);
	text-decoration: none;
	transition: color .2s;
}
.zsmh-ds-hero__breadcrumbs a:hover {
	color: var(--gcid-primary-color);
}
.zsmh-ds-hero__bc-sep {
	margin: 0 6px;
	color: rgba(255,255,255,.25);
}
.zsmh-ds-hero__bc-current {
	color: rgba(255,255,255,.4);
}

/* Breadcrumbs na svetlom pozadí (cream, primary-light, minimal) */
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-hero__breadcrumbs a,
.zsmh-ds-hero[data-variant="minimal"] .zsmh-ds-hero__breadcrumbs a {
	color: #999;
}
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-hero__breadcrumbs a:hover,
.zsmh-ds-hero[data-variant="minimal"] .zsmh-ds-hero__breadcrumbs a:hover {
	color: var(--gcid-primary-color);
}
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-hero__bc-sep,
.zsmh-ds-hero[data-variant="minimal"] .zsmh-ds-hero__bc-sep {
	color: #ccc;
}
.zsmh-ds-hero[data-color="cream"] .zsmh-ds-hero__bc-current,
.zsmh-ds-hero[data-variant="minimal"] .zsmh-ds-hero__bc-current {
	color: #999;
}

/* -- Quote blocks -- */
.zsmh-ds-page--historia .zsmh-ds-quote-block:not(.zsmh-ds-section--dark) {
	background: var(--historia-cream);
}

.zsmh-ds-page--historia .zsmh-ds-quote-block:not(.zsmh-ds-section--dark) .zsmh-ds-quote-block__quote {
	color: var(--historia-burgundy);
	font-style: italic;
}

.zsmh-ds-page--historia .zsmh-ds-quote-block .zsmh-ds-quote-block__author {
	color: var(--historia-gold);
	font-weight: 600;
	letter-spacing: 1px;
}

/* Dark quote (Rúfus) */
.zsmh-ds-page--historia .zsmh-ds-section--dark {
	background: var(--historia-burgundy);
}

.zsmh-ds-page--historia .zsmh-ds-section--dark .zsmh-ds-quote-block__quote {
	color: var(--gcid-white);
	font-style: italic;
}

.zsmh-ds-page--historia .zsmh-ds-section--dark .zsmh-ds-quote-block__author {
	color: var(--historia-gold);
}

/* -- Stats banner — burgundy solid bg (matching mockup) -- */
.zsmh-ds-page--historia .zsmh-ds-stats-banner--dark {
	background: var(--historia-burgundy);
	padding: var(--space-10) 0;
}

.zsmh-ds-page--historia .zsmh-ds-stats-banner--dark .zsmh-ds-stats-banner__grid {
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	text-align: center;
}

.zsmh-ds-page--historia .zsmh-ds-stats-banner--dark .zsmh-ds-stats-banner__number {
	color: var(--gcid-white);
	font-size: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
	font-weight: 700;
	line-height: 1;
	margin-bottom: var(--space-2);
	display: block;
}

.zsmh-ds-page--historia .zsmh-ds-stats-banner--dark .zsmh-ds-stats-banner__label {
	color: rgba(255, 255, 255, 0.8);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* -- Labels -- */
.zsmh-ds-page--historia .zsmh-ds-label {
	color: var(--historia-burgundy);
}

/* -- Timeline sections — alternujúce pozadia -- */
.zsmh-ds-page--historia .zsmh-ds-timeline:nth-of-type(odd) {
	background: var(--historia-cream);
}

.zsmh-ds-page--historia .zsmh-ds-timeline .zsmh-ds-section-header .zsmh-ds-label {
	color: var(--historia-gold);
	font-size: 2rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: none;
}

.zsmh-ds-page--historia .zsmh-ds-timeline .zsmh-ds-section-header .zsmh-ds-display {
	color: var(--historia-burgundy);
}

/* -- Directors grid — card style (matching mockup) -- */
.zsmh-ds-page--historia .zsmh-ds-directors {
	background: var(--gcid-white);
}

.zsmh-ds-page--historia .zsmh-ds-directors .zsmh-ds-section-header .zsmh-ds-label {
	color: var(--historia-gold);
}

.zsmh-ds-page--historia .zsmh-ds-directors .zsmh-ds-display {
	color: var(--historia-burgundy);
}

.zsmh-ds-page--historia .zsmh-ds-directors__grid {
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
	max-width: 720px;
	margin: 0 auto;
}

.zsmh-ds-page--historia .zsmh-ds-directors__item {
	text-align: left;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-md);
	border: 1px solid #d8d2c8;
	background: var(--historia-cream);
}

.zsmh-ds-page--historia .zsmh-ds-directors__item .zsmh-ds-directors__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-1);
}

.zsmh-ds-page--historia .zsmh-ds-directors__item--featured {
	background: #f5ecd4;
	border-color: var(--historia-gold);
}

.zsmh-ds-page--historia .zsmh-ds-directors__item--featured .zsmh-ds-directors__name {
	color: var(--historia-burgundy);
}

.zsmh-ds-page--historia .zsmh-ds-directors__item--current {
	background: var(--historia-burgundy);
	border-color: var(--historia-burgundy);
}

.zsmh-ds-page--historia .zsmh-ds-directors__item--current .zsmh-ds-directors__name,
.zsmh-ds-page--historia .zsmh-ds-directors__item--current .zsmh-ds-directors__years {
	color: var(--gcid-white);
}

.zsmh-ds-page--historia .zsmh-ds-directors__item--current .zsmh-ds-directors__photo {
	border-color: var(--gcid-white);
	box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.2);
}

/* -- Card grid (Škola dnes) — icon box style -- */
.zsmh-ds-page--historia .zsmh-ds-card {
	border-color: #d8d2c8;
	background: var(--gcid-white);
}
/* Na tmavom pozadí karty musia byť priehľadné, nie biele */
.zsmh-ds-page--historia .zsmh-ds-section--dark .zsmh-ds-card {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.1);
}
.zsmh-ds-page--historia .zsmh-ds-section--dark .zsmh-ds-card:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(241,158,0,.3);
}
.zsmh-ds-page--historia .zsmh-ds-section--dark .zsmh-ds-card__title {
	color: var(--gcid-white);
}
.zsmh-ds-page--historia .zsmh-ds-section--dark .zsmh-ds-card__text {
	color: rgba(255, 255, 255, 0.7);
}

.zsmh-ds-page--historia .zsmh-ds-card::before {
	background: linear-gradient(90deg, var(--historia-burgundy), var(--historia-gold));
}

.zsmh-ds-page--historia .zsmh-ds-card__icon-wrap {
	width: 48px;
	height: 48px;
	background: rgba(122, 46, 59, 0.08);
	border-radius: var(--radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	margin-bottom: var(--space-4);
}

.zsmh-ds-page--historia .zsmh-ds-card__title {
	color: var(--historia-burgundy);
	font-family: var(--font-display);
}

/* Today cards: 4 stĺpce na desktope (matching mockup) */
.zsmh-ds-page--historia .zsmh-ds-card-grid {
	grid-template-columns: repeat(4, 1fr) !important;
}
@media (max-width: 980px) {
	.zsmh-ds-page--historia .zsmh-ds-card-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 640px) {
	.zsmh-ds-page--historia .zsmh-ds-card-grid {
		grid-template-columns: 1fr !important;
	}
}

/* Hodža section — offset bg (matching mockup) */
.zsmh-ds-page--historia .zsmh-ds-section:not(.zsmh-ds-section--dark):not(.zsmh-ds-timeline):not(.zsmh-ds-directors) {
	background: #ebe7df;
}

/* -- Names mosaic (Škola s desiatimi menami) -- */
.zsmh-ds-names-mosaic {
	margin-bottom: var(--space-12);
	text-align: center;
}

.zsmh-ds-names-mosaic h3 {
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 700;
	margin-bottom: var(--space-2);
}

.zsmh-ds-names-mosaic__intro {
	font-size: var(--text-base);
	color: var(--gcid-muted-color);
	margin-bottom: var(--space-8);
}

.zsmh-ds-names-mosaic__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--space-3);
	text-align: left;
}

.zsmh-ds-names-mosaic__card {
	display: flex;
	align-items: baseline;
	gap: var(--space-3);
	padding: var(--space-3) var(--space-4);
	background: var(--gcid-white);
	border-radius: var(--radius-md);
	border: 1px solid #d8d2c8;
	transition: transform 200ms ease, box-shadow 200ms ease;
}

.zsmh-ds-names-mosaic__card:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(44, 38, 30, 0.08);
}

.zsmh-ds-names-mosaic__card--highlight {
	background: var(--historia-burgundy);
	border-color: var(--historia-burgundy);
}

.zsmh-ds-names-mosaic__card--highlight .zsmh-ds-names-mosaic__year,
.zsmh-ds-names-mosaic__card--highlight .zsmh-ds-names-mosaic__name {
	color: var(--gcid-white);
}

.zsmh-ds-names-mosaic__year {
	font-family: var(--font-display);
	font-size: var(--text-sm);
	font-weight: 700;
	color: var(--historia-burgundy);
	flex-shrink: 0;
	min-width: 40px;
}

.zsmh-ds-names-mosaic__name {
	font-size: var(--text-sm);
	color: var(--gcid-body-color);
}

/* -- Chapter date range -- */
.zsmh-ds-page--historia .zsmh-ds-section-header .zsmh-ds-chapter-range {
	font-size: var(--text-sm);
	color: var(--gcid-muted-color);
	letter-spacing: 0.05em;
	margin-top: var(--space-1);
}

/* -- Text section (Kto bol M. Hodža) -- */
.zsmh-ds-page--historia .zsmh-ds-section > .zsmh-ds-container > .zsmh-ds-section-header .zsmh-ds-display {
	color: var(--historia-burgundy);
}

.zsmh-ds-page--historia .zsmh-ds-text-section__text blockquote {
	border-left: 4px solid var(--historia-gold);
	padding-left: var(--space-5);
	margin: var(--space-6) 0;
	color: var(--historia-burgundy);
	font-style: italic;
	font-size: 1.15rem;
}

/* -- Video grid — embedded iframes (matching mockup) -- */
.zsmh-ds-page--historia .zsmh-ds-video-grid .zsmh-ds-display {
	color: var(--historia-burgundy);
}

.zsmh-ds-page--historia .zsmh-ds-video-grid__embed {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}

.zsmh-ds-page--historia .zsmh-ds-video-grid__embed iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.zsmh-ds-page--historia .zsmh-ds-video-grid__grid {
	max-width: 900px;
	margin: 0 auto;
}

/* Subtitle pod video header */
.zsmh-ds-page--historia .zsmh-ds-video-grid .zsmh-ds-section-header .zsmh-ds-chapter-range {
	color: var(--gcid-muted-color);
}

/* Text section (Hodža) — narrow container like mockup */
.zsmh-ds-page--historia .zsmh-ds-text-section__content {
	max-width: 720px;
	margin: 0 auto;
}

/* Text section blockquote — Libre Bodoni Italic */
.zsmh-ds-page--historia .zsmh-ds-text-section__text blockquote {
	font-family: var(--font-display);
}

/* -- Section separators -- */
.zsmh-ds-page--historia .zsmh-ds-section + .zsmh-ds-section {
	border-top: 1px solid rgba(122, 46, 59, 0.08);
}

/* -- Gallery "Z archívu školy" — masonry grid (matching mockup) -- */
.zsmh-ds-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: auto auto;
	gap: var(--space-3);
}

.zsmh-ds-gallery__item {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-md);
	aspect-ratio: 4/3;
	display: block;
	cursor: pointer;
}

.zsmh-ds-gallery__item--large {
	grid-column: span 2;
	grid-row: span 2;
	aspect-ratio: auto;
}

.zsmh-ds-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms ease;
}

.zsmh-ds-gallery__item:hover img {
	transform: scale(1.05);
}

.zsmh-ds-gallery__caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var(--space-2) var(--space-3);
	background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);
	color: #fff;
	font-size: var(--text-xs);
}

.zsmh-ds-page--historia .zsmh-ds-gallery .zsmh-ds-display {
	color: var(--historia-burgundy);
}

/* Galéria: stĺpce podľa ACF thumb_size */
.zsmh-ds-gallery__grid--cols-5 { grid-template-columns: repeat(5, 1fr); }
.zsmh-ds-gallery__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.zsmh-ds-gallery__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }

/* Galéria: grid štýl (default) — rovnaké aspect-ratio */
.zsmh-ds-gallery__grid--grid .zsmh-ds-gallery__item { aspect-ratio: 4/3; }
.zsmh-ds-gallery__grid--grid .zsmh-ds-gallery__item--large { aspect-ratio: 4/3; grid-column: span 1; grid-row: span 1; }

/* Galéria: masonry štýl — rôzne výšky */
.zsmh-ds-gallery__grid--masonry {
	display: columns;
	columns: 4;
	column-gap: var(--space-3);
	display: block;
}
.zsmh-ds-gallery__grid--masonry.zsmh-ds-gallery__grid--cols-5 { columns: 5; }
.zsmh-ds-gallery__grid--masonry.zsmh-ds-gallery__grid--cols-3 { columns: 3; }
.zsmh-ds-gallery__grid--masonry .zsmh-ds-gallery__item {
	aspect-ratio: auto;
	break-inside: avoid;
	margin-bottom: var(--space-3);
	display: block;
}

/* Galéria: mozaika — prvý veľký, zvyšok menšie */
.zsmh-ds-gallery__grid--mosaic .zsmh-ds-gallery__item--large {
	grid-column: span 2;
	grid-row: span 2;
	aspect-ratio: auto;
}

/* Galéria: popisky viditeľné (keď zapnuté) */
.zsmh-ds-gallery__caption {
	position: absolute;
	bottom: 0; left: 0; right: 0;
	padding: var(--space-2) var(--space-3);
	background: linear-gradient(transparent, rgba(0,0,0,.6));
	color: var(--gcid-white);
	font-size: .75rem;
	line-height: 1.4;
}

@media (max-width: 768px) {
	.zsmh-ds-gallery__grid--cols-5,
	.zsmh-ds-gallery__grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
	.zsmh-ds-gallery__grid--cols-3 { grid-template-columns: repeat(2, 1fr); }
	.zsmh-ds-gallery__grid--masonry { columns: 2; }
	.zsmh-ds-gallery__item--large { grid-column: span 2; grid-row: span 1; aspect-ratio: 16/9; }
}
@media (max-width: 480px) {
	.zsmh-ds-gallery__grid { grid-template-columns: 1fr !important; }
	.zsmh-ds-gallery__grid--masonry { columns: 1; }
	.zsmh-ds-gallery__item--large { grid-column: span 1; }
}

/* ----------------------------------------
   Two Buildings — versus cards
   ---------------------------------------- */
.zsmh-ds-two-buildings {
	background: var(--historia-cream);
}

.zsmh-ds-two-buildings .zsmh-ds-display {
	color: var(--historia-burgundy);
}

.zsmh-ds-two-buildings__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-6);
	margin-top: var(--space-8);
}

.zsmh-ds-two-buildings__card {
	background: var(--gcid-white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	border: 1px solid #d8d2c8;
	transition: transform 300ms ease, box-shadow 300ms ease;
}

.zsmh-ds-two-buildings__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(44, 38, 30, 0.12);
}

.zsmh-ds-two-buildings__img {
	position: relative;
	aspect-ratio: 16/10;
	overflow: hidden;
	background: #ebe7df;
}

.zsmh-ds-two-buildings__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.zsmh-ds-two-buildings__img-badge {
	position: absolute;
	bottom: var(--space-2);
	left: var(--space-2);
	background: rgba(44, 38, 30, 0.75);
	color: var(--gcid-white);
	font-size: 11px;
	padding: 4px 10px;
	border-radius: var(--radius-sm);
	backdrop-filter: blur(4px);
}

.zsmh-ds-two-buildings__body {
	padding: var(--space-5) var(--space-5) var(--space-6);
}

.zsmh-ds-two-buildings__name {
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--historia-burgundy);
	margin-bottom: var(--space-4);
}

.zsmh-ds-two-buildings__facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-2) var(--space-4);
}

.zsmh-ds-two-buildings__fact-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--gcid-muted-color);
}

.zsmh-ds-two-buildings__fact-value {
	font-weight: 600;
	font-size: var(--text-sm);
	color: var(--gcid-body-color);
}

.zsmh-ds-two-buildings__note {
	text-align: center;
	margin-top: var(--space-8);
	font-style: italic;
	color: var(--historia-burgundy);
	font-family: var(--font-display);
	font-size: var(--text-base);
}

@media (max-width: 700px) {
	.zsmh-ds-two-buildings__grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   Callout boxes (timeline milestones)
   ---------------------------------------- */
.zsmh-ds-callout {
	margin-top: var(--space-4);
	padding: var(--space-4) var(--space-5);
	background: rgba(184, 134, 11, 0.08);
	border-left: 3px solid var(--historia-gold);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.zsmh-ds-callout__title {
	display: block;
	font-family: var(--font-display);
	font-size: var(--text-sm);
	font-weight: 700;
	color: var(--historia-burgundy);
	margin-bottom: var(--space-1);
}

.zsmh-ds-callout__text {
	font-size: var(--text-sm);
	color: var(--gcid-body-color);
	line-height: 1.6;
	margin: 0;
}

/* ----------------------------------------
   Directors — avatar placeholder (initials)
   ---------------------------------------- */
.zsmh-ds-directors__placeholder {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #d8d2c8;
	color: var(--historia-burgundy);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.zsmh-ds-page--historia .zsmh-ds-directors__item--current .zsmh-ds-directors__placeholder {
	background: rgba(255, 255, 255, 0.2);
	color: var(--gcid-white);
}

/* ----------------------------------------
   Interactive Timeline — tabs wrapping consecutive timelines
   ---------------------------------------- */
.zsmh-ds-itl {
	background: var(--gcid-white);
	padding: var(--space-16) 0;
}

.zsmh-ds-itl__header {
	text-align: center;
	margin-bottom: var(--space-8);
}

.zsmh-ds-itl__header .zsmh-ds-label {
	color: var(--historia-burgundy);
}

.zsmh-ds-itl__header .zsmh-ds-display {
	color: var(--historia-burgundy);
}

.zsmh-ds-itl__tabs {
	display: flex;
	justify-content: center;
	gap: 4px;
	margin-bottom: var(--space-10);
	background: var(--historia-cream);
	border-radius: 100px;
	padding: 4px;
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

.zsmh-ds-itl__tab {
	flex: 1;
	padding: 12px 20px;
	border-radius: 100px;
	border: none;
	background: transparent;
	font-family: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--gcid-muted-color);
	cursor: pointer;
	transition: all 0.2s;
	text-align: center;
}

.zsmh-ds-itl__tab:hover {
	color: var(--gcid-body-color);
}

.zsmh-ds-itl__tab.is-active {
	background: var(--gcid-white);
	color: var(--historia-burgundy);
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.zsmh-ds-itl__tab small {
	display: block;
	font-size: 0.7rem;
	font-weight: 400;
	margin-top: 2px;
	opacity: 0.7;
}

.zsmh-ds-itl__chapter {
	display: none;
}

.zsmh-ds-itl__chapter.is-active {
	display: block;
}

/* Inside tabbed mode, hide the section wrapper chrome and disable inner reveal */
.zsmh-ds-itl__chapter > .zsmh-ds-timeline {
	padding: 0;
	background: transparent !important;
}

.zsmh-ds-itl__chapter > .zsmh-ds-timeline.zsmh-ds-reveal {
	opacity: 1;
	transform: none;
}

.zsmh-ds-itl__chapter > .zsmh-ds-timeline > .zsmh-ds-container > .zsmh-ds-section-header {
	display: none;
}

@media (max-width: 640px) {
	.zsmh-ds-itl__tabs {
		flex-direction: column;
		border-radius: var(--radius-lg);
	}
	.zsmh-ds-itl__tab {
		border-radius: var(--radius-lg);
	}
}

/* ----------------------------------------
   Floating Dot TOC
   ---------------------------------------- */
.zsmh-hist-dots {
	position: fixed;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 900;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.zsmh-hist-dots__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gcid-border-color, #d8d2c8);
	border: none;
	cursor: pointer;
	transition: all 0.2s;
	position: relative;
	padding: 0;
}

.zsmh-hist-dots__dot:hover,
.zsmh-hist-dots__dot.is-active {
	background: var(--historia-burgundy);
	transform: scale(1.5);
}

.zsmh-hist-dots__dot::after {
	content: attr(data-label);
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	white-space: nowrap;
	font-size: 11px;
	font-weight: 600;
	color: var(--historia-burgundy);
	background: var(--gcid-white);
	padding: 4px 10px;
	border-radius: 6px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.1);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s;
}

.zsmh-hist-dots__dot:hover::after {
	opacity: 1;
}

@media (max-width: 768px) {
	.zsmh-hist-dots { display: none; }
}

/* ----------------------------------------
   História — CTA Banner
   ---------------------------------------- */
.zsmh-ds-hist-cta {
	background: var(--historia-burgundy);
	text-align: center;
	padding: var(--space-12) 0;
}
.zsmh-ds-hist-cta h2 {
	color: #fff;
	margin-bottom: var(--space-4);
}
.zsmh-ds-hist-cta__desc {
	color: rgba(255,255,255,.8);
	max-width: 560px;
	margin: 0 auto var(--space-6);
}
.zsmh-ds-hist-cta__btn {
	display: inline-block;
	padding: var(--space-3) var(--space-8);
	background: #fff;
	color: var(--historia-burgundy);
	font-weight: 700;
	border-radius: var(--radius-full, 999px);
	text-decoration: none;
	transition: opacity .2s;
}
.zsmh-ds-hist-cta__btn:hover {
	opacity: .9;
}

/* ----------------------------------------
   Featured Video (lite-yt first video)
   ---------------------------------------- */
.zsmh-ds-video-featured {
	position: relative;
	aspect-ratio: 16/9;
	background: #111;
	border-radius: var(--radius-lg);
	overflow: hidden;
	cursor: pointer;
	grid-column: 1 / -1;
	margin-bottom: var(--space-4);
}

.zsmh-ds-video-featured img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.7;
	transition: opacity 0.3s;
}

.zsmh-ds-video-featured:hover img {
	opacity: 0.5;
}

.zsmh-ds-video-featured__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px;
	height: 72px;
	background: rgba(255,255,255,0.15);
	backdrop-filter: blur(8px);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid rgba(255,255,255,0.3);
	transition: background 0.3s;
}

.zsmh-ds-video-featured:hover .zsmh-ds-video-featured__play {
	background: rgba(255,255,255,0.25);
}

.zsmh-ds-video-featured__label {
	position: absolute;
	bottom: 20px;
	left: 20px;
	right: 20px;
}

.zsmh-ds-video-featured__title {
	font-family: var(--font-display);
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	font-weight: 700;
	color: #fff;
}

.zsmh-ds-video-featured__desc {
	font-size: 0.8rem;
	color: rgba(255,255,255,0.6);
	margin-top: 4px;
}

/* ----------------------------------------
   Reveal animations (IntersectionObserver)
   ---------------------------------------- */
.zsmh-ds-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity .7s cubic-bezier(.25,.46,.45,.94), transform .7s cubic-bezier(.25,.46,.45,.94);
}

.zsmh-ds-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ----------------------------------------
   Video Modal (Desatoro)
   ---------------------------------------- */
.zsmh-ds-video-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	opacity: 0;
	transition: opacity .3s ease;
}

.zsmh-ds-video-modal.is-active {
	pointer-events: all;
	opacity: 1;
}

.zsmh-ds-video-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(18,20,45,.9);
	backdrop-filter: blur(8px);
}

.zsmh-ds-video-modal__content {
	position: relative;
	width: 90vw;
	max-width: 800px;
	background: var(--navy-deep);
	border-radius: var(--radius-xl);
	overflow: hidden;
	transform: scale(.9);
	transition: transform .3s ease;
	box-shadow: 0 30px 80px rgba(0,0,0,.5);
}

.zsmh-ds-video-modal.is-active .zsmh-ds-video-modal__content {
	transform: scale(1);
}

.zsmh-ds-video-modal__close {
	position: absolute;
	top: var(--space-3);
	right: var(--space-3);
	z-index: 10;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.15);
	color: var(--gcid-white);
	width: 40px;
	height: 40px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s;
}

.zsmh-ds-video-modal__close:hover {
	background: rgba(255,255,255,.2);
}

.zsmh-ds-video-modal__iframe-wrap {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}

.zsmh-ds-video-modal__iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ----------------------------------------
   Timeline (História specific)
   ---------------------------------------- */
.zsmh-ds-timeline__track {
	position: relative;
	padding-left: 40px;
}

.zsmh-ds-timeline__track::before {
	content: '';
	position: absolute;
	left: 15px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: var(--gcid-border-color);
}

.zsmh-ds-timeline__item {
	position: relative;
	padding-bottom: 32px;
}

.zsmh-ds-timeline__item:last-child {
	padding-bottom: 0;
}

.zsmh-ds-timeline__marker {
	position: absolute;
	left: -33px;
	top: 4px;
	width: 12px;
	height: 12px;
	background: var(--gcid-white);
	border: 2px solid var(--gcid-border-color);
	border-radius: 50%;
}

.zsmh-ds-timeline__item--milestone .zsmh-ds-timeline__marker {
	width: 16px;
	height: 16px;
	left: -35px;
	background: var(--gcid-primary-color);
	border-color: var(--gcid-primary-color);
	box-shadow: 0 0 0 4px var(--gcid-primary-light);
}

.zsmh-ds-timeline__year {
	display: inline-block;
	font-family: var(--font-display);
	font-size: var(--text-sm);
	font-weight: 700;
	color: var(--gcid-primary-color);
	background: var(--gcid-primary-light);
	padding: 2px 10px;
	border-radius: var(--radius-sm);
	margin-bottom: var(--space-2);
}

.zsmh-ds-timeline__title {
	font-family: var(--font-display);
	font-size: var(--text-lg);
	font-weight: 700;
	margin-bottom: var(--space-1);
}

.zsmh-ds-timeline__text {
	color: var(--gcid-muted-color);
	font-size: var(--text-sm);
	line-height: 1.6;
}

/* Timeline intro text block */
.zsmh-ds-timeline__intro {
	max-width: 780px;
	margin: 0 auto;
}

.zsmh-ds-timeline__intro h3 {
	font-family: var(--font-display);
	font-size: var(--text-xl);
	text-align: center;
	margin-bottom: 16px;
}

.zsmh-ds-timeline__intro ol {
	columns: 2;
	column-gap: 40px;
	padding-left: 24px;
}

.zsmh-ds-timeline__intro li {
	margin-bottom: 6px;
	break-inside: avoid;
}

@media (max-width: 640px) {
	.zsmh-ds-timeline__intro ol {
		columns: 1;
	}
}

/* História special palette */
.zsmh-ds-timeline .zsmh-ds-timeline__year {
	color: var(--historia-burgundy);
	background: rgba(122, 46, 59, 0.1);
}

.zsmh-ds-timeline .zsmh-ds-timeline__item--milestone .zsmh-ds-timeline__marker {
	background: var(--historia-burgundy);
	border-color: var(--historia-burgundy);
	box-shadow: 0 0 0 4px rgba(122, 46, 59, 0.15);
}

@media (max-width: 640px) {
	.zsmh-ds-timeline__track {
		padding-left: 28px;
	}
	.zsmh-ds-timeline__track::before {
		left: 8px;
	}
	.zsmh-ds-timeline__marker {
		left: -26px;
	}
	.zsmh-ds-timeline__item--milestone .zsmh-ds-timeline__marker {
		left: -28px;
	}
}

/* ----------------------------------------
   Directors Grid (História specific)
   ---------------------------------------- */
.zsmh-ds-directors__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--space-6);
}

.zsmh-ds-directors__item {
	text-align: center;
	padding: var(--space-5);
}

.zsmh-ds-directors__photo {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto var(--space-3);
	border: 3px solid var(--gcid-border-color);
}

.zsmh-ds-directors__item--featured .zsmh-ds-directors__photo {
	width: 120px;
	height: 120px;
	border-color: var(--historia-burgundy);
}

.zsmh-ds-directors__item--current .zsmh-ds-directors__photo {
	border-color: var(--gcid-primary-color);
	box-shadow: 0 0 0 4px var(--gcid-primary-light);
}

.zsmh-ds-directors__name {
	font-family: var(--font-display);
	font-size: var(--text-base);
	font-weight: 700;
}

.zsmh-ds-directors__years {
	font-size: var(--text-sm);
	color: var(--gcid-light-color);
	margin-top: var(--space-1);
}

/* ----------------------------------------
   Video Grid (História specific)
   ---------------------------------------- */
.zsmh-ds-video-grid__thumb {
	position: relative;
	cursor: pointer;
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.zsmh-ds-video-grid__thumb img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	transition: transform var(--transition-base);
}

.zsmh-ds-video-grid__thumb:hover img {
	transform: scale(1.05);
}

.zsmh-ds-video-grid__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 48px;
	height: 48px;
	background: rgba(0, 0, 0, 0.6);
	color: var(--gcid-white);
	border: none;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	cursor: pointer;
	transition: background var(--transition-fast);
}

.zsmh-ds-video-grid__thumb:hover .zsmh-ds-video-grid__play {
	background: var(--gcid-primary-color);
}

/* ========================================
   NAŠA ŠKOLA — Vizuálne opravy (Fáza 1)
   ======================================== */

/* ---- Fonty podľa dizajn manuálu (trojvrstvový systém) ---- */
/* Libre Bodoni = hero nadpisy + citáty (NIKDY pod 18px) */
/* Trebuchet MS = nadpisy sekcií (h2) */
/* Trebuchet MS = navigácia, tlačidlá, labely */
.zsmh-ds-page--nasa-skola {
	--font-display: 'Libre Bodoni', Georgia, serif;
	--font-section: var(--font-heading);
}
/* Sekčné nadpisy (h2): Trebuchet MS Bold, nie Libre Bodoni */
.zsmh-ds-page--nasa-skola .zsmh-ds-section-header .zsmh-ds-display {
	font-family: var(--font-section);
	font-weight: 600;
	font-size: clamp(1.3rem, 2.5vw, 1.6rem);
}
/* Hero nadpis: Libre Bodoni Bold */
.zsmh-ds-hero[data-variant="default"] .zsmh-ds-hero__title {
	font-family: var(--font-display);
	font-weight: 700;
}
/* Citáty: Libre Bodoni Italic */
.zsmh-ds-page--nasa-skola .zsmh-ds-quote-block__quote,
.zsmh-ds-page--nasa-skola .zsmh-ds-director__quote {
	font-family: var(--font-display);
	font-style: italic;
}
/* Program nadpis (Čitateľná stopa): Libre Bodoni — je to "hero-level" nadpis */
.zsmh-ds-page--nasa-skola .zsmh-ds-quote-block__program-name {
	font-family: var(--font-display);
	font-weight: 700;
}
/* Labely/badges: Trebuchet MS Bold (nie Libre Bodoni) */
.zsmh-ds-page--nasa-skola .zsmh-ds-label {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 13px;
}
/* Karta nadpisy: Trebuchet MS Bold (nie Libre Bodoni — pod 18px je zakázané) */
.zsmh-ds-page--nasa-skola .zsmh-ds-card__title {
	font-family: var(--font-section);
	font-weight: 600;
}
/* Testimonial citáty: Libre Bodoni Italic */
.zsmh-ds-page--nasa-skola .zsmh-ds-testimonial__quote {
	font-family: var(--font-display);
	font-style: italic;
	font-size: clamp(1rem, 1.3vw, 1.15rem);
}
/* Alumni mená: Trebuchet MS Bold (Libre Bodoni pod 18px je zakázané) */
.zsmh-ds-page--nasa-skola .zsmh-ds-alumni__item strong {
	font-family: var(--font-section);
	font-weight: 700;
}
/* Desatoro nadpisy: Trebuchet MS Bold */
.zsmh-ds-page--nasa-skola .zsmh-ds-desatoro-item__title {
	font-family: var(--font-section);
	font-weight: 600;
}
/* CTA nadpis: Libre Bodoni Bold (je to hero-level) */
.zsmh-ds-page--nasa-skola .zsmh-ds-cta .zsmh-ds-display {
	font-family: var(--font-display);
	font-weight: 700;
}

/* ---- Director photo: constrain size + cursor for lightbox ---- */
.zsmh-ds-director__photo-frame {
	cursor: zoom-in;
}
.zsmh-ds-director__photo-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---- Text section with image: heritage/Hessová style ---- */
/* Dark bg text+image: smaller image on the right, text takes more space */
.zsmh-ds-section--dark .zsmh-ds-text-section__content--with-image {
	grid-template-columns: 1fr 240px;
	gap: var(--space-8);
	align-items: center;
}
.zsmh-ds-section--dark .zsmh-ds-text-section__image {
	text-align: center;
}
.zsmh-ds-section--dark .zsmh-ds-text-section__image img {
	width: 240px;
	height: auto;
	border-radius: var(--radius-lg);
	box-shadow: 0 8px 30px rgba(0,0,0,.3);
}
.zsmh-ds-section--dark .zsmh-ds-text-section__image a.foobox {
	display: inline-block;
}
@media (max-width: 768px) {
	.zsmh-ds-section--dark .zsmh-ds-text-section__content--with-image {
		grid-template-columns: 1fr;
	}
	.zsmh-ds-section--dark .zsmh-ds-text-section__image img {
		width: 180px;
		margin: 0 auto;
	}
}

/* ---- Card grid summary box ---- */
.zsmh-ds-card-grid__summary-box {
	max-width: 780px;
	margin: var(--space-8) auto 0;
	padding: var(--space-6) var(--space-8);
	background: var(--gcid-primary-cream);
	border-left: 4px solid var(--gcid-primary-color);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	font-size: .95rem;
	line-height: 1.7;
	color: var(--gcid-heading-color);
}
.zsmh-ds-section--dark .zsmh-ds-card-grid__summary-box {
	background: rgba(255,255,255,.06);
	border-color: var(--orange-bright);
	color: rgba(255,255,255,.85);
}

/* Farebné pozadia sekcií (školská paleta) */
.zsmh-ds-section--burgundy {
	background: var(--historia-burgundy, #7a2e3b);
}
.zsmh-ds-section--primary {
	background: var(--orange-medium, #e87c2a);
}

/* ---- Competitions tags: clickable style ---- */
.zsmh-ds-competitions__tag {
	text-decoration: none;
	cursor: pointer;
}
.zsmh-ds-competitions__tag:hover {
	background: var(--orange-medium);
	color: var(--gcid-heading-color);
}

/* ---- Alumni grid: visual enhancement ---- */
.zsmh-ds-alumni__item {
	border-bottom: 2px solid transparent;
	transition: all .25s ease;
}
.zsmh-ds-alumni__item:hover {
	border-bottom-color: var(--gcid-primary-color);
	transform: translateY(-2px);
}

/* ---- CTA: gradient bg + larger typography ---- */
.zsmh-ds-page--nasa-skola .zsmh-ds-cta {
	position: relative;
}
.zsmh-ds-page--nasa-skola .zsmh-ds-section--dark.zsmh-ds-cta,
.zsmh-ds-page--nasa-skola .zsmh-ds-cta.zsmh-ds-section--dark {
	background: linear-gradient(135deg, #1a1a2e 0%, #2d1b4e 50%, #1a1a2e 100%);
}
.zsmh-ds-page--nasa-skola .zsmh-ds-cta .zsmh-ds-display {
	font-size: clamp(1.6rem, 3.5vw, 2.5rem);
}
.zsmh-ds-page--nasa-skola .zsmh-ds-cta__desc {
	font-size: 1.05rem;
}

/* ---- Quote block: Čitateľná stopa 2-col layout ---- */
.zsmh-ds-quote-block--program {
	text-align: left;
}
.zsmh-ds-quote-block--program .zsmh-ds-container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-10);
	align-items: start;
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__title-col {
	display: flex;
	flex-direction: column;
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__program-name {
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 700;
	line-height: 1.15;
	margin-bottom: var(--space-4);
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__program-name em {
	font-style: italic;
	color: var(--gcid-primary-color);
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__program-desc {
	color: var(--gcid-muted-color);
	margin-bottom: var(--space-6);
	line-height: 1.7;
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__value-tag {
	display: inline-block;
	padding: 6px 16px;
	border-radius: 100px;
	font-size: 13px;
	font-weight: 600;
	background: var(--gcid-primary-cream);
	color: var(--orange-darker);
	border: 1px solid rgba(241,158,0,.12);
	letter-spacing: .02em;
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__quote-col {
	position: relative;
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__quote {
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	max-width: none;
	text-align: left;
	font-weight: 400;
	line-height: 1.8;
	border-left: 4px solid var(--gcid-primary-color);
	padding-left: var(--space-6);
	margin-bottom: var(--space-4);
}
.zsmh-ds-quote-block--program .zsmh-ds-quote-block__author {
	text-align: left;
	padding-left: var(--space-6);
}
@media (max-width: 768px) {
	.zsmh-ds-quote-block--program .zsmh-ds-container {
		grid-template-columns: 1fr;
		gap: var(--space-6);
	}
}

/* ---- CTA map ---- */
.zsmh-ds-cta__map {
	width: 100%;
	border-radius: var(--radius-lg);
	overflow: hidden;
	margin-bottom: var(--space-8);
}
.zsmh-ds-cta__map iframe {
	width: 100%;
	height: 300px;
	border: none;
	border-radius: var(--radius-lg);
}

/* ---- Preschool photo grid ---- */
.zsmh-ds-preschool__gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-4);
	margin-top: var(--space-6);
}
.zsmh-ds-preschool__gallery-item {
	border-radius: var(--radius-md);
	overflow: hidden;
	aspect-ratio: 4/3;
	background: var(--gcid-primary-cream);
}
.zsmh-ds-preschool__gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (max-width: 640px) {
	.zsmh-ds-preschool__gallery {
		grid-template-columns: 1fr;
	}
}

/* ═══════════════════════════════════════════════════════════════════
 *  VZDELÁVACÍ PROGRAM — Downloads Bar, Curriculum Accordion, Grading
 * ═══════════════════════════════════════════════════════════════════ */

/* ── Downloads Bar ── */
.zsmh-ds-downloads-bar {
	padding: var(--space-8) 0;
	border-bottom: 1px solid var(--gcid-border-color, #e8e8e8);
}
.zsmh-ds-downloads-bar__row {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
}
.zsmh-ds-downloads-bar__label {
	font-family: var(--font-heading);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--gcid-muted-color, #999);
	margin-right: var(--space-2);
	white-space: nowrap;
}
.zsmh-ds-downloads-bar__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	background: var(--gcid-bg-alt, #f8f7f5);
	border: 1px solid var(--gcid-border-color, #e8e8e8);
	border-radius: 20px;
	text-decoration: none;
	color: var(--gcid-body-color, #333);
	font-size: 13px;
	font-weight: 500;
	transition: var(--transition-base);
}
.zsmh-ds-downloads-bar__chip:hover {
	background: var(--gcid-primary-cream, #fdf2e1);
	border-color: var(--gcid-primary-color);
	color: var(--orange-darker, #d38900);
}
.zsmh-ds-downloads-bar__chip svg {
	flex-shrink: 0;
}

/* ── Downloads List (plná šírka, riadky) ── */
.zsmh-ds-downloads-list {
	max-width: 720px;
	margin: 0 auto;
}

.zsmh-ds-downloads-list__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 20px;
	border: 1px solid var(--gcid-border-color, #e8e8e8);
	border-radius: var(--radius-sm, 6px);
	margin-bottom: 8px;
	background: var(--gcid-white, #fff);
	transition: border-color .15s;
}

.zsmh-ds-downloads-list__item:hover {
	border-color: var(--gcid-primary-color, #f19e00);
}

.zsmh-ds-downloads-list__ext {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--gcid-primary-color, #f19e00);
	color: #fff;
	font-family: var(--font-heading);
	font-size: 10px;
	font-weight: 700;
	border-radius: var(--radius-sm, 6px);
	flex-shrink: 0;
}

.zsmh-ds-downloads-list__name {
	flex: 1;
	font-size: 14px;
	font-weight: 600;
	color: var(--gcid-heading-color, #1a1a1a);
}

.zsmh-ds-downloads-list__size {
	font-size: 12px;
	color: var(--gcid-muted-color, #6b6b6b);
	white-space: nowrap;
}

.zsmh-ds-downloads-list__item .zsmh-ds-btn--sm {
	padding: 8px 16px;
	font-size: 11px;
}

@media (max-width: 768px) {
	.zsmh-ds-downloads-list__item {
		flex-wrap: wrap;
	}
	.zsmh-ds-downloads-list__size {
		display: none;
	}
}

/* ── Curriculum Accordion ── */
.zsmh-ds-curriculum {
	padding: var(--section-padding) 0;
}
.zsmh-ds-section--alt .zsmh-ds-curriculum,
.zsmh-ds-curriculum.zsmh-ds-section--alt {
	background: var(--gcid-bg-alt, #f8f7f5);
}
.zsmh-ds-curriculum__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: var(--space-8);
	padding-bottom: var(--space-4);
	border-bottom: 2px solid var(--gcid-heading-color, #1a1a1a);
}
.zsmh-ds-curriculum__title {
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: var(--gcid-heading-color, #1a1a1a);
	margin: 0;
}
.zsmh-ds-curriculum__badge {
	font-family: var(--font-heading);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--gcid-primary-color);
	background: var(--gcid-primary-cream, #fdf2e1);
	padding: 6px 14px;
	border-radius: 4px;
	white-space: nowrap;
}
.zsmh-ds-curriculum__desc {
	color: var(--gcid-muted-color, #666);
	font-size: 15px;
	margin-bottom: var(--space-6);
}

/* Accordion Items */
.zsmh-ds-curriculum__item {
	border: 1px solid var(--gcid-border-color, #e8e8e8);
	border-radius: var(--radius-md, 12px);
	margin-bottom: var(--space-3);
	overflow: hidden;
	transition: var(--transition-base);
}
.zsmh-ds-curriculum__item:hover {
	border-color: #ccc;
}
.zsmh-ds-curriculum__item.is-open {
	border-color: var(--gcid-primary-color);
	box-shadow: var(--shadow-sm);
}

.zsmh-ds-curriculum__trigger {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 18px 24px;
	background: #fff;
	border: none;
	cursor: pointer;
	font-family: var(--font-body);
	text-align: left;
	transition: var(--transition-base);
}
.zsmh-ds-curriculum__item.is-open .zsmh-ds-curriculum__trigger {
	background: var(--gcid-primary-cream, #fff9ed);
}

.zsmh-ds-curriculum__num {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--gcid-bg-alt, #f0f0f0);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 700;
	color: var(--gcid-muted-color, #999);
	margin-right: var(--space-4);
	flex-shrink: 0;
	transition: var(--transition-base);
}
.zsmh-ds-curriculum__item.is-open .zsmh-ds-curriculum__num {
	background: var(--gcid-primary-color);
	color: #fff;
}

.zsmh-ds-curriculum__trigger-title {
	font-family: var(--font-heading);
	font-size: 16px;
	font-weight: 700;
	color: var(--gcid-heading-color, #1a1a1a);
	flex: 1;
}

.zsmh-ds-curriculum__meta {
	display: flex;
	gap: var(--space-4);
	margin-right: var(--space-4);
}
.zsmh-ds-curriculum__tag {
	font-size: 13px;
	color: var(--gcid-muted-color, #999);
}
.zsmh-ds-curriculum__tag strong {
	color: var(--gcid-heading-color, #1a1a1a);
}

.zsmh-ds-curriculum__arrow {
	flex-shrink: 0;
	color: var(--gcid-muted-color, #999);
	transition: transform var(--transition-base);
}
.zsmh-ds-curriculum__item.is-open .zsmh-ds-curriculum__arrow {
	transform: rotate(180deg);
	color: var(--gcid-primary-color);
}

/* Accordion body */
.zsmh-ds-curriculum__body {
	display: none;
	padding: 0 24px 24px;
	background: #fff;
}
.zsmh-ds-curriculum__item.is-open .zsmh-ds-curriculum__body {
	display: block;
}

/* Curriculum Table */
.zsmh-ds-curriculum__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.zsmh-ds-curriculum__table thead th {
	font-family: var(--font-heading);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--gcid-muted-color, #999);
	padding: 12px 16px;
	text-align: left;
	border-bottom: 2px solid var(--gcid-border-color, #e8e8e8);
}
.zsmh-ds-curriculum__table thead th:nth-child(n+3) {
	text-align: center;
	width: 70px;
}
.zsmh-ds-curriculum__table tbody td {
	padding: 10px 16px;
	border-bottom: 1px solid #f5f5f5;
	vertical-align: middle;
}
.zsmh-ds-curriculum__table tbody td:nth-child(n+3) {
	text-align: center;
	font-weight: 600;
}
.zsmh-ds-curriculum__table tbody tr:hover {
	background: var(--gcid-primary-cream, #fff9ed);
}
.zsmh-ds-curriculum__table tfoot td {
	padding: 12px 16px;
	font-weight: 700;
	background: var(--gcid-bg-alt, #f8f7f5);
	border-top: 2px solid var(--gcid-border-color, #e8e8e8);
}
.zsmh-ds-curriculum__table tfoot td:nth-child(n+3) {
	text-align: center;
}

/* Area dots */
.zsmh-ds-curriculum__area {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	color: var(--gcid-heading-color, #1a1a1a);
	font-size: 13px;
}
.zsmh-ds-curriculum__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}
.zsmh-ds-curriculum__dot--lang    { background: #3b82f6; }
.zsmh-ds-curriculum__dot--math    { background: #8b5cf6; }
.zsmh-ds-curriculum__dot--nature  { background: #10b981; }
.zsmh-ds-curriculum__dot--society { background: #f59e0b; }
.zsmh-ds-curriculum__dot--values  { background: #ef4444; }
.zsmh-ds-curriculum__dot--art     { background: #ec4899; }
.zsmh-ds-curriculum__dot--health  { background: #06b6d4; }
.zsmh-ds-curriculum__dot--work    { background: #84cc16; }

/* Notes */
.zsmh-ds-curriculum__notes {
	margin-top: var(--space-6);
	background: var(--gcid-primary-cream, #fff9ed);
	border-left: 4px solid var(--gcid-primary-color);
	border-radius: 0 var(--radius-sm, 6px) var(--radius-sm, 6px) 0;
	padding: var(--space-5) var(--space-6);
}
.zsmh-ds-curriculum__notes-title {
	font-family: var(--font-heading);
	font-size: 14px;
	font-weight: 700;
	color: var(--gcid-heading-color, #1a1a1a);
	margin-bottom: var(--space-3);
}
.zsmh-ds-curriculum__notes-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.zsmh-ds-curriculum__notes-item {
	font-size: 14px;
	color: var(--gcid-body-color, #333);
	padding-left: 20px;
	position: relative;
}
.zsmh-ds-curriculum__notes-item::before {
	content: '';
	position: absolute;
	left: 0;
	top: 7px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gcid-primary-color);
}
.zsmh-ds-curriculum__extra {
	margin-top: var(--space-4);
	font-size: 14px;
	color: var(--gcid-muted-color, #666);
	font-style: italic;
}

/* ── Grading Scales ── */
.zsmh-ds-grading {
	padding: var(--section-padding) 0;
}
.zsmh-ds-grading__subtitle {
	color: var(--gcid-muted-color, #666);
	font-size: 14px;
	margin-top: var(--space-2);
}
.zsmh-ds-grading__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-6);
}
.zsmh-ds-grading__card {
	background: #fff;
	border-radius: var(--radius-md, 12px);
	padding: var(--space-6) var(--space-7);
	box-shadow: var(--shadow-sm);
}
.zsmh-ds-grading__card-title {
	font-family: var(--font-heading);
	font-size: 15px;
	font-weight: 700;
	color: var(--gcid-heading-color, #1a1a1a);
	margin-bottom: var(--space-5);
}
.zsmh-ds-grading__row {
	display: grid;
	grid-template-columns: 36px 1fr 90px;
	align-items: center;
	gap: var(--space-3);
	padding: 6px 0;
}
.zsmh-ds-grading__row + .zsmh-ds-grading__row {
	border-top: 1px solid #f5f5f5;
	padding-top: 8px;
}
.zsmh-ds-grading__mark {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 15px;
	color: #fff;
}
.zsmh-ds-grading__bar {
	height: 8px;
	background: #f0f0f0;
	border-radius: 4px;
	overflow: hidden;
}
.zsmh-ds-grading__fill {
	height: 100%;
	border-radius: 4px;
	transition: width 0.4s ease;
}
.zsmh-ds-grading__range {
	font-size: 14px;
	font-weight: 600;
	color: var(--gcid-heading-color, #1a1a1a);
	text-align: right;
}
.zsmh-ds-grading__footer {
	margin-top: var(--space-8);
	font-size: 14px;
	color: var(--gcid-body-color, #333);
	line-height: 1.7;
}
.zsmh-ds-grading__footer p {
	margin-bottom: var(--space-2);
}
.zsmh-ds-grading__footer strong {
	color: var(--gcid-heading-color, #1a1a1a);
}

/* ── Responsive ── */
@media (max-width: 768px) {
	.zsmh-ds-curriculum__meta {
		display: none;
	}
	.zsmh-ds-curriculum__trigger {
		padding: 14px 16px;
	}
	.zsmh-ds-curriculum__body {
		padding: 0 16px 16px;
	}
	.zsmh-ds-curriculum__table {
		font-size: 13px;
	}
	.zsmh-ds-curriculum__table thead th,
	.zsmh-ds-curriculum__table tbody td {
		padding: 8px 10px;
	}
	.zsmh-ds-curriculum__header {
		flex-direction: column;
		gap: var(--space-2);
		align-items: flex-start;
	}
	.zsmh-ds-grading__grid {
		grid-template-columns: 1fr;
	}
	.zsmh-ds-downloads-bar__row {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* =====================================================================
   FAQ — Accordion (zdieľaný layout)
   ===================================================================== */
.zsmh-ds-faq {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.zsmh-ds-faq--narrow {
	max-width: 800px;
	margin: 0 auto;
}
.zsmh-ds-faq__item {
	background: #fff;
	border: 1px solid var(--gcid-border-color, #e8e8e8);
	border-radius: 16px;
	overflow: hidden;
	transition: box-shadow 200ms ease;
}
.zsmh-ds-faq__item[open] {
	box-shadow: 0 4px 12px rgba(26, 24, 20, 0.06);
}
.zsmh-ds-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 24px;
	cursor: pointer;
	font-weight: 600;
	font-size: 16px;
	list-style: none;
}
.zsmh-ds-faq__question::-webkit-details-marker { display: none; }
.zsmh-ds-faq__chevron {
	flex-shrink: 0;
	transition: transform 200ms ease;
	color: var(--gcid-muted-color, #6b6b6b);
}
.zsmh-ds-faq__item[open] .zsmh-ds-faq__chevron {
	transform: rotate(180deg);
}
.zsmh-ds-faq__answer {
	padding: 0 24px 24px;
	color: var(--gcid-body-color, #3a3a3a);
	line-height: 1.7;
	font-size: 15px;
}
.zsmh-ds-faq__answer p { margin: 0; }

/* ============================================================
 *  DOCUMENT CHAPTERS — Sidebar TOC + Scrollovacie kapitoly
 *  Stránka: Školský poriadok (page-skolsky-poriadok.php)
 * ============================================================ */

.zsmh-doc__layout {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 48px;
}

/* ── Sidebar TOC ── */
.zsmh-doc__toc {
	position: sticky;
	top: 24px;
	align-self: start;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	scrollbar-width: thin;
}
.zsmh-doc__toc-title {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--gcid-body-color, #999);
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--gcid-primary-color, #f19e00);
}
.zsmh-doc__toc-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.zsmh-doc__toc-item {
	margin-bottom: 2px;
}
.zsmh-doc__toc-link {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 7px 12px;
	border-radius: 8px;
	font-size: 13px;
	line-height: 1.4;
	color: #555;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}
.zsmh-doc__toc-link:hover {
	background: #fffbf5;
	color: #1a1a1a;
}
.zsmh-doc__toc-link.active {
	background: #fdf2e1;
	color: #d38900;
	font-weight: 600;
}
.zsmh-doc__toc-num {
	font-weight: 700;
	font-size: 11px;
	color: var(--gcid-primary-color, #f19e00);
	min-width: 24px;
	flex-shrink: 0;
}
.zsmh-doc__toc-divider {
	border: none;
	border-top: 1px solid #e8e8e8;
	margin: 12px 0;
	list-style: none;
}

/* ── Chapters ── */
.zsmh-doc__chapter {
	padding: 40px 0;
	border-bottom: 1px solid #e8e8e8;
	/* Scroll offset pod sticky header (~80px base / 56px shrink) + vôľa */
	scroll-margin-top: 100px;
}
.zsmh-doc__chapter:first-child {
	padding-top: 0;
}
.zsmh-doc__chapter:last-child {
	border-bottom: none;
}
.zsmh-doc__chapter--dodatok {
	border-top: 3px solid #4147a6;
	padding-top: 48px;
	margin-top: 8px;
}
.zsmh-doc__chapter-header {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 24px;
}
.zsmh-doc__chapter-num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: #fdf2e1;
	color: #d38900;
	font-weight: 700;
	font-size: 18px;
	font-family: var(--font-heading);
	flex-shrink: 0;
}
.zsmh-doc__chapter-num--dodatok {
	background: #eeedf5;
	color: #4147a6;
}
.zsmh-doc__chapter-title {
	font-family: var(--font-heading, 'Trebuchet MS', 'Lucida Grande', sans-serif);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	padding-top: 8px;
}
.zsmh-doc__chapter-body {
	font-size: 15px;
	line-height: 1.85;
	color: #555;
}
.zsmh-doc__chapter-body p {
	margin-bottom: 14px;
}
.zsmh-doc__chapter-body strong {
	color: #1a1a1a;
}
.zsmh-doc__chapter-body ul,
.zsmh-doc__chapter-body ol {
	margin: 8px 0 16px 20px;
}
.zsmh-doc__chapter-body li {
	margin-bottom: 6px;
}

/* ── CTA tlačidlo v kapitole ── */
.zsmh-doc__chapter-cta {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px dashed #e8e8e8;
}

/* ── Responsive ── */
@media (max-width: 900px) {
	.zsmh-doc__layout {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.zsmh-doc__toc {
		position: static;
		max-height: none;
		overflow-x: auto;
		padding-bottom: 24px;
		border-bottom: 1px solid #e8e8e8;
		margin-bottom: 24px;
	}
	.zsmh-doc__toc-title {
		display: none;
	}
	.zsmh-doc__toc-list {
		display: flex;
		gap: 4px;
		flex-wrap: nowrap;
	}
	.zsmh-doc__toc-item {
		white-space: nowrap;
	}
	.zsmh-doc__toc-link {
		padding: 6px 12px;
		font-size: 12px;
		background: #fffbf5;
		border-radius: 20px;
	}
	.zsmh-doc__toc-divider {
		display: none;
	}
	.zsmh-doc__chapter-title {
		font-size: 22px;
	}
}

/* ──────────────────────────────────────────────────────────────────
 *  Layout: Pravidlá Hero (cream, side-by-side s icon gridom)
 * ──────────────────────────────────────────────────────────────── */
.zsmh-pc-hero {
	background: linear-gradient(135deg, #fffbf5 0%, #fdf2e1 100%);
	border-bottom: 3px solid var(--gcid-primary-color);
	padding: var(--space-16) 0 var(--space-12);
	position: relative;
	overflow: hidden;
}
.zsmh-pc-hero::before {
	content: '';
	position: absolute;
	width: 600px; height: 600px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(241,158,0,.08), transparent 70%);
	right: -100px; top: -100px;
}
.zsmh-pc-hero::after {
	content: '';
	position: absolute;
	width: 400px; height: 400px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(209,137,0,.1), transparent 70%);
	left: -80px; bottom: -120px;
}
.zsmh-pc-hero .zsmh-ds-container { position: relative; z-index: 1; }

.zsmh-pc-hero__layout {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
}
.zsmh-pc-hero__text {
	flex: 1;
	max-width: 600px;
}
.zsmh-pc-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(1.4rem, 3vw, 1.8rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--gcid-heading-color);
	margin-bottom: 16px;
}
.zsmh-pc-hero__meta {
	display: flex;
	gap: 24px;
	font-size: 13px;
	color: var(--gcid-muted-color);
	border-top: 1px solid rgba(0,0,0,.08);
	padding-top: 20px;
	margin-top: 24px;
}
.zsmh-pc-hero__meta-item {
	display: flex;
	align-items: center;
	gap: 6px;
}

/* Icon grid 3×2 */
.zsmh-pc-hero__icons {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	flex-shrink: 0;
}
.zsmh-pc-hero__icon-cell {
	width: 90px;
	height: 90px;
	border-radius: 16px;
	background: var(--gcid-white);
	border: 1px solid var(--gcid-border-color);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	transition: all .3s;
}
.zsmh-pc-hero__icon-cell:hover {
	background: var(--gcid-primary-light);
	border-color: rgba(241,158,0,.3);
	transform: translateY(-2px);
}
.zsmh-pc-hero__icon-emoji { font-size: 26px; }
.zsmh-pc-hero__icon-label { font-size: 10px; color: var(--gcid-muted-color); }

@media (max-width: 768px) {
	.zsmh-pc-hero { padding: var(--space-10) 0 var(--space-8); }
	.zsmh-pc-hero__layout { flex-direction: column; gap: 32px; }
	.zsmh-pc-hero__icons { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.zsmh-pc-hero__icon-cell { width: 76px; height: 76px; border-radius: 12px; }
	.zsmh-pc-hero__meta { flex-direction: column; gap: 8px; }
}
@media (max-width: 480px) {
	.zsmh-pc-hero__icons { display: none; }
}

/* ──────────────────────────────────────────────────────────────────
 *  Layout: Pravidlá Desatoro (klikateľné karty s ikonami)
 * ──────────────────────────────────────────────────────────────── */
.zsmh-pc-desatoro {
	background: var(--gcid-white);
}
.zsmh-pc-desatoro .zsmh-ds-display {
	color: var(--gcid-heading-color);
}

.zsmh-pc-desatoro__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 820px;
	margin: 0 auto;
}

.zsmh-pc-desatoro__item {
	display: grid;
	grid-template-columns: 48px 44px 1fr 32px;
	grid-template-rows: auto auto;
	gap: 0 16px;
	align-items: center;
	background: var(--gcid-white);
	border: 1px solid var(--gcid-border-color);
	border-radius: 14px;
	padding: 20px 24px;
	cursor: pointer;
	transition: all .25s ease;
}
.zsmh-pc-desatoro__item:hover {
	border-color: var(--gcid-primary-color);
	box-shadow: 0 4px 24px rgba(241,158,0,.08);
}
.zsmh-pc-desatoro__item.is-active {
	border-color: var(--gcid-primary-color);
	box-shadow: 0 6px 28px rgba(241,158,0,.12);
}

/* Number badge */
.zsmh-pc-desatoro__number {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: var(--gcid-primary-light);
	color: var(--gcid-primary-dark);
	font-family: var(--font-heading);
	font-size: 22px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Emoji icon */
.zsmh-pc-desatoro__icon {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: var(--gcid-primary-light);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
}

/* Title */
.zsmh-pc-desatoro__title {
	font-family: var(--font-heading);
	font-size: 15px;
	font-weight: 700;
	color: var(--gcid-heading-color);
}

/* Toggle chevron */
.zsmh-pc-desatoro__toggle {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #f5f5f5;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	color: var(--gcid-light-color);
	transition: all .3s;
	grid-column: 4;
	grid-row: 1;
}
.zsmh-pc-desatoro__item.is-active .zsmh-pc-desatoro__toggle {
	background: var(--gcid-primary-color);
	color: var(--gcid-white);
	transform: rotate(180deg);
}

/* Expandable detail */
.zsmh-pc-desatoro__detail {
	grid-column: 2 / -1;
	grid-row: 2;
	max-height: 0;
	overflow: hidden;
	transition: max-height .4s ease, padding .3s ease;
	font-size: 14px;
	color: var(--gcid-muted-color);
	line-height: 1.7;
}
.zsmh-pc-desatoro__item.is-active .zsmh-pc-desatoro__detail {
	max-height: 400px;
	padding-top: 12px;
	padding-bottom: 4px;
}

@media (max-width: 768px) {
	.zsmh-pc-desatoro__item { padding: 16px; grid-template-columns: 40px 36px 1fr 28px; gap: 0 12px; }
	.zsmh-pc-desatoro__number { width: 40px; height: 40px; font-size: 18px; }
	.zsmh-pc-desatoro__icon { width: 36px; height: 36px; font-size: 18px; }
	.zsmh-pc-desatoro__toggle { width: 28px; height: 28px; }
}
@media (max-width: 480px) {
	.zsmh-pc-desatoro__icon { display: none; }
	.zsmh-pc-desatoro__item { grid-template-columns: 36px 1fr 28px; }
	.zsmh-pc-desatoro__detail { grid-column: 1 / -1; }
}


/* ========================================
   Školské psychologičky — Variant A štýl
   ======================================== */

/* ── Hero: používa compact-navy variant (nastavený cez ACF) ── */
/* Žiadne page-specific hero overrides — kat. D používa len globálne tokeny */

/* ── Profily tímu — karty s borderom (Variant A) ── */
.zsmh-psy-profiles__grid {
	display: grid;
	gap: 24px;
}

.zsmh-psy-profiles__grid--2 {
	grid-template-columns: 1fr 1fr;
}

.zsmh-psy-profiles__grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

.zsmh-psy-card {
	background: var(--gcid-white);
	border: 1px solid #e8e8e8;
	border-radius: 20px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	transition: box-shadow 0.2s;
}

.zsmh-psy-card:hover {
	box-shadow: 0 4px 20px rgba(0,0,0,.06);
}

.zsmh-psy-card__top {
	display: flex;
	align-items: center;
	gap: 16px;
}

.zsmh-psy-card__photo {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	object-position: center top;
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(65,71,166,.15);
}

.zsmh-psy-card__avatar {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: linear-gradient(135deg, #ece4f5, #d4c5e8);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.2rem;
	color: #4147a6;
	flex-shrink: 0;
}

.zsmh-psy-card__name {
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--gcid-heading-color);
	text-decoration: none;
}

a.zsmh-psy-card__name:hover {
	color: #4147a6;
}

.zsmh-psy-card__role {
	font-size: 0.85rem;
	color: #555;
	margin-top: 2px;
}

.zsmh-psy-card__info {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.zsmh-psy-card__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.9rem;
}

.zsmh-psy-card__icon {
	flex-shrink: 0;
	margin-top: 2px;
	font-size: 1rem;
}

.zsmh-psy-card__label {
	color: #999;
	font-size: 0.8rem;
}

.zsmh-psy-card__value {
	color: var(--gcid-body-color);
}

.zsmh-psy-card__link {
	color: #1e90ff;
	text-decoration: none;
}

.zsmh-psy-card__link:hover {
	text-decoration: underline;
}

/* ── Linky pomoci (Variant A: biele karty na krémovom) ── */
.zsmh-psy-helplines__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.zsmh-psy-hl-card {
	background: var(--gcid-white);
	border: 1px solid #e8e8e8;
	border-radius: 12px;
	padding: 20px;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.zsmh-psy-hl-card:hover {
	border-color: #e85151;
	box-shadow: 0 4px 16px rgba(232,81,81,.08);
}

.zsmh-psy-hl-card__icon {
	font-size: 1.6rem;
}

.zsmh-psy-hl-card__name {
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--gcid-heading-color);
}

.zsmh-psy-hl-card__desc {
	font-size: 0.85rem;
	color: #555;
	line-height: 1.45;
}

/* tmavé pozadie override */
.zsmh-ds-section--dark .zsmh-psy-hl-card {
	background: rgba(255,255,255,.06);
	border-color: rgba(255,255,255,.1);
	color: var(--gcid-white);
}

.zsmh-ds-section--dark .zsmh-psy-hl-card:hover {
	background: rgba(255,255,255,.1);
	border-color: rgba(255,255,255,.3);
	box-shadow: none;
}

.zsmh-ds-section--dark .zsmh-psy-hl-card__name {
	color: var(--gcid-white);
}

.zsmh-ds-section--dark .zsmh-psy-hl-card__desc {
	color: rgba(255,255,255,.5);
}

/* ── Mobile ── */
@media (max-width: 768px) {
	.zsmh-psy-profiles__grid--2,
	.zsmh-psy-profiles__grid--3 {
		grid-template-columns: 1fr;
	}

	.zsmh-psy-helplines__grid {
		grid-template-columns: 1fr;
	}

	/* psychologicky hero — compact-navy, žiadne špeciálne mobile overrides */
}

/* ============================================================
   UTILITY COMPONENTS — zdieľané medzi stránkami
   Info box, Members table, Board grid, Cross-link, FAQ link
   ============================================================ */

/* ---- Info box (IBAN, dôležité čísla) ---- */
.zsmh-ds-info-box {
	background: var(--gcid-primary-light, #fdf2e1);
	border-left: 4px solid var(--gcid-primary-color, #f19e00);
	border-radius: var(--radius-md, 12px);
	padding: 20px 24px;
	margin: 20px 0;
}
.zsmh-ds-info-box__cislo {
	font-family: 'SF Mono', 'Fira Code', 'Courier New', monospace;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--gcid-heading-color, #1a1a1a);
	letter-spacing: 0.04em;
}
.zsmh-ds-info-box__popis {
	margin-top: 6px;
	color: var(--gcid-muted-color, #6b6b6b);
	font-size: 13px;
}

/* ---- Members table (zástupcovia tried) ---- */
.zsmh-ds-members-table {
	width: 100%;
	border-collapse: collapse;
	background: var(--gcid-white, #fff);
	border-radius: var(--radius-md, 12px);
	overflow: hidden;
	border: 1px solid var(--gcid-border-color, #e8e8e8);
}
.zsmh-ds-members-table thead {
	background: var(--gcid-primary-light, #fdf2e1);
}
.zsmh-ds-members-table th {
	font-family: var(--font-heading);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--gcid-primary-dark, #d38900);
	padding: 12px 16px;
	text-align: left;
}
.zsmh-ds-members-table td {
	padding: 10px 16px;
	font-size: 14px;
	border-bottom: 1px solid #f3f3f3;
	vertical-align: middle;
}
.zsmh-ds-members-table tr:last-child td { border-bottom: none; }
.zsmh-ds-members-table tr:hover { background: var(--gcid-primary-cream, #fffbf5); }
.zsmh-ds-members-table__badge {
	display: inline-block;
	background: var(--gcid-primary-light, #fdf2e1);
	color: var(--gcid-primary-dark, #d38900);
	font-family: var(--font-heading);
	font-size: 10px;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: var(--radius-sm, 6px);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	min-width: 44px;
	text-align: center;
}
.zsmh-ds-members-table__badge--chair {
	background: var(--gcid-primary-color, #f19e00);
	color: #fff;
}
.zsmh-ds-members-table__name { font-weight: 700; color: var(--gcid-heading-color, #1a1a1a); }
.zsmh-ds-members-table__empty { color: var(--gcid-light-color, #999); font-style: italic; }

/* ---- Board grid (skupiny členov — Rada školy) ---- */
.zsmh-ds-board-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.zsmh-ds-board-group {
	background: var(--gcid-white, #fff);
	border-radius: var(--radius-md, 12px);
	padding: 20px;
	border: 1px solid var(--gcid-border-color, #e8e8e8);
}
.zsmh-ds-board-group h4 {
	font-family: var(--font-heading);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--gcid-primary-dark, #d38900);
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--gcid-primary-light, #fdf2e1);
}
.zsmh-ds-board-group ul { list-style: none; margin: 0; padding: 0; }
.zsmh-ds-board-group li {
	padding: 5px 0;
	font-size: 14px;
	color: var(--gcid-body-color, #3a3a3a);
	border-bottom: 1px solid #f5f5f5;
}
.zsmh-ds-board-group li:last-child { border-bottom: none; }
.zsmh-ds-board-group__chair { font-weight: 700; color: var(--gcid-heading-color, #1a1a1a); }
.zsmh-ds-board-group__tag {
	font-family: var(--font-heading);
	font-size: 9px;
	font-weight: 700;
	color: var(--gcid-primary-dark, #d38900);
	background: var(--gcid-primary-light, #fdf2e1);
	padding: 2px 8px;
	border-radius: var(--radius-sm, 6px);
	margin-left: 6px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* ---- Cross-link karta (odkaz medzi stránkami) ---- */
.zsmh-ds-crosslink {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--gcid-white, #fff);
	border: 1px solid var(--gcid-border-color, #e8e8e8);
	border-radius: var(--radius-md, 12px);
	padding: 20px 24px;
	margin-top: 32px;
	transition: border-color 0.2s, box-shadow 0.2s;
	text-decoration: none;
	color: inherit;
}
.zsmh-ds-crosslink:hover {
	border-color: var(--gcid-primary-color, #f19e00);
	box-shadow: 0 4px 20px rgba(241, 158, 0, 0.08);
	text-decoration: none;
}
.zsmh-ds-crosslink__icon {
	width: 44px; height: 44px;
	border-radius: var(--radius-md, 12px);
	background: var(--gcid-primary-light, #fdf2e1);
	display: flex; align-items: center; justify-content: center;
	font-size: 1.3rem;
	flex-shrink: 0;
}
.zsmh-ds-crosslink__text { flex: 1; }
.zsmh-ds-crosslink__title {
	display: block;
	font-weight: 700;
	font-size: 14px;
	color: var(--gcid-heading-color, #1a1a1a);
}
.zsmh-ds-crosslink__desc {
	display: block;
	font-size: 13px;
	color: var(--gcid-muted-color, #6b6b6b);
	margin-top: 2px;
}
.zsmh-ds-crosslink__arrow {
	color: var(--gcid-primary-dark, #d38900);
	font-size: 18px;
	font-weight: 700;
	margin-left: auto;
}
/* Cross-link na tmavom pozadí */
.zsmh-ds-section--dark .zsmh-ds-crosslink {
	background: rgba(255, 255, 255, 0.05);
	border-color: rgba(255, 255, 255, 0.12);
}
.zsmh-ds-section--dark .zsmh-ds-crosslink__icon {
	background: rgba(241, 158, 0, 0.15);
}
.zsmh-ds-section--dark .zsmh-ds-crosslink__title { color: #fff; }
.zsmh-ds-section--dark .zsmh-ds-crosslink__desc { color: rgba(255, 255, 255, 0.5); }
.zsmh-ds-section--dark .zsmh-ds-crosslink__arrow { color: var(--gcid-primary-color, #f19e00); }
.zsmh-ds-section--dark .zsmh-ds-crosslink:hover {
	border-color: rgba(241, 158, 0, 0.4);
	box-shadow: 0 4px 20px rgba(241, 158, 0, 0.1);
}

/* ---- FAQ CTA link (ACF link pole na FAQ položke) ---- */
.zsmh-ds-faq__cta-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 12px;
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--gcid-primary-dark, #d38900);
	text-decoration: none;
	padding: 6px 16px;
	border: 2px solid var(--gcid-primary-color, #f19e00);
	border-radius: 8px;
	transition: all 0.2s;
}
.zsmh-ds-faq__cta-link:hover {
	background: var(--gcid-primary-color, #f19e00);
	color: #fff;
	text-decoration: none;
}

/* ---- Responsive — utility components ---- */
@media (max-width: 768px) {
	.zsmh-ds-board-grid { grid-template-columns: 1fr; }
	.zsmh-ds-crosslink { flex-direction: column; text-align: center; }
	.zsmh-ds-crosslink__arrow { margin-left: 0; }
	.zsmh-ds-members-table th,
	.zsmh-ds-members-table td { padding: 8px 10px; font-size: 13px; }
}


/* ══════════════════════════════════════════════════════════════════
 *  Deadline Banner
 *  Časovo limitovaná výzva — oranžové pozadie, flex row
 * ═════════════════════════════════════════════════════════════════ */

.zsmh-ds-deadline-banner {
	background: var(--gcid-primary-light, #fdf2e1);
	padding: 20px 0;
	border-bottom: 2px solid var(--gcid-primary-color, #f19e00);
}

.zsmh-ds-deadline-banner__inner {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.zsmh-ds-deadline-banner__icon {
	width: 40px;
	height: 40px;
	background: var(--gcid-primary-color, #f19e00);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.zsmh-ds-deadline-banner__icon svg {
	width: 20px;
	height: 20px;
	color: #fff;
}

.zsmh-ds-deadline-banner__text {
	flex: 1;
	font-size: 14px;
	color: var(--gcid-body-color, #3a3a3a);
}

.zsmh-ds-deadline-banner__text strong {
	display: block;
	font-size: 15px;
	color: var(--gcid-heading-color, #1a1a1a);
	margin-bottom: 2px;
}

.zsmh-ds-deadline-banner__btn {
	margin-left: auto;
}

@media (max-width: 768px) {
	.zsmh-ds-deadline-banner__inner {
		flex-direction: column;
		text-align: center;
	}
	.zsmh-ds-deadline-banner__btn {
		margin-left: 0;
	}
}


/* ══════════════════════════════════════════════════════════════════
 *  Story Card
 *  Príbehová karta — foto vľavo, text + suma vpravo
 * ═════════════════════════════════════════════════════════════════ */

.zsmh-ds-story-card {
	display: grid;
	grid-template-columns: 220px 1fr;
	background: var(--gcid-white, #fff);
	border: 1px solid var(--gcid-border-color, #e8e8e8);
	border-radius: 20px;
	overflow: hidden;
	max-width: 720px;
	margin: 0 auto;
}

.zsmh-ds-story-card__image {
	overflow: hidden;
}

.zsmh-ds-story-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zsmh-ds-story-card__body {
	padding: 28px 32px;
}

.zsmh-ds-story-card__eyebrow {
	font-family: var(--font-heading, 'Trebuchet MS', sans-serif);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--gcid-primary-color, #f19e00);
	margin-bottom: 8px;
}

.zsmh-ds-story-card__heading {
	font-size: 18px;
	margin-bottom: 10px;
	color: var(--gcid-heading-color, #1a1a1a);
}

.zsmh-ds-story-card__text {
	font-size: 14px;
	color: var(--gcid-muted-color, #6b6b6b);
	line-height: 1.65;
	margin-bottom: 16px;
}

.zsmh-ds-story-card__text p:last-child {
	margin-bottom: 0;
}

.zsmh-ds-story-card__amount {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--gcid-primary-light, #fdf2e1);
	border-radius: 6px;
	padding: 8px 16px;
	font-size: 14px;
	color: var(--gcid-body-color, #3a3a3a);
}

.zsmh-ds-story-card__amount strong {
	font-size: 20px;
	color: var(--gcid-primary-dark, #d38900);
	white-space: nowrap;
}

/* Bez fotky — single column, centrovany obsah */
.zsmh-ds-story-card--no-image {
	grid-template-columns: 1fr;
	max-width: 600px;
	text-align: center;
}

.zsmh-ds-story-card--no-image .zsmh-ds-story-card__body {
	padding: 36px 40px;
}

.zsmh-ds-story-card--no-image .zsmh-ds-story-card__amount {
	justify-content: center;
}

@media (max-width: 768px) {
	.zsmh-ds-story-card {
		grid-template-columns: 1fr;
	}
	.zsmh-ds-story-card__image {
		height: 180px;
	}
	.zsmh-ds-story-card__body {
		padding: 24px 20px;
	}
}


/* ══════════════════════════════════════════════════════════════════
 *  Info Box — rozšírenie: QR kód + copy button
 *  Backward compatible — aktivuje sa len ak QR/copy je vyplnené
 * ═════════════════════════════════════════════════════════════════ */

.zsmh-ds-info-box--with-qr {
	display: flex;
	align-items: center;
	gap: 24px;
	justify-content: center;
}

.zsmh-ds-info-box__qr {
	flex-shrink: 0;
}

.zsmh-ds-info-box__qr img {
	width: 120px;
	height: 120px;
	border: 1px solid var(--gcid-border-color, #e8e8e8);
	border-radius: 6px;
	display: block;
}

.zsmh-ds-info-box__data {
	text-align: center;
}

.zsmh-ds-info-box__copy-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 12px;
	background: var(--gcid-primary-light, #fdf2e1);
	border: 1px solid var(--gcid-primary-color, #f19e00);
	border-radius: 6px;
	padding: 8px 16px;
	font-family: var(--font-heading, 'Trebuchet MS', sans-serif);
	font-size: 12px;
	font-weight: 700;
	color: var(--gcid-primary-dark, #d38900);
	cursor: pointer;
	transition: background .15s;
}

.zsmh-ds-info-box__copy-btn:hover {
	background: #fde8c0;
}

@media (max-width: 768px) {
	.zsmh-ds-info-box--with-qr {
		flex-direction: column;
	}
}

/* ═══════════════════════════════════════
   MŠ LAYOUTS — Materská škola špecifické layouty
   Presne podľa mockupu (mockup-materska-skola.html)
   CSS namespace: .zms-
   ═══════════════════════════════════════ */

:root {
    --ms-green: #27ae60;
    --ms-green-dark: #1e8449;
    --ms-green-light: #d4edda;
    --ms-green-bg: #edf7f0;
    --ms-green-pale: #f0faf3;
    --ms-text: #1a1a2e;
    --ms-text-muted: #6b7280;
    --ms-border: #e2e8f0;
}

/* ── Zdieľaný section header (centrovaný) ── */
.zms-section-header {
    text-align: center;
    margin-bottom: 36px;
}
.zms-section-header h2 {
    font-size: 1.4rem;
    color: var(--ms-text);
}
.zms-section-header p {
    color: var(--ms-text-muted);
    font-size: 14px;
    margin-top: 6px;
}

/* ── CTA link (zelený odkaz s podčiarknutím) ── */
.zms-cta-link {
    display: inline-block;
    color: var(--ms-green);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
}
.zms-cta-link:hover { text-decoration: underline; }

/* ── CTA buttons ── */
.zms-cta-buttons {
    display: flex;
    gap: 12px;
    margin-top: 24px;
    flex-wrap: wrap;
}
.zms-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: all .15s;
}
.zms-btn--primary {
    background: var(--ms-green);
    color: #fff;
}
.zms-btn--primary:hover { background: var(--ms-green-dark); }
.zms-btn--outline {
    background: transparent;
    color: var(--ms-green);
    border: 2px solid var(--ms-green);
}
.zms-btn--outline:hover { background: var(--ms-green-bg); }

/* ═══════════════════════════════════════
   B. MS ABOUT — O nás (text + foto + fakty)
   ═══════════════════════════════════════ */

.zms-about {
    padding: var(--space-16, 64px) 0;
    background: #fff;
}

.zms-about__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}

.zms-about__text h2 {
    font-size: 1.5rem;
    margin-bottom: 16px;
}
.zms-about__text .zsmh-ds-label {
    margin-bottom: 8px;
    display: block;
}
.zms-about__content p {
    margin-bottom: 14px;
    color: #444;
}
.zms-about__content strong {
    color: var(--ms-green-dark);
}

.zms-about__photo {
    width: 100%;
    border-radius: 16px;
    object-fit: cover;
    max-height: 340px;
}
.zms-about__placeholder {
    background: var(--ms-green-light);
    border-radius: 16px;
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ms-green);
    font-size: 14px;
    font-style: italic;
    border: 2px dashed var(--ms-green);
    text-align: center;
    line-height: 1.6;
}

.zms-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 32px;
}
.zms-fact {
    background: var(--ms-green-bg);
    border-radius: 12px;
    padding: 16px;
    text-align: center;
}
.zms-fact__icon { font-size: 24px; margin-bottom: 6px; }
.zms-fact__text { font-size: 13px; font-weight: 700; color: var(--ms-text); }
.zms-fact__sub { font-size: 11px; color: var(--ms-text-muted); margin-top: 2px; }

/* ═══════════════════════════════════════
   C. MS TRIEDY — Veľké karty s ikonami
   ═══════════════════════════════════════ */

.zms-triedy {
    padding: var(--space-16, 64px) 0;
    background: var(--ms-green-pale);
}
.zms-triedy__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.zms-trieda-card {
    background: #fff;
    border-radius: 16px;
    padding: 40px 32px;
    text-align: center;
    border: 2px solid var(--ms-border);
    transition: all .2s;
    text-decoration: none;
    color: inherit;
    display: block;
}
.zms-trieda-card:hover {
    border-color: var(--ms-green);
    box-shadow: 0 4px 20px rgba(39, 174, 96, .12);
    transform: translateY(-2px);
}
.zms-trieda-card__icon { font-size: 56px; margin-bottom: 12px; }
.zms-trieda-card__name { font-size: 1.3rem; font-weight: 700; margin-bottom: 6px; }
.zms-trieda-card__age { font-size: 14px; color: var(--ms-text-muted); margin-bottom: 12px; }
.zms-trieda-card__desc { font-size: 13px; color: #666; }
.zms-trieda-card__link {
    display: inline-block;
    margin-top: 16px;
    color: var(--ms-green);
    font-weight: 600;
    font-size: 13px;
}

/* ═══════════════════════════════════════
   D. DENNÝ PORIADOK TIMELINE
   ═══════════════════════════════════════ */

.zms-schedule {
    padding: var(--space-16, 64px) 0;
    background: #fff;
}
.zms-schedule__timeline {
    position: relative;
    max-width: 640px;
    margin: 0 auto;
    padding-left: 60px;
}
.zms-schedule__timeline::before {
    content: '';
    position: absolute;
    left: 24px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--ms-green-light);
}
.zms-schedule__item {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px;
    padding: 12px 0 12px 24px;
    align-items: start;
}
.zms-schedule__dot {
    position: absolute;
    left: -42px;
    top: 18px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--ms-green);
    border: 3px solid var(--ms-green-light);
    z-index: 1;
}
.zms-schedule__time {
    font-size: 13px;
    font-weight: 700;
    color: var(--ms-green-dark);
    min-width: 100px;
    white-space: nowrap;
}
.zms-schedule__content {
    font-size: 14px;
    color: var(--ms-text);
    display: flex;
    align-items: center;
    gap: 8px;
}
.zms-schedule__icon { font-size: 18px; flex-shrink: 0; }
.zms-schedule__name { line-height: 1.4; }
.zms-schedule__note {
    max-width: 640px;
    margin: 24px auto 0;
    padding: 16px 20px;
    background: var(--ms-green-bg);
    border-radius: 12px;
    font-size: 13px;
    color: var(--ms-text-muted);
    font-style: italic;
    text-align: center;
}

/* ═══════════════════════════════════════
   E. MS PROGRAM — Vzdelávací program + badges
   ═══════════════════════════════════════ */

.zms-program {
    padding: var(--space-16, 64px) 0;
    background: var(--ms-green-pale);
}
.zms-program__text {
    max-width: 700px;
    margin: 0 auto 32px;
    text-align: center;
    font-size: 15px;
    color: #444;
}
.zms-program__text strong { color: var(--ms-green-dark); }

.zms-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}
.zms-badge {
    background: #fff;
    border: 1px solid var(--ms-border);
    border-radius: 24px;
    padding: 8px 18px;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.zms-badge__icon { font-size: 16px; }

/* ═══════════════════════════════════════
   F. MS KRÚŽKY — 2-col zelené karty + projekty
   ═══════════════════════════════════════ */

.zms-kruzky {
    padding: var(--space-16, 64px) 0;
    background: #fff;
}
.zms-kruzky__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 36px;
}
.zms-kruzok-card {
    background: var(--ms-green-bg);
    border-radius: 16px;
    padding: 28px 24px;
    text-align: center;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
a.zms-kruzok-card,
a.zms-kruzok-card:hover,
a.zms-kruzok-card:focus { text-decoration: none; color: inherit; display: block; }
a.zms-kruzok-card--linked:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(52, 199, 89, 0.18);
    background: #eaf7ec;
}
.zms-kruzok-card__icon { font-size: 32px; margin-bottom: 10px; }
.zms-kruzok-card__name { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.zms-kruzok-card__freq { font-size: 12px; color: var(--ms-text-muted); }
.zms-kruzok-card__org { font-size: 11px; color: var(--ms-green); margin-top: 4px; }

.zms-projekty h3 {
    font-size: 1rem;
    margin-bottom: 12px;
    color: var(--ms-text);
}
.zms-projekty ul {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    padding: 0;
}
.zms-projekty li {
    background: var(--ms-green-pale);
    border-radius: 10px;
    padding: 14px 16px;
    font-size: 13px;
}
.zms-projekty li strong { display: block; margin-bottom: 2px; }

/* ═══════════════════════════════════════
   G. MS TEAM — 4-col kruhové fotky + bio
   ═══════════════════════════════════════ */

.zms-team {
    padding: var(--space-16, 64px) 0;
    background: var(--ms-green-pale);
}
.zms-team__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.zms-person {
    text-align: center;
}
.zms-person__photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--ms-green);
    margin: 0 auto 12px;
    display: block;
}
.zms-person__photo--placeholder {
    background: var(--ms-green-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: var(--ms-green);
    font-style: italic;
}
.zms-person__name {
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    color: var(--ms-text);
    display: block;
}
.zms-person__name:hover { color: var(--ms-green); }
.zms-person__role { font-size: 12px; color: var(--ms-text-muted); }
.zms-person__bio {
    font-size: 12px;
    color: #666;
    margin-top: 6px;
    font-style: italic;
}

/* ═══════════════════════════════════════
   H. MS ZÁPIS — Info karty + CTA
   ═══════════════════════════════════════ */

.zms-zapis {
    padding: var(--space-16, 64px) 0;
    background: #fff;
}
.zms-zapis__content {
    max-width: 700px;
    margin: 0 auto;
}
.zms-zapis__content h2 { font-size: 1.4rem; margin-bottom: 16px; }
.zms-zapis__text p { margin-bottom: 12px; color: #444; }

.zms-zapis__info {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 24px 0;
}
.zms-zapis__info-item {
    background: var(--ms-green-bg);
    border-radius: 12px;
    padding: 16px;
}
.zms-zapis__info-item strong {
    display: block;
    font-size: 13px;
    color: var(--ms-green-dark);
    margin-bottom: 4px;
}
.zms-zapis__info-item span { font-size: 14px; }

.zms-zapis__image img {
    width: 100%;
    border-radius: 16px;
    margin-top: 24px;
}

/* ═══════════════════════════════════════
   I. MS PRAKTICKÉ INFO — Horizontálne karty
   ═══════════════════════════════════════ */

.zms-prakticke {
    padding: var(--space-16, 64px) 0;
    background: var(--ms-green-pale);
}
.zms-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.zms-info-card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--ms-border);
    transition: all .15s;
    display: flex;
    align-items: center;
    gap: 14px;
}
.zms-info-card:hover {
    border-color: var(--ms-green);
    box-shadow: 0 2px 12px rgba(39, 174, 96, .1);
}
.zms-info-card__icon { font-size: 28px; flex-shrink: 0; }
.zms-info-card__name { font-size: 14px; font-weight: 600; }
.zms-info-card__desc { font-size: 12px; color: var(--ms-text-muted); }

/* ═══════════════════════════════════════
   J. MS MOST — Tmavý zelený feature grid
   ═══════════════════════════════════════ */

.zms-most {
    padding: var(--space-16, 64px) 0;
    background: linear-gradient(135deg, #1a3a2a 0%, #1e4d35 100%);
    color: #fff;
}
.zms-most h2 { font-size: 1.4rem; margin-bottom: 8px; color: #fff; }
.zms-most__tagline {
    font-size: 1.1rem;
    color: #a3d9b1;
    margin-bottom: 24px;
    font-style: italic;
}
.zms-most__desc {
    color: #cde8d5;
    margin-bottom: 16px;
    max-width: 700px;
}
.zms-most__features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 24px;
}
.zms-most__feature {
    background: rgba(255, 255, 255, .08);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    gap: 14px;
    align-items: start;
}
.zms-most__feature-icon { font-size: 24px; flex-shrink: 0; margin-top: 2px; }
.zms-most__feature-text h4 { font-size: 14px; font-weight: 600; margin-bottom: 4px; color: #fff; }
.zms-most__feature-text p { font-size: 13px; color: #a8d4b6; margin: 0; }

/* ═══════════════════════════════════════
   MS GALLERY — Mini galéria (manuálne fotky)
   ═══════════════════════════════════════ */

.zms-gallery {
    padding: var(--space-16, 64px) 0;
    background: var(--ms-green-pale, #f0faf3);
}

.zms-gallery__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.zms-gallery__item {
    border-radius: 10px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    display: block;
}

.zms-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.zms-gallery__item:hover img {
    transform: scale(1.05);
}

/* Prvé 2 fotky väčšie (2-col span) ak je 6+ fotiek */
.zms-gallery__grid:has(:nth-child(6)) .zms-gallery__item:nth-child(1),
.zms-gallery__grid:has(:nth-child(6)) .zms-gallery__item:nth-child(2) {
    grid-column: span 2;
    aspect-ratio: 16 / 9;
}

@media (max-width: 768px) {
    .zms-gallery__grid { grid-template-columns: repeat(2, 1fr); }
    .zms-gallery__grid .zms-gallery__item:nth-child(1),
    .zms-gallery__grid .zms-gallery__item:nth-child(2) { grid-column: span 1; }
}

/* ═══════════════════════════════════════
   MS MOSAIC — Hustá mozaika fotiek z udalostí
   ═══════════════════════════════════════ */

.zms-mosaic {
    padding: var(--space-12, 48px) 0;
    background: var(--ms-green-pale, #f0faf3);
}

.zms-mosaic__grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 3px;
}

.zms-mosaic__item {
    aspect-ratio: 1;
    overflow: hidden;
    position: relative;
    display: block;
    border-radius: 3px;
}

.zms-mosaic__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
    filter: saturate(.9);
}

.zms-mosaic__item:hover img {
    transform: scale(1.1);
    filter: saturate(1);
}

.zms-mosaic__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.5);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 6px;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.3;
    opacity: 0;
    transition: opacity .2s;
}

.zms-mosaic__item:hover .zms-mosaic__overlay {
    opacity: 1;
}

@media (max-width: 768px) {
    .zms-mosaic__grid { grid-template-columns: repeat(6, 1fr); }
}
@media (max-width: 480px) {
    .zms-mosaic__grid { grid-template-columns: repeat(4, 1fr); }
}

/* ═══════════════════════════════════════
   MS PRIESTORY — Galéria priestorov MŠ
   ═══════════════════════════════════════ */

.zms-priestory {
    padding: var(--space-16, 64px) 0;
    background: #fff;
}

.zms-priestory__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.zms-priestory__item {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    display: block;
}

.zms-priestory__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.zms-priestory__item:hover img {
    transform: scale(1.05);
}

.zms-priestory__label {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 8px 14px;
    background: linear-gradient(transparent, rgba(0,0,0,.6));
    color: #fff;
    font-size: 12px;
    font-weight: 600;
}

/* ═══════════════════════════════════════
   MS AKTUALITY — Posledné udalosti MŠ
   ═══════════════════════════════════════ */

.zms-aktuality {
    padding: var(--space-16, 64px) 0;
    background: var(--ms-green-pale, #f0faf3);
}

.zms-aktuality__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.zms-aktuality__card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--ms-border, #e2e8f0);
    transition: all .2s;
    display: flex;
    flex-direction: column;
}

.zms-aktuality__card:hover {
    border-color: var(--ms-green, #27ae60);
    box-shadow: 0 4px 20px rgba(39, 174, 96, .12);
    transform: translateY(-2px);
}

.zms-aktuality__card-image {
    height: 180px;
    overflow: hidden;
}

.zms-aktuality__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.zms-aktuality__card:hover .zms-aktuality__card-image img {
    transform: scale(1.05);
}

.zms-aktuality__card-body {
    padding: 20px;
    flex: 1;
}

.zms-aktuality__date {
    font-size: 11px;
    color: var(--ms-green-dark, #1e8449);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.zms-aktuality__title {
    font-size: 15px;
    font-weight: 700;
    margin: 6px 0 8px;
    line-height: 1.4;
}

.zms-aktuality__excerpt {
    font-size: 13px;
    color: #666;
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 768px) {
    .zms-photo-strip__item { flex: 0 0 220px; height: 160px; }
    .zms-priestory__grid { grid-template-columns: repeat(2, 1fr); }
    .zms-aktuality__grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════
   JJ. MS QUOTE — Citát rodiča
   ═══════════════════════════════════════ */

.zms-quote {
    padding: 48px 0;
    background: var(--ms-green-pale);
}
.zms-quote__inner {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}
.zms-quote__mark {
    font-size: 48px;
    color: var(--ms-green);
    margin-bottom: 16px;
    opacity: .3;
    line-height: 1;
}
.zms-quote__text {
    font-size: 17px;
    line-height: 1.8;
    color: var(--ms-text);
    font-style: italic;
    margin: 0 0 16px;
    border: none;
    padding: 0;
}
.zms-quote__author {
    font-size: 13px;
    color: var(--ms-text-muted);
    font-style: normal;
}

/* ═══════════════════════════════════════
   K. MS CONTACT BOX — Zelený kontaktný box
   ═══════════════════════════════════════ */

.zms-contact {
    padding: var(--space-16, 64px) 0;
    background: #fff;
}
.zms-contact__box {
    background: var(--ms-green-bg);
    border-radius: 20px;
    padding: 48px;
    text-align: center;
}
.zms-contact__box h2 { font-size: 1.4rem; margin-bottom: 8px; }
.zms-contact__desc { color: var(--ms-text-muted); margin-bottom: 24px; }
.zms-contact__details {
    display: flex;
    justify-content: center;
    gap: 36px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.zms-contact__detail {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
}
.zms-contact__detail-icon { font-size: 20px; }
.zms-contact__detail a {
    color: var(--ms-green-dark);
    text-decoration: none;
    font-weight: 600;
}
.zms-contact__detail a:hover { text-decoration: underline; }

/* ═══════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════ */

@media (max-width: 768px) {
    .zms-about__grid { grid-template-columns: 1fr; }
    .zms-facts { grid-template-columns: repeat(2, 1fr); }
    .zms-triedy__grid { grid-template-columns: 1fr; }
    .zms-kruzky__grid { grid-template-columns: 1fr; }
    .zms-projekty ul { grid-template-columns: 1fr; }
    .zms-team__grid { grid-template-columns: repeat(2, 1fr); }
    .zms-zapis__info { grid-template-columns: 1fr; }
    .zms-info-grid { grid-template-columns: 1fr; }
    .zms-most__features { grid-template-columns: 1fr; }
    .zms-contact__box { padding: 32px 20px; }
    .zms-contact__details { flex-direction: column; align-items: center; gap: 16px; }
    .zms-schedule__timeline { padding-left: 40px; }
    /* Dot center = line center (line left: 14, width: 2 → center 15px
       Item starts at timeline padding-left 40. Dot width 12, so dot.left = 15 - 40 - 6 = -31px) */
    .zms-schedule__dot { left: -31px; }
    .zms-schedule__timeline::before { left: 14px; }
}

@media (max-width: 480px) {
    .zms-facts { grid-template-columns: 1fr 1fr; }
    .zms-schedule__item { grid-template-columns: 1fr; gap: 2px; }
    .zms-schedule__time { font-size: 11px; }
}
