/*
 * tvk-news-center-child — vlastná vizuálna vrstva pre barbora20 (News Center 1.1.4).
 *
 * Rodič (News Center, Ascendoor) je GPL-3.0-or-later; tento súbor je náš
 * vlastný kód (tiež GPL-3.0-or-later) a je redistribuovateľný v Gite.
 *
 * Pravidlá (brand/BRAND-SPEC.md):
 *   - žiadna farba mimo 15 tokenov identity,
 *   - tyrkysová a terakota NIE sú farbou textu na svetlom podklade,
 *   - jediný textový akcent = kúpeľná modrá #0B4A74,
 *   - portály sú VŽDY svetlé (`color-scheme: light`),
 *   - logo sa nedeformuje (pomer 1200:655),
 *   - žiadny externý font (Inter je lokálny, assets/fonts/).
 *
 * Štruktúra tried je News Center (`.site-header`, `.top-header-part`,
 * `.bottom-header-part`, `.magazine-section`, `.flash-news-ticker`,
 * `.footer-widget-single` …) — NIE Kadence.
 */

/* ---------------------------------------------------------------------------
 * 1) Tokeny identity — jediný zdroj pravdy pre farby
 * ------------------------------------------------------------------------- */
:root {
	color-scheme: light;

	--tvk-primary: #0B4A74;        /* kúpeľná modrá — jediný textový akcent */
	--tvk-primary-dark: #08395B;   /* hover/aktívny stav */
	--tvk-primary-deep: #153247;   /* nadpisy (11.8:1 na krémovom) */
	--tvk-accent: #0EA6A6;         /* tyrkysová — dekorácia, focus ring */
	--tvk-accent-text: #0A6B6C;    /* tmavá tyrkysová pre text (6.01:1) */
	--tvk-accent-soft: #D6EFEE;    /* jemný tyrkysový podklad */
	--tvk-wave-pale: #C9E6E4;      /* svetlá vlna z loga */
	--tvk-bg: #FBFAF6;             /* svetlé neutrálne pozadie */
	--tvk-surface: #FFFFFF;
	--tvk-ink: #153247;
	--tvk-muted: #4A5A63;
	--tvk-border: #E2E5E4;
	--tvk-green: #609480;
	--tvk-terracotta: #C88957;
	--tvk-radius: 10px;
	--tvk-max: 1180px;
	--tvk-thumb-ratio: 56.25%;     /* 16:9 = pomer ilustrácií korpusu */

	/* Prepis vlastných premenných News Center na tokeny identity.
	   Deklarácia je v :root (nie v body), aby mala rovnakú silu ako tmavý
	   blok rodiča `@media (prefers-color-scheme: dark) :root { … }`.
	   Ten blok je v style.css rodiča, ktorý sa načíta PRED našim CSS —
	   rovnaká špecificita + neskoršie poradie = naša hodnota vyhráva.
	   Preto tu vypisujeme VŠETKY premenné, ktoré rodič vypisuje v tmavom
	   variante (inak by v tmavom režime zostali cudzie). */
	--clr-background: var(--tvk-bg);
	--clr-foreground: var(--tvk-ink);
	--clr-sub-background: var(--tvk-surface);
	--clr-sub-border: var(--tvk-border);
	--light-bg-color: #EEF4F7;
	--text-color-normal: var(--tvk-ink);

	--body-bg: var(--tvk-bg);
	--primary-color: var(--tvk-primary);
	--header-text-color: var(--tvk-primary);
	--theme-color: var(--tvk-primary);
	--t-color: var(--tvk-primary);
	--text-color-dark: var(--tvk-primary-deep);
	--text-color-light: var(--tvk-muted);
	--border-color: var(--tvk-border);
	--footer-bg-color: var(--tvk-primary-deep);
	--footer-text-color: #E8EEF2;
	--footer-border-color: #2A313F;

	/* Rodič si cez Google Fonts načítal Rubik/Oxygen/Volkhov. My používame
	   LOKÁLNY Inter (assets/fonts, @font-face v tvk-brand.css) — žiadny
	   externý request, žiadne posielanie IP návštevníkov tretej strane. */
	--font-main: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-heading: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

body {
	background-color: var(--tvk-bg);
	color: var(--tvk-ink);
	font-family: var(--font-main);
	-webkit-font-smoothing: antialiased;
}

/* ---------------------------------------------------------------------------
 * 2) Preloader — dekoračný, NESMIE blokovať obsah
 *    Rodič ho skrýva cez jQuery po 1 s. Pri chybe JS by prekryl celú stránku
 *    bielym fixným panelom → obsah by nebol čitateľný. Vypíname ho CSS-om.
 * ------------------------------------------------------------------------- */
#loader {
	display: none !important;
}

/* ---------------------------------------------------------------------------
 * 3) Hlavička
 * ------------------------------------------------------------------------- */
.site-header {
	background: var(--tvk-surface);
	border-bottom: 3px solid var(--tvk-primary);
}

/* Horná lišta (News Center ju kreslí, keď je theme mod zapnutý) */
.top-header-part {
	background: var(--tvk-primary-deep);
	color: #E8EEF2;
	font-size: .875rem;
}
.top-header-part a,
.top-header-part .social-links a { color: #FFFFFF; }
.top-header-part a:hover { color: var(--tvk-accent); }
.top-header-part .date-wrap { display: inline-flex; align-items: center; gap: .4rem; }

/* Stredná časť: logo + názov */
.middle-header-part {
	background: var(--tvk-surface);
	padding: 1.25rem 0;
}
.site-branding { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.site-logo img,
.custom-logo {
	max-height: 64px;         /* logo sa nedeformuje — iba sa zmenší */
	width: auto;
}
.site-title {
	font-size: 1.375rem;
	font-weight: 700;
	margin: 0;
	color: var(--tvk-primary-deep);
}
.site-title a { color: var(--tvk-primary-deep); text-decoration: none; }
.site-description { margin: .2rem 0 0; color: var(--tvk-muted); font-size: .9375rem; }

/* Spodná časť: navigácia + vyhľadávanie */
.bottom-header-part { background: var(--tvk-surface); }
.navigation-part .main-navigation ul { list-style: none; margin: 0; padding: 0; }
.navigation-part .main-navigation li { position: relative; }
.navigation-part .main-navigation a {
	display: block;
	padding: .85rem 1rem;
	color: var(--tvk-ink);
	font-weight: 600;
	text-decoration: none;
}
.navigation-part .main-navigation a:hover,
.navigation-part .main-navigation .current-menu-item > a {
	color: var(--tvk-primary);
	box-shadow: inset 0 -3px 0 var(--tvk-primary);
}
.navigation-part .main-navigation .sub-menu {
	background: var(--tvk-surface);
	border: 1px solid var(--tvk-border);
	border-radius: var(--tvk-radius);
	box-shadow: 0 6px 18px rgba(21, 50, 71, .10);
	padding: .4rem 0;
}
.navigation-part .main-navigation .sub-menu a { padding: .5rem 1rem; font-weight: 500; }

/* Mobilné menu — tlačidlo má viditeľný kontrast */
.menu-toggle { border: 1px solid var(--tvk-border); border-radius: 6px; background: transparent; }
.menu-toggle span { background: var(--tvk-ink); }
.header-search-icon { color: var(--tvk-ink); }
.header-search-form { background: var(--tvk-surface); }

/* ---------------------------------------------------------------------------
 * 4) Flash news ticker (natívny News Center)
 * ------------------------------------------------------------------------- */
.flash-news-ticker {
	background: var(--tvk-primary-deep);
	color: #FFFFFF;
	border-bottom: 3px solid var(--tvk-accent);
}
.flash-news-ticker .flash-title {
	color: #FFFFFF;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.flash-news-ticker .marquee,
.flash-news-ticker .flash-news-part { color: #FFFFFF; }
.flash-news-ticker a { color: #FFFFFF; text-decoration: underline; }
.flash-news-ticker a:hover { color: var(--tvk-accent); }
.flash-news-ticker .flash-loader span {
	background: var(--tvk-accent);
}

/* ---------------------------------------------------------------------------
 * 5) Banner a magazínové sekcie
 * ------------------------------------------------------------------------- */
.banner-section { background: var(--tvk-surface); }
.banner-section .banner-slider,
.banner-section .banner-grid-section { border-radius: var(--tvk-radius); overflow: hidden; }

.magazine-section,
.main-widget-section,
.above-footer-widgets-section {
	background: var(--tvk-bg);
}
.magazine-section .section-header .section-title,
.main-widget-section .section-title,
.above-footer-widgets-section .section-title {
	color: var(--tvk-primary-deep);
	font-weight: 700;
}
.magazine-section .mag-view-all-link { color: var(--tvk-primary); font-weight: 600; }
.magazine-section .mag-view-all-link:hover { color: var(--tvk-primary-dark); }

.mag-post-single {
	background: var(--tvk-surface);
	border: 1px solid var(--tvk-border);
	border-radius: var(--tvk-radius);
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(21, 50, 71, .05);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.mag-post-single:hover {
	border-color: var(--tvk-primary);
	box-shadow: 0 4px 14px rgba(11, 74, 116, .12);
}
.mag-post-img img,
.mag-post-single img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}
.mag-post-detail { padding: .9rem 1rem 1.1rem; }
.mag-post-title,
.mag-post-title a { color: var(--tvk-primary-deep); }
.mag-post-title a:hover { color: var(--tvk-primary); }
.mag-post-category a {
	display: inline-block;
	background: var(--tvk-accent-soft);
	color: var(--tvk-primary-deep);
	border-radius: 999px;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: .2em .75em;
	text-decoration: none;
}
.mag-post-meta { color: var(--tvk-muted); font-size: .8125rem; }

/* ---------------------------------------------------------------------------
 * 6) Článok (single), výpis, komentáre
 * ------------------------------------------------------------------------- */
.entry-title { color: var(--tvk-primary-deep); font-weight: 700; }
.entry-content { color: var(--tvk-ink); }
.entry-content a { color: var(--tvk-primary); }
.entry-content > p:first-of-type { font-size: 1.125rem; color: var(--tvk-muted); line-height: 1.6; }
.entry-meta, .posted-on, .byline { color: var(--tvk-muted); font-size: .875rem; }
.post-thumbnail img { width: 100%; height: auto; border-radius: var(--tvk-radius); }

.comment-list .comment,
.comment-respond {
	background: var(--tvk-surface);
	border: 1px solid var(--tvk-border);
	border-radius: var(--tvk-radius);
	padding: 1rem;
	margin-bottom: 1rem;
}
.comment-awaiting-moderation {
	color: var(--tvk-accent-text);
	font-weight: 600;
	background: var(--tvk-accent-soft);
	padding: .2em .6em;
	border-radius: 6px;
}

/* ---------------------------------------------------------------------------
 * 7) Pätička
 * ------------------------------------------------------------------------- */
.site-footer {
	background: var(--tvk-primary-deep);
	color: #E8EEF2;
}
.site-footer a { color: #FFFFFF; text-decoration: underline; text-underline-offset: .18em; }
.site-footer a:hover { color: var(--tvk-accent); }
.site-footer .widget-title,
.footer-widget-single h6 { color: #FFFFFF; }
.site-footer .widget ul { list-style: none; padding-left: 0; }
.site-footer form.search-form { display: flex; gap: .5rem; flex-wrap: wrap; }
.site-footer form.search-form input[type="search"] {
	flex: 1 1 10rem;
	min-width: 0;
	background: var(--tvk-surface);
	color: var(--tvk-ink);
	border: 1px solid var(--tvk-border);
	border-radius: var(--tvk-radius);
	padding: .55rem .8rem;
}
.site-footer form.search-form input[type="submit"] {
	background: var(--tvk-accent-soft);
	color: var(--tvk-ink);
	border: 1px solid var(--tvk-accent);
	border-radius: var(--tvk-radius);
	padding: .55rem 1rem;
	font-weight: 600;
	cursor: pointer;
}

/* ---------------------------------------------------------------------------
 * 8) Odkazy, tlačidlá, focus
 * ------------------------------------------------------------------------- */
a { color: var(--tvk-primary); text-underline-offset: .18em; }
a:hover, a:focus { color: var(--tvk-primary-dark); }
:focus-visible {
	outline: 3px solid var(--tvk-accent);
	outline-offset: 2px;
	border-radius: 3px;
}
.wp-block-button__link,
.wp-block-search__button,
input[type="submit"],
button.submit {
	background-color: var(--tvk-primary);
	border-color: var(--tvk-primary);
	color: #FFFFFF;
	border-radius: 999px;
	padding: .7em 1.4em;
	font-weight: 600;
	cursor: pointer;
}
.wp-block-button__link:hover,
input[type="submit"]:hover { background-color: var(--tvk-primary-dark); border-color: var(--tvk-primary-dark); }

/* ---------------------------------------------------------------------------
 * 9) Hero titulky (vlastný obsah domovskej stránky)
 * ------------------------------------------------------------------------- */
.tvk-front-content {
	max-width: var(--tvk-max);
	margin: 0 auto;
	padding: 2.5rem 1.25rem 1.5rem;
}
.tvk-front-hero {
	background: var(--tvk-surface);
	border: 1px solid var(--tvk-border);
	border-left: 4px solid var(--tvk-primary);
	border-radius: var(--tvk-radius);
	padding: 2rem 1.75rem;
}
.tvk-front-hero__title {
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	line-height: 1.1;
	letter-spacing: -.02em;
	color: var(--tvk-primary-deep);
	margin: 0 0 1rem;
}
.tvk-front-hero__perex {
	font-size: 1.125rem;
	color: var(--tvk-muted);
	line-height: 1.6;
	max-width: 60ch;
	margin: 0 0 1.25rem;
}
.tvk-front-hero__note {
	font-size: .875rem;
	color: var(--tvk-muted);
	border-top: 1px solid var(--tvk-border);
	padding-top: .75rem;
	margin: 1.25rem 0 0;
}

/* ---------------------------------------------------------------------------
 * 10) Responzivita — 360 px až 1440 px bez vodorovného scrollu
 * ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.magazine-section .magazine-grid-section-wrapper,
	.main-widget-section-wrap { grid-template-columns: 1fr !important; }
}
@media (max-width: 782px) {
	.site-logo img, .custom-logo { max-height: 48px; }
	.site-title { font-size: 1.15rem; }
	.mag-post-detail { padding: .7rem .8rem 1rem; }
}
@media (max-width: 480px) {
	.top-header-part { font-size: .8125rem; }
	.navigation-part .main-navigation a { padding: .7rem .8rem; }
}

/* ---------------------------------------------------------------------------
 * 11) Pohyb — rešpektujeme prefers-reduced-motion
 * ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
	.mag-post-single { transition: none; }
}
