/*
Theme Name: KST Lokomotíva 2026
Theme URI: https://www.turistikalokobb.sk/
Author: Inger
Description: Editoriálny redizajn (2026) webu KST Lokomotíva Banská Bystrica — krémová paleta, terakotový akcent, "blaze" značkový motív, samostatne hostené fonty Bricolage Grotesque + Instrument Sans + Newsreader. Sesterská téma k pôvodnej "KST Lokomotíva" (rollback point).
Version: 2.0.0
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kst
Tags: full-site-editing, block-patterns, blog, accessibility-ready, custom-colors, custom-menu
*/

/* ==========================================================================
   KST Lokomotíva — front-end styles
   Design tokens žijú v theme.json (--wp--preset--*). Tu sú len utility triedy
   a editoriálne ozdoby ktoré block markup neuvedie sám.
   ========================================================================== */

:root {
	--kst-sh-1: 0 1px 2px rgba(26, 39, 97, 0.05), 0 1px 1px rgba(26, 39, 97, 0.04);
	--kst-sh-2: 0 2px 6px rgba(26, 39, 97, 0.06), 0 4px 16px rgba(26, 39, 97, 0.06);
	--kst-sh-3: 0 4px 12px rgba(26, 39, 97, 0.08), 0 12px 32px rgba(26, 39, 97, 0.08);
}

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: 'kern', 'liga', 'calt';
	text-wrap: pretty;
}

h1, h2, h3, h4, h5, h6 {
	text-wrap: balance;
	font-feature-settings: 'kern', 'liga', 'onum';
}

/* --------------------------------------------------------------------------
   Prístupnosť (WCAG AAA)
   -------------------------------------------------------------------------- */

/* Skip-link — viditeľný len pri fokuse */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: 14px 22px;
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-weight: 700;
	font-size: 1.0625rem;
	border-radius: 0 0 8px 0;
	text-decoration: none;
}
.skip-link:focus {
	left: 0;
}

/* Vizuálne skryté, dostupné pre čítače obrazovky (WCAG) */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	position: absolute !important;
	word-wrap: normal !important;
}

/* Viditeľný fokus všade — gold outline na AAA kontrast */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
	border-radius: 3px;
}

/* Touch-target minimum 44px pre navigačné/akčné odkazy */
.wp-block-navigation .wp-block-navigation-item__content,
.wp-block-button__link,
.wp-element-button {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* Respektuj prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

/* --------------------------------------------------------------------------
   Tlačidlá — varianty zo styleguide
   -------------------------------------------------------------------------- */

.wp-block-button__link,
.wp-element-button {
	transition: background-color .15s, border-color .15s, transform .04s;
}
.wp-block-button__link:active,
.wp-element-button:active {
	transform: translateY(1px);
}

/* Sekundárne (obrysové) tlačidlo */
.wp-block-button.is-style-secondary .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--primary);
	border: 2px solid var(--wp--preset--color--primary);
}
.wp-block-button.is-style-secondary .wp-block-button__link:hover,
.wp-block-button.is-style-secondary .wp-block-button__link:focus {
	background-color: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
}

/* Zlaté tlačidlo na tmavom navy pozadí */
.wp-block-button.is-style-gold .wp-block-button__link {
	background-color: var(--wp--preset--color--gold-bright);
	color: #231906;
	border: 2px solid var(--wp--preset--color--gold-bright);
}
.wp-block-button.is-style-gold .wp-block-button__link:hover,
.wp-block-button.is-style-gold .wp-block-button__link:focus {
	background-color: #cba24f;
	border-color: #cba24f;
	color: #231906;
}

/* --------------------------------------------------------------------------
   Editoriálne utility (eyebrow, rule, big-number, chip, …)
   -------------------------------------------------------------------------- */

.kst-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

.kst-rule-deco {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted);
}
.kst-rule-deco::before,
.kst-rule-deco::after {
	content: '';
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--border-strong), transparent);
}

.kst-display {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.02em;
}

.kst-big-number {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	font-size: clamp(6rem, 14vw, 12.5rem);
	line-height: 0.85;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--primary);
}

.kst-stat-number {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	font-size: clamp(2.25rem, 4vw, 3.5rem);
	line-height: 0.9;
	color: var(--wp--preset--color--primary);
}

/* Detail podujatia: titulok menší než globálny "huge" preset — dlhé slovenské
   slová inak tvoria ~5 riadkov v 62% stĺpci. !important prebíja inline
   theme.json štýl pre core/post-title. */
.kst-event-title {
	font-size: clamp(2.5rem, 5vw, 3rem) !important;
	line-height: 1.1;
	letter-spacing: -0.01em;
}

/* Stats 2×2: label rezervuje výšku 2 riadkov, nech sub-labely naprieč bunkami
   sedia na rovnakej baseline aj keď je niektorý label 1-riadkový (108 vs
   "km značených chodníkov"). */
.kst-stat-number + p {
	min-height: 2.5em;
	line-height: 1.25;
}

/* Footer: linky stĺpcov bez odrážok/odsadenia (zarovnané pod nadpis stĺpca). */
.kst-footer-list {
	list-style: none;
	margin: 0;
	padding-left: 0;
}
.kst-footer-list a {
	white-space: nowrap;
}

/* Spodný riadok päty: položky s medzerou namiesto bodiek, aby sa na telefóne
   nezalomila bodka na začiatok riadku. */
.kst-site-footer .kst-footer-legal {
	display: flex;
	flex-wrap: wrap;
	column-gap: 1.1rem;
	row-gap: 0;
}
.kst-site-footer .kst-footer-legal,
.kst-site-footer .kst-footer-credit {
	/* .kst-on-dark forsne has-text-color na 0.92 !important (viď .kst-sponsor-role). */
	color: rgba(255, 255, 255, 0.6) !important;
}
/* „Nastavenia cookies" je tlačidlo (znovu otvorí lištu súhlasu), ale v riadku
   vyzerá ako susedné odkazy — téma inak tlačidlám dáva vlastnú farbu. */
.kst-site-footer .kst-footer-legal__btn {
	font: inherit;
	color: rgba(255, 255, 255, 0.6) !important;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	text-decoration: none;
}
.kst-site-footer .kst-footer-legal__btn:hover {
	text-decoration: underline;
}
.kst-site-footer .kst-footer-legal__btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold-bright);
	outline-offset: 2px;
}
.kst-footer-credit {
	white-space: nowrap;
	margin-left: 0.35em;
}
.kst-footer-credit__sep {
	margin-right: 0.35em;
}
/* Na úzkom displeji by sa „| Vytvoril Inger" zalomilo so zvislou čiarou na začiatku
   riadku — tam ide na vlastný riadok bez čiary. */
@media (max-width: 480px) {
	.kst-footer-credit { display: block; margin-left: 0; }
	.kst-footer-credit__sep { display: none; }
}

/* Chip / odznak */
.kst-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 28px;
	padding: 2px 12px;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.015em;
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
	border: 1px solid transparent;
}
.kst-chip.is-warm   { background: var(--wp--preset--color--gold-soft);   color: #54401A; }
.kst-chip.is-cool   { background: var(--wp--preset--color--primary-faint); color: var(--wp--preset--color--primary); }
.kst-chip.is-brick  { background: var(--wp--preset--color--brick-soft);  color: #73140E; }
.kst-chip.is-forest { background: var(--wp--preset--color--forest-soft); color: var(--wp--preset--color--forest); }
.kst-chip.is-neutral{ background: var(--wp--preset--color--surface-sunk); color: var(--wp--preset--color--text-muted); border-color: var(--wp--preset--color--border); }
/* post-terms renderovaný ako chip (plán podujatí) */
.wp-block-post-terms.kst-chip { width: fit-content; }
.wp-block-post-terms.kst-chip a { color: inherit; text-decoration: none; }
.wp-block-post-terms.kst-chip a:hover { text-decoration: underline; }
.kst-plan-row__more { text-align: right; }
.kst-plan-row__date { color: var(--wp--preset--color--primary); }

/* Archív podujatí (/podujatia/): rovnaké SEZÓNNE chipy ako homepage — neutrálny
   základ + turistická „blaze" značka + zelená (letná) / modrá (zimná). Sezónu
   určíme z odkazu termu (`/kategoria/<slug>/`) cez :has() — core post-terms
   nedáva per-term slug triedu ako custom homepage blok. */
.kst-plan-row .kst-chip {
	display: inline-flex; align-items: center; gap: 7px; min-height: 0;
	padding: 5px 13px 5px 10px; border-radius: 20px;
	font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.015em; border: 0;
	color: var(--wp--preset--color--text-muted); background: rgba(35, 32, 27, 0.055);
}
.kst-plan-row .kst-chip::before {
	content: ''; width: 16px; height: 11px; border-radius: 2px; flex: none;
	background: linear-gradient(#fff 0 34%, currentColor 34% 66%, #fff 66%);
	border: 1px solid rgba(35, 32, 27, 0.16);
}
.kst-plan-row .kst-chip:has(a[href*="letna-turistika"]),
.kst-plan-row .kst-chip:has(a[href*="vysokohorska"]) {
	color: var(--wp--preset--color--forest); background: var(--wp--preset--color--forest-soft);
}
.kst-plan-row .kst-chip:has(a[href*="zimna"]),
.kst-plan-row .kst-chip:has(a[href*="lyziarska"]) {
	color: var(--wp--preset--color--blue); background: var(--wp--preset--color--blue-soft);
}

/* Pulzujúci "najbližšia akcia" odznak */
.kst-live-dot {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--brick);
}
.kst-live-dot::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: currentColor;
	box-shadow: 0 0 0 3px rgba(158, 27, 23, 0.18);
	animation: kst-pulse 1.8s ease-in-out infinite;
}
@keyframes kst-pulse {
	0%, 100% { box-shadow: 0 0 0 3px rgba(158, 27, 23, 0.18); }
	50% { box-shadow: 0 0 0 7px rgba(158, 27, 23, 0); }
}

/* --------------------------------------------------------------------------
   Karty podujatí, dlaždice, galéria
   -------------------------------------------------------------------------- */

/* Karta s rámom a tieňom (group is-style-card) */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	overflow: hidden;
}

/* Dátumový blok podujatia */
.kst-date-badge {
	background: var(--wp--preset--color--primary);
	color: #fff;
	text-align: center;
	padding: 18px 16px;
	border-radius: 8px;
}
.kst-date-badge .kst-date-day {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.375rem;
	font-weight: 600;
	line-height: 1;
}
.kst-date-badge .kst-date-month {
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-top: 6px;
}

/* Rýchle akcie / dlaždice */
.kst-quick-tile {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: 120px;
	padding: 22px 24px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	text-decoration: none;
	color: var(--wp--preset--color--text);
	transition: border-color .15s, box-shadow .15s, transform .08s;
}
.kst-quick-tile:hover,
.kst-quick-tile:focus-visible {
	border-color: var(--wp--preset--color--primary);
	box-shadow: var(--kst-sh-2);
	transform: translateY(-2px);
}

/* Galériová dlaždica — overlay popis */
.kst-gallery-tile {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
}
.kst-gallery-tile img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Cenové stupne (3-tier) */
.kst-price-tiers {
	display: grid;
	gap: 10px;
}
.kst-price-tier {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 18px;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 10px;
	background: var(--wp--preset--color--surface);
}
.kst-price-tier .kst-price-amount {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.75rem;
	font-weight: 600;
	white-space: nowrap;
}

/* Editoriálny fakt (Dĺžka / Stúpanie / Čas …) */
.kst-fact-value {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	font-weight: 600;
	line-height: 0.95;
	color: var(--wp--preset--color--text);
}
.kst-fact-label {
	font-size: 0.75rem;
	color: var(--wp--preset--color--text-muted);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Tabuľka členských poplatkov (/clenstvo/) — stavia na .kst-plan-table; suma
   vpravo, zvýraznená headingovým rezom. */
.kst-fee-table { margin-left: 0; margin-right: 0; }
.kst-fee-table th:last-child,
.kst-fee-table td:last-child {
	text-align: right;
	white-space: nowrap;
}
.kst-fee-table td strong {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	color: var(--wp--preset--color--primary);
}

/* --------------------------------------------------------------------------
   Tabuľka plánu podujatí
   -------------------------------------------------------------------------- */

.kst-plan-table table {
	border-collapse: collapse;
	width: 100%;
	background: var(--wp--preset--color--surface);
}
.kst-plan-table th {
	background: var(--wp--preset--color--surface-sunk);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted);
	text-align: left;
	padding: 14px 20px;
}
.kst-plan-table td {
	padding: 18px 20px;
	border-top: 1px solid var(--wp--preset--color--border);
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
   Tmavé sekcie (navy) — invertovaný text
   -------------------------------------------------------------------------- */

/* Pozn.: WP core emituje `.has-text-color{color:var(--text)!important}`, čo na
   navy sekciách klobruje biely text (has-surface-color aj inline rgba) — lebo
   !important stylesheet prebije inline. Scoped override v .kst-on-dark s vyššou
   špecificitou + neskorším cascade vráti svetlý text. */
.kst-on-dark { color: rgba(255, 255, 255, 0.88); }
.kst-on-dark .has-text-color:not(.has-link-color) {
	color: rgba(255, 255, 255, 0.92) !important;
}
.has-primary-background-color :where(h1, h2, h3, h4, h5, h6),
.kst-on-dark :where(h1, h2, h3, h4, h5, h6),
.kst-on-dark :where(h1, h2, h3, h4, h5, h6).has-text-color,
.kst-on-dark .has-surface-color,
.kst-on-dark .has-surface-color.has-text-color {
	color: #fff !important;
}
.kst-on-dark a:not(.wp-element-button):not(.has-text-color) {
	color: var(--wp--preset--color--gold-bright);
}

/* Vlysová ozdoba (papierové zrno) — ponecháme jemné, bez performance záťaže */
.kst-contour {
	display: block;
	width: 100%;
	height: 48px;
	opacity: 0.4;
	color: var(--wp--preset--color--border-strong);
}

/* --------------------------------------------------------------------------
   Logo / wordmark v hlavičke a päte
   -------------------------------------------------------------------------- */

/* <picture> je len format-switch obal (WebP + fallback) — nesmie tvoriť layout
   box, inak by sa vo flex kontexte stal flex-itemom namiesto <img>. */
picture { display: contents; }

.kst-wordmark {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
	color: inherit;
}
.kst-wordmark img { height: 64px; width: auto; display: block; }
.kst-wordmark .kst-wordmark-text {
	display: flex;
	flex-direction: column;
}
.kst-wordmark .kst-wordmark-name {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--wp--preset--color--text);
	line-height: 1.1;
	white-space: nowrap;
}
.kst-wordmark .kst-wordmark-sub {
	font-size: 0.75rem;
	color: var(--wp--preset--color--text-muted);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 600;
	margin-top: 3px;
	white-space: nowrap;
}

/* --------------------------------------------------------------------------
   Hlavná navigácia v hlavičke — vzdušné položky + aktívny podčiarknutý stav
   -------------------------------------------------------------------------- */

.kst-site-header .wp-block-navigation .wp-block-navigation-item__content {
	padding: 0.5rem 0.9rem;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	color: var(--wp--preset--color--text);
	transition: color .15s, border-color .15s;
}
.kst-site-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.kst-site-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--primary);
}
.kst-site-header .wp-block-navigation a.wp-block-navigation-item__content[aria-current],
.kst-site-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	border-bottom-color: var(--wp--preset--color--primary);
}

/* --------------------------------------------------------------------------
   Obsahová stránka — sticky obsah (TOC) + čitateľnosť
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Obsahová stránka — JEDNA os (nadpis, text, tabuľky, zoznamy)
   --------------------------------------------------------------------------
   Predtým mala obsahová stránka dve nezávislé šírky: štruktúra (nadpis,
   kontaktné karty, tabuľka výboru, zoznam podujatí) išla na wide os 1176px,
   kým text sa zastavil o ~250px skôr. Vpravo tak vznikol prázdny pás, ktorý
   vyzeral ako nedokončený stĺpec — a nebolo to plytvanie miestom, ale rozpor:
   nadpis sa nedal zarovnať s textom pod ním ani s tabuľkou vedľa.

   Riešenie je jedna os pre všetko, čo je na stránke obsah. Pás je 880px,
   text v ňom 820px (contentSize) — rozdiel 30px na stranu nie je vidieť,
   takže nadpis, odsek aj tabuľka končia na tej istej hrane. Širšia wide os
   (1176px) ostáva hlavičke, päte a mriežkovým stránkam (foto album, titulka),
   kde ju obsah reálne vyplní.

   Text zámerne NEIDE na 1176px — pri tejto veľkosti písma je to ~125 znakov
   na riadok, čo sa zle číta. Šírka sa mení cez `contentSize` v theme.json
   (text) a `--kst-page-band` (pás). */

:root {
	--kst-page-band: 880px;
}

.kst-page-head.alignwide,
.entry-content.alignwide {
	max-width: var(--kst-page-band);
}

/* Odsek a položka zoznamu sú o niečo kratšie než pás — riadok nad ~90 znakov
   sa zle číta. Skracuje sa ZPRAVA (blok ostáva na ľavej hrane pásu), takže
   nadpis, odsek aj tabuľka začínajú na tej istej osi; 60px rozdiel na pravej
   hrane nie je vidieť.

   Predtým tu stál strop `max-width: 70ch` — druhý, nezávislý limit v jednotke
   závislej od fontu. Riadky reálne končili okolo 1000px, teda ani na jednej
   z dvoch nastavených hodnôt, a ladiť sa to nedalo. */
.entry-content :where(p, li) {
	max-width: 52rem;               /* 832px — pás má 880px */
}
.entry-content.is-layout-constrained > :where(p),
.wp-block-post-content.is-layout-constrained > :where(p) {
	margin-right: auto;
	margin-left: 0 !important;      /* prebi `margin-left: auto` z WP layoutu */
}
.entry-content :where(ul, ol) {
	line-height: 1.8;
}

/* Výbor klubu — zoznam mien bez odrážok, meno + funkcia */
.entry-content ul.kst-vybor {
	list-style: none;
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	display: grid;
	gap: 0;
}
.entry-content ul.kst-vybor li {
	max-width: none;
	margin: 0;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	line-height: 1.4;
}
.entry-content ul.kst-vybor li:first-child {
	border-top: 1px solid var(--wp--preset--color--border);
}
.entry-content ul.kst-vybor strong {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
}

/* Kontakt — info blok (adresa / e-mail / telefón) */
.kst-kontakt-intro {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	align-items: stretch;            /* rovnaká výška kariet bez ohľadu na počet riadkov */
	gap: clamp(1rem, 2.2vw, 1.5rem);
	max-width: none;                 /* prebi contentSize 820 → karty na plnú šírku obsahového pásu */
	margin-bottom: var(--wp--preset--spacing--50);
}
.kst-kontakt-intro__item {
	display: flex;
	flex-direction: column;
	padding: 1.4rem 1.5rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-top: 2px solid var(--wp--preset--color--primary);
	border-radius: 12px;
}
.kst-kontakt-intro__label {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted);
	margin-bottom: 0.4rem;
}
.kst-kontakt-intro p {
	margin: 0;
	max-width: none;
	line-height: 1.55;
}
.kst-kontakt-intro__note {
	color: var(--wp--preset--color--text-muted);
	font-size: 0.875rem;
}

/* Kontakt — tabuľka výboru (na mobile sa skladá do kariet) */
.kst-kontakt-table-wrap {
	margin-top: var(--wp--preset--spacing--40);
	max-width: none;                 /* prebi contentSize 820 → tabuľka na plnú šírku obsahového pásu */
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	overflow: hidden;
}
.kst-kontakt-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}
.kst-kontakt-table th {
	text-align: left;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted);
	background: var(--wp--preset--color--surface-sunk);
	padding: 0.85rem 1.25rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.kst-kontakt-table td {
	padding: 0.85rem 1.25rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	vertical-align: middle;
}
.kst-kontakt-table tbody tr:last-child td { border-bottom: 0; }
.kst-kontakt-table tbody tr:hover td { background: var(--wp--preset--color--surface-sunk); }
.kst-kontakt-table tr td:nth-child(2) {
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}
.kst-kontakt-table a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}
.kst-kontakt-table a:hover {
	text-decoration: underline;
}
.kst-kontakt-table__sub {
	color: var(--wp--preset--color--text-muted);
	font-weight: 400;
	font-size: 0.875rem;
}

@media (max-width: 720px) {
	.kst-kontakt-intro {
		grid-template-columns: 1fr;
	}
	.kst-kontakt-table thead {
		display: none;
	}
	.kst-kontakt-table,
	.kst-kontakt-table tbody,
	.kst-kontakt-table tr,
	.kst-kontakt-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;   /* inak width:100% + padding/border na tr → ~636px > wrap 608 → overflow:hidden useklo hodnoty vpravo */
	}
	.kst-kontakt-table tr {
		margin-bottom: 1rem;
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 10px;
		padding: 0.4rem 0.9rem;
		background: var(--wp--preset--color--surface);
	}
	.kst-kontakt-table td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		padding: 0.45rem 0;
		border-bottom: 1px solid var(--wp--preset--color--border);
	}
	.kst-kontakt-table tr td:last-child {
		border-bottom: 0;
	}
	.kst-kontakt-table td::before {
		content: attr(data-label);
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--wp--preset--color--text-muted);
		flex: 0 0 auto;
	}
	.kst-kontakt-table td:not([data-label])::before {
		content: "";
	}
}

/* --------------------------------------------------------------------------
   Responzívne korekcie
   -------------------------------------------------------------------------- */

@media (max-width: 781px) {
	.kst-wordmark img { height: 52px; margin-block: 0; }
	.kst-wordmark .kst-wordmark-name { font-size: 1.25rem; }
	.kst-plan-table { overflow-x: auto; }
}

/* --------------------------------------------------------------------------
   KST single-event: skry prázdne fakt-riadky (migrované eventy majú dlzka_km/
   prevysenie_m/narocnost/zraz/doprava/leader prázdne — info je v popise trasy).
   Každý fakt = .wp-block-group obal s priamym .kst-fact-value <p>. Keď je hodnota
   prázdna, skry CELÝ obal (label + value + unit). Scoped na fakt-skupiny cez
   `:has(> .kst-fact-value:empty)` — nematchuje iné .wp-block-group.
   [appended by display/perf agent — single block, lines at EOF only]
   -------------------------------------------------------------------------- */
.wp-block-group:has(> .kst-fact-value:empty) {
	display: none;
}
/* Keď sú VŠETKY fakty prázdne, skry aj orámovaný obal (inak ostanú 2 čiary). */
.kst-event-facts:not(:has(.kst-fact-value:not(:empty))) {
	display: none;
}

/* --------------------------------------------------------------------------
   Náborové kroky 01/02/03 (homepage "Pridajte sa na sobotný pochod").
   Číslo dostane pevnú šírku + flex-shrink:0, nech sa 2-ciferné číslo NIKDY
   nezalomí (flex nowrap inak stláča stĺpec na 1 znak → "0" nad "1"). Číslo
   je top-zarovnané k nadpisu kroku, gap rieši blockGap.
   -------------------------------------------------------------------------- */
.kst-step-num {
	flex: 0 0 auto;
	white-space: nowrap;
	text-align: center;
	margin: 0;
}
.kst-step-body { flex: 1 1 auto; min-width: 0; }
.kst-step-body > :first-child { margin-top: 0; }

/* Sponzorský riadok "S podporou": názov partnera rezervuje výšku 2 riadkov,
   nech malé labely (Inštitucionálny partner / Podpora dopravy …) sadnú na
   spoločnú baseline naprieč stĺpcami aj keď je niektorý názov 2-riadkový
   (BBSK) a ostatné 1-riadkové. Rovnaký princíp ako .kst-stat-number + p. */
.kst-sponsor-name {
	min-height: 2.5em;
}
/* Partneri v tmavej päte: label musí byť tlmený. .kst-on-dark inak forsne
   has-text-color na 0.92 !important → prebíjame vlastným !important. */
.kst-site-footer .kst-sponsor-role {
	color: rgba(255, 255, 255, 0.55) !important;
	margin-top: 0;
}

/* Pätka nadväzuje priamo na predošlú tmavú sekciu (navy CTA) — root blockGap
   1.5rem inak presvitá krémovým body-bg medzi navy a charcoal pätkou ("seam").
   Vynuluj margin nad footer template-partom → čistý dark-to-dark prechod. */
.wp-block-template-part:has(.kst-site-footer) {
	margin-block-start: 0;
}

/* Main sadá tesne pod hlavičku — root blockGap inak nechal prázdny biely pás
   medzi hlavičkou a prvou sekciou (na podstránkach breadcrumb „← Späť…" tak
   visel odsadený; na homepage medzera medzi hero a ďalším pásom). */
#main {
	margin-block-start: 0;
}

/* ROOT FIX kontrastu: color-preset slug „border" KOLIDUJE s generickou WP triedou
   `has-border-color` (WP ju pridá KAŽDÉMU bloku s border-farbou) → WP vygeneruje
   `.has-border-color{color:var(--…--border)!important}` a text každej orámovanej
   karty zdedí svetlú border farbu (#E6DDCB, nečitateľné na kréme). Neutralizuj tam,
   kde border-farba NIE je zámerný text-color (`:not(.has-text-color)`). */
.has-border-color:not(.has-text-color) { color: inherit !important; }

/* Cenník: meno stupňa + suma terracotta (akcent). Sub-label ostáva tlmený. */
.kst-price-tier > .wp-block-group > p:first-child,
/* Nazvy kategorii su od 2026-08-24 cele vety („Člen KST Lokomotíva - s Klubovým
   poplatkom", vyziadal klub), takze v uzkom bocnom stlpci sa lamu do 3 riadkov.
   Mensie a hustejsie pismo drzi karticku kompaktnu a suma ostava dominantna. */
.kst-price-tier__name {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.3;
	margin: 0;
	text-wrap: pretty;
}
.kst-price-tier__note {
	margin: 2px 0 0;
	font-size: 0.875rem;
	color: var(--wp--preset--color--text-muted);
}
.kst-price-tier .kst-price-amount {
	color: var(--wp--preset--color--primary);
}
.kst-price-tier > p.kst-price-amount { margin: 0; }
/* Stupeň bez nastavenej ceny nezobrazuj (žiadna prázdna pravá strana). */
.kst-price-tier:has(.kst-price-amount:empty) {
	display: none;
}

/* Bočný box podujatia (kst/prihlasenie-box) — cenník + prihlásenie, alebo len
   vysvetľujúca hláška (podujatie bez cien / už prebehnuté). Box kreslí PHP, aby
   sa pri hláške nezobrazoval prázdny cenník. */
.kst-event-box {
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 14px;
	padding: var(--wp--preset--spacing--60, 28px);
	background: var(--wp--preset--color--surface);
}
.kst-event-box .kst-price-tiers { margin-top: var(--wp--preset--spacing--40, 18px); }
.kst-event-box__note {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--wp--preset--color--text);
}
.kst-event-box--closed { background: var(--wp--preset--color--surface-sunk, #F1EADC); }
.kst-event-box--closed .kst-event-box__note { color: var(--wp--preset--color--text-muted); }

/* --------------------------------------------------------------------------
   Registrácia na podujatie (sidebar) — čistý súhrn + formulár
   -------------------------------------------------------------------------- */
.kst-registracia {
	margin: 22px 0 0; padding-top: 22px;
	border-top: 1px solid var(--wp--preset--color--border);
}
/* Súhrn: cena / kredit / voľné miesta ako prehľadné riadky (label ↔ hodnota). */
.kst-registracia__summary {
	display: grid; gap: 9px;
	background: var(--wp--preset--color--surface-sunk);
	border-radius: 12px; padding: 15px 17px; margin-bottom: 18px;
}
.kst-registracia__srow {
	display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
	font-size: 0.9375rem; color: var(--wp--preset--color--text-muted); margin: 0;
}
.kst-registracia__srow .kst-registracia__sval { font-weight: 600; color: var(--wp--preset--color--text); white-space: nowrap; }
.kst-registracia__srow--price {
	padding-bottom: 11px; margin-bottom: 2px;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.kst-registracia__srow--price .kst-registracia__slabel { color: var(--wp--preset--color--text); font-weight: 600; }
.kst-registracia__srow--price .kst-registracia__sval {
	font-family: var(--wp--preset--font-family--heading); font-size: 1.5rem;
	color: var(--wp--preset--color--primary);
}
.kst-registracia__free-badge {
	background: var(--wp--preset--color--forest-soft); color: var(--wp--preset--color--forest) !important;
	padding: 2px 11px; border-radius: 999px; font-size: 0.875rem;
}
/* Formulár */
.kst-registracia__rows { display: grid; gap: 10px; margin-bottom: 10px; }
.kst-registracia__input,
.kst-registracia__comment textarea {
	width: 100%; box-sizing: border-box;
	border: 1.5px solid var(--wp--preset--color--border); border-radius: 10px;
	background: var(--wp--preset--color--surface); color: var(--wp--preset--color--text);
	padding: 12px 14px; font-size: 1rem; transition: border-color .15s, box-shadow .15s;
}
.kst-registracia__input:focus,
.kst-registracia__comment textarea:focus {
	outline: none; border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(200, 69, 46, 0.12);
}
.kst-registracia__input::placeholder { color: var(--wp--preset--color--text-muted); }
.kst-registracia__comment { display: block; margin: 14px 0; }
.kst-registracia__comment > span {
	display: block; margin-bottom: 6px;
	font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	color: var(--wp--preset--color--text-muted);
}
.kst-registracia__note { color: var(--wp--preset--color--text); }
.kst-registracia__hint {
	font-size: 0.875rem; color: var(--wp--preset--color--text-muted);
	margin: 10px 0 0; line-height: 1.5;
}

/* Stav „Ste prihlásený" — zelený, nech je na prvý pohľad jasné, že to prešlo.
   Klub sa hlásil dvakrát práve preto, že web dovtedy nič takéto neukázal. */
.kst-registracia--booked .kst-registracia__status--ok {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.125rem; font-weight: 700;
	color: var(--wp--preset--color--forest);
	background: var(--wp--preset--color--forest-soft);
	border-radius: 12px; padding: 12px 15px; margin: 0 0 12px;
}
.kst-registracia--booked .kst-registracia__names,
.kst-registracia--booked .kst-registracia__paid {
	margin: 0 0 8px; font-size: 0.9375rem; color: var(--wp--preset--color--text);
}

/* Málo kreditu: kredit sa kupuje osobne, takže hláška musí povedať koľko chýba
   AJ kde sa dopĺňa — inak je to slepá ulička (nahlásené klubom 2026-08-22). */
.kst-registracia--nocredit .kst-registracia__status {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.0625rem; font-weight: 700;
	color: var(--wp--preset--color--primary); margin: 0 0 8px;
}

/* Oddeľovač oznamov na titulke = pásová turistická značka (biela-červená-biela).
   Vyžiadala Škutová (2026-08-20): oznamy sa zlievali, ocenenie čestného predsedu
   čítalo ako pokračovanie cestovného poriadku. Na starom webe to oddeľovali
   bodkou, značka je ich vlastný jazyk. */
.kst-oznam-sep {
	border: 0;
	height: 34px;
	max-width: 90px;
	margin: 30px auto;
	background: linear-gradient(
		to bottom,
		#fff 0 10px,
		var(--wp--preset--color--primary) 10px 24px,
		#fff 24px 34px
	);
	border-radius: 3px;
	box-shadow: 0 0 0 1px rgba(35, 32, 27, 0.12);
	opacity: 1;
}

/* Zoznam prihlásených — mal ho aj starý web a klub sa podľa neho rozhoduje. */
.kst-ucastnici {
	margin: 26px 0 0; padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--border);
}
.kst-ucastnici__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.0625rem; font-weight: 700; margin: 0 0 12px;
}
.kst-ucastnici__table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.kst-ucastnici__table th {
	text-align: left; font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--wp--preset--color--text-muted); font-weight: 700;
	padding: 0 8px 6px 0; border-bottom: 1px solid var(--wp--preset--color--border);
}
.kst-ucastnici__table td {
	padding: 8px 8px 8px 0; border-bottom: 1px solid var(--wp--preset--color--border);
	vertical-align: top;
}
.kst-ucastnici__seats { white-space: nowrap; font-weight: 600; }
.kst-ucastnici__sum,
.kst-ucastnici__empty { margin: 10px 0 0; font-size: 0.875rem; color: var(--wp--preset--color--text-muted); }

/* --------------------------------------------------------------------------
   Stránkovanie (Plán podujatí archív) — čísla ako orámované „pilulky", aktívna
   strana plná navy, šípky ako tlačidlové linky. Default WP markup je neštýlovaný
   rad odkazov; toto mu dáva čistý, profi vzhľad + 44px touch-targety.
   -------------------------------------------------------------------------- */
.wp-block-query-pagination {
	gap: 0.5rem 0.4rem;
	margin-top: var(--wp--preset--spacing--80);
	flex-wrap: wrap;
	align-items: center;
}
.wp-block-query-pagination > .wp-block-query-pagination-numbers {
	display: flex;
	gap: 0.4rem;
	align-items: center;
	flex-wrap: wrap;
}
.wp-block-query-pagination a.page-numbers,
.wp-block-query-pagination span.page-numbers,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.55rem;
	border-radius: 9px;
	border: 1.5px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	padding: 0 1.1rem;
	gap: 0.4rem;
}
.wp-block-query-pagination a.page-numbers:hover,
.wp-block-query-pagination a.page-numbers:focus-visible,
.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-previous:focus-visible,
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-next:focus-visible {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
}
.wp-block-query-pagination span.page-numbers.current {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: #fff;
}
.wp-block-query-pagination span.page-numbers.dots {
	border: 0;
	background: transparent;
	min-width: auto;
	padding: 0 0.2rem;
	color: var(--wp--preset--color--text-muted);
}

/* --------------------------------------------------------------------------
   Náborové kroky 01/02/03 (homepage „Pridajte sa") — číslo ako úhľadný kruhový
   odznak so zlatým obrysom namiesto voľne plávajúceho 3rem čísla. Zarovnané
   k vrchu nadpisu kroku, jednotná veľkosť → upratané, rytmické.
   -------------------------------------------------------------------------- */
.kst-step {
	gap: 1.25rem;
	align-items: flex-start;
}
.kst-step-num {
	flex: 0 0 auto;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin: 0.1rem 0 0;
	border-radius: 999px;
	border: 1.5px solid rgba(221, 182, 97, 0.55);
	background: rgba(221, 182, 97, 0.12);
	font-size: 1.25rem !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
}

/* --------------------------------------------------------------------------
   Pätka „S podporou" — partneri ako jednotné dlaždice (logo-ready). Bez logo
   súborov pôsobí rad holých názvov neusporiadane; rovnaké orámované platne so
   zlatým horným akcentom dajú sekcii profi, zámerný vzhľad. Keď budú oficiálne
   logá, vložia sa do .kst-partner__logo (img) bez ďalšej zmeny CSS.
   -------------------------------------------------------------------------- */
.kst-partners {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.85rem;
}
/* Kompaktná horizontálna karta (podľa návrhu): malá biela logo-platnička vľavo,
   názov + rola vpravo. Nižší profil než pôvodné veľké vertikálne platne. */
.kst-partner {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.85rem;
	padding: 0.7rem 0.9rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.04);
}
/* Biela logo-platnička: zjednotí farebné/tmavé logá na tmavej päte. */
.kst-partner__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	height: 48px;
	width: 48px;
	flex: none;
	padding: 6px;
	background: #fff;
	border-radius: 8px;
}
.kst-partner__logo img {
	max-height: 34px;
	max-width: 100%;
	width: auto;
	height: auto;
	display: block;
	object-fit: contain;
}
.kst-partner__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.kst-partner__name {
	margin: 0 0 0.1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.25;
	color: #fff;
}
.kst-partner__role {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.3;
	color: rgba(255, 255, 255, 0.58);
}
@media (max-width: 900px) {
	.kst-partners { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.kst-partners { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Mobilné menu — hamburger + full-screen overlay. Web pre seniorov: veľká
   ikona, veľké tap-targety, hamburger sa objaví skôr (≤860px) nech sa desktop
   menu nikdy nezalomí/nestlačí na tabletoch.
   -------------------------------------------------------------------------- */
/* Hamburger sa objaví už od 860px (WP default je až 600px → na tabletoch sa
   inline menu tlačilo/zalamovalo pod logo). Nižšie skryjeme inline menu. */
@media (max-width: 860px) {
	.kst-site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.kst-site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
}

/* Hamburger — veľký, pohodlný tap-target + ikona (pre seniorov). */
.kst-site-header .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--primary);
	padding: 10px;
}
.kst-site-header .wp-block-navigation__responsive-container-open svg {
	width: 40px; height: 40px;
}

/* Otvorený overlay — VYNÚTENÝ full-screen cez viewport jednotky. `.kst-site-header`
   má backdrop-filter, čím sa stáva containing blockom pre position:fixed potomkov,
   takže height:100% = výška hlavičky (~92px) a videli sme len prvú položku.
   100vw/100dvh sú relatívne k viewportu, nie k hlavičke → skutočný full-screen. */
.kst-site-header .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	top: 0 !important; left: 0 !important; right: auto !important; bottom: auto !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
	max-width: none !important;
	/* Bez border-box sa k šírke 100vw pripočíta ešte vodorovný padding (2×24px)
	   → overlay je 438px na 390px displeji a stránku sa dá pri otvorenom menu
	   ťahať do strán. Namerané na iPhone 13 aj Pixel 5. */
	box-sizing: border-box !important;
	padding: clamp(4.5rem, 13vw, 6rem) 1.5rem 2rem !important;
	background: var(--wp--preset--color--surface) !important;
	overflow-y: auto;
	display: flex;
	z-index: 100000;
}
.kst-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.kst-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	text-align: left;
	gap: 0;
	width: 100%;
}
.kst-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
}
.kst-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	font-size: 1.5rem;
	font-weight: 600;
	padding: 1rem 0.25rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.kst-site-header .wp-block-navigation__responsive-container.is-menu-open a.wp-block-navigation-item__content[aria-current] {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}
/* Veľké zatváracie (X) tlačidlo vpravo hore. */
.kst-site-header .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--primary);
	padding: 10px;
	top: clamp(0.75rem, 2.5vw, 1.35rem);
	right: clamp(0.75rem, 2.5vw, 1.35rem);
}
.kst-site-header .wp-block-navigation__responsive-container-close svg {
	width: 34px; height: 34px;
}

/* ==========================================================================
   Cookie consent (CMP) — lean banner, JS v assets/js/consent.js
   ========================================================================== */
.kst-consent {
	position: fixed;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	z-index: 9999;
	max-width: 1180px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.1rem 1.5rem;
	background: var(--wp--preset--color--ink);
	color: #e9e2d2;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 14px;
	box-shadow: 0 16px 50px rgba(0, 0, 0, 0.35);
}
.kst-consent__text {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.55;
	color: #cfc7b8;
}
.kst-consent__text a {
	color: var(--wp--preset--color--gold-bright);
	text-decoration: underline;
}
.kst-consent__actions {
	display: flex;
	gap: 0.6rem;
	flex-wrap: wrap;
	justify-content: flex-end;
}
.kst-consent__btn {
	font: inherit;
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.5rem 1.1rem;
	border-radius: 8px;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.kst-consent__btn--primary {
	background: var(--wp--preset--color--gold-bright);
	color: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--gold-bright);
}
.kst-consent__btn--primary:hover,
.kst-consent__btn--primary:focus-visible {
	background: #fff;
	border-color: #fff;
}
.kst-consent__btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.4);
}
.kst-consent__btn--ghost:hover,
.kst-consent__btn--ghost:focus-visible {
	background: rgba(255, 255, 255, 0.12);
}
@media (min-width: 560px) {
	.kst-consent {
		flex-direction: row;
		align-items: center;
		gap: 1.75rem;
	}
	.kst-consent__text { flex: 1; }
	.kst-consent__actions {
		flex-shrink: 0;
	}
}

/* ==========================================================================
   REDESIGN 2026 — editoriálna vrstva (Bricolage/Instrument/Newsreader, krémová
   paleta, "blaze" značkový motív). Načítava sa NA KONCI súboru, takže pri
   zhodnej špecificite prebíja staršie navy pravidlá aj hardcoded farby v CSS
   pluginových blokov. Homepage-špecifické triedy = `.kst-hp-*`.
   ========================================================================== */

::selection { background: var(--wp--preset--color--gold-bright); color: var(--wp--preset--color--text); }
body { background: var(--wp--preset--color--background); }

/* --- "Blaze" značkový motív (bielo-farba-biela pásik ako turistická značka) -- */
.kst-blaze {
	display: inline-block; flex: none; border-radius: 3px;
	background: linear-gradient(#fff 0 34%, var(--blaze, var(--wp--preset--color--primary)) 34% 66%, #fff 66%);
	border: 1px solid rgba(35, 32, 27, 0.18);
}

/* --------------------------------------------------------------------------
   Horná lišta (util-bar) — tmavá atramentová
   -------------------------------------------------------------------------- */
.kst-utilbar { background: var(--wp--preset--color--ink); color: #e9e2d2; }
/* util-bar + hlavička zdieľajú TÚ ISTÚ šírku/odsadenie (1240 + 40px inset), nech
   dátum sedí presne nad logom a klubový deň nad menu. */
/* Vyššia špecificita (0,2,0) — pluginový blocks/util-bar/style.css definuje
   .kst-utilbar__inner (0,1,0) s 1200/16px osou a načíta sa PO téme, takže by
   inak vyhral. Týmto zdieľa util-bar PRESNE kontajner hlavičky (1240 + 32px),
   nech dátum sedí nad logom a klubový deň nad menu. */
.kst-utilbar > .kst-utilbar__inner {
	box-sizing: border-box;         /* ROOT CAUSE: pluginový inner je content-box → max-width 1240
	                                   limitoval len obsah a padding 64px sa pripočítal (reálne 1304,
	                                   ľavý okraj 68 → dátum na 100). Hlavička je border-box (okraj 100,
	                                   obsah 132). border-box zrovná os: dátum aj logo na 132. */
	max-width: calc(1176px + (2 * var(--wp--preset--spacing--40))); margin: 0 auto; padding: 7px var(--wp--preset--spacing--40);
	display: flex; justify-content: flex-end; align-items: center;
	gap: 16px; flex-wrap: wrap; font-size: 0.8125rem; letter-spacing: 0.01em;
}
.kst-utilbar__date { display: inline-flex; align-items: center; gap: 9px; font-weight: 500; color: #e9e2d2; }
.kst-utilbar__club { color: #b9b0a0; }
.kst-utilbar__club strong { color: #fff; font-weight: 600; }

/* --------------------------------------------------------------------------
   Hlavička — sticky, presklená, krémová
   -------------------------------------------------------------------------- */
.kst-site-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(244, 239, 228, 0.85);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid rgba(35, 32, 27, 0.09);
}
/* Vnútro hlavičky = ROVNAKÝ kontajner ako util-bar + sekcie (1240 + 32px inset) →
   logo sedí nad dátumom, menu je odsadené od pravého okraja (netlačí sa naň). */
.kst-site-header > .wp-block-group {
	/* Match the CONTENT axis: sections use alignwide = wideSize (1176px) + root
	   padding (spacing-40 = 16px). Header used 1240 + 32px, so logo + menu sat
	   ~16px more inset than the content grid on sub-1240 viewports. */
	max-width: calc(1176px + (2 * var(--wp--preset--spacing--40)));
	margin-inline: auto; width: 100%;
	padding: 8px var(--wp--preset--spacing--40) !important;
}
.kst-wordmark .kst-wordmark-name { font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: -0.01em; font-size: 1.625rem; }
/* Výrazné logo. Hlavička sama nesmie pridávať 25px padding (mala ho z WP default) —
   výšku drží len vnútorný group (8px). */
/* WP core `:where(.wp-block-group.has-background){padding:1.25em 2.375em}` gives
   the header ~2.375em (~42px) inline padding → its content box (the containing
   block for the inner alignwide's width) shrank, so logo/menu sat ~42px inset
   from the content grid. Zero ALL header padding; the inner group owns the axis. */
.kst-site-header { padding: 0 !important; }
/* Výrazné logo — väčšie a zámerne PREČNIEVA biely pás HORE aj DOLE (bold vzhľad,
   odľahčí menu). Negatívny margin drží výšku bieleho pásu nezmenenú a nechá
   emblém pretiecť nad util-bar aj pod spodnú linku; header má overflow:visible
   nižšie, takže sa nič neoreže. */
.kst-wordmark img { height: clamp(104px, 11vw, 160px); margin-block: -40px; }
/* WP dáva <picture> display:contents → <source> sa promoval na fantómovú flex-položku
   (0px) a gap:14px odtlačil <img> o 14px vpravo (rozbité zarovnanie s osou webu).
   display:block vráti picture ako reálny box → img sadne na ľavú os (140). */
.kst-wordmark picture { display: block; }
/* Menu položky = čistý text (ako v návrhu), žiadne výplňové „boxy". Aktívna/hover
   = len farba + tenký spodný akcent. Jedine Kontakt je plné CTA (nižšie). */
.kst-site-header .wp-block-navigation .wp-block-navigation-item__content {
	padding: 8px 4px; border-radius: 0; color: var(--wp--preset--color--text);
	font-weight: 500; border-bottom: 2px solid transparent;
	transition: color .15s, border-color .15s;
}
.kst-site-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.kst-site-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	background: transparent; color: var(--wp--preset--color--primary);
}
.kst-site-header .wp-block-navigation a.wp-block-navigation-item__content[aria-current] {
	background: transparent; color: var(--wp--preset--color--primary);
	font-weight: 700; border-bottom-color: var(--wp--preset--color--primary);
}

/* --------------------------------------------------------------------------
   Hlavička v3 — účet v util-bare (Registrácia/Prihlásenie) + prečnievajúce logo
   -------------------------------------------------------------------------- */
/* Logo smie pretiecť pás — nič sa neoreže. */
.kst-site-header, .kst-site-header__bar { overflow: visible; }

/* Účet vpravo v tmavom util-bare (len pre neprihlásených; prihlásení majú
   member-bar / admin-bar). */
.kst-utilbar__account { display: inline-flex; align-items: center; gap: 6px; }
.kst-utilbar__hi { color: #e9e2d2; font-weight: 600; }
.kst-utilbar__credit { color: #b9b0a0; }
.kst-utilbar__credit strong { color: #ffd36b; font-weight: 700; }
.kst-utilbar__link {
	color: #e9e2d2; text-decoration: none; font-weight: 600;
	padding: 3px 12px; border-radius: 999px; line-height: 1.7;
	transition: background .15s ease, color .15s ease;
}
.kst-utilbar__link:hover,
.kst-utilbar__link:focus-visible { color: #fff; background: rgba(255, 255, 255, 0.12); }
.kst-utilbar__link--login { background: var(--wp--preset--color--primary); color: #fff; }
.kst-utilbar__link--login:hover,
.kst-utilbar__link--login:focus-visible { background: var(--wp--preset--color--primary-hover, #9a4a1a); color: #fff; }

/* 7 položiek na jednom riadku — utiahni rozostup a jemne zmenši text. */
.kst-site-header .wp-block-navigation { column-gap: 2px; }
.kst-site-header .wp-block-navigation .wp-block-navigation-item__content { padding: 8px 7px; }


/* --------------------------------------------------------------------------
   HERO — rámovaný, zaoblený, scrim, prekryvné prvky
   -------------------------------------------------------------------------- */
.kst-hp-hero { position: relative; padding: 0; }
.kst-hp-hero .kst-hero {
	position: relative; border-radius: 0; overflow: hidden;
	min-height: min(82vh, 720px); display: flex; align-items: flex-end;
	box-shadow: none; background: #2a2620;
	padding: 0;
}
.kst-hp-hero .kst-hero__photo { transform: scale(1.04); }
.kst-hp-hero .kst-hero__scrim {
	position: absolute; inset: 0; z-index: 1;
	background:
		/* spodok bohatý (titulok/CTA/badge), stred číry, vrch vzdušný (obloha) */
		linear-gradient(0deg, rgba(16,14,10,.82) 0%, rgba(16,14,10,.42) 26%, rgba(16,14,10,.06) 52%, transparent 68%),
		/* ľavá os mierne tmavšia — text vľavo, ale nezatemní pravú stranu s oblohou */
		linear-gradient(90deg, rgba(16,14,10,.5) 0%, rgba(16,14,10,.16) 38%, transparent 66%),
		/* jemný vrchný nádych nad seal/toggle nech glass prvky sadnú */
		linear-gradient(180deg, rgba(16,14,10,.22) 0%, transparent 18%);
}
.kst-hp-hero .kst-hero__inner {
	position: relative; z-index: 2; width: 100%; max-width: 1240px;
	margin: 0 auto; padding: 0 32px 52px;
	display: flex; flex-direction: column; align-items: flex-start;
}
/* Bez JS (CTA sa nepresunie do obsahu) → zdvihni titulok nad prekryvné CTA,
   nech text nejde POPOD tlačidlá. S JS (.--inflow) padding späť na normál. */
.kst-hp-hero:not(:has(.kst-hp-hero__cta--inflow)) .kst-hero__inner { padding-bottom: 132px; }
.kst-hp-hero .kst-hero__eyebrow {
	display: inline-flex; align-items: center; gap: 11px;
	font-family: var(--wp--preset--font-family--accent); font-style: italic;
	font-size: 1.1875rem; font-weight: 400; color: #e7dfce;
	text-transform: none; letter-spacing: 0; margin: 0;
}
.kst-hp-hero .kst-hero__eyebrow::before {
	content: ''; width: 30px; height: 19px; border-radius: 3px; flex: none;
	background: linear-gradient(#fff 0 34%, var(--wp--preset--color--gold-bright) 34% 66%, #fff 66%);
	border: 1px solid rgba(255,255,255,.3);
}
.kst-hp-hero .kst-hero__title {
	font-family: var(--wp--preset--font-family--heading); font-weight: 800;
	font-size: clamp(3rem, 7vw, 6.5rem); line-height: 0.9; letter-spacing: -0.03em;
	margin: 16px 0 0; color: #fff; text-shadow: 0 2px 30px rgba(0,0,0,.35);
}
.kst-hp-hero .kst-hero__title { -webkit-text-fill-color: #fff; }
/* Druhý riadok ("spájajú.") — home.js zabalí text za <br> do
   .kst-hero__title-accent. Zlatú treba nastaviť AJ cez -webkit-text-fill-color,
   inak ju biely fill na .kst-hero__title (riadok vyššie) prebije → zostane biela. */
.kst-hp-hero .kst-hero__title-accent {
	color: var(--wp--preset--color--gold-bright);
	-webkit-text-fill-color: var(--wp--preset--color--gold-bright);
}

/* CTA tlačidlá. S JS ich home.js presunie DO .kst-hero__inner (trieda --inflow) →
   plynú v toku pod titulkom, žiadny prekryv. Bez JS = absolútny prekryv naspodku
   (titulok je nad ním vďaka zvýšenému padding-bottom vyššie). */
.kst-hp-hero__cta {
	position: absolute; z-index: 3; left: 0; right: 0; bottom: 0;
	max-width: 1240px; margin: 0 auto; padding: 0 32px 44px;
	display: flex; flex-wrap: wrap; gap: 14px; pointer-events: none;
}
.kst-hp-hero__cta--inflow {
	position: static; max-width: none; margin: 30px 0 0; padding: 0;
}
.kst-hp-hero__cta .wp-block-button__link { pointer-events: auto; }
.kst-hp-hero__cta .kst-btn-ghost .wp-block-button__link,
.kst-hp-hero__cta a.kst-btn-ghost {
	background: rgba(244,239,228,.12); border: 1.5px solid rgba(255,255,255,.4); color: #fff;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.kst-hp-hero__cta .kst-btn-ghost .wp-block-button__link:hover,
.kst-hp-hero__cta a.kst-btn-ghost:hover { background: rgba(244,239,228,.24); border-color: #fff; }

/* JS-injektované prekryvy (badge, toggle) — degradujú keď JS chýba */
.kst-hp-toggle {
	/* right = pravá os obsahu (1176 centrovaný) → prepínač zarovnaný s menu/pečaťou. */
	position: absolute; top: 26px; right: max(24px, calc((100% - 1176px) / 2)); z-index: 3; display: flex; gap: 5px; padding: 5px;
	border-radius: 999px; background: rgba(20,18,14,.42);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.16);
}
.kst-hp-toggle button {
	cursor: pointer; display: inline-flex; align-items: center; gap: 8px; border: none;
	font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.875rem;
	padding: 9px 16px; border-radius: 999px; background: transparent; color: #f4efe4;
	transition: background .3s, color .3s;
}
.kst-hp-toggle button[aria-pressed="true"] { background: #f4efe4; color: var(--wp--preset--color--text); }
.kst-hp-toggle button span { width: 16px; height: 11px; border-radius: 2px; border: 1px solid rgba(255,255,255,.3); }

/* Skryť pluginový SVG-mountains fallback keď je fotka (redesign chce čistý scrim) */
.kst-hp-hero .kst-hero__photo ~ .kst-hero__mountains,
.kst-hp-hero picture + .kst-hero__scrim { }

/* --------------------------------------------------------------------------
   MARQUEE pás + farebný band
   -------------------------------------------------------------------------- */
.kst-hp-band {
	height: 8px; margin-top: 0;
	background: repeating-linear-gradient(90deg,
		var(--wp--preset--color--primary) 0 16px, var(--wp--preset--color--blue) 16px 32px,
		var(--wp--preset--color--forest) 32px 48px, var(--wp--preset--color--gold-bright) 48px 64px);
	animation: kst-bandslide 6s linear infinite; background-position: 0 0;
}
.kst-hp-marquee {
	overflow: hidden; padding: 15px 0; background: var(--wp--preset--color--surface-band);
	border-bottom: 1px solid rgba(35, 32, 27, 0.08);
}
/* Stlmená mierka — pás je TEXTÚRA/ticker, nie nadpis; menší než reálne
   nadpisy sekcií pod ním (fix hierarchickej inverzie). */
.kst-hp-marquee__track {
	display: flex; width: max-content; white-space: nowrap; animation: kst-marq 40s linear infinite;
	font-family: var(--wp--preset--font-family--heading); font-weight: 700;
	font-size: clamp(1.0625rem, 1.7vw, 1.5rem); letter-spacing: -0.01em; color: var(--wp--preset--color--text);
}
.kst-hp-marquee__seg { display: inline-flex; align-items: center; gap: 22px; padding-right: 22px; }
.kst-hp-marquee__seg .kst-blaze { width: 22px; height: 14px; border-radius: 3px; }
.kst-hp-marquee__accent { color: var(--wp--preset--color--primary); }

/* --------------------------------------------------------------------------
   Úvodný box titulky (kst/titulka-obsah) — klubom editovaný panel s odkazmi
   a obrázkami hneď pod hlavičkou (náhrada zeleného boxu zo starého webu).
   Obsah je bežný blokový editor, preto sa štýluje len rám + typické prvky.
   -------------------------------------------------------------------------- */
.kst-hp-intro { max-width: 1240px; margin: 0 auto; padding: 56px 32px 0; }
.kst-hp-intro__inner {
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(35, 32, 27, 0.09);
	border-radius: 18px;
	padding: 30px 32px;
	box-shadow: 0 1px 0 rgba(35, 32, 27, 0.03);
}
.kst-hp-intro__inner > *:first-child { margin-top: 0; }
.kst-hp-intro__inner > *:last-child { margin-bottom: 0; }
.kst-hp-intro img { border-radius: 10px; height: auto; }
/* Dlaždice v boxe majú rôzne zdrojové rozmery (klubové obrázky zo starého webu)
   — zjednoť ich na rovnaký štvorec, nech riadok nevyzerá rozhádzane. */
.kst-hp-intro .wp-block-columns .wp-block-image img {
	width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
}
.kst-hp-intro figure { margin: 0; }
.kst-hp-intro figcaption {
	font-family: var(--wp--preset--font-family--heading); font-weight: 700;
	font-size: 0.9375rem; letter-spacing: 0.02em; text-align: center;
	margin-top: 8px; color: var(--wp--preset--color--text);
}
.kst-hp-intro a { color: var(--wp--preset--color--primary); }
.kst-hp-intro .wp-block-columns { gap: 18px; }
@media (max-width: 782px) {
	.kst-hp-intro { padding: 40px 20px 0; }
	.kst-hp-intro__inner { padding: 22px 20px; }
}

/* Zoznam podujatí na stránke Plán podujatí (kst/zoznam-podujati) — riadok =
   dátum vľavo, názov + fakty v strede, odkaz vpravo. Stránka okolo neho je
   bežný editovateľný obsah, blok nesie len výpis. */
.kst-plan-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.kst-plan-item {
	display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 22px;
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(35, 32, 27, 0.09); border-radius: 16px;
	padding: 20px 24px;
	transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s, border-color .25s;
}
.kst-plan-item:hover {
	transform: translateY(-2px); box-shadow: 0 18px 34px -26px rgba(35, 32, 27, 0.32);
	border-color: rgba(35, 32, 27, 0.16);
}
.kst-plan-item__date {
	margin: 0; font-family: var(--wp--preset--font-family--body);
	font-size: 0.875rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	color: var(--wp--preset--color--primary); line-height: 1.35;
}
.kst-plan-item__title {
	font-family: var(--wp--preset--font-family--heading); font-weight: 700;
	font-size: 1.1875rem; line-height: 1.2; letter-spacing: -0.01em; margin: 0;
}
.kst-plan-item__title a { color: var(--wp--preset--color--text); }
.kst-plan-item__facts { margin: 6px 0 0; font-size: 0.9rem; color: var(--wp--preset--color--text-muted); }
.kst-plan-item__more { font-weight: 600; font-size: 0.9375rem; color: var(--wp--preset--color--primary); white-space: nowrap; }
@media (max-width: 782px) {
	.kst-plan-item { grid-template-columns: 1fr; gap: 8px; padding: 18px 20px; }
	.kst-plan-item__more { justify-self: start; }
}

/* Prázdny stav (žiadne naplánované výlety) — rovnaká karta na titulke aj v
   pláne podujatí, aby hláška vyzerala a znela na oboch miestach identicky. */
.kst-empty-state {
	border: 1px dashed var(--wp--preset--color--border);
	border-radius: 18px;
	background: var(--wp--preset--color--surface);
	padding: clamp(28px, 5vw, 48px) 24px;
	text-align: center;
}
.kst-empty-state__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: clamp(1.125rem, 2.2vw, 1.5rem);
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--text);
}
.kst-empty-state__note {
	margin: 8px 0 0;
	color: var(--wp--preset--color--text-muted);
	font-size: 1rem;
}

/* --------------------------------------------------------------------------
   Sekcie — eyebrow (Newsreader italic), hlavičky
   -------------------------------------------------------------------------- */
.kst-hp-section { max-width: 1240px; margin: 0 auto; padding: 88px 32px; }
.kst-hp-eyebrow {
	font-family: var(--wp--preset--font-family--accent); font-style: italic;
	font-size: 1.1875rem; font-weight: 400; color: var(--wp--preset--color--text-muted);
	text-transform: none; letter-spacing: 0; margin: 0;
}
.kst-hp-head {
	display: flex; justify-content: space-between; align-items: flex-end;
	gap: 24px; flex-wrap: wrap; margin-bottom: 38px;
}
.kst-hp-head h2 { font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: -0.02em; margin: 8px 0 0; line-height: 1; }
.kst-hp-head__link { font-weight: 600; font-size: 1rem; color: var(--wp--preset--color--primary); }

/* --------------------------------------------------------------------------
   Karty podujatí (kst/najblizsie-pochody) — zaoblené, hover lift, sezónne chipy
   -------------------------------------------------------------------------- */
/* align-items:start → karty sú vysoké presne podľa obsahu (nie roztiahnuté na
   najvyššiu) → žiadny prázdny priestor nad „Detail". Excerpt je clampnutý na 2
   riadky, takže karty aj tak vychádzajú takmer rovnako vysoké. */
.kst-pochod-grid { display: grid; grid-template-columns: repeat(3, 1fr); align-items: start; gap: 24px; list-style: none; margin: 0; padding: 0; }
.kst-pochod-card {
	display: flex; flex-direction: column; background: var(--wp--preset--color--surface);
	border: 1px solid rgba(35, 32, 27, 0.09); border-radius: 18px; padding: 22px;
	box-shadow: 0 1px 0 rgba(35, 32, 27, 0.03); transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s, border-color .3s;
}
.kst-pochod-card:hover {
	transform: translateY(-5px); box-shadow: 0 22px 40px -26px rgba(35, 32, 27, 0.32);
	border-color: rgba(35, 32, 27, 0.16);
}
/* Prebi pluginový height:100% → karta vysoká presne podľa obsahu (žiadny rozťah
   na najvyššiu kartu → margin-top:auto pod „Detail" sa zloží, žiadna medzera). */
.kst-hp-section .kst-pochod-card { height: auto; }
/* Menej vzdušné: obsah plynie zhora (žiadny margin-bottom:auto rozťah), len
   "Detail →" je ukotvený naspodku pre zarovnaný spodok kariet. */
/* Horný riadok karty = DÁTUM (kategórie sa nezobrazujú). Dátum je nositeľ
   informácie, takže dostal akcentnú „eyebrow" typografiu s pomlčkou, nie
   sivý drobný text v rohu. */
.kst-pochod-card__date {
	display: flex; align-items: center; gap: 9px; margin: 0 0 12px;
	font-family: var(--wp--preset--font-family--body); font-style: normal;
	font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.kst-pochod-card__date::before {
	content: ''; width: 18px; height: 3px; border-radius: 2px; flex: none;
	background: currentColor;
}
.kst-pochod-card__title { font-family: var(--wp--preset--font-family--heading); font-weight: 700;
	font-size: 1.3125rem; line-height: 1.15; letter-spacing: -0.01em; margin: 0 0 10px; }
.kst-pochod-card__title a { color: var(--wp--preset--color--text); }
/* Excerpt orezaný na 2 riadky (teaser) — rôzne dlhé trasy inak naťahovali karty
   do rôznych výšok + prázdny priestor nad „Detail". */
.kst-pochod-card__excerpt {
	font-size: 0.9rem; color: var(--wp--preset--color--text-muted); line-height: 1.5; margin: 0 0 14px;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.kst-pochod-card__meta { display: flex; gap: 16px; font-size: 0.9rem; color: var(--wp--preset--color--text-muted); margin: 0 0 14px; }
.kst-pochod-card__meta strong { color: var(--wp--preset--color--text); }
.kst-pochod-card__seats { font-size: 0.85rem; font-weight: 600; color: var(--wp--preset--color--forest); margin: 0 0 12px; }
.kst-pochod-card__more { font-weight: 600; font-size: 0.9375rem; color: var(--wp--preset--color--primary); margin-top: auto; padding-top: 16px; }

/* Header hlavička sekcie s eyebrow nad h2 — zarovnanie do stĺpca */
.kst-hp-head__title { display: flex; flex-direction: column; }

/* --------------------------------------------------------------------------
   Štatistiky (count-up) — pás na zlato-krémovom podklade
   -------------------------------------------------------------------------- */
/* Plain-div kontajnery (v wp:html) sú default content-box → max-width 1240 +
   padding 64 by dalo box 1304 (posun os vľavo). border-box = 1240 total → obsah
   1176, zarovnaný s hlavičkou/sekciami (wp:group sú border-box automaticky). */
/* .kst-hp-intro (úvodný box titulky) pribudol neskôr a do tohto zoznamu sa
   nedostal — nad 1240 px šírky okna preto odskočil o (šírka-1240)/2, až o 32 px
   oproti sekcii „Najbližšie výlety" nad ním a „Ako bolo" pod ním. */
.kst-hp-stats-inner, .kst-hp-join, .kst-hp-hero .kst-hero__inner, .kst-hp-hero__cta,
.kst-hp-intro { box-sizing: border-box; }
.kst-hp-stats-wrap { background: var(--wp--preset--color--surface-sunk); }
.kst-hp-stats-inner { max-width: 1240px; margin: 0 auto; padding: 76px 32px;
	display: grid; grid-template-columns: 0.9fr 2.1fr; gap: 48px; align-items: center; }
.kst-hp-stats-intro p { font-size: 1.03rem; line-height: 1.55; color: #4a4436; margin: 14px 0 0; }
.kst-hp-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px 28px; }
.kst-hp-stat__num { font-family: var(--wp--preset--font-family--heading); font-weight: 800;
	font-size: clamp(2.5rem, 4.5vw, 3.75rem); line-height: 0.95; }
.kst-hp-stat__label { font-size: 0.84rem; color: var(--wp--preset--color--text-muted); margin-top: 6px; line-height: 1.35; }
.kst-hp-stat:nth-child(1) .kst-hp-stat__num { color: var(--wp--preset--color--primary); }
.kst-hp-stat:nth-child(2) .kst-hp-stat__num { color: var(--wp--preset--color--forest); }
.kst-hp-stat:nth-child(3) .kst-hp-stat__num { color: var(--wp--preset--color--blue); }
.kst-hp-stat:nth-child(4) .kst-hp-stat__num { color: var(--wp--preset--color--gold); }

/* --------------------------------------------------------------------------
   Foto tiles (kst/spomienky) — čistý popis POD dlaždicou (žiadny gradient/scrim
   na fotke). Scope `.kst-hp-section` + !important spoľahlivo prebije pluginový
   blok (jeho popis je absolútny biely overlay na gradiente), nech je poradie
   načítania štýlov akékoľvek.
   -------------------------------------------------------------------------- */
/* Spomienky (foto archív) — prepisuje plugin overlay-štýl na čisté karty:
   obrázok v zaoblenom ráme s CONTAINED zoomom (rám clip-uje) + počet ako badge
   na obrázku + názov pod ním. Hover = jemný lift+tieň rámu, zoom, tmavší názov. */
.kst-hp-section .kst-spomienky__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; list-style: none; margin: 0; padding: 0; }
.kst-hp-section .kst-spomienky__item { margin: 0; border-radius: 0; overflow: visible; }
.kst-hp-section .kst-spomienky__card {
	display: block; position: static !important; aspect-ratio: auto !important;
	overflow: visible !important; isolation: auto !important; border-radius: 0 !important;
	background: none !important; text-decoration: none; color: var(--wp--preset--color--text);
}
.kst-hp-section .kst-spomienky__media {
	position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden;
	background: #e4dcc9; box-shadow: 0 1px 2px rgba(35, 32, 27, .06);
	transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease;
}
.kst-hp-section .kst-spomienky__img {
	position: static !important; inset: auto !important;
	width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0;
	transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.kst-hp-section .kst-spomienky__card:hover .kst-spomienky__media {
	transform: translateY(-4px); box-shadow: 0 18px 34px -16px rgba(35, 32, 27, .45);
}
.kst-hp-section .kst-spomienky__card:hover .kst-spomienky__img { transform: scale(1.06); }
.kst-hp-section .kst-spomienky__card:focus-visible .kst-spomienky__media {
	outline: 3px solid var(--wp--preset--color--gold-bright); outline-offset: 2px;
}
/* Počet fotiek = badge v rohu obrázka (nie riadok pod). */
.kst-hp-section .kst-spomienky__count {
	position: absolute; top: 11px; right: 11px; left: auto; bottom: auto; z-index: 2;
	display: inline-flex; align-items: center; margin: 0; padding: 4px 10px;
	background: rgba(28, 25, 20, .60); color: #fff; border-radius: 999px;
	font-family: var(--wp--preset--font-family--body); font-size: 0.8125rem; font-weight: 600; line-height: 1;
	text-shadow: none; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.kst-hp-section .kst-spomienky__caption {
	position: static !important; inset: auto !important; z-index: auto;
	display: block; padding: 0 !important; margin-top: 13px;
	background: none !important; text-shadow: none !important;
	color: var(--wp--preset--color--primary) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-weight: 700; font-size: 1.125rem; line-height: 1.32; letter-spacing: -0.005em;
	transition: color .18s ease;
}
.kst-hp-section .kst-spomienky__card:hover .kst-spomienky__caption { color: var(--wp--preset--color--primary-hover) !important; }
/* Filter rokov — vyladený strip, oddelený hairline; aktívny = terracotta pilulka. */
.kst-hp-section .kst-spomienky__seasons {
	margin-top: 40px; padding-top: 26px; border-top: 1px solid var(--wp--preset--color--border);
	display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.kst-hp-section .kst-spomienky__seasons-label {
	flex: none; font-size: 0.75rem; font-weight: 700; color: var(--wp--preset--color--text-muted);
	letter-spacing: 0.14em; text-transform: uppercase; margin-right: 12px;
}
.kst-hp-section .kst-spomienky__chip {
	flex: none; padding: 7px 13px; border-radius: 999px; border: 0;
	background: transparent; font-size: 0.9375rem; font-weight: 600;
	color: var(--wp--preset--color--text-muted); text-decoration: none;
	transition: background .16s ease, color .16s ease;
}
.kst-hp-section .kst-spomienky__chip:hover {
	background: var(--wp--preset--color--primary-faint); color: var(--wp--preset--color--primary-hover);
}
.kst-hp-section .kst-spomienky__chip--active,
.kst-hp-section .kst-spomienky__chip--active:hover {
	background: var(--wp--preset--color--primary); color: #fff;
	box-shadow: 0 6px 16px -8px rgba(200, 69, 46, .7);
}

/* --------------------------------------------------------------------------
   Členstvo — krémový pás, 3 karty s číselnou "blaze" dlaždicou
   -------------------------------------------------------------------------- */
.kst-hp-join-wrap { background: var(--wp--preset--color--surface-sunk); position: relative; overflow: hidden; }
/* Topografické vrstevnice — umelecký mapový/terénny motív (hnedá), jemný, za
   obsahom. Nahradil pôvodnú schematickú skicu. */
.kst-hp-join-sketch {
	position: absolute; inset: 0; width: 100%; height: 100%;
	pointer-events: none; z-index: 0; color: #6f5836; opacity: 0.22;
	/* Fade na všetkých 4 okrajoch — vrstevnice sa plynulo rozpustia do pozadia
	   namiesto tvrdého orezania (intersect dvoch gradientov = vignette). */
	-webkit-mask-image: linear-gradient(to right, transparent, #000 9%, #000 91%, transparent), linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(to right, transparent, #000 9%, #000 91%, transparent), linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
	mask-composite: intersect;
}
@media (max-width: 700px) { .kst-hp-join-sketch { opacity: 0.14; } }
/* ── Footer top grid ──────────────────────────────────────────────────────
   WP flex-columns (%-widths + blockGap) overflowed/cramped the brand at mid
   widths — "Lokomotíva" spilled into the links column. Own grid = clean,
   predictable reflow: 4-up desktop → brand full-row + 3-up (≤1080px) →
   brand & contact full-width + 2-up nav (≤620px). */
.kst-site-footer > .wp-block-columns {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1.3fr;
	gap: 2.25rem 2.5rem;
	align-items: start;
}
.kst-site-footer > .wp-block-columns > .wp-block-column {
	flex-basis: auto !important; width: auto !important; min-width: 0;
}
@media (max-width: 1080px) {
	.kst-site-footer > .wp-block-columns { grid-template-columns: 1fr 1fr 1fr; gap: 2rem 2.25rem; }
	.kst-site-footer > .wp-block-columns > .wp-block-column:first-child { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
	.kst-site-footer > .wp-block-columns { grid-template-columns: 1fr 1fr; gap: 1.75rem 1.5rem; }
	.kst-site-footer > .wp-block-columns > .wp-block-column:first-child,
	.kst-site-footer > .wp-block-columns > .wp-block-column:last-child { grid-column: 1 / -1; }
}

/* Footer brand — klubové logo + názov. Fonty cez clamp, aby "Lokomotíva"
   plynulo škálovalo a nikdy nepretieklo (bez skokových breakpointov). */
.kst-footer-brand { display: flex; align-items: center; gap: 26px; }
.kst-footer-brand__logo { height: 160px; width: auto; display: block; flex: none; }
.kst-footer-brand__name { display: flex; flex-direction: column; min-width: 0; }
/* Cely nazov klubu jednou velkostou pisma — vyziadal klub (Kobza 2026-08-22):
   „LOKOMOTÍVA" bola dvojnasobne velka a tucna, takze z nazvu organizacie trcalo
   jedno slovo, akoby sa klub volal tak. Rovnaka velkost aj rez pre vsetky tri
   riadky; odlisuje ich uz len farba mesta. */
.kst-footer-brand__k,
.kst-footer-brand__loko,
.kst-footer-brand__city {
	font-size: clamp(1.15rem, 1.5vw, 1.5rem);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
}
.kst-footer-brand__k { color: rgba(255, 255, 255, 0.9); }
.kst-footer-brand__loko { display: block; color: #fff; margin: 2px 0; }
.kst-footer-brand__city { color: var(--wp--preset--color--gold-bright); }
@media (max-width: 620px) { .kst-footer-brand { gap: 20px; } .kst-footer-brand__logo { height: 132px; } }
/* Zúbkované rozhranie svetlá sekcia → hnedý footer v tvare siluety Vysokých
   Tatier (dominantný Kriváň). „Obloha" = rovnaká svetlá plocha ako join sekcia,
   hory = rovnaká hnedá ako footer → splynú bez švíku. */
/* Ridge "sky" (transparent area above the mountains) must match the section
   directly above the footer, else a colour seam shows. Homepage ends on the
   darker .kst-hp-join-wrap (surface-sunk); subpages sit on the lighter page
   background. Match each so the dark mountains blend in on both. */
.kst-footer-ridge { background: var(--wp--preset--color--background); line-height: 0; margin-bottom: -1px; }
.home .kst-footer-ridge { background: var(--wp--preset--color--surface-sunk); }
.kst-footer-ridge svg { display: block; width: 100%; height: clamp(56px, 7vw, 108px); }
.kst-footer-ridge path { fill: var(--wp--preset--color--text); }
.kst-hp-join { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto; padding: 88px 32px; }
.kst-hp-join__lead { max-width: 56ch; }
.kst-hp-join__lead h2 { font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: -0.02em; margin: 8px 0 16px; line-height: 1; }
.kst-hp-join__lead p { font-size: 1.06rem; line-height: 1.55; color: #4a4436; margin: 0; }
.kst-hp-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 44px; }
.kst-hp-step { background: var(--wp--preset--color--surface); border: 1px solid rgba(35,32,27,.09); border-radius: 20px; padding: 24px; }
.kst-hp-step__head { display: flex; align-items: center; gap: 15px; margin-bottom: 12px; }
.kst-hp-step__num {
	width: 42px; height: 52px; border-radius: 6px; background: #fff; flex: none;
	box-shadow: 0 8px 20px -10px rgba(35,32,27,.35); display: flex; flex-direction: column; overflow: hidden;
}
.kst-hp-step__num span { flex: 1; display: flex; align-items: center; justify-content: center;
	font-family: var(--wp--preset--font-family--heading); font-weight: 800; color: #fff; font-size: 1rem; }
.kst-hp-step:nth-child(1) .kst-hp-step__num span:nth-child(2) { background: var(--wp--preset--color--forest); }
.kst-hp-step:nth-child(2) .kst-hp-step__num span:nth-child(2) { background: var(--wp--preset--color--blue); }
.kst-hp-step:nth-child(3) .kst-hp-step__num span:nth-child(2) { background: var(--wp--preset--color--primary); }
.kst-hp-step h3 { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.1875rem; margin: 0; letter-spacing: -0.01em; line-height: 1.2; }
.kst-hp-step p { font-size: 0.9rem; line-height: 1.55; color: var(--wp--preset--color--text-muted); margin: 0; }

/* --------------------------------------------------------------------------
   Reveal-on-scroll + reduced motion
   -------------------------------------------------------------------------- */
/* Aditívne: obsah je VŽDY viditeľný (bez JS aj v reader-mode); `.in` len prehrá
   jemný nábeh. Nikdy neskrývame obsah za JS — inak by pri zlyhaní skriptu (alebo
   v ne-scrollovanom renderi) sekcie zmizli. */
[data-reveal].in { animation: kst-rise .8s cubic-bezier(.16,1,.3,1) both; }
@keyframes kst-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes kst-marq { to { transform: translateX(-50%); } }
@keyframes kst-bandslide { to { background-position: -64px 0; } }
@media (prefers-reduced-motion: reduce) {
	.kst-hp-marquee__track, .kst-hp-band { animation: none !important; }
	[data-reveal].in { animation: none !important; }
	.kst-hp-hero .kst-hero__photo { transform: none; }
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 980px) {
	.kst-hp-stats-inner { grid-template-columns: 1fr; gap: 32px; }
	.kst-hp-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
	.kst-pochod-grid { grid-template-columns: 1fr; }
	/* .kst-hp-section prefix — inak default `.kst-hp-section .kst-spomienky__grid`
	   (0,2,0) prebije túto media query (0,1,0) → grid ostal 4-stĺpcový na mobile
	   → dlaždice pretekali cez viewport (horizontálny scroll). */
	.kst-hp-section .kst-spomienky__grid { grid-template-columns: repeat(2, 1fr); }
	.kst-hp-steps { grid-template-columns: 1fr; }
	.kst-hp-hero .kst-hero__inner { padding: 0 24px 120px; }
	/* Len absolútny (bez-JS) fallback nesie vlastný inset. V --inflow stave je
	   CTA vnútri .kst-hero__inner (už má 24px) → vlastný padding by tlačidlá
	   odsadil o ďalších 24px (48px) mimo osi textu. */
	.kst-hp-hero__cta:not(.kst-hp-hero__cta--inflow) { padding: 0 24px 44px; }
}
@media (max-width: 600px) {
	.kst-hp-section { padding: 56px 20px; }
	.kst-hp-section .kst-spomienky__grid { grid-template-columns: 1fr 1fr; }
}

/* --------------------------------------------------------------------------
   Archív dokumentov — obrazový, sekciový (náhľady PDF ako karty)
   -------------------------------------------------------------------------- */
.kst-archiv { max-width: 1100px; margin: 0 auto; }
.kst-archiv__intro {
	font-size: 1.05rem; color: var(--wp--preset--color--text-muted, #6a5f4c);
	margin: 0 0 2rem; max-width: 60ch;
}
.kst-archiv__section { margin: 0 0 2.75rem; }
.kst-archiv__h {
	font-size: clamp(1.2rem, 2vw, 1.5rem); line-height: 1.2; margin: 0 0 1.1rem;
	padding-bottom: 0.5rem; border-bottom: 2px solid var(--wp--preset--color--border, #e4d9bf);
	color: var(--wp--preset--color--text, #23201b);
}
.kst-archiv__grid {
	display: grid; gap: 1.1rem;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.kst-archiv__doc {
	display: flex; flex-direction: column; text-decoration: none; color: inherit;
	background: var(--wp--preset--color--background, #fff);
	border: 1px solid var(--wp--preset--color--border, #e4d9bf);
	border-radius: 12px; overflow: hidden;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.kst-archiv__doc:hover,
.kst-archiv__doc:focus-visible {
	transform: translateY(-3px); border-color: var(--wp--preset--color--gold-bright, #e0a92e);
	box-shadow: 0 10px 24px rgba(28, 25, 20, 0.13); text-decoration: none;
}
.kst-archiv__cover {
	display: block; aspect-ratio: 3 / 4; background: #efe7d5; overflow: hidden;
	border-bottom: 1px solid var(--wp--preset--color--border, #e4d9bf);
}
.kst-archiv__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Textové/prázdne PDF → štýlová „papierová" dlaždica (naznačené riadky textu,
   ohnutý roh, PDF odznak) namiesto bielej naskenovanej strany. */
.kst-archiv__cover--doc {
	position: relative;
	background: linear-gradient(135deg, #fbf7ee 0%, #f1e7d2 100%);
}
.kst-archiv__cover--doc::before {
	content: ''; position: absolute; left: 15%; right: 15%; top: 20%; height: 48%;
	background: repeating-linear-gradient(180deg, rgba(120, 105, 80, 0.17) 0 2px, transparent 2px 12px);
	border-radius: 2px;
}
.kst-archiv__cover--doc::after {
	content: ''; position: absolute; top: 0; right: 0;
	border-width: 0 22px 22px 0; border-style: solid;
	border-color: transparent var(--wp--preset--color--border, #e4d9bf) transparent transparent;
}
.kst-archiv__badge {
	position: absolute; left: 10px; bottom: 10px;
	background: var(--wp--preset--color--primary, #b5581f); color: #fff;
	font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em;
	padding: 2px 8px; border-radius: 5px;
}
.kst-archiv__doc--paper { background: #fffdf8; }
.kst-archiv__title {
	padding: 0.7rem 0.8rem; font-size: 0.92rem; line-height: 1.3; font-weight: 600;
}
@media (max-width: 600px) {
	.kst-archiv__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Aktuality + Kontakt 2-stĺpec */

/* --- Zarovnanie obrázkov z editora ------------------------------------------
   Trieda `aligncenter` (voľba „Zarovnať na stred" v editore) v tejto téme
   nemala ŽIADNE pravidlo, takže nerobila nič — obrázok ostal vľavo bez ohľadu
   na to, čo si klub v editore vybral. Figure sa navyše zmršťuje na šírku
   obrázka (`display: table`), takže centrovanie musí ísť cez auto-okraje.
   -------------------------------------------------------------------------- */
.entry-content .wp-block-image.aligncenter,
.entry-content figure.aligncenter,
.entry-content img.aligncenter {
	display: block;
	width: fit-content;
	/* `!important` je nutné: constrained-layout pravidlá WP na rovnaké prvky
	   tiež nesú `!important`, takže bežná deklarácia sa do kaskády nedostane
	   (overené v prehliadači - bez neho ostal obrázok vľavo). */
	margin-left: auto !important;
	margin-right: auto !important;
}
.wp-block-image.alignright,
figure.alignright { margin-left: auto; margin-right: 0; }
.wp-block-image.alignleft,
figure.alignleft { margin-left: 0; margin-right: auto; }

/* --------------------------------------------------------------------------
   Galéria v obsahu stránky (core wp:gallery)
   --------------------------------------------------------------------------
   Jadrová galéria kladie popisok DOVNÚTRA fotky (absolútne, cez gradient) a
   riadky skladá flexom podľa pomeru strán — pri fotkách Domu turistiky tak
   biely text sedel na svetlej omietke a posledná fotka sa roztiahla na celú
   šírku. Klub pritom pýtal opak: „Pod fotografie dajte aj text."

   Preto: pevná mriežka dvoch stĺpcov a popisok POD fotkou.

   NEOREZÁVAME. Prvá verzia mala `aspect-ratio: 4/3` + `object-fit: cover`,
   čo dalo pekne rovnaké dlaždice — a na /ocenenia/ useklo spodok plakety aj
   diplomu, teda práve text, kvôli ktorému je ten sken na stránke. Mriežka
   preto radí dlaždice na hornú hranu a fotky si nechávajú svoj pomer strán. */

.entry-content .wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: var(--wp--preset--spacing--40, 1.5rem);
}

.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	display: flex;
	flex-direction: column;
	margin: 0;
	width: auto;
	flex-grow: 0;
	flex-basis: auto;
}

.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image img {
	/* `width: auto` (nie 100%) — inak sa malý sken roztiahne na šírku bunky.
	   Plaketa má 527px; v jednostĺpcovej galérii ju `100%` nafúklo na 880px
	   a rozmazalo. Veľké fotky bunku aj tak vyplnia, `max-width` ich zreže. */
	width: auto;
	max-width: 100%;
	height: auto;
	border-radius: 10px;
	display: block;
}

.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static;
	max-width: none;
	margin: 0;
	padding: 0.55rem 0.1rem 0;
	background: none;
	color: var(--wp--preset--color--text-muted);
	font-size: 0.875rem;
	line-height: 1.45;
	text-align: left;
	text-shadow: none;
	overflow: visible;
}

/* Rešpektuj počet stĺpcov zvolený v editore — mriežka vyššie je len default
   pre dva. Bez tohto dostala aj jednofotková galéria dva stĺpce a fotka sa
   vykreslila na polovičnú šírku. */
.entry-content .wp-block-gallery.has-nested-images.columns-1 {
	grid-template-columns: minmax(0, 1fr);
}
.entry-content .wp-block-gallery.has-nested-images.columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Zmenšený obrázok (`is-resized`) je v širokom figure — popisok sa centroval
   na celý obsahový pás, teda kus vedľa fotky. Nech sedí pod ňou.
   Zámerne LEN pre figure s popiskom: bez tejto podmienky by sa preskupili aj
   obrázky bez popisku, ktoré klub na /archiv/ už videl a odsúhlasil (odznak
   OT Lokomotíva, 320px) — a to je zmena, o ktorú tu nejde. */
.entry-content .wp-block-image.is-resized:has(figcaption) {
	width: fit-content;
}

@media (max-width: 600px) {
	.entry-content .wp-block-gallery.has-nested-images,
	.entry-content .wp-block-gallery.has-nested-images.columns-3 {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   Mobil — korekcie nájdené pri kontrole pred spustením (2026-09-21)
   -------------------------------------------------------------------------- */

/* Zraz / Doprava / Vedúci na detaile výletu drží 3 stĺpce aj na telefóne, kde
   na jeden vyjde ~110px: „Banská Bystrica, Námestie slobody" sa láme po slove
   a „zmluvným autobusom o 7:15 z Námestia slobody" má päť riadkov. Sú to vety,
   nie čísla — na úzkom displeji patria pod seba.
   `!important` je nutné: mriežku predpisuje WP layout cez `.wp-container-…`,
   čo je rovnaká špecificita a v hlavičke je to nižšie než téma. */
@media (max-width: 720px) {
	.kst-event-meta {
		grid-template-columns: 1fr !important;
		gap: 0 !important;
	}
}
@media (min-width: 721px) and (max-width: 900px) {
	.kst-event-meta {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* Tap-targety. Web je pre klub, kde väčšina členov je v dôchodkovom veku —
   odkaz vysoký 24px sa na telefóne trafí ťažko. Zväčšujeme na ~44px tam, kde
   to nerozhodí rozloženie: horný pás konta, telefóny a maily v tabuľke výboru,
   návrat z galérie. Meria sa výška DOTYKOVEJ plochy, nie písma. */
@media (max-width: 860px) {
	.kst-utilbar__link {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}
	.kst-kontakt-table td a {
		display: block;
		padding-block: 0.45rem;
	}
	.kst-galeria-archiv__back,
	.kst-galeria__back,
	.kst-hp-head__link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
	.kst-spomienky__chip {
		min-height: 40px;
		display: inline-flex;
		align-items: center;
	}

	/* Odkazy v päte sú vysoké 18px a sú tesne pod sebou — na telefóne sa
	   susedné položky trafia ľahko omylom. Rozostup je tu lacný, päta nemá
	   pevnú výšku. */
	.kst-footer-list a {
		display: inline-block;
		padding-block: 0.35rem;
	}

	/* Drobčeková navigácia v galérii (Foto album › 2026 › …). */
	.kst-galeria-archiv__crumb a {
		display: inline-block;
		padding-block: 0.35rem;
	}

	/* Telefón a mail vpísané do textu (napr. na /znackari/). `padding-block`
	   na riadkovom odkaze zväčší dotykovú plochu a NEROZTIAHNE riadkovanie. */
	.entry-content a[href^="tel:"],
	.entry-content a[href^="mailto:"] {
		padding-block: 0.4rem;
	}

	/* Telefón/mail v päte, spodný riadok päty (Ochrana údajov, Cookies…) a odkaz
	   v lište súhlasu mali 16-18px — namerané 1.10.2026 na 390px. */
	.kst-site-footer a[href^="tel:"],
	.kst-site-footer a[href^="mailto:"],
	.kst-footer-legal a,
	.kst-footer-legal button,
	.kst-footer-credit a,
	.kst-consent__text a {
		display: inline-block;
		padding-block: 0.7rem;
	}
}
