/* ============================================================================
 * SVC Zelená — design varianty E pro vzdelavaci.cz
 * Primární zelená #43a800, akcent zlatý #c8932c, dark green footer #1a3d00.
 * ========================================================================== */

:root {
	--svc-bg: #fafaf3;
	--svc-surface: #f1f5e4;
	--svc-surface-cool: #ebf6d8;
	--svc-card: #ffffff;
	--svc-ink: #131f08;
	--svc-ink-2: #2c3920;
	--svc-muted: #5e6b51;
	--svc-border: #e3e7d2;
	--svc-border-strong: #c8d0a8;
	--svc-primary: #43a800;
	--svc-primary-deep: #1a3d00;
	--svc-primary-mid: #357f00;
	--svc-primary-tint: #ebf6d8;
	--svc-accent: #c8932c;
	--svc-accent-deep: #a3741c;
	--svc-accent-tint: #f5ead0;
	--svc-warn: #a83b1c;
	--svc-on-dark: #fafaf3;
	--svc-on-dark-muted: #c8d6a0;
	--svc-on-dark-line: #2c5a14;

	--svc-shadow-sm: 0 1px 2px rgba(13, 23, 48, .06);
	--svc-shadow-md: 0 10px 30px -12px rgba(13, 23, 48, .2), 0 2px 6px rgba(13, 23, 48, .05);

	--svc-radius: 4px;
	--svc-font: 'Exo 2', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	/* Šířka obsahu. 1360 px, protože horní menu s uživatelským jménem
	   potřebuje 1248 px a na 1240 px se zalamovalo (hlášení 31. 8. 2026);
	   1400 px by na 1440px noteboocích nechalo okraj 13 px. */
	--svc-max-width: 1360px;
}

/* Reset / base ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
	font-family: var(--svc-font);
	background: var(--svc-bg);
	color: var(--svc-ink);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--svc-primary); text-decoration: none; }
a:hover { color: var(--svc-primary-mid); }
button { font-family: inherit; }

/* Container ============================================================== */
.svc-container {
	max-width: var(--svc-max-width);
	margin: 0 auto;
	padding: 0 56px;
}
@media (max-width: 768px) {
	.svc-container { padding: 0 20px; }
}

/* Header ================================================================= */
.svc-header {
	background: #fff;
	border-bottom: 1px solid var(--svc-border);
	position: relative;
	z-index: 5;
}
.svc-header-utility {
	background: var(--svc-primary-deep);
	color: #fff;
	font-size: 12px;
	padding: 8px 0;
	letter-spacing: 0.02em;
}
.svc-header-utility-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.svc-header-utility-left,
.svc-header-utility-right {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	align-items: center;
}
.svc-header-utility-right {
	color: var(--svc-on-dark-muted);
	gap: 18px;
}
.svc-header-utility a { color: inherit; }
.svc-header-utility i { vertical-align: -2px; margin-right: 4px; font-size: 13px; }

.svc-header-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 0;
	gap: 24px;
}
.svc-logo {
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--svc-ink);
	text-decoration: none;
}
.svc-logo-mark {
	width: 52px;
	height: 52px;
	border-radius: 4px;
	background: var(--svc-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 20px;
	letter-spacing: -0.02em;
	flex-shrink: 0;
}
.svc-logo-mark .svc-logo-accent { color: var(--svc-accent); }
.svc-logo-img {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: contain;
	flex-shrink: 0;
}
.svc-logo-text { line-height: 1.2; }
/* Názvy firem dle OR — žádný text-transform, velikost písmen nese samotný text */
.svc-logo-text-top {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.02em;
	color: var(--svc-ink);
}
.svc-logo-text-bottom {
	font-size: 12px;
	font-weight: 600;
	color: var(--svc-muted);
	margin-top: 3px;
}

.svc-nav {
	display: flex;
	gap: 2px;
	flex-wrap: wrap;
	align-items: center;
}
.svc-nav-link {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.25;
	text-align: center;
	padding: 8px 10px;
	color: var(--svc-ink-2);
	border-bottom: 2px solid transparent;
	cursor: pointer;
	transition: color .15s;
}
.svc-nav-link:hover { color: var(--svc-primary); }
.svc-nav-link.is-active {
	color: var(--svc-primary);
	border-bottom-color: var(--svc-accent);
}

@media (max-width: 900px) {
	.svc-header-main { flex-wrap: wrap; }
	.svc-nav { order: 3; width: 100%; padding-top: 8px; border-top: 1px solid var(--svc-border); justify-content: center; }
}

/* Buttons ================================================================ */
.svc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 22px;
	font-size: 14px;
	font-weight: 700;
	border-radius: var(--svc-radius);
	letter-spacing: 0.01em;
	text-transform: uppercase;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: opacity .15s, background .15s, color .15s, border-color .15s;
	line-height: 1;
}
.svc-btn:hover { opacity: .9; }
/* Zakázané tlačítko musí být poznat — bez tohohle vypadá `disabled` stejně
   jako aktivní (náhled dotazníku v administraci na to narazil jako první). */
.svc-btn:disabled,
.svc-btn[disabled] {
	opacity: .55;
	cursor: not-allowed;
}
.svc-btn-sm { padding: 9px 16px; font-size: 13px; }
.svc-btn-lg { padding: 16px 28px; font-size: 15px; }
.svc-btn-full { width: 100%; }
.svc-btn-primary {
	background: var(--svc-primary);
	color: #fff;
	border-color: var(--svc-primary);
}
.svc-btn-primary:hover { color: #fff; background: var(--svc-primary-mid); border-color: var(--svc-primary-mid); }
.svc-btn-accent {
	background: var(--svc-accent);
	color: #fff;
	border-color: var(--svc-accent);
}
.svc-btn-accent:hover { color: #fff; background: var(--svc-accent-deep); border-color: var(--svc-accent-deep); }
.svc-btn-ghost {
	background: transparent;
	color: var(--svc-ink);
	border: 1.5px solid var(--svc-border-strong);
}
.svc-btn-ghost:hover { color: var(--svc-ink); background: var(--svc-surface); }
.svc-btn-on-dark {
	background: rgba(255, 255, 255, .08);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .25);
}
.svc-btn-on-dark:hover { color: #fff; background: rgba(255, 255, 255, .15); }

/* Eyebrow / labels ======================================================= */
.svc-eyebrow {
	font-size: 12px;
	color: var(--svc-accent);
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.svc-eyebrow-muted {
	font-size: 12px;
	color: var(--svc-muted);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.svc-pill {
	display: inline-block;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 2px 7px;
	border-radius: 2px;
	background: var(--svc-primary);
	color: #fff;
}
.svc-pill-accent { background: var(--svc-accent); }
.svc-pill-soft {
	background: var(--svc-accent-tint);
	color: var(--svc-accent-deep);
}
.svc-pill-surface {
	background: var(--svc-surface);
	color: var(--svc-ink-2);
}

/* Tooltip vysvětlivka tagu (čisté CSS) ================================== */
.svc-pill[data-tip] { position: relative; cursor: help; }
.svc-pill[data-tip]::after {
	content: attr(data-tip);
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	width: max-content;
	max-width: 240px;
	white-space: normal;
	text-align: left;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 500;
	font-size: 11px;
	line-height: 1.4;
	padding: 7px 10px;
	border-radius: 6px;
	background: var(--svc-ink);
	color: #fff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.12s ease;
	z-index: 50;
	pointer-events: none;
}
.svc-pill[data-tip]::before {
	content: "";
	position: absolute;
	bottom: calc(100% + 3px);
	left: 50%;
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: var(--svc-ink);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.12s ease;
	z-index: 50;
	pointer-events: none;
}
.svc-pill[data-tip]:hover::after,
.svc-pill[data-tip]:hover::before {
	opacity: 1;
	visibility: visible;
}

/* Decorative accent bar (top of hero sections) =========================== */
.svc-accent-bar {
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--svc-primary) 0%, var(--svc-primary) 35%, var(--svc-accent) 35%, var(--svc-accent) 70%, var(--svc-primary) 70%);
}

/* Section / hero ========================================================= */
.svc-section { padding: 80px 0; }
.svc-section-sm { padding: 56px 0; }
.svc-section-card { background: var(--svc-card); border-top: 1px solid var(--svc-border); border-bottom: 1px solid var(--svc-border); }
.svc-section-bg { background: var(--svc-bg); }

.svc-page-hero {
	background: var(--svc-card);
	border-bottom: 1px solid var(--svc-border);
	position: relative;
}
.svc-page-hero-inner { padding: 56px 0; }
.svc-breadcrumb {
	font-size: 12px;
	color: var(--svc-muted);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 700;
	margin-bottom: 14px;
}
.svc-breadcrumb span { color: var(--svc-ink); }

.svc-h1 {
	font-size: 52px;
	font-weight: 800;
	letter-spacing: -0.03em;
	margin: 0 0 14px;
	color: var(--svc-ink);
	line-height: 1.05;
}
/* Nadpisy „rozkliknutých" stránek zeleně a velkými (požadavek klienta 07/2026) —
   homepage hero úmyslně nezasažen, nepoužívá .svc-page-hero */
.svc-page-hero .svc-h1 {
	color: var(--svc-primary);
	text-transform: uppercase;
	letter-spacing: -0.01em;
}
.svc-h1-xl { font-size: 62px; }
.svc-h2 {
	font-size: 38px;
	font-weight: 800;
	letter-spacing: -0.025em;
	margin: 12px 0 0;
	color: var(--svc-ink);
}
.svc-h3 {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 20px;
}
.svc-h3-section {
	border-bottom: 2px solid var(--svc-primary);
	padding-bottom: 10px;
}
.svc-lead {
	font-size: 18px;
	line-height: 1.65;
	color: var(--svc-ink-2);
	margin: 0 0 36px;
	max-width: 620px;
}
.svc-text-italic-accent {
	color: var(--svc-primary);
	font-style: italic;
	font-weight: 700;
}
.svc-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 32px;
	border-bottom: 2px solid var(--svc-primary);
	padding-bottom: 18px;
	flex-wrap: wrap;
	gap: 16px;
}
.svc-section-head-link {
	font-size: 13px;
	color: var(--svc-primary);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* Cards ================================================================== */
.svc-card {
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
}
.svc-card-accent-top { border-top: 3px solid var(--svc-primary); }
.svc-card-accent-top-gold { border-top: 3px solid var(--svc-accent); }
.svc-card-dark {
	background: var(--svc-primary-deep);
	color: #fff;
	border-radius: var(--svc-radius);
	position: relative;
	overflow: hidden;
}
.svc-card-dark a { color: #fff; }

/* Term / course row ====================================================== */
.svc-term-row {
	display: grid;
	grid-template-columns: 100px 130px 1fr 220px 160px;
	gap: 16px;
	padding: 18px 20px;
	align-items: center;
}
.svc-term-row + .svc-term-row { border-top: 1px solid var(--svc-border); }
.svc-term-row-featured { background: var(--svc-accent-tint); }
.svc-term-row-head {
	display: grid;
	grid-template-columns: 100px 130px 1fr 220px 160px;
	gap: 16px;
	padding: 14px 20px;
	background: var(--svc-surface);
	font-size: 11px;
	font-weight: 800;
	color: var(--svc-ink);
	text-transform: uppercase;
	letter-spacing: 0.1em;
}
.svc-term-date {
	font-size: 20px;
	font-weight: 800;
	color: var(--svc-primary);
	letter-spacing: -0.02em;
	line-height: 1;
}
.svc-term-day {
	font-size: 11px;
	color: var(--svc-muted);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-top: 3px;
}
.svc-term-time {
	font-size: 13px;
	font-weight: 700;
	color: var(--svc-ink);
	font-variant-numeric: tabular-nums;
}
.svc-term-form {
	font-size: 11px;
	color: var(--svc-muted);
	margin-top: 2px;
}
.svc-term-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--svc-ink);
	line-height: 1.35;
	letter-spacing: -0.005em;
}
.svc-term-lector {
	font-size: 13px;
	color: var(--svc-ink-2);
}
@media (max-width: 900px) {
	.svc-term-row, .svc-term-row-head {
		grid-template-columns: 80px 1fr;
		gap: 12px;
	}
	.svc-term-row > *:nth-child(2),
	.svc-term-row-head > *:nth-child(2) { grid-column: 2; }
	.svc-term-row > *:nth-child(n+3) { grid-column: 1 / -1; padding-left: 0; }
	.svc-term-row-head > *:nth-child(n+3) { display: none; }
}

/* Footer ================================================================= */
.svc-footer {
	background: var(--svc-primary-deep);
	color: var(--svc-on-dark-muted);
}
.svc-footer-inner { padding: 64px 0 32px; }
.svc-footer-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	gap: 48px;
	margin-bottom: 40px;
}
.svc-footer-logo-mark {
	background: rgba(255, 255, 255, .1);
	color: var(--svc-accent);
}
.svc-footer-logo-img {
	background: #fff;
	padding: 3px;
}
.svc-footer-logo .svc-logo-text-top { color: #fff; }
.svc-footer-logo .svc-logo-text-bottom { color: var(--svc-on-dark-muted); }
.svc-footer-desc {
	font-size: 14px;
	line-height: 1.65;
	margin-top: 18px;
	max-width: 300px;
}
.svc-footer-card {
	margin-top: 24px;
	padding: 14px 18px;
	background: #1a3d00;
	border: 1px solid var(--svc-on-dark-line);
	border-radius: var(--svc-radius);
	font-size: 12px;
	line-height: 1.6;
}
.svc-footer-card-title {
	color: var(--svc-accent);
	font-weight: 700;
	margin-bottom: 4px;
}
.svc-footer-col-title {
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin-bottom: 18px;
}
.svc-footer-links {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.svc-footer-links a {
	font-size: 13px;
	color: var(--svc-on-dark-muted);
}
.svc-footer-links a:hover { color: #fff; }

/* Kontakty v patičce: ikona a hodnota na jednom řádku, i u neodkazovaných hodin. */
.svc-footer-contacts span,
.svc-footer-contacts a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--svc-on-dark-muted);
}

/* Odkaz, který musí být <button> — bez JS by nikam nevedl. */
.svc-footer-linklike {
	align-self: flex-start;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 13px;
	color: var(--svc-on-dark-muted);
	cursor: pointer;
	text-align: left;
}
.svc-footer-linklike:hover { color: #fff; }

.svc-footer-social {
	display: flex;
	gap: 10px;
	margin-top: 18px;
}
.svc-footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: 18px;
}
.svc-footer-social a:hover { background: var(--svc-accent); }

/*
	Dvě okna pod sloupci — návrh tématu a odběr newsletteru. Ve vzoru od
	konkurence, který klientka poslala 26. 8. 2026, jsou to široké panely,
	proto stojí přes celou šířku patičky a ne v jednom sloupci.
*/
.svc-footer-boxes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-bottom: 40px;
}
.svc-footer-box {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px 24px;
	background: #1a3d00;
	border: 1px solid var(--svc-on-dark-line);
	border-radius: var(--svc-radius);
}
.svc-footer-box-head {
	display: flex;
	gap: 14px;
	margin-bottom: 10px;
}
.svc-footer-box-head i {
	color: var(--svc-accent);
	font-size: 26px;
	line-height: 1.2;
}
.svc-footer-box-head p {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.6;
}
.svc-footer-box-title {
	color: #fff;
	font-size: 17px;
	font-weight: 700;
}
.svc-footer-box label {
	font-size: 12px;
	font-weight: 600;
	color: var(--svc-accent);
	margin-top: 8px;
}
.svc-footer-box input,
.svc-footer-box textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--svc-on-dark-line);
	border-radius: var(--svc-radius);
	background: #fff;
	/* Proměnná --svc-text neexistuje; neplatná hodnota nechala text dědit
	   světlou barvu patičky, takže napsaný text byl na bílém poli nečitelný
	   (hlášení 31. 8. 2026). Bílé pole nad tmavou patičkou potřebuje tmavý inkoust. */
	color: var(--svc-ink);
	font: inherit;
	font-size: 14px;
}
.svc-footer-box textarea { resize: vertical; }
.svc-footer-box .svc-btn {
	align-self: flex-start;
	margin-top: 16px;
}
.svc-footer-contact {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--svc-on-dark-line);
	font-size: 13px;
	font-weight: 600;
}
.svc-footer-contact a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: inherit;
	text-decoration: none;
}
.svc-footer-contact a:hover { text-decoration: underline; }
.svc-footer-contact + .svc-footer-meta { border-top: 0; padding-top: 16px; }

.svc-footer-meta {
	border-top: 1px solid var(--svc-on-dark-line);
	padding-top: 24px;
	display: flex;
	justify-content: space-between;
	font-size: 11px;
	letter-spacing: 0.02em;
	flex-wrap: wrap;
	gap: 12px;
}
@media (max-width: 900px) {
	.svc-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
	.svc-footer-boxes { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.svc-footer-grid { grid-template-columns: 1fr; }
}

/* Flash messages ========================================================= */
.svc-flash {
	margin: 20px auto;
	max-width: var(--svc-max-width);
	padding: 14px 20px;
	border-radius: var(--svc-radius);
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-left: 56px;
	margin-right: 56px;
}
.svc-flash-success { background: var(--svc-primary-tint); border-left: 4px solid var(--svc-primary); color: var(--svc-ink); }
.svc-flash-error   { background: #ffe6df; border-left: 4px solid var(--svc-warn); color: var(--svc-ink); }
.svc-flash-info    { background: var(--svc-surface); border-left: 4px solid var(--svc-muted); color: var(--svc-ink); }

/* Forms / inputs ========================================================= */
.svc-input {
	width: 100%;
	padding: 14px 16px;
	font-size: 14px;
	border: 1px solid var(--svc-border-strong);
	border-radius: var(--svc-radius);
	font-family: inherit;
	outline: none;
	background: #fff;
}
.svc-input:focus { border-color: var(--svc-primary); }
.svc-label {
	display: block;
	font-size: 11px;
	font-weight: 800;
	color: var(--svc-ink);
	margin-bottom: 8px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* Stat boxes ============================================================= */
.svc-stat {
	padding: 18px 20px;
	background: var(--svc-bg);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
}
.svc-stat-value {
	font-size: 28px;
	font-weight: 800;
	color: var(--svc-primary);
	letter-spacing: -0.025em;
	font-variant-numeric: tabular-nums;
}
.svc-stat-label {
	font-size: 12px;
	color: var(--svc-muted);
	margin-top: 2px;
}

/* Generic grids ========================================================== */
.svc-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.svc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.svc-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 900px) {
	.svc-grid-3, .svc-grid-4 { grid-template-columns: 1fr 1fr; }
	.svc-grid-2 { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.svc-grid-3, .svc-grid-4 { grid-template-columns: 1fr; }
}

/* Utility ================================================================ */
.svc-mb-0 { margin-bottom: 0; }
.svc-mt-2 { margin-top: 8px; }
.svc-mt-3 { margin-top: 12px; }
.svc-mt-4 { margin-top: 16px; }
.svc-mt-5 { margin-top: 24px; }
.svc-mt-6 { margin-top: 32px; }
.svc-text-right { text-align: right; }
.svc-text-center { text-align: center; }
.svc-text-muted { color: var(--svc-muted); }
.svc-tabular { font-variant-numeric: tabular-nums; }
.svc-warn { color: var(--svc-warn); }
.svc-flex { display: flex; }
.svc-flex-col { display: flex; flex-direction: column; }
.svc-gap-2 { gap: 8px; }
.svc-gap-3 { gap: 12px; }
.svc-gap-4 { gap: 16px; }
.svc-justify-between { justify-content: space-between; }
.svc-items-center { align-items: center; }
.svc-flex-wrap { flex-wrap: wrap; }

/* Hero internals ========================================================= */
.svc-hero-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 64px;
	align-items: center;
}
@media (max-width: 1024px) {
	.svc-hero-grid { grid-template-columns: 1fr; gap: 40px; }
}
/* Bez fotky budovy (soubor ještě není nahraný) nemá pravý sloupec co zobrazit. */
.svc-hero-grid.is-single { grid-template-columns: 1fr; }

/* Accreditation badges (hero) ============================================ */
.svc-accred-badges {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}
.svc-accred-badge {
	flex: 1;
	min-width: 150px;
	padding: 14px 18px;
	background: var(--svc-bg);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
}
/* Statistiky pod dlaždicemi — čtyři v řadě, na mobilu dvě. */
.svc-hero-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	margin-top: 14px;
}
@media (max-width: 768px) {
	.svc-hero-stats { grid-template-columns: repeat(2, 1fr); }
}

/* Dlaždice jako proklik na kategorii kurzů — stejné chování jako u katalogových dlaždic. */
a.svc-accred-badge {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
a.svc-accred-badge:hover {
	transform: translateY(-2px);
	box-shadow: var(--svc-shadow-md);
	border-color: var(--svc-primary);
	color: inherit;
}
.svc-accred-badge-eyebrow {
	font-size: 10px;
	color: var(--svc-muted);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 700;
	margin-bottom: 4px;
}
.svc-accred-badge-title {
	font-size: 15px;
	font-weight: 800;
	color: var(--svc-primary);
	letter-spacing: -0.01em;
}
.svc-accred-badge-desc {
	font-size: 11px;
	color: var(--svc-muted);
	margin-top: 2px;
}

/* Sidebar filter ========================================================= */
.svc-sidebar {
	padding: 24px 22px;
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	position: sticky;
	top: 24px;
}
.svc-sidebar-title {
	font-size: 11px;
	font-weight: 800;
	color: var(--svc-ink);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	padding-bottom: 14px;
	margin-bottom: 14px;
	border-bottom: 2px solid var(--svc-primary);
}
.svc-sidebar-group {
	padding-bottom: 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--svc-border);
}
.svc-sidebar-group-title {
	font-size: 11px;
	font-weight: 800;
	color: var(--svc-ink);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 12px;
}
.svc-sidebar-select {
	width: 100%;
	padding: 10px 12px;
	font-size: 13px;
	border: 1px solid var(--svc-border-strong);
	border-radius: var(--svc-radius);
	background: #fff;
	font-family: inherit;
	color: var(--svc-ink);
}

/* Checkboxy ve filtru ---------------------------------------------------- */
.svc-check {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 5px 0;
	cursor: pointer;
	font-size: 14px;
	color: var(--svc-ink-2);
	user-select: none;
}
.svc-check + .svc-check { margin-top: 2px; }
.svc-check-input {
	width: 16px;
	height: 16px;
	accent-color: var(--svc-primary);
	cursor: pointer;
	flex-shrink: 0;
	margin: 0;
}

/* Podkategorie — rozbalí se pod zvolenou nadkategorií (filtr Kategorie) */
.svc-subcategories {
	margin: 2px 0 8px 22px;
	padding-left: 10px;
	border-left: 2px solid var(--svc-line, #e4e7e2);
}
.svc-subcategories[hidden] { display: none; }
.svc-check-sub {
	font-size: 13px;
	padding: 3px 0;
}

/* Autocomplete naseptávač ------------------------------------------------- */
.svc-autocomplete { position: relative; }
.svc-autocomplete-clear {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: var(--svc-muted);
	cursor: pointer;
	font-size: 18px;
	padding: 0;
	line-height: 1;
}
.svc-autocomplete-clear:hover { color: var(--svc-ink); }
.svc-autocomplete-list {
	display: none;
	position: absolute;
	top: calc(100% + 2px);
	left: 0;
	right: 0;
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	max-height: 200px;
	overflow-y: auto;
	z-index: 20;
	list-style: none;
	margin: 0;
	padding: 4px 0;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.svc-autocomplete-list.is-open { display: block; }
.svc-autocomplete-list li {
	padding: 8px 12px;
	cursor: pointer;
	font-size: 13px;
	color: var(--svc-ink-2);
}
.svc-autocomplete-list li:hover { background: var(--svc-primary-tint); color: var(--svc-primary); }

/* Month group ============================================================ */
.svc-month-head {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 20px;
	background: var(--svc-primary-deep);
	color: #fff;
	border-radius: 4px 4px 0 0;
}
.svc-month-head-title {
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}
.svc-month-head-count {
	margin-left: auto;
	font-size: 12px;
	color: var(--svc-on-dark-muted);
}
.svc-month-body {
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-top: none;
	border-radius: 0 0 4px 4px;
	/* overflow ponecháno viditelné, aby tooltip prvního řádku nebyl oříznut/překryt
	   měsíčním záhlavím; řádky nemají vlastní pozadí, takže rohy zůstávají v pořádku */
}

/* Přehled vzdělávacích programů ========================================== */
.svc-program-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
@media (max-width: 860px) {
	.svc-program-grid { grid-template-columns: 1fr; }
}
.svc-program-card {
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-top: 3px solid var(--svc-primary);
	border-radius: var(--svc-radius);
	padding: 24px 26px;
}
.svc-program-card-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	text-decoration: none;
	color: var(--svc-ink);
}
.svc-program-card-head:hover .svc-program-card-title { color: var(--svc-primary); }
.svc-program-card-title {
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	transition: color 0.15s ease;
}
.svc-program-card-count {
	flex: none;
	font-size: 12px;
	font-weight: 700;
	color: var(--svc-ink-2);
	background: var(--svc-surface-cool);
	border-radius: 999px;
	padding: 2px 10px;
}
.svc-program-subtitle {
	margin: 18px 0 6px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--svc-muted);
}
.svc-program-courses {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	border-top: 1px solid var(--svc-border);
}
.svc-program-courses a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	border-bottom: 1px solid var(--svc-border);
	font-size: 14px;
	color: var(--svc-ink-2);
	text-decoration: none;
	transition: color 0.15s ease;
}
.svc-program-courses li:last-child a { border-bottom: 0; }
.svc-program-courses a:hover { color: var(--svc-primary); }
.svc-program-ondemand {
	flex: none;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--svc-accent-deep);
	background: var(--svc-accent-tint);
	border-radius: 2px;
	padding: 2px 6px;
}

.svc-program-subs {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	border-top: 1px solid var(--svc-border);
}
.svc-program-subs a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	border-bottom: 1px solid var(--svc-border);
	font-size: 14px;
	color: var(--svc-ink-2);
	text-decoration: none;
	transition: color 0.15s ease;
}
.svc-program-subs li:last-child a { border-bottom: 0; }
.svc-program-subs a:hover { color: var(--svc-primary); }
.svc-program-sub-count {
	flex: none;
	font-size: 12px;
	color: var(--svc-muted);
	font-variant-numeric: tabular-nums;
}
.svc-program-card-empty {
	margin: 14px 0 0;
	font-size: 13px;
	color: var(--svc-muted);
}

/* Tabulka storno podmínek (přihláška) ==================================== */
.svc-storno-table {
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	overflow: hidden;
	font-size: 13px;
}
.svc-storno-row {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1.4fr;
	gap: 12px;
	padding: 12px 16px;
	border-top: 1px solid var(--svc-border);
}
.svc-storno-row:first-child { border-top: 0; }
.svc-storno-head {
	background: var(--svc-surface-cool);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 11px;
	color: var(--svc-ink-2);
}
@media (max-width: 700px) {
	.svc-storno-row { grid-template-columns: 1fr; gap: 4px; }
	.svc-storno-head { display: none; }
	.svc-storno-row div + div { color: var(--svc-ink-2); }
}

/* Galerie fotek z akce (detail aktuality) ================================ */
.svc-news-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}
@media (max-width: 600px) {
	.svc-news-gallery { grid-template-columns: repeat(2, 1fr); }
}
.svc-news-gallery-item {
	display: block;
	border-radius: var(--svc-radius);
	overflow: hidden;
	border: 1px solid var(--svc-border);
	background: var(--svc-card);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.svc-news-gallery-item:hover {
	transform: translateY(-2px);
	box-shadow: var(--svc-shadow-md);
}
.svc-news-gallery-item img {
	display: block;
	width: 100%;
	height: 160px;
	object-fit: cover;
}

/* Videa z akce pod fotogalerií. */
.svc-news-videos {
	display: grid;
	/* auto-fit, ne auto-fill: prázdné sloupce se sbalí, takže jediné video
	   zabere celou šířku místo poloviny (majitel projektu 24. 8. 2026). */
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
}

.svc-news-video {
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: var(--svc-radius);
	border: 1px solid var(--svc-border);
	display: block;
}

/* News card ============================================================== */
.svc-news-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 20px;
}
@media (max-width: 1024px) {
	.svc-news-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.svc-news-grid { grid-template-columns: 1fr; }
}
.svc-news-card {
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.svc-news-card-cover {
	height: 240px;
	background: linear-gradient(135deg, var(--svc-primary) 0%, var(--svc-primary-deep) 100%);
	position: relative;
	overflow: hidden;
	color: #fff;
	padding: 30px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.svc-news-card-cover-eyebrow {
	font-size: 11px;
	color: var(--svc-accent);
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.svc-news-card-body { padding: 24px 26px 28px; }
.svc-news-card-meta {
	display: flex;
	gap: 12px;
	align-items: center;
	font-size: 11px;
	margin-bottom: 12px;
	color: var(--svc-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 700;
}
.svc-news-card-meta-tag { color: var(--svc-accent); }
.svc-news-card-title {
	font-size: 17px;
	font-weight: 700;
	color: var(--svc-ink);
	letter-spacing: -0.015em;
	line-height: 1.3;
	margin: 0 0 10px;
}
.svc-news-card-title-big { font-size: 22px; }
.svc-news-card-desc {
	font-size: 14px;
	line-height: 1.6;
	color: var(--svc-muted);
	margin-bottom: 16px;
}
.svc-news-card-link {
	font-size: 12px;
	color: var(--svc-primary);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: auto;
}

/* Lector card ============================================================ */
.svc-lector-card {
	padding: 24px;
	background: var(--svc-bg);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	border-top: 3px solid var(--svc-accent);
	display: flex;
	flex-direction: column;
	height: 100%;
}
.svc-lector-avatar {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--svc-primary);
	color: var(--svc-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 16px;
	margin-bottom: 14px;
}
.svc-lector-avatar-lg {
	width: 96px;
	height: 96px;
	font-size: 28px;
}
.svc-lector-name {
	font-size: 15px;
	font-weight: 700;
	color: var(--svc-ink);
	letter-spacing: -0.01em;
	line-height: 1.3;
}
.svc-lector-title {
	font-size: 12px;
	color: var(--svc-muted);
	margin-top: 4px;
	line-height: 1.5;
}

/* Catalog tile =========================================================== */
.svc-catalog-tile {
	background: var(--svc-card);
	padding: 28px;
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	display: flex;
	gap: 18px;
	align-items: flex-start;
	border-top: 3px solid var(--svc-primary);
	text-decoration: none;
	color: var(--svc-ink);
	transition: transform .15s, box-shadow .15s;
}
.svc-catalog-tile:hover { transform: translateY(-2px); box-shadow: var(--svc-shadow-md); color: var(--svc-ink); }
.svc-catalog-tile-icon {
	width: 48px;
	height: 48px;
	border-radius: 4px;
	background: var(--svc-surface);
	color: var(--svc-accent-deep);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: 22px;
}
.svc-catalog-tile-body { flex: 1; }
.svc-catalog-tile-title {
	font-size: 17px;
	font-weight: 700;
	color: var(--svc-ink);
	letter-spacing: -0.01em;
	line-height: 1.3;
	margin: 6px 0;
}
.svc-catalog-tile-desc {
	font-size: 13px;
	color: var(--svc-muted);
	line-height: 1.5;
}

/* How-it-works steps ===================================================== */
.svc-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
}
.svc-step { padding: 40px 36px; position: relative; }
.svc-step + .svc-step { border-left: 1px solid var(--svc-border); }
.svc-step-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 18px;
}
.svc-step-num {
	width: 52px;
	height: 52px;
	border-radius: 4px;
	background: var(--svc-primary);
	color: var(--svc-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	flex-shrink: 0;
}
.svc-step-rule { height: 1px; flex: 1; background: var(--svc-accent); }
.svc-step-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--svc-ink);
	letter-spacing: -0.02em;
	margin-bottom: 10px;
}
.svc-step-desc {
	font-size: 14px;
	line-height: 1.65;
	color: var(--svc-muted);
}
@media (max-width: 900px) {
	.svc-steps { grid-template-columns: 1fr; }
	.svc-step + .svc-step { border-left: none; border-top: 1px solid var(--svc-border); }
}

/* Promo blocks =========================================================== */
.svc-promo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 900px) { .svc-promo-grid { grid-template-columns: 1fr; } }
.svc-promo {
	padding: 48px 44px;
	border-radius: var(--svc-radius);
	position: relative;
	overflow: hidden;
}
.svc-promo-dark {
	background: var(--svc-primary-deep);
	color: #fff;
}
.svc-promo-light {
	background: var(--svc-surface);
	color: var(--svc-ink);
	border: 1px solid var(--svc-border);
}
.svc-promo-stripe {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: 6px;
}
.svc-promo-eyebrow {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin-bottom: 14px;
}
.svc-promo-title {
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.025em;
	margin: 0 0 14px;
	line-height: 1.15;
}
.svc-promo-desc {
	font-size: 15px;
	line-height: 1.65;
	margin: 0 0 24px;
	max-width: 440px;
}

/* Course detail next-term sticky card ==================================== */
.svc-detail-card {
	background: var(--svc-primary-deep);
	color: #fff;
	border-radius: var(--svc-radius);
	overflow: hidden;
	box-shadow: var(--svc-shadow-md);
	position: sticky;
	top: 24px;
}
.svc-detail-card-head {
	padding: 26px 28px;
	border-bottom: 1px solid var(--svc-on-dark-line);
}
.svc-detail-card-eyebrow {
	font-size: 11px;
	color: var(--svc-accent);
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin-bottom: 10px;
}
.svc-detail-card-price {
	font-size: 42px;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1;
}
.svc-detail-card-price-unit {
	font-size: 18px;
	color: var(--svc-on-dark-muted);
	font-weight: 600;
}
.svc-detail-card-note {
	font-size: 12px;
	color: var(--svc-on-dark-muted);
	margin-top: 8px;
}
.svc-detail-card-body {
	padding: 24px 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.svc-detail-card-meta {
	background: #1a3d00;
	padding: 20px 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 13px;
}
.svc-detail-card-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}
.svc-detail-card-row-label { color: var(--svc-on-dark-muted); }
.svc-detail-card-row-value { color: #fff; font-weight: 700; text-align: right; }

/* Key info bar (course detail) =========================================== */
.svc-key-info-bar {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	background: var(--svc-card);
}
.svc-key-info-cell { padding: 18px 20px; }
.svc-key-info-cell + .svc-key-info-cell { border-left: 1px solid var(--svc-border); }
.svc-key-info-label {
	font-size: 11px;
	color: var(--svc-muted);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 6px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.svc-key-info-label i { color: var(--svc-accent); }
.svc-key-info-value {
	font-size: 14px;
	font-weight: 700;
	color: var(--svc-ink);
	letter-spacing: -0.005em;
}
@media (max-width: 768px) {
	.svc-key-info-bar { grid-template-columns: 1fr 1fr; }
	.svc-key-info-cell:nth-child(3) { border-top: 1px solid var(--svc-border); border-left: none; }
	.svc-key-info-cell:nth-child(4) { border-top: 1px solid var(--svc-border); }
}

/* FAQ =================================================================== */
.svc-faq-grid {
	display: grid;
	grid-template-columns: 0.7fr 1.3fr;
	gap: 64px;
}
@media (max-width: 900px) { .svc-faq-grid { grid-template-columns: 1fr; gap: 32px; } }
.svc-faq-list { border-top: 2px solid var(--svc-primary); }
.svc-faq-item { border-bottom: 1px solid var(--svc-border); padding: 24px 0; }
.svc-faq-q {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	cursor: pointer;
	align-items: flex-start;
}
.svc-faq-q-text { display: flex; gap: 18px; flex: 1; }
.svc-faq-q-num {
	font-size: 13px;
	color: var(--svc-accent);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	min-width: 24px;
}
.svc-faq-q-label {
	font-size: 17px;
	font-weight: 700;
	color: var(--svc-ink);
	letter-spacing: -0.01em;
	line-height: 1.4;
}
.svc-faq-toggle {
	width: 28px;
	height: 28px;
	border-radius: 4px;
	border: 1px solid var(--svc-border);
	color: var(--svc-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	background: transparent;
}
.svc-faq-item[open] .svc-faq-toggle {
	background: var(--svc-primary);
	color: #fff;
	border-color: var(--svc-primary);
}
.svc-faq-a {
	font-size: 14px;
	line-height: 1.7;
	color: var(--svc-ink-2);
	margin-top: 16px;
	padding-left: 42px;
	max-width: 680px;
}

/* Login screen =========================================================== */
.svc-login-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 660px;
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-top: 4px solid var(--svc-accent);
	border-radius: var(--svc-radius);
	overflow: hidden;
}
@media (max-width: 900px) { .svc-login-grid { grid-template-columns: 1fr; min-height: auto; } }
.svc-login-form-pane { padding: 56px 64px; display: flex; flex-direction: column; justify-content: center; }
.svc-login-info-pane {
	background: var(--svc-primary-deep);
	color: #fff;
	padding: 56px 56px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	overflow: hidden;
	gap: 32px;
}
@media (max-width: 600px) { .svc-login-form-pane { padding: 36px 28px; } .svc-login-info-pane { padding: 36px 28px; } }

/* Misc small ============================================================= */
hr.svc-rule { border: none; border-top: 1px solid var(--svc-border); margin: 32px 0; }
.svc-icon-circle {
	width: 36px; height: 36px;
	border-radius: 4px;
	background: #1a3d00;
	color: var(--svc-accent);
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}

/* Newsletter ============================================================= */
.svc-newsletter {
	background: var(--svc-surface);
	padding: 48px 56px;
	border-radius: var(--svc-radius);
	border: 1px solid var(--svc-border);
	border-left: 6px solid var(--svc-accent);
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 48px;
	align-items: center;
}
@media (max-width: 900px) { .svc-newsletter { grid-template-columns: 1fr; padding: 32px 28px; } }
.svc-newsletter-form { display: flex; gap: 8px; }
.svc-newsletter-form input { flex: 1; }

/* Form card (registration / profile etc.) =============================== */
.svc-form-card {
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	padding: 32px 36px;
	margin-bottom: 18px;
}
.svc-form-card-title {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.015em;
	margin: 0 0 6px;
	color: var(--svc-ink);
	display: flex;
	align-items: center;
	gap: 14px;
}
.svc-form-card-step {
	width: 36px; height: 36px;
	border-radius: 50%;
	background: var(--svc-primary);
	color: var(--svc-accent);
	display: inline-flex;
	align-items: center; justify-content: center;
	font-size: 14px; font-weight: 800;
	flex-shrink: 0;
}
.svc-form-card-desc {
	font-size: 13px;
	color: var(--svc-muted);
	margin: 0 0 18px;
	padding-left: 50px;
}
.svc-form-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 16px;
}
.svc-col-12 { grid-column: span 12; }
.svc-col-6 { grid-column: span 6; }
.svc-col-4 { grid-column: span 4; }
.svc-col-3 { grid-column: span 3; }
.svc-col-2 { grid-column: span 2; }
@media (max-width: 768px) {
	.svc-col-6, .svc-col-4, .svc-col-3, .svc-col-2 { grid-column: span 12; }
}
.svc-field-label {
	display: block;
	font-size: 11px;
	font-weight: 800;
	color: var(--svc-ink);
	margin-bottom: 6px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.svc-field-label.is-required::after {
	content: ' *';
	color: var(--svc-warn);
}
.svc-field-hint {
	font-size: 12px;
	color: var(--svc-muted);
	margin-top: 6px;
}
.svc-select {
	width: 100%;
	padding: 13px 16px;
	font-size: 14px;
	border: 1px solid var(--svc-border-strong);
	border-radius: var(--svc-radius);
	font-family: inherit;
	background: #fff;
	color: var(--svc-ink);
	outline: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235e6b51' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
}
.svc-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 13px;
	color: var(--svc-ink-2);
	cursor: pointer;
	line-height: 1.55;
}
.svc-checkbox input[type=checkbox] {
	width: 18px; height: 18px;
	margin-top: 2px;
	accent-color: var(--svc-primary);
	flex-shrink: 0;
}

/* Evaluační dotazník — škála 1–5 ========================================= */
.svc-scale {
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	overflow: hidden;
}
.svc-scale-head,
.svc-scale-row {
	display: grid;
	grid-template-columns: 1fr repeat(5, 52px);
	align-items: center;
	gap: 0;
}
.svc-scale-head {
	padding: 8px 14px;
	background: var(--svc-surface);
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--svc-muted);
}
.svc-scale-head > span { text-align: center; }
.svc-scale-row {
	padding: 4px 14px;
	border-top: 1px solid var(--svc-border);
}
.svc-scale-label {
	font-size: 14px;
	color: var(--svc-ink-2);
	padding: 10px 12px 10px 0;
	line-height: 1.5;
}
.svc-scale-cell { text-align: center; }
/* Klikatelná je celá buňka — klientčin dotazník říká „odpověď vyberte kliknutím". */
.svc-scale-pick {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px 0;
	cursor: pointer;
	border-radius: var(--svc-radius);
}
.svc-scale-pick:hover { background: var(--svc-primary-tint); }
.svc-scale-input {
	width: 18px;
	height: 18px;
	accent-color: var(--svc-primary);
	margin: 0;
	cursor: pointer;
}
/* Číslo se ukazuje jen na mobilu, kde chybí hlavička sloupců. */
.svc-scale-num { display: none; }

@media (max-width: 640px) {
	.svc-scale-head { display: none; }
	/* Flex, ne grid ani inline-block: otázka zabere celý řádek a pětice voleb
	   si rovnoměrně rozdělí zbytek. `inline-block` s procentní šířkou tu měl
	   pátou volbu na 360 px pod sebou — mezery mezi inline prvky se počítají
	   do řádku, flex je ignoruje. */
	.svc-scale-row {
		display: flex;
		flex-wrap: wrap;
		padding: 12px 14px;
	}
	.svc-scale-label { flex: 0 0 100%; padding: 0 0 8px; font-weight: 600; }
	/* Basis musí být nenulový: s `flex-basis: 0` se pětice vejde na řádek
	   k otázce (nulová hypotetická šířka), nezalomí se a nezbude jim
	   volné místo, do kterého by mohly vyrůst — zůstaly by 0 px široké. */
	.svc-scale-cell { flex: 1 1 18%; min-width: 0; }
	.svc-scale-pick { flex-direction: column; gap: 4px; }
	.svc-scale-num {
		display: block;
		font-size: 12px;
		color: var(--svc-muted);
	}
}

/* Chyba u jednotlivého pole (front doposud uměl jen souhrn nahoře). */
.svc-field-error {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--svc-warn);
	margin-top: 6px;
}
/* Uvnitř mřížky visí hláška pod řádkem — musí držet stejné odsazení jako řádek. */
.svc-scale > .svc-field-error {
	margin-top: 0;
	padding: 0 14px 10px;
}

/* Participant slot (registration) ======================================== */
.svc-participant-slot {
	background: var(--svc-surface);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	padding: 20px 22px;
	margin-bottom: 12px;
	position: relative;
}
.svc-participant-slot-num {
	position: absolute;
	top: -10px; left: 16px;
	background: var(--svc-primary);
	color: #fff;
	padding: 2px 10px;
	border-radius: 2px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.svc-participant-slot-remove {
	position: absolute;
	top: 12px; right: 12px;
	width: 28px; height: 28px;
	border-radius: 4px;
	background: transparent;
	color: var(--svc-warn);
	border: 1px solid var(--svc-border);
	display: inline-flex;
	align-items: center; justify-content: center;
	cursor: pointer;
}
.svc-participant-slot-remove:hover { background: var(--svc-warn); color: #fff; border-color: var(--svc-warn); }

/* Account sidebar ======================================================== */
.svc-account-layout {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 32px;
	align-items: flex-start;
}
@media (max-width: 900px) { .svc-account-layout { grid-template-columns: 1fr; } }
.svc-account-side {
	background: var(--svc-card);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	overflow: hidden;
	position: sticky;
	top: 24px;
}
.svc-account-side-head {
	background: var(--svc-primary-deep);
	color: #fff;
	padding: 22px 24px;
}
.svc-account-side-name {
	font-size: 16px;
	font-weight: 800;
	letter-spacing: -0.01em;
}
.svc-account-side-email {
	font-size: 12px;
	color: var(--svc-on-dark-muted);
	margin-top: 4px;
}
.svc-account-nav {
	display: flex;
	flex-direction: column;
}
.svc-account-nav-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 22px;
	font-size: 14px;
	color: var(--svc-ink-2);
	font-weight: 600;
	border-left: 3px solid transparent;
	text-decoration: none;
}
.svc-account-nav-item + .svc-account-nav-item { border-top: 1px solid var(--svc-border); }
.svc-account-nav-item:hover { background: var(--svc-surface); color: var(--svc-ink); }
.svc-account-nav-item.is-active {
	background: var(--svc-surface-cool);
	color: var(--svc-primary);
	border-left-color: var(--svc-primary);
}
.svc-account-nav-item.is-danger { color: var(--svc-warn); }
.svc-account-nav-item.is-danger:hover { background: #ffe6df; }

/* Data table ============================================================= */
.svc-table {
	width: 100%;
	border-collapse: collapse;
}
.svc-table thead th {
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--svc-ink);
	background: var(--svc-surface);
	padding: 14px 20px;
	text-align: left;
	border-bottom: 1px solid var(--svc-border);
}
.svc-table tbody td {
	padding: 18px 20px;
	font-size: 14px;
	color: var(--svc-ink-2);
	border-bottom: 1px solid var(--svc-border);
	vertical-align: middle;
}
.svc-table tbody tr:hover td { background: var(--svc-bg); }

/* Order status pills ===================================================== */
.svc-status-pill {
	display: inline-block;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 2px;
}
.svc-status-new { background: var(--svc-surface); color: var(--svc-ink-2); }
.svc-status-confirmed { background: var(--svc-primary-tint); color: var(--svc-primary-mid); }
.svc-status-paid { background: var(--svc-primary); color: #fff; }
.svc-status-cancelled { background: #ffe6df; color: var(--svc-warn); }

/* Success / error states ================================================ */
.svc-success-hero {
	text-align: center;
	padding: 64px 24px 32px;
}
.svc-success-icon {
	width: 96px; height: 96px;
	border-radius: 50%;
	background: var(--svc-primary);
	color: #fff;
	display: inline-flex;
	align-items: center; justify-content: center;
	font-size: 48px;
	margin-bottom: 20px;
}

/* CMS content ============================================================ */
.svc-cms {
	font-size: 16px;
	line-height: 1.75;
	color: var(--svc-ink-2);
	max-width: 760px;
}
.svc-cms h2 {
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 40px 0 16px;
	color: var(--svc-ink);
}
.svc-cms h3 {
	font-size: 20px;
	font-weight: 700;
	margin: 28px 0 10px;
	color: var(--svc-ink);
}
.svc-cms p { margin: 0 0 16px; }
.svc-cms a { color: var(--svc-primary); }
.svc-cms a:hover { text-decoration: underline; }
.svc-cms ul, .svc-cms ol { padding-left: 22px; margin: 0 0 16px; }
.svc-cms li { margin-bottom: 6px; }
.svc-cms img { border-radius: var(--svc-radius); margin: 24px 0; }
.svc-cms hr { border: none; border-top: 1px solid var(--svc-border); margin: 32px 0; }
.svc-cms blockquote {
	margin: 24px 0;
	padding: 18px 24px;
	border-left: 4px solid var(--svc-accent);
	background: var(--svc-accent-tint);
	font-style: italic;
}

/* Mobile overrides ======================================================= */
@media (max-width: 768px) {
	body { font-size: 15px; }
	.svc-h1, .svc-h1-xl { font-size: 32px !important; line-height: 1.1; }
	.svc-h2 { font-size: 24px !important; }
	.svc-h3 { font-size: 20px; }
	.svc-lead { font-size: 15px; }

	.svc-section, .svc-section-sm { padding: 40px 0; }
	.svc-page-hero-inner { padding: 32px 0; }

	.svc-header-main { flex-wrap: wrap; gap: 12px; padding: 14px 0; }
	.svc-header-utility { font-size: 11px; padding: 6px 0; }
	.svc-header-utility-row { gap: 8px; }
	.svc-header-utility-left, .svc-header-utility-right { gap: 12px; }

	.svc-nav { width: 100%; overflow-x: auto; padding: 8px 0; gap: 4px; border-top: 1px solid var(--svc-border); -webkit-overflow-scrolling: touch; }
	.svc-nav-link { padding: 8px 12px; font-size: 12px; white-space: nowrap; flex-shrink: 0; }

	.svc-logo-text-top { font-size: 11px; }
	.svc-logo-text-bottom { font-size: 10px; }
	.svc-logo-mark { width: 40px; height: 40px; font-size: 14px; }

	.svc-flash { margin-left: 20px; margin-right: 20px; }

	.svc-section-head { flex-direction: column; align-items: flex-start; }

	/* Term row se rozloží do stack */
	.svc-term-row, .svc-term-row-head {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 16px;
	}
	.svc-term-row-head { display: none; }
	.svc-term-row { border-bottom: 1px solid var(--svc-border); padding: 16px 16px; }
	.svc-term-row > * { padding: 0; }
	.svc-term-row .svc-term-date {
		display: inline-block;
		padding: 4px 10px;
		background: var(--svc-primary-tint);
		border-radius: 2px;
		font-size: 14px;
	}
	.svc-term-row .svc-term-day { display: inline; margin-left: 8px; }

	/* Hero grid stack */
	.svc-hero-grid { gap: 32px; }
	.svc-accred-badges { gap: 8px; }
	.svc-accred-badge { min-width: 100%; }

	/* Course detail */
	.svc-key-info-bar { grid-template-columns: 1fr 1fr; }
	.svc-key-info-cell { padding: 14px 16px; }

	/* Forms */
	.svc-form-card { padding: 24px 20px; }
	.svc-form-card-title { font-size: 17px; gap: 10px; }
	.svc-form-card-step { width: 28px; height: 28px; font-size: 12px; }
	.svc-form-card-desc { padding-left: 38px; }

	/* Promo blocks */
	.svc-promo { padding: 32px 24px; }
	.svc-promo-title { font-size: 22px; }

	/* Steps */
	.svc-step { padding: 32px 24px; }
	.svc-step-title { font-size: 18px; }

	/* News card */
	.svc-news-card-cover { height: 180px; padding: 20px; }
	.svc-news-card-title-big { font-size: 18px; }
	.svc-news-card-body { padding: 20px; }

	/* Detail card sticky → static on mobile */
	.svc-detail-card { position: static !important; }
	.svc-detail-card-price { font-size: 32px; }

	/* Container 56 → 20 */
	.svc-container, [class*="svc-container"] { padding-left: 20px !important; padding-right: 20px !important; }

	/* Catalog page main grid */
	div[style*="grid-template-columns:260px 1fr"],
	div[style*="grid-template-columns: 260px 1fr"] {
		display: block !important;
	}
	div[style*="grid-template-columns:1fr 320px"],
	div[style*="grid-template-columns: 1fr 320px"],
	div[style*="grid-template-columns:1fr 360px"],
	div[style*="grid-template-columns: 1fr 360px"],
	div[style*="grid-template-columns:1fr 380px"],
	div[style*="grid-template-columns: 1fr 380px"],
	div[style*="grid-template-columns:1.2fr 380px"],
	div[style*="grid-template-columns: 1.2fr 380px"] {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}

	/* Newsletter form */
	.svc-newsletter-form { flex-direction: column; }

	/* Sidebar sticky off on mobile */
	aside[style*="sticky"] { position: static !important; }
}

@media (max-width: 480px) {
	.svc-h1, .svc-h1-xl { font-size: 28px !important; }
	.svc-h2 { font-size: 22px !important; }
	.svc-key-info-bar { grid-template-columns: 1fr; }
	.svc-key-info-cell + .svc-key-info-cell { border-left: none; border-top: 1px solid var(--svc-border); }
}

/* Cookies banner ========================================================= */
.svc-cookies {
	position: fixed;
	left: 20px;
	right: 20px;
	bottom: 20px;
	max-width: 540px;
	background: var(--svc-primary-deep);
	color: #fff;
	border-radius: var(--svc-radius);
	border-left: 4px solid var(--svc-accent);
	box-shadow: var(--svc-shadow-md);
	padding: 20px 24px;
	font-size: 13px;
	line-height: 1.55;
	z-index: 1000;
	display: none;
}
.svc-cookies.is-visible { display: block; }
.svc-cookies-title {
	font-size: 14px;
	font-weight: 800;
	margin-bottom: 6px;
}
.svc-cookies p { margin: 0 0 14px; color: var(--svc-on-dark-muted); }
.svc-cookies a { color: var(--svc-accent); }
.svc-cookies-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
@media (max-width: 600px) {
	.svc-cookies { right: 12px; left: 12px; bottom: 12px; padding: 16px 18px; }
}

/* Search ================================================================= */
.svc-search-box {
	position: relative;
	max-width: 320px;
	margin-left: auto;
}
.svc-search-input {
	width: 100%;
	padding: 8px 14px 8px 36px;
	font-size: 13px;
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	font-family: inherit;
	background: var(--svc-bg);
	color: var(--svc-ink);
	outline: none;
}
.svc-search-input:focus { border-color: var(--svc-primary); background: #fff; }
.svc-search-icon {
	position: absolute;
	top: 50%;
	left: 12px;
	transform: translateY(-50%);
	color: var(--svc-muted);
	pointer-events: none;
}
.svc-search-result {
	display: block;
	padding: 18px 0;
	border-bottom: 1px solid var(--svc-border);
	text-decoration: none;
	color: inherit;
}
.svc-search-result:hover { background: var(--svc-surface); }
.svc-search-result-type {
	font-size: 11px;
	color: var(--svc-accent);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 4px;
}
.svc-search-result-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--svc-ink);
	letter-spacing: -0.01em;
	line-height: 1.3;
	margin-bottom: 6px;
}
.svc-search-result-desc {
	font-size: 13px;
	color: var(--svc-muted);
	line-height: 1.55;
}

/* Pagination ============================================================= */
.svc-pagination {
	display: flex;
	gap: 6px;
	justify-content: center;
	align-items: center;
	margin-top: 32px;
}
.svc-pagination a, .svc-pagination .is-active {
	padding: 8px 14px;
	font-size: 13px;
	font-weight: 700;
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	background: #fff;
	color: var(--svc-ink-2);
	text-decoration: none;
}
.svc-pagination .is-active { background: var(--svc-primary); color: #fff; border-color: var(--svc-primary); }

/* Výpustka mezi čísly stránek — není odkaz, jen naznačuje vynechané stránky. */
.svc-pagination-gap {
	padding: 0 4px;
	color: var(--svc-ink-2);
	user-select: none;
}

/* --------------------------------------------------------------------------
   Uživatelské menu v hlavičce (zadání klientky 5. 8. 2026): odhlášení už není
   samostatné tlačítko vedle profilu, ale položka pod jménem uživatele.
   -------------------------------------------------------------------------- */
.svc-user-menu { position: relative; }
.svc-user-menu-toggle { display: inline-flex; align-items: center; gap: 6px; }
/* Jméno nesmí roztlačit hlavičku — dlouhé jméno i s tituly by menu zase
   zalomilo (viz --svc-max-width). Celé jméno zůstává v rozbaleném menu. */
.svc-user-menu-name {
	display: inline-block;
	max-width: 140px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
@media (max-width: 1359px) {
	.svc-user-menu-name { max-width: 80px; }
}
.svc-user-menu-panel {
	position: absolute; right: 0; top: calc(100% + 6px); z-index: 40;
	min-width: 190px; padding: 6px;
	background: #fff; border: 1px solid var(--svc-border); border-radius: var(--svc-radius);
	box-shadow: 0 10px 30px rgba(20, 25, 20, .12);
}
.svc-user-menu-panel a {
	display: flex; align-items: center; gap: 8px;
	padding: 9px 12px; border-radius: 4px;
	font-size: 13px; font-weight: 600; color: var(--svc-ink); text-decoration: none;
}
.svc-user-menu-panel a:hover { background: var(--svc-primary-tint); color: var(--svc-primary); }

/* Video vložené do textu (aktuality, CMS stránky, obsah semináře). Dialog
   editoru vkládá pevné rozměry 560×315, které by na mobilu přetekly. */
.svc-zoom-scope iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: var(--svc-radius);
	margin: 20px 0;
}

/* --- Prohlížeč obrázků (svc-lightbox.js) ----------------------------------- */

.svc-cms img.is-zoomable,
.svc-zoom-scope img.is-zoomable,
.svc-news-gallery img.is-zoomable { cursor: zoom-in; }

body.svc-lightbox-open { overflow: hidden; }

.svc-lightbox {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(10, 16, 6, .92);
	padding: 24px;
}

.svc-lightbox[hidden] { display: none; }

.svc-lightbox-figure {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	max-width: 100%;
	max-height: 100%;
}

.svc-lightbox-img {
	max-width: 92vw;
	max-height: 86vh;
	object-fit: contain;
	border-radius: var(--svc-radius);
	background: rgba(255, 255, 255, .04);
}

.svc-lightbox-caption {
	color: #fff;
	font-size: 14px;
	line-height: 1.5;
	text-align: center;
	max-width: 68ch;
}

.svc-lightbox-caption[hidden] { display: none; }

.svc-lightbox-close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}

.svc-lightbox-close:hover { background: rgba(255, 255, 255, .22); }

@media (max-width: 640px) {
	.svc-lightbox { padding: 12px; }
	.svc-lightbox-img { max-height: 78vh; }
}

.svc-lightbox-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}

.svc-lightbox-nav:hover { background: rgba(255, 255, 255, .22); }
.svc-lightbox-nav[hidden] { display: none; }
.svc-lightbox-prev { left: 16px; }
.svc-lightbox-next { right: 16px; }

.svc-lightbox-counter {
	position: absolute;
	bottom: 18px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, .7);
	font-size: 13px;
	letter-spacing: .04em;
}

.svc-lightbox-counter[hidden] { display: none; }

@media (max-width: 640px) {
	.svc-lightbox-prev { left: 4px; }
	.svc-lightbox-next { right: 4px; }
}

/* --- Doplnění údajů z ARESu (svc-ares.js) --------------------------------- */

.svc-ares-box {
	background: var(--svc-surface);
	border: 1px solid var(--svc-border);
	border-radius: var(--svc-radius);
	padding: 16px 18px;
	margin: 0 0 20px;
}

.svc-ares-box .svc-input { max-width: 220px; }

.svc-ares-hint {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--svc-muted);
}

.svc-ares-status {
	display: inline-block;
	margin-left: 12px;
	font-size: 13px;
	color: var(--svc-muted);
}

.svc-ares-status.is-error { color: var(--svc-warn); }

/* Dlaždice kurzu ve výpisu oblasti (Vzdělávací programy → kurzy). */
.svc-course-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 14px;
}
.svc-course-box {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 14px;
	min-height: 116px;
	padding: 20px 22px;
	color: inherit;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.svc-course-box:hover {
	transform: translateY(-2px);
	box-shadow: var(--svc-shadow-md);
}
.svc-course-box-name {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--svc-ink);
}
.svc-course-box-more {
	font-size: 13px;
	font-weight: 700;
	color: var(--svc-primary);
	white-space: nowrap;
}


/* Řádek termínu v kalendáři, na homepage a ve výsledcích hledání. */
.svc-term-cal-row {
	display: grid;
	grid-template-columns: 112px 110px 1fr 180px 110px;
	gap: 18px;
	padding: 18px 20px;
	align-items: center;
	border-top: 1px solid var(--svc-border);
}

/* Pevné sloupce zaberou přes 500 px. Jakmile je řádek užší, zbyde na název
   kurzu pár desítek pixelů a láme se po jednom slově — přesně to se stalo na
   stránce hledání, kde vpravo stál postranní blok (majitel 25. 8. 2026).
   Pod 900 px proto sloupce přeskládáme do dvou řad. */
@media (max-width: 900px) {
	.svc-term-cal-row {
		grid-template-columns: 112px 1fr;
		row-gap: 10px;
	}
	.svc-term-cal-row > :nth-child(3) {
		grid-column: 1 / -1;
	}
	.svc-term-cal-row > :nth-child(5) {
		grid-column: 1 / -1;
		text-align: left;
	}
}

/* Hledání nad filtry kalendáře — vlastní formulář mimo filtrační panel. */
.svc-sidebar-search {
	margin-bottom: 16px;
}
.svc-search-row {
	display: flex;
	gap: 8px;
	align-items: stretch;
}
.svc-search-row .svc-sidebar-select {
	flex: 1;
	min-width: 0;
}
