/* ============================================================
   kn-nadaska.css  —  jednotný štýl webu Katarína Nádaská
   Nahráva sa na  /user/documents/upload/kn-nadaska.css  (kódovanie UTF-8)
   a načítava v <head> šablóny cez <link>. Font Caveat + tento súbor:
     <link href="https://fonts.googleapis.com/css2?family=Caveat:wght@700&display=swap" rel="stylesheet">
     <link href="/user/documents/upload/kn-nadaska.css?v=1" rel="stylesheet">
   Pri každej zmene zvýš ?v=1 na ?v=2 atď.
   ============================================================ */
/* =========================================
   1. TYPOGRAFIA A GLOBÁLNE POZADIE
   ========================================= */
h1, h2, .welcome .h1, .banner-title, .homepage-group-title, .site-name .header__title, #footer h3, .footer h3, .pageElement__heading span {
    font-family: 'Caveat', cursive !important;
    text-transform: none !important;
}
/* Caveat má vysoké dotiahy a bez rezervy sa názov obchodu v hlavičke oreže */
.site-name, .site-name a, .site-name .header__title, .header__title, .site-name span {
    line-height: 1.5 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
}
body, html, #wrapper, .wrapper, .site-wrapper,#header, .header-top, .header-bottom, .navigation-window, #navigation, .navigation-wrapper, .overlay, .mobile-nav, .menu-mobile, .navigation-in, .navigation-in.menu, .menu-level-1, ul.menu-level-1, .navigationActions {
    background-color: #FDFBF7 !important;
}
/* Bodkovaná textúra papiera – spojitá cez celý web (predtým len na obsahových blokoch) */
body {
    background-image: radial-gradient(#E8E3D8 1px, transparent 1px) !important;
    background-size: 25px 25px !important;
}
/* =========================================
   2. TRANSPARENTNÉ BLOKY A ČISTENIE
   ========================================= */
#content, .content-wrapper, .site-wrapper #content, .products-page, .type-detail .product-detail, #products, .products-block,.product, .p-in, .p-in-in, .p .image, .p-bottom, .contact-box {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
}
.product, .contact-box {
    box-shadow: none !important;
}
.product {
    padding: 10px !important;
}
/* =========================================
   3. KARTY PRODUKTOV
   ========================================= */
.p {
    background-color: #FDFBF7 !important;
    border: 1px solid #E8E3D8 !important;
    padding: 15px !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02) !important;
    transition: all 0.3s ease !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}
.p:hover {
    border-color: #D4AF37 !important;
    box-shadow: 0 8px 25px rgba(139, 21, 26, 0.08) !important;
    transform: translateY(-3px);
}
.p-bottom {
    margin-top: auto !important;
}
/* =========================================
   4. TLAČIDLÁ, ŠTÍTKY A HOVER EFEKTY
   ========================================= */
.btn-conversion, .btn-conversion:hover, .btn-primary, .btn-primary:hover, .add-to-cart-button, .add-to-cart-button:hover, .type-detail .cart-inner .add-to-cart button, .type-detail .cart-inner .add-to-cart button:hover, .btn-cart, .btn-cart:hover {
    color: #FDFBF7 !important;
}
/* Kroky objednávky: krúžok aktívneho/hotového kroku farbí Shoptet natívne sekundárnou
   farbou (#8B151A), číslo (::before) ale dedí tmavý text → tmavé na tmavom */
.cart-header :is(.active, .completed) > :is(a, strong)::before {
    color: #FDFBF7 !important;
}
/* Dostupnosť: pôvodná zlatá #D4AF37 mala na svetlom kontrast ~2,1:1 (nečitateľné) */
.availability.in-stock, .availability-label.in-stock, .availability span {
    color: #7D6115 !important;
}
/* =========================================
   5. PÄTIČKA - HLAVNÁ ČASŤ
   ========================================= */
/* Pozadie len na samotnej pätičke – vnútorný .custom-footer je natívne priehľadný.
   Šum + svetlejšia zlatá v mieste bloku Kontakt (vľavo) = vyšší kontrast textu. */
#footer, .footer {
    background-color: #D4AF37 !important;
    background-image: var(--kn-noise), radial-gradient(ellipse 60% 95% at 27% 42%, #E9CB66 0%, rgba(233, 203, 102, 0) 70%) !important;
    color: #2b2b2b !important;
    border-top: 1px dashed rgba(139, 21, 26, 0.55) !important;
}
#footer h3, .footer h3, .pageElement__heading span {
    color: #8B151A !important;
    font-size: 32px !important;
}
#footer a, .footer a, .contact-box a, .contact-box .tel a {
    color: #2b2b2b !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    transition: color 0.3s ease !important;
}
#footer a:hover, .footer a:hover, .contact-box a:hover {
    color: #8B151A !important;
}

/* Dokumenty v pätičke – odkazy ako tlačidlá.
   Selektory musia byť zanorené pod #footer / .footer: pravidlá vyššie sú viazané
   na ID, takže samotné `.kn-footer-legal a` by prehrali a odkaz by ostal sivý,
   na hover červený na červenom. */
.kn-footer-legal {
    font-size: 17px;
    line-height: 1.7;
}
.kn-footer-legal ul { list-style: none; padding: 0; margin: 0; }
.kn-footer-legal li { margin-bottom: 14px; }
.kn-footer-legal h3,
#footer .kn-footer-legal h3,
.footer .kn-footer-legal h3 {
    font-size: 42px !important;
    margin: 0 0 20px !important;
    border: none !important;
}
.kn-footer-legal a,
#footer .kn-footer-legal a,
.footer .kn-footer-legal a {
    display: inline-block;
    padding: 10px 18px;
    font-size: 18px;
    color: #8B151A !important;
    border: 1px solid #8B151A;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}
.kn-footer-legal a:hover,
.kn-footer-legal a:focus-visible,
#footer .kn-footer-legal a:hover,
#footer .kn-footer-legal a:focus-visible,
.footer .kn-footer-legal a:hover,
.footer .kn-footer-legal a:focus-visible {
    background-color: #8B151A;
    color: #FDFBF7 !important;
}
.kn-footer-legal a:focus-visible { outline: 3px solid #2b2b2b; outline-offset: 3px; }

/* Kontakt v pätičke – rovnaký dôvod zanorenia pod #footer ako pri .kn-footer-legal */
.kn-footer-contact {
    font-size: 17px;
    line-height: 1.7;
}
.kn-footer-contact ul { list-style: none; padding: 0; margin: 0; }
.kn-footer-contact li { margin-bottom: 22px; }
.kn-footer-contact strong,
#footer .kn-footer-contact strong,
.footer .kn-footer-contact strong {
    display: block;
    margin-bottom: 4px;
    font-size: 18px;
    color: #8B151A !important;
}
.kn-footer-contact h3,
#footer .kn-footer-contact h3,
.footer .kn-footer-contact h3 {
    font-size: 42px !important;
    margin: 0 0 20px !important;
    border: none !important;
}
.kn-footer-contact a,
#footer .kn-footer-contact a,
.footer .kn-footer-contact a {
    border-bottom: 1px solid transparent;
    transition: color 0.3s ease, border-color 0.3s ease !important;
}
.kn-footer-contact a:hover,
.kn-footer-contact a:focus-visible,
#footer .kn-footer-contact a:hover,
#footer .kn-footer-contact a:focus-visible,
.footer .kn-footer-contact a:hover,
.footer .kn-footer-contact a:focus-visible {
    color: #8B151A !important;
    border-bottom-color: #8B151A;
}
/* =========================================
   6. PÄTIČKA - SPODNÝ PÁSIK A VÝNIMKY
   ========================================= */
.footer-bottom {
    background-color: #8B151A !important;
    border-top: none !important;
    color: #FDFBF7 !important;
    padding: 15px 0 !important;
}
.footer-bottom a, .footer-bottom .copyright, .footer-bottom .copyright strong {
    color: #D4AF37 !important;
    font-weight: normal !important;
}
.footer-bottom a:hover {
    color: #FDFBF7 !important;
}
#signature, #signature a {
    color: #D4AF37 !important;
    opacity: 0.8 !important;
    transition: all 0.3s ease !important;
}
#signature a:hover {
    color: #FDFBF7 !important;
    opacity: 1 !important;
}
/* Cookies odkaz – zosvetlená oranžová kvôli čitateľnosti na tmavočervenej */
#footer .footer-bottom .copyright a.cookies-settings,#footer .footer-bottom a.js-cookies-settings {
    color: #F0B968 !important;
    text-decoration: none !important;
    font-weight: normal !important;
    transition: color 0.3s ease !important;
}
#footer .footer-bottom .copyright a.cookies-settings:hover,#footer .footer-bottom a.js-cookies-settings:hover {
    color: #FDFBF7 !important;
    text-decoration: underline !important;
}

/* ============================================================
   7. KN BASE  —  spoločný štýl obsahových stránok K. Nádaskej
   ------------------------------------------------------------
   NUTNÁ SÚČASŤ WEBU. Stránky titulná / o-mne / knihy / prednášky
   / médiá / galéria používajú výhradne triedy .kn-* a nemajú
   vlastný <style>. Zmena vzhľadu = zmena tu, na jednom mieste.
   ============================================================ */
:root {
    --kn-red: #8B151A;
    --kn-red-dark: #6E1015;
    --kn-gold: #D4AF37;      /* len dekorácia + text na tmavom */
    --kn-gold-ink: #7D6115;  /* zlatkastý text na papieri (kontrast ~5,6:1) */
    --kn-paper: #FDFBF7;
    --kn-line: #E8E3D8;
    --kn-ink: #2B2B2B;
    --kn-ink-soft: #4A4A4A;
    /* čičmiansky „baraní rožok“ – namiesto dingbatov; drobný má menej závitov,
       aby sa pri 18 px nezlial do fľaku */
    --kn-orn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 L21.5 12 L12 21.5 L2.5 12 Z M5.6 12 L12 7 L16 12 L12 15 L10 13' fill='none' stroke='%238B151A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --kn-orn-zlaty: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 L21.5 12 L12 21.5 L2.5 12 Z M5.6 12 L12 7 L16 12 L12 15 L10 13' fill='none' stroke='%237D6115' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --kn-orn-rozok: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 L21.5 12 L12 21.5 L2.5 12 Z M5 12 L12 6.4 L16.6 12 L12 15.6 L9.2 12 L12 9.8' fill='none' stroke='%238B151A' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --kn-orn-svetly: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 L21.5 12 L12 21.5 L2.5 12 Z M5 12 L12 6.4 L16.6 12 L12 15.6 L9.2 12 L12 9.8' fill='none' stroke='%23FDFBF7' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    /* čičmiansky motív „divé kľučky“ – klikatina s bodkami, dlaždica 48x28 */
    --kn-cicmany: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='28' viewBox='0 0 48 28'%3E%3Cg fill='none' stroke='%238B151A' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 22 L12 6 L24 22 L36 6 L48 22' stroke-width='2'/%3E%3Cpath d='M12 18 v0.1 M36 18 v0.1 M0 11 v0.1 M24 11 v0.1 M48 11 v0.1' stroke-width='3.4'/%3E%3C/g%3E%3C/svg%3E");
    /* jemný šum (pätička) – tmavohnedé zrno, krytie rieši alfa v matici */
    --kn-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .22 0 0 0 0 .04 0 0 0 .38 -.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    /* silueta netopiera (podstránka témy vampirizmus) */
    --kn-netopier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32'%3E%3Cpath d='M32 12c-1-3-2-4-3-3-1-2-3-2-4 0-4-4-13-5-23 0 7 1 10 5 11 9 3-3 8-3 11 0 2-2 5-2 6 1l2 4 2-4c1-3 4-3 6-1 3-3 8-3 11 0 1-4 4-8 11-9-10-5-19-4-23 0-1-2-3-2-4 0-1-1-2 0-3 3z' fill='%23080305'/%3E%3C/svg%3E");
    /* motívy tematických hlavičiek podstránky termínu (.kn-event-hero--<téma>) */
    --kn-vlocka: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23FDFBF7' stroke-width='1.2' stroke-linecap='round'%3E%3Cg id='a'%3E%3Cpath d='M12 1v22M9.6 3.4 12 5.8l2.4-2.4M9.6 20.6 12 18.2l2.4 2.4'/%3E%3C/g%3E%3Cuse xlink:href='%23a' transform='rotate(60 12 12)'/%3E%3Cuse xlink:href='%23a' transform='rotate(120 12 12)'/%3E%3C/g%3E%3C/svg%3E");
    --kn-hviezda: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1l2.9 7.6L23 9l-6.3 5 2.2 8-6.9-4.5L5.1 22l2.2-8L1 9l8.1-.4z' fill='%23E9CB66'/%3E%3C/svg%3E");
    --kn-cili: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 32'%3E%3Cpath d='M9 10c4-3 9-2 11 2 3 6 8 12 18 17-12 3-23-2-28-10-2-3-2-6-1-9z' fill='%23E9CB66'/%3E%3Cpath d='M6 12c-1-3 1-5 4-5s5 2 4 4' fill='none' stroke='%23E9CB66' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M8 7c-1-3 0-5 3-6' fill='none' stroke='%23E9CB66' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
    --kn-bylinka: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 48'%3E%3Cg fill='%23E9CB66'%3E%3Cpath d='M16 47C16 30 15 15 17 1' fill='none' stroke='%23E9CB66' stroke-width='1.4'/%3E%3Cpath d='M16 39c-6-1-10-5-11-10 6 0 10 4 11 10zm0 0c6-1 10-5 11-10-6 0-10 4-11 10zM16 27c-5-1-8-4-9-8 5 0 8 3 9 8zm0 0c5-1 8-4 9-8-5 0-8 3-9 8zM16.5 15c-4-1-6-3-7-6 4 0 6 2 7 6zm0 0c4-1 6-3 7-6-4 0-6 2-7 6z'/%3E%3C/g%3E%3C/svg%3E");
    --kn-srdce: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21C5 15 2 11.5 2 8a5 5 0 0 1 10-1 5 5 0 0 1 10 1c0 3.5-3 7-10 13z' fill='none' stroke='%23F2B8C2' stroke-width='1.3' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='11.5' r='1.7' fill='%23F2B8C2'/%3E%3C/svg%3E");
    --kn-mesiac: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M21 3a13 13 0 1 0 9 21A11 11 0 1 1 21 3z' fill='%23EADBA8'/%3E%3C/svg%3E");
    --kn-zastavky: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 40'%3E%3Cpath d='M0 4q60 20 120 0' fill='none' stroke='%23E9CB66' stroke-width='1' opacity='.7'/%3E%3Cpath d='M0 4.7h20L10 27z' fill='%23E9CB66'/%3E%3Cpath d='M30 7.7h20L40 31z' fill='%23FDFBF7'/%3E%3Cpath d='M60 8.8h20L70 32z' fill='%23E9CB66'/%3E%3Cpath d='M90 7.3h20l-10 23z' fill='%23FDFBF7'/%3E%3C/svg%3E");
    --kn-metla: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32'%3E%3Cpath d='M3 27 44 11' fill='none' stroke='%23E9CB66' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M42 12l9-6 12 1-7 4 7 3-11 2 6 3-12-1z' fill='%23E9CB66'/%3E%3C/svg%3E");
    --kn-cicmany-svetly: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='28' viewBox='0 0 48 28'%3E%3Cg fill='none' stroke='%23FDFBF7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 22 L12 6 L24 22 L36 6 L48 22' stroke-width='2'/%3E%3Cpath d='M12 18 v0.1 M36 18 v0.1 M0 11 v0.1 M24 11 v0.1 M48 11 v0.1' stroke-width='3.4'/%3E%3C/g%3E%3C/svg%3E");
}

/* --- stránka a kontajner --- */
.kn-page {
    color: var(--kn-ink) !important;
    line-height: 1.8;
    overflow-x: hidden;
}
.kn-page *, .kn-page *::before, .kn-page *::after { box-sizing: border-box; }
.kn-page img { max-width: 100%; height: auto; }
.kn-wrap {
    margin: 0 auto;
    padding: 0 20px;
}
.kn-wrap--narrow { max-width: 900px; }
.kn-page [hidden] { display: none !important; }

/* Šírka obsahu = globálny .container šablóny (hlavička, pätička): 972 / 1178 / 1418 px
   od 992 / 1200 / 1440 px. Podstránky aj úvodný blok vkladá Shoptet do užšieho
   .container-narrow (1178 px), preto bol obsah na desktope odsadený od hlavičky.
   .kn-page sa roztiahne sama (rodič je vždy centrovaný, stačí okraj
   (100 % − cieľ) / 2) – nezávisí od tried šablóny. #content-wrapper sa rozširuje
   len kvôli omrvinkám; ak ho Shoptet premenuje, posunú sa iba omrvinky.
   Pod 992 px (mobil) bez zmeny. */
@media (min-width: 992px) {
    :root { --kn-site: 972px; }
    #content-wrapper:has(.kn-page) { width: var(--kn-site) !important; }
    .kn-page { margin-inline: calc((100% - var(--kn-site) + 40px) / 2); }
    .kn-wrap { padding: 0; }
}
@media (min-width: 1200px) { :root { --kn-site: 1178px; } }
@media (min-width: 1440px) { :root { --kn-site: 1418px; } }

/* Shoptet vypisuje názov stránky ako vlastný čierny <h1> pod omrvinkami;
   stránky .kn-page majú vlastný nadpis v .kn-head, omrvinky ostávajú. */
article > header:has(~ * > .kn-page) { display: none !important; }

/* --- ornamentálny predel --- */
.kn-rule {
    text-align: center;
    line-height: 1;             /* riadkový box = výška rozety, pás sa trafí presne na stred */
    margin: 44px 0;
    position: relative;
}
.kn-rule::before {
    content: '';
    position: absolute;
    top: 50%; left: 8%; right: 8%;
    height: 28px;
    margin-top: -14px;
    background-image: var(--kn-cicmany);
    background-repeat: repeat-x;
    background-position: center;
    opacity: 0.3;
}
.kn-rule span {
    position: relative;
    display: inline-block;
    width: 76px;
    height: 30px;
    vertical-align: middle;
    background: var(--kn-orn-rozok) center / 26px 26px no-repeat, var(--kn-paper);
}

/* --- hlavička sekcie --- */
.kn-head {
    text-align: center;
    padding: 60px 0 26px;
}
.kn-eyebrow {
    display: inline-block;
    color: var(--kn-gold-ink) !important;
    text-transform: uppercase;
    letter-spacing: 4px;
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 16px;
    padding-bottom: 5px;
    border-bottom: 1px solid var(--kn-gold);
}
.kn-head h1 {
    color: var(--kn-red) !important;
    font-size: clamp(38px, 5.5vw, 58px) !important;
    line-height: 1.1 !important;
    margin: 0 auto 18px !important;
    font-weight: 700 !important;
}
.kn-lead {
    max-width: 760px;
    margin: 0 auto !important;
    font-size: 19px !important;
    color: var(--kn-ink-soft) !important;
    font-style: italic;
}

/* --- HERO (len titulná) --- */
.kn-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 50px;
    padding: 72px 0 52px;
}
.kn-hero__text { flex: 1 1 520px; }
.kn-hero__text .kn-eyebrow { margin-bottom: 14px; }
.kn-hero__text h1 {
    color: var(--kn-red) !important;
    font-size: clamp(38px, 5.5vw, 58px) !important;
    line-height: 1.08 !important;
    margin: 0 0 22px !important;
    font-weight: 700 !important;
}
.kn-hero__text p {
    margin: 0 !important;
    font-size: 19px !important;
    color: var(--kn-ink-soft) !important;
    font-style: italic;
    /* baraní rožok pred mottom namiesto zvislej čiary; 7 px = (riadok 34 px − 20 px) / 2 */
    padding-left: 32px;
    background: var(--kn-orn-rozok) 0 7px / 20px 20px no-repeat;
}
.kn-hero__media {
    flex: 1 1 360px;
    text-align: center;
}
.kn-hero__media img {
    width: 100%;
    max-width: 460px;
    display: block;
    margin: 0 auto;
    /* fotka je priehľadný výrez – žiadny rám ani tieň, len jemný podklad */
    filter: drop-shadow(0 18px 28px rgba(139,21,26,0.18));
}

/* --- faktografický / citátový pás --- */
.kn-band {
    position: relative;
    background-color: var(--kn-red) !important;
    color: var(--kn-paper) !important;
    text-align: center;
    padding: 64px 20px 62px;
    margin: 44px 0 56px;
}
.kn-band p {
    max-width: 900px;
    margin: 0 auto !important;
    font-size: clamp(19px, 2.6vw, 26px) !important;
    line-height: 1.55 !important;
    font-style: italic;
}
.kn-band__note {
    display: block;
    margin-top: 18px;
    color: var(--kn-gold) !important;
    font-size: 15px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-style: normal;
}
.kn-band a {
    display: inline-block;
    margin-top: 16px;
    color: var(--kn-gold) !important;
    font-style: normal;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.kn-band a:hover { color: var(--kn-paper) !important; }

/* --- pás štatistík (fakty z CV) --- */
.kn-stats {
    position: relative;
    background-color: var(--kn-red) !important;
    color: var(--kn-paper) !important;
    margin: 44px 0 56px;
    padding: 62px 20px;
}
.kn-stats__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 18px 10px;
    text-align: center;
}
.kn-stats__num {
    display: block;
    color: var(--kn-gold) !important;
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 700;
    line-height: 1;
}
.kn-stats__label {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--kn-paper) !important;
    opacity: 0.9;
}

/* --- dvojstĺpec (text + panel) --- */
.kn-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
    margin-bottom: 72px;
}
.kn-split__text h2 {
    margin: 0 0 22px !important;
    color: var(--kn-red) !important;
    font-size: 34px !important;
}
.kn-split__text p {
    margin-bottom: 18px !important;
    font-size: 17px !important;
    color: #333 !important;
    text-align: justify;
}
.kn-split__text p strong { color: var(--kn-red) !important; }

/* --- panel (biely box so zlatým/červeným akcentom) --- */
.kn-panel {
    position: relative;
    background: #fff;
    border: 1px solid var(--kn-line);
    box-shadow: 0 15px 30px rgba(0,0,0,0.05);
    padding: 38px;
    border-radius: 4px;
}
.kn-panel__title {
    margin: 0 0 20px !important;
    color: var(--kn-gold-ink) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.kn-panel ul { list-style: none !important; padding: 0; margin: 0; }
.kn-panel li, .kn-list li, .kn-awards li { background: none !important; list-style: none !important; }
.kn-panel li::marker, .kn-list li::marker, .kn-awards li::marker { content: '' !important; }
.kn-panel li {
    position: relative;
    padding: 0 0 14px 28px;
    margin-bottom: 14px;
    font-size: 16px;
    color: var(--kn-ink) !important;
    border-bottom: 1px solid #F0EEE8;
}
.kn-panel li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.kn-panel li::before {
    content: '' !important;     /* šablóna Shoptetu vkladá do li::before vlastnú ikonu */
    position: absolute;
    left: 0; top: 0;
    width: 18px;
    height: 1.8em;              /* = riadkovanie, ornament sadne na os prvého riadku */
    background: var(--kn-orn) left center / 18px 18px no-repeat !important;
}
.kn-panel > p {
    margin: 0;
    font-size: 16px;
    color: #333 !important;
    text-align: justify;
}
.kn-panel > p em { color: var(--kn-red); font-style: italic; }

/* --- textové bloky (o-mne) --- */
.kn-prose { margin-bottom: 46px; }
.kn-prose h2 {
    margin: 0 0 22px !important;
    color: var(--kn-red) !important;
    font-size: 34px !important;
    border-bottom: 1px dashed var(--kn-gold);
    padding-bottom: 12px !important;
}
.kn-prose p {
    margin-bottom: 18px !important;
    font-size: 17px !important;
    color: #333 !important;
    text-align: justify;
}
.kn-prose p strong { color: var(--kn-red) !important; font-weight: 600; }
.kn-list { list-style: none !important; padding: 0; margin: 0 0 26px; }
.kn-list li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 12px;
    font-size: 16px;
}
.kn-list li::before {
    content: '' !important;
    position: absolute; left: 0; top: 0;
    width: 18px;
    height: 1.8em;
    background: var(--kn-orn-zlaty) left center / 18px 18px no-repeat !important;
}
.kn-awards { list-style: none !important; padding: 0; margin: 0; }
.kn-awards li {
    position: relative;
    padding-left: 34px;
    margin-bottom: 16px;
    font-size: 17px;
    line-height: 1.5;
}
.kn-awards li::before {
    content: '' !important;
    position: absolute; left: 0; top: 0;
    width: 20px;
    height: 1.5em;              /* .kn-awards li má line-height 1.5 */
    background: var(--kn-orn-zlaty) left center / 20px 20px no-repeat !important;
}
.kn-sign {
    margin: 34px 0 0;
    text-align: left;
}
.kn-sign img { max-width: 300px; width: 60%; height: auto; }

/* --- rovnaký nadpis mriežky na všetkých stránkach --- */
.kn-section-title {
    text-align: center;
    color: var(--kn-red) !important;
    font-size: 36px !important;
    font-weight: 700 !important;
    margin: 0 0 44px !important;
}

/* --- veľký banner (titulná → kalendár prednášok) --- */
.kn-banner {
    display: block;
    position: relative;
    text-align: center;
    text-decoration: none !important;
    background-color: var(--kn-red) !important;
    color: var(--kn-paper) !important;
    padding: 58px 28px 54px;
    margin: 0 0 44px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
/* červené pásy (banner, citát, štatistiky): čičmiansky vzor hore a dole
   namiesto dvojitej zlatej čiary */
.kn-banner::before, .kn-banner::after,
.kn-band::before, .kn-band::after,
.kn-stats::before, .kn-stats::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 28px;
    background-image: var(--kn-cicmany-svetly);
    background-repeat: repeat-x;
    background-position: center;
    opacity: 0.4;
}
.kn-banner::before, .kn-band::before, .kn-stats::before { top: 10px; }
.kn-banner::after, .kn-band::after, .kn-stats::after { bottom: 10px; transform: scaleY(-1); }
.kn-banner__eyebrow {
    display: block;
    color: var(--kn-gold) !important;
    text-transform: uppercase;
    letter-spacing: 4px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
}
.kn-banner__title {
    display: block;
    font-family: 'Caveat', cursive;
    font-size: clamp(42px, 6vw, 66px);
    line-height: 1.1;
    color: var(--kn-paper) !important;
    margin-bottom: 12px;
}
.kn-banner__text {
    display: block;
    max-width: 620px;
    margin: 0 auto 22px;
    font-size: 17px;
    font-style: italic;
}
.kn-banner__cta {
    display: inline-block;
    border: 1px solid var(--kn-gold);
    padding: 11px 26px;
    color: var(--kn-gold) !important;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 13px;
    font-weight: 700;
    transition: background 0.25s ease, color 0.25s ease;
}
.kn-banner:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 34px rgba(139, 21, 26, 0.28) !important;
}
.kn-banner:hover .kn-banner__cta { background: var(--kn-gold); color: var(--kn-red-dark) !important; }
.kn-banner:focus-visible { outline: 3px solid var(--kn-red); outline-offset: 4px; }

/* --- univerzálna mriežka kariet --- */
.kn-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 24px;
    margin-bottom: 72px;
}
.kn-grid--4 { grid-template-columns: repeat(4, 1fr); }
.kn-grid--3 { grid-template-columns: repeat(3, 1fr); }

/* --- karta (rázcestník, podujatie) – zladená s .p produktovou kartou --- */
.kn-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--kn-paper) !important;
    border: 1px solid var(--kn-line) !important;
    border-radius: 6px;
    padding: 36px 24px !important;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02) !important;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
/* zlaté rohy – aj na .kn-panel (namiesto hrubého červeného okraja vľavo) */
.kn-card::before, .kn-card::after,
.kn-panel::before, .kn-panel::after {
    content: '';
    position: absolute;
    width: 18px; height: 18px;
    border: 2px solid transparent;
    transition: border-color 0.3s ease;
    pointer-events: none;
}
.kn-card::before, .kn-panel::before { top: 9px; left: 9px; border-top-color: var(--kn-gold); border-left-color: var(--kn-gold); }
.kn-card::after, .kn-panel::after { bottom: 9px; right: 9px; border-bottom-color: var(--kn-gold); border-right-color: var(--kn-gold); }
.kn-card__icon {
    display: block;
    width: 24px;
    height: 24px;
    margin: 0 auto 16px;
    background: var(--kn-orn-rozok) center / 24px 24px no-repeat;
}
.kn-card__date {
    display: inline-block;
    vertical-align: middle;
    margin: 0 10px 12px 0;
    color: var(--kn-gold-ink) !important;
    font-weight: 700;
    letter-spacing: 2px;
    font-size: 15px;
}
.kn-card h3 {
    margin: 0 0 14px !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    border-bottom: 1px dashed var(--kn-gold);
    padding-bottom: 14px;
}
.kn-card p {
    flex-grow: 1;
    margin: 0 0 22px !important;
    color: #555 !important;
    font-size: 15px !important;
}
.kn-card .kn-arrow {
    display: block;
    color: var(--kn-gold-ink) !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 13px !important;
}
/* celá karta klikateľná: odkaz v nadpise sa roztiahne cez .kn-card */
.kn-cardlink {
    color: var(--kn-red) !important;
    text-decoration: none !important;
}
.kn-cardlink::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}
.kn-card:hover {
    transform: translateY(-3px);
    border-color: var(--kn-gold) !important;
    box-shadow: 0 8px 25px rgba(139, 21, 26, 0.08) !important;
}
.kn-cardlink:focus-visible { outline: 3px solid var(--kn-red); outline-offset: 4px; }
.kn-card:has(.kn-cardlink:focus-visible) {
    outline: 3px solid var(--kn-red);
    outline-offset: 3px;
}
.kn-card:has(.kn-cardlink:focus-visible) .kn-cardlink:focus-visible { outline: none; }
/* karta bez odkazu (napr. „Predaj čoskoro“) */
.kn-card__soon { color: var(--kn-ink-soft) !important; }
/* „Vstupenky“ na karte termínu = vlastný odkaz na predpredaj, nad odkazom karty (tá vedie na podstránku) */
.kn-card a.kn-arrow--buy {
    position: relative;
    z-index: 2;
    align-self: center;
    margin: -8px 0;
    padding: 8px 14px;
    color: var(--kn-red) !important;
    text-decoration: none !important;
    border-bottom: 1px dashed var(--kn-gold);
}
.kn-card a.kn-arrow--buy:hover { color: var(--kn-red-dark) !important; border-bottom-style: solid; }
.kn-card a.kn-arrow--buy:focus-visible { outline: 3px solid var(--kn-red); outline-offset: 2px; }
/* mesto – hlavný orientačný údaj na karte podujatia */
.kn-card__city {
    display: inline-block;
    vertical-align: middle;
    margin: 0 0 12px;
    padding: 4px 14px;
    background: var(--kn-red);
    color: var(--kn-paper) !important;
    border-radius: 999px;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 1px;
}
.kn-card__venue { font-weight: 600; }

/* --- responzívne video --- */
.kn-video {
    background: #111;
    text-align: center;
    padding: 56px 20px 60px;
}
.kn-video h2 { color: var(--kn-gold) !important; font-size: clamp(36px, 4vw, 50px) !important; line-height: 1.15 !important; margin: 0 0 20px !important; }
.kn-video p { color: var(--kn-paper) !important; font-size: 18px !important; margin: -8px 0 28px !important; font-style: italic; }
/* video má vypĺňať väčšinu čierneho pásu (pás = šírka webu 1378 px), 1040 px = 585 px na výšku */
.kn-video__frame {
    position: relative;
    height: 0;
    padding-bottom: 56.25%;
    max-width: 1040px;
    margin: 0 auto;
    border: 1px solid var(--kn-gold);
    box-shadow: 0 0 50px rgba(212, 175, 55, 0.2);
}
.kn-video__frame iframe {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    border: 0;
}
.kn-video--light {
    background: transparent;
    padding: 20px 0 0;
}
/* titulná: video je posledné pred pätičkou */
.kn-video--light:last-child { padding-bottom: 72px; }
.kn-video--light h2 { color: var(--kn-red) !important; font-size: 34px !important; }
.kn-video--light p { color: var(--kn-ink-soft) !important; }
.kn-video--light .kn-video__frame { border-color: var(--kn-red); box-shadow: 0 18px 40px rgba(0,0,0,0.12); }

/* --- knihy --- */
.kn-books { display: flex; flex-direction: column; gap: 32px; margin-bottom: 72px; }
.kn-book {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 38px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--kn-line);
    border-radius: 6px;
    padding: 28px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.03);
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.kn-book:hover {
    transform: translateY(-3px);
    border-color: var(--kn-gold);
    box-shadow: 0 10px 25px rgba(139, 21, 26, 0.08);
}
.kn-book__info { min-width: 0; }
.kn-book__cover { text-align: center; }
.kn-book__cover img {
    width: 100%;
    max-width: 190px;
    border-radius: 4px;
    box-shadow: 0 8px 18px rgba(0,0,0,0.15);
}
.kn-book__title {
    margin: 0 0 14px !important;
    color: var(--kn-red) !important;
    font-size: 28px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}
.kn-book__meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 15px;
    color: #777;
}
.kn-book__meta strong { color: #444; }
.kn-book__desc {
    margin: 16px 0 0;
    font-size: 15px;
    color: var(--kn-ink-soft);
    line-height: 1.7;
}

/* --- prednášky: filter tém (kn-prednasky.js) --- */
.kn-topics {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 8px;
    margin: -22px 0 30px;
}
.kn-topics__btn {
    background: var(--kn-paper);
    border: 1px solid var(--kn-line);
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--kn-red) !important;
    cursor: pointer;
    transition: all 0.25s ease;
}
.kn-topics__btn:hover { border-color: var(--kn-gold); }
.kn-topics__btn[aria-pressed="true"] {
    background: var(--kn-red);
    border-color: var(--kn-red);
    color: var(--kn-paper) !important;
}
.kn-event { /* JS hook pre filter tém (kn-prednasky.js) */ }
.kn-event--past { opacity: 0.55; }
.kn-event--hidden { display: none !important; }
.kn-empty {
    text-align: center;
    color: var(--kn-ink-soft) !important;
    font-style: italic;
    margin: 0 0 72px;
}
/* uplynulé termíny – zbalené pod nadchádzajúcimi */
.kn-past { margin: 0 0 72px; }
.kn-past > .kn-grid { margin-bottom: 0; }
.kn-past__toggle {
    display: block;
    width: fit-content;
    margin: 0 auto 32px;
    padding: 9px 22px;
    border: 1px dashed var(--kn-gold);
    border-radius: 999px;
    list-style: none;
    cursor: pointer;
    color: var(--kn-red) !important;
    font-weight: 600;
    font-size: 15px;
    transition: border-color 0.25s ease;
}
.kn-past__toggle::-webkit-details-marker { display: none; }
.kn-past__toggle::after {
    content: '';
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform 0.25s ease;
}
.kn-past[open] .kn-past__toggle::after { transform: translateY(1px) rotate(-135deg); }
.kn-past__toggle:hover { border-color: var(--kn-red); }
.kn-past__toggle:focus-visible { outline: 3px solid var(--kn-red); outline-offset: 3px; }
.kn-past__count { color: var(--kn-ink-soft) !important; font-weight: 400; }

/* --- médiá --- */
.kn-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 28px;
    margin-bottom: 72px;
}
.kn-media {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--kn-paper) !important;
    border: 1px solid var(--kn-line) !important;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.kn-media__thumb {
    position: relative;
    height: 0;
    padding-bottom: 56.25%;
    overflow: hidden;
    background: #111;
}
.kn-media__thumb img {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.kn-media__thumb::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 0; height: 0;
    border-left: 26px solid rgba(255,255,255,0.88);
    border-top: 16px solid transparent;
    border-bottom: 16px solid transparent;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.5));
    transition: border-left-color 0.3s ease;
}
.kn-media__thumb--audio {
    background: var(--kn-red);
}
.kn-media__thumb--audio::after {
    border: 0;
    width: 44px; height: 44px;
    background: var(--kn-orn-svetly) center / 44px 44px no-repeat;
    filter: none;
}
.kn-media__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    padding: 20px;
}
.kn-media__tag {
    display: block;
    margin-bottom: 10px;
    color: var(--kn-gold-ink) !important;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.kn-media__tag--dark { color: var(--kn-red) !important; }
.kn-media__title {
    margin: 0 0 14px !important;
    color: var(--kn-red) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    transition: color 0.3s ease;
}
.kn-media__link { text-decoration: none !important; }
.kn-media__link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.kn-media .kn-arrow {
    margin-top: auto;
    color: var(--kn-gold-ink) !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 12px !important;
}
.kn-media:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(139, 21, 26, 0.12) !important; }
.kn-media:hover .kn-media__thumb img { transform: scale(1.05); }
.kn-media:hover .kn-media__title { color: var(--kn-gold-ink) !important; }
.kn-media__link:focus-visible { outline: 3px solid var(--kn-red); outline-offset: 4px; }
.kn-media:has(.kn-media__link:focus-visible) { outline: 3px solid var(--kn-red); outline-offset: 3px; }
.kn-media:has(.kn-media__link:focus-visible) .kn-media__link:focus-visible { outline: none; }

/* --- galéria --- */
.kn-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 32px 24px;
    margin-bottom: 56px;
}
.kn-gallery__item {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--kn-paper) !important;
    border: 1px solid var(--kn-line) !important;
    padding: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.kn-gallery__item::before, .kn-gallery__item::after {
    content: '';
    position: absolute;
    width: 14px; height: 14px;
    border: 2px solid transparent;
    pointer-events: none;
    z-index: 3;
}
.kn-gallery__item::before { top: 4px; left: 4px; border-top-color: var(--kn-gold); border-left-color: var(--kn-gold); }
.kn-gallery__item::after { bottom: 4px; right: 4px; border-bottom-color: var(--kn-gold); border-right-color: var(--kn-gold); }
.kn-figure {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
    cursor: zoom-in;
    background: #fff;
}
.kn-figure img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease, filter 0.4s ease;
}
.kn-gallery__item--cutout .kn-figure { background: #F4F1EA; }
.kn-gallery__item--cutout .kn-figure img { object-fit: contain; padding: 8px; }
.kn-figure::after {
    content: 'Zv\00E4\010D\0161i\0165';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(139, 21, 26, 0.88);
    color: var(--kn-gold);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 9px 18px;
    border: 1px solid var(--kn-gold);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}
.kn-gallery__caption {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 14px 6px 6px;
    font-size: 14px;
    line-height: 1.4;
    color: var(--kn-ink) !important;
}
.kn-gallery__item:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(139, 21, 26, 0.12) !important; }
.kn-gallery__item:hover .kn-figure img { transform: scale(1.06); filter: brightness(0.62); }
.kn-gallery__item:hover .kn-figure::after { opacity: 1; }
.kn-figure:focus-visible { outline: 3px solid var(--kn-red); outline-offset: 3px; }

/* --- lightbox --- */
#kn-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(17, 17, 17, 0.95);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 40px 20px;
}
#kn-lightbox.is-open { display: flex; }
#kn-lightbox img {
    max-width: 90vw;
    max-height: 78vh;
    object-fit: contain;
    border: 1px solid var(--kn-gold);
    box-shadow: 0 0 40px rgba(0,0,0,0.8);
    background: #fff;
}
#kn-lightbox .kn-lb-cap {
    margin-top: 14px;
    max-width: 800px;
    text-align: center;
    color: var(--kn-paper);
    font-style: italic;
    font-size: 15px;
}
.kn-lb-btn {
    position: absolute;
    background: none;
    border: 0;
    color: var(--kn-gold);
    font-size: 42px;
    line-height: 1;
    cursor: pointer;
    padding: 10px;
    transition: color 0.2s ease;
}
.kn-lb-btn:hover, .kn-lb-btn:focus-visible { color: var(--kn-paper); }
.kn-lb-close { top: 14px; right: 20px; }
.kn-lb-prev { left: 12px; top: 50%; transform: translateY(-50%); }
.kn-lb-next { right: 12px; top: 50%; transform: translateY(-50%); }

/* --- prepojenie stránok (pätka obsahu) --- */
.kn-pagenav {
    border-top: 1px solid var(--kn-line);
    margin-top: 24px;
    padding: 34px 20px 8px;
    text-align: center;
}
.kn-pagenav h2 {
    color: var(--kn-red) !important;
    font-size: 26px !important;
    margin: 0 0 16px !important;
}
.kn-pagenav a {
    display: inline-block;
    margin: 6px 8px;
    color: var(--kn-red) !important;
    text-decoration: none !important;
    font-weight: 600;
    border-bottom: 1px dashed var(--kn-gold);
    padding-bottom: 2px;
    transition: color 0.2s ease;
}
.kn-pagenav a:hover { color: var(--kn-gold-ink) !important; }

/* --- rozbaľovacie menu pod „Prednášky“ v hlavnom menu (kn-menu.js, len desktop) --- */
/* 1. úroveň .kn-submenu = témy, 2. úroveň .kn-submenu__terms = termíny témy (po najazdení na tému).
   Panel je vedľa #navigation (to má overflow: hidden), polohu mu nastavuje skript. */
.kn-submenu,
.kn-submenu__terms {
    display: none;
    position: absolute;
    z-index: 1002;
    width: max-content;
    margin: 0 !important;
    padding: 8px 0 !important;
    list-style: none !important;
    background: var(--kn-paper);
    border: 1px solid var(--kn-line);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
    text-align: left;
}
.kn-submenu { min-width: 260px; max-width: 400px; border-top-color: var(--kn-gold); }
.kn-submenu--open { display: block; }
.kn-submenu li { position: relative; margin: 0 !important; padding: 0 !important; }
.kn-submenu a {
    display: block;
    padding: 10px 22px;
    color: var(--kn-ink) !important;
    font-size: 15px;
    line-height: 1.35;
    text-decoration: none !important;
}
.kn-submenu a:hover, .kn-submenu a:focus-visible,
.kn-submenu__topic:hover > a, .kn-submenu__topic:focus-within > a {
    background: #F6F1E7;
    color: var(--kn-red) !important;
    outline: none;
}
.kn-submenu__all > a {
    margin-bottom: 6px;
    padding-bottom: 12px;
    border-bottom: 1px dashed var(--kn-line);
    color: var(--kn-red) !important;
    font-weight: 700;
}
/* šípka = téma má ďalšiu úroveň */
.kn-submenu__topic > a { padding-right: 40px; }
.kn-submenu__topic > a::after {
    content: '';
    position: absolute;
    right: 20px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-top: 1.5px solid var(--kn-gold-ink);
    border-right: 1.5px solid var(--kn-gold-ink);
    transform: translateY(-50%) rotate(45deg);
}
/* termíny sa otvárajú vedľa témy v jej výške; pri dlhom zozname sa dajú posúvať */
.kn-submenu__terms {
    top: -9px;
    left: 100%;
    min-width: 230px;
    max-height: max(220px, calc(100vh - 320px));
    overflow-y: auto;
}
.kn-submenu--left .kn-submenu__terms { left: auto; right: 100%; }
.kn-submenu__topic:hover > .kn-submenu__terms,
.kn-submenu__topic:focus-within > .kn-submenu__terms { display: block; }
.kn-submenu__terms a { padding: 8px 22px; white-space: nowrap; }
.kn-submenu__date {
    display: inline-block;
    min-width: 74px;
    color: var(--kn-gold-ink);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.5px;
}

/* --- podstránka termínu (/prednaska?termin=…, kn-prednaska.js) --- */
/* banner z Affinity namiesto hlavičky; .kn-event-hero nižšie ostáva pre termíny bez bannera */
.kn-event-banner { display: block; margin-top: 28px; }
.kn-event-banner img { display: block; width: 100%; height: auto; }
.kn-event-banner:focus-visible { outline: 3px solid var(--kn-gold); outline-offset: 3px; }
.kn-sr {
    position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* hlavička = HTML verzia tmavého bannera z FB reklamy, aby človek po kliknutí videl to isté */
.kn-event-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    margin-top: 28px;
    min-height: 520px;
    overflow: hidden;
    color: var(--kn-paper) !important;
    /* žiara za fotkou: tvar a farby sú premenné – téma mení farby, mobil tvar */
    --kn-hero-shape: ellipse 70% 90% at 80% 45%;
    --kn-hero-stops: #A31C22 0%, var(--kn-red) 40%, #5E0C10 100%;
    background: var(--kn-noise), radial-gradient(var(--kn-hero-shape), var(--kn-hero-stops));
}
.kn-event-hero::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 28px;
    background: var(--kn-cicmany-svetly) left center / 48px 28px repeat-x;
    opacity: 0.18;
}
.kn-event-hero__text { position: relative; z-index: 1; max-width: 720px; padding: 60px 40px 64px 64px; }
.kn-event-hero .kn-eyebrow { color: var(--kn-gold) !important; border-bottom-color: rgba(212, 175, 55, 0.6); }
.kn-event-hero h1 {
    color: var(--kn-paper) !important;
    font-size: clamp(52px, 7vw, 96px) !important;
    line-height: 0.95 !important;
    margin: 18px 0 30px !important;
    text-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
}
.kn-event-hero__when {
    margin: 0 !important;
    color: var(--kn-paper) !important;
    font-size: clamp(24px, 2.8vw, 34px) !important;
    font-weight: 700;
    line-height: 1.25 !important;
}
.kn-event-hero__when span { font-weight: 400; }
.kn-event-hero__where {
    margin: 6px 0 34px !important;
    color: var(--kn-gold) !important;
    font-size: 20px !important;
    line-height: 1.5 !important;
}
.kn-buy {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--kn-gold);
    color: var(--kn-red-dark) !important;
    text-decoration: none !important;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 19px 34px 18px;
    transition: background 0.2s ease, transform 0.2s ease;
}
.kn-buy:hover { background: #E2C257; transform: translateY(-2px); }
.kn-buy:focus-visible { outline: 3px solid var(--kn-paper); outline-offset: 3px; }
.kn-buy--off, .kn-buy--off:hover { background: transparent; border: 1px solid var(--kn-gold); color: var(--kn-gold) !important; transform: none; }
/* z-index: na mobile má fotka order: -1 a bez neho by sa vykreslila pod dekoráciou */
.kn-event-hero__photo { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: center; }
/* foto-11 je priehľadný výrez postavy (pomer 2 : 3), hore má ~9 % voľného miesta */
.kn-event-hero__photo img { display: block; width: 100%; max-width: 400px; }
/* tematické pozadie hlavičky – trieda .kn-event-hero--<kľúč témy>, dekorácia v .kn-event-hero__decor */
.kn-event-hero__decor { position: absolute; inset: 0; pointer-events: none; }
/* vampirizmus: noc prechádzajúca do bordovej za fotkou,
   mesiac, netopiere, hmla pri spodnej hrane */
.kn-event-hero--vampirizmus {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #8E1A1E 0%, #4A0A0E 42%, #16070A 78%, #0B0406 100%;
}
.kn-event-hero--vampirizmus::after { opacity: 0.1; }
.kn-event-hero--vampirizmus .kn-event-hero__decor {
    background:
        var(--kn-netopier) 62% 9% / 62px auto no-repeat,
        var(--kn-netopier) 70% 34% / 36px auto no-repeat,
        var(--kn-netopier) 60% 30% / 24px auto no-repeat,
        var(--kn-netopier) 97% 6% / 30px auto no-repeat,
        radial-gradient(circle at 70% 16%, #F6ECCB 0, #EADBA8 46px, rgba(234, 219, 168, 0.35) 49px, rgba(234, 219, 168, 0.08) 90px, transparent 150px),
        linear-gradient(to top, rgba(22, 7, 10, 0.85) 0, transparent 110px);
}
.kn-event-hero--vampirizmus .kn-eyebrow { color: #E4D3A0 !important; border-bottom-color: rgba(228, 211, 160, 0.5); }
.kn-event-hero--vampirizmus .kn-event-hero__where { color: #E4D3A0 !important; }
/* stridžie dni, Advent, Vianoce: zimná noc, sneh, betlehemská hviezda */
.kn-event-hero--stridzie {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #7E1A22 0%, #3A1224 36%, #141B30 70%, #0A0F1E 100%;
}
.kn-event-hero--stridzie .kn-event-hero__decor {
    background:
        var(--kn-hviezda) 64% 12% / 34px auto no-repeat,
        var(--kn-vlocka) 54% 30% / 30px auto no-repeat,
        var(--kn-vlocka) 70% 44% / 18px auto no-repeat,
        var(--kn-vlocka) 96% 12% / 22px auto no-repeat,
        radial-gradient(circle at 64% 12%, rgba(233, 203, 102, 0.3) 0, transparent 70px),
        radial-gradient(circle, rgba(253, 251, 247, 0.45) 0 1.5px, transparent 2px) 0 0 / 71px 113px,
        radial-gradient(circle, rgba(253, 251, 247, 0.3) 0 1px, transparent 1.5px) 23px 31px / 41px 37px,
        radial-gradient(circle, rgba(253, 251, 247, 0.4) 0 1.2px, transparent 1.7px) 51px 13px / 97px 83px,
        linear-gradient(to top, rgba(10, 15, 30, 0.8) 0, transparent 110px);
}
/* strašidlá a bytosti: les v hmle, bludičky, oči v tme */
.kn-event-hero--strasidla {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #7A1A1C 0%, #3B1712 36%, #13201A 72%, #080E0B 100%;
}
.kn-event-hero--strasidla .kn-event-hero__decor {
    background:
        radial-gradient(circle at 58% 24%, #E8F07A 0 2.5px, rgba(200, 225, 90, 0.35) 4px, transparent 9px),
        radial-gradient(circle at calc(58% + 16px) 24%, #E8F07A 0 2.5px, rgba(200, 225, 90, 0.35) 4px, transparent 9px),
        radial-gradient(circle at 66% 62%, rgba(214, 236, 150, 0.9) 0 3px, rgba(190, 220, 120, 0.25) 6px, transparent 26px),
        radial-gradient(circle at 51% 48%, rgba(214, 236, 150, 0.7) 0 2px, rgba(190, 220, 120, 0.2) 5px, transparent 20px),
        radial-gradient(circle at 94% 18%, rgba(214, 236, 150, 0.7) 0 2px, rgba(190, 220, 120, 0.2) 5px, transparent 20px),
        radial-gradient(ellipse 45% 12% at 20% 84%, rgba(190, 205, 185, 0.16), transparent),
        radial-gradient(ellipse 40% 10% at 62% 74%, rgba(190, 205, 185, 0.12), transparent),
        linear-gradient(to top, rgba(8, 14, 11, 0.85) 0, transparent 120px);
}
/* afrodiziaká v kuchyni: teplé korenie, paprička, bylinky */
.kn-event-hero--afrodiziaka {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #A3261C 0%, #6E1A12 40%, #3E1409 76%, #2A0F07 100%;
}
.kn-event-hero--afrodiziaka .kn-event-hero__decor {
    background:
        var(--kn-cili) 60% 12% / 60px auto no-repeat,
        var(--kn-bylinka) 69% 36% / 30px auto no-repeat,
        var(--kn-cili) 55% 52% / 34px auto no-repeat,
        var(--kn-bylinka) 97% 8% / 22px auto no-repeat,
        radial-gradient(ellipse 55% 40% at 8% 100%, rgba(214, 140, 44, 0.32), transparent),
        linear-gradient(to top, rgba(42, 15, 7, 0.8) 0, transparent 110px);
}
.kn-event-hero--afrodiziaka .kn-event-hero__decor { opacity: 0.85; }
/* bosorky: sépiová noc, žiara ohňa a iskry (ako kresba bosorky pri kotli) */
.kn-event-hero--bosorky {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #8A2616 0%, #4E2410 40%, #21150A 76%, #130C05 100%;
}
.kn-event-hero--bosorky .kn-event-hero__decor {
    background:
        radial-gradient(circle at 60% 46%, rgba(242, 196, 110, 0.8) 0 1.6px, transparent 2.2px),
        radial-gradient(circle at 64% 28%, rgba(242, 196, 110, 0.55) 0 1.3px, transparent 1.9px),
        radial-gradient(circle at 57% 16%, rgba(242, 196, 110, 0.35) 0 1.1px, transparent 1.7px),
        radial-gradient(circle at 52% 66%, rgba(242, 196, 110, 0.7) 0 1.4px, transparent 2px),
        radial-gradient(circle at 22% 80%, rgba(242, 196, 110, 0.9) 0 1.8px, transparent 2.4px),
        radial-gradient(circle at 34% 72%, rgba(242, 196, 110, 0.7) 0 1.4px, transparent 2px),
        radial-gradient(circle at 28% 62%, rgba(242, 196, 110, 0.5) 0 1.2px, transparent 1.8px),
        radial-gradient(circle at 41% 84%, rgba(242, 196, 110, 0.8) 0 1.6px, transparent 2.2px),
        radial-gradient(circle at 15% 70%, rgba(242, 196, 110, 0.5) 0 1.2px, transparent 1.8px),
        radial-gradient(ellipse 60% 42% at 30% 108%, rgba(230, 140, 50, 0.45), transparent),
        linear-gradient(to top, rgba(19, 12, 5, 0.7) 0, transparent 110px);
}
/* ľúbostná mágia: ruža a karmín, ľudové srdiečka (ako výšivka na blúzke) */
.kn-event-hero--lubostna-magia {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #A8182C 0%, #6E0E24 40%, #3C0818 78%, #25040F 100%;
}
.kn-event-hero--lubostna-magia .kn-event-hero__decor {
    background:
        var(--kn-srdce) 60% 12% / 46px auto no-repeat,
        var(--kn-srdce) 69% 32% / 26px auto no-repeat,
        var(--kn-srdce) 54% 40% / 18px auto no-repeat,
        var(--kn-srdce) 96% 8% / 24px auto no-repeat,
        radial-gradient(ellipse 50% 40% at 10% 0, rgba(242, 150, 170, 0.18), transparent),
        linear-gradient(to top, rgba(37, 4, 15, 0.8) 0, transparent 110px);
}
/* ľudová mágia: nočná zeleň, kosák mesiaca, hviezdy, bylinky */
.kn-event-hero--ludova-magia {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #7E1A1E 0%, #3A2114 36%, #10261A 72%, #08150F 100%;
}
.kn-event-hero--ludova-magia .kn-event-hero__decor {
    background:
        var(--kn-mesiac) 64% 10% / 58px auto no-repeat,
        var(--kn-hviezda) 56% 26% / 14px auto no-repeat,
        var(--kn-hviezda) 72% 36% / 10px auto no-repeat,
        var(--kn-hviezda) 96% 8% / 12px auto no-repeat,
        var(--kn-bylinka) 58% 90% / 34px auto no-repeat,
        var(--kn-bylinka) 62% 94% / 24px auto no-repeat,
        radial-gradient(circle at 66% 12%, rgba(234, 219, 168, 0.18) 0, transparent 90px),
        linear-gradient(to top, rgba(8, 21, 15, 0.8) 0, transparent 110px);
}
/* fašiangy: sviatočná červená, jednofarebné zástavky (bez konfiet – pôsobili gýčovo) */
.kn-event-hero--fasiangy {
    --kn-hero-stops: #BC232B 0%, var(--kn-red) 45%, #5E0C10 100%;
}
.kn-event-hero--fasiangy .kn-event-hero__decor {
    background:
        var(--kn-zastavky) 0 0 / 120px 40px repeat-x,
        linear-gradient(to top, rgba(60, 8, 11, 0.6) 0, transparent 110px);
}
.kn-event-hero--fasiangy .kn-event-hero__text { padding-top: 74px; }
/* škodiaca mágia: studená noc sabatu, mesiac, let na metle */
.kn-event-hero--skodiaca-magia {
    --kn-hero-shape: ellipse 60% 95% at 84% 55%;
    --kn-hero-stops: #6E1630 0%, #3A1530 38%, #1A1226 74%, #0D0914 100%;
}
.kn-event-hero--skodiaca-magia .kn-event-hero__decor {
    background:
        var(--kn-mesiac) 66% 10% / 54px auto no-repeat,
        var(--kn-metla) 44% 38% / 70px auto no-repeat,
        var(--kn-hviezda) 74% 30% / 10px auto no-repeat,
        var(--kn-hviezda) 96% 8% / 12px auto no-repeat,
        radial-gradient(circle at 68% 12%, rgba(234, 219, 168, 0.16) 0, transparent 90px),
        linear-gradient(to top, rgba(13, 9, 20, 0.8) 0, transparent 110px);
}
.kn-event-hero--ludova-magia .kn-eyebrow { color: #E4D3A0 !important; border-bottom-color: rgba(228, 211, 160, 0.5); }
.kn-event-hero--ludova-magia .kn-event-hero__where { color: #E4D3A0 !important; }
.kn-event-hero--skodiaca-magia .kn-eyebrow { color: #E4D3A0 !important; border-bottom-color: rgba(228, 211, 160, 0.5); }
.kn-event-hero--skodiaca-magia .kn-event-hero__where { color: #E4D3A0 !important; }
.kn-event-hero--stridzie .kn-eyebrow, .kn-event-hero--strasidla .kn-eyebrow { color: #E4D3A0 !important; border-bottom-color: rgba(228, 211, 160, 0.5); }
.kn-event-hero--stridzie .kn-event-hero__where { color: #D9E3EE !important; }
.kn-event-hero--strasidla .kn-event-hero__where { color: #CFDBAA !important; }
.kn-event-hero--lubostna-magia .kn-eyebrow, .kn-event-hero--lubostna-magia .kn-event-hero__where { color: #F5CCD3 !important; border-bottom-color: rgba(245, 204, 211, 0.5); }
.kn-event-facts {
    display: flex;
    align-items: center;
    margin: 0 !important;
    border: 1px solid var(--kn-line);
    border-top: 0;
    background: #fff;
}
.kn-event-facts > div { flex: 1 1 0; align-self: stretch; padding: 22px 28px; border-right: 1px dashed var(--kn-line); }
.kn-event-facts dt {
    color: var(--kn-gold-ink) !important;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 12px;
    font-weight: 700;
}
.kn-event-facts dd { margin: 4px 0 0 !important; font-size: 17px; line-height: 1.4; }
.kn-event-facts .kn-event-facts__buy { flex: 0 0 auto; align-self: center; padding: 0 24px; border: 0; }
.kn-event-facts .kn-buy,
.kn-event-sticky .kn-buy { background: var(--kn-red); color: var(--kn-paper) !important; padding: 15px 24px 14px; font-size: 14px; }
.kn-event-facts .kn-buy:hover,
.kn-event-sticky .kn-buy:hover { background: var(--kn-red-dark); }
.kn-event-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 64px;
    margin: 64px 0 24px;
}
.kn-event-body h2 { color: var(--kn-red) !important; font-size: 40px !important; margin: 0 0 18px !important; }
.kn-event-body p { font-size: 18px; margin: 0 0 18px !important; }
.kn-event-body .kn-event-includes__title {
    margin: 30px 0 14px !important;
    padding-top: 26px;
    border-top: 1px dashed var(--kn-line);
    font-weight: 700;
}
.kn-event-body > div > .kn-event-includes__title:first-child { margin-top: 0 !important; padding-top: 0; border-top: 0; }
.kn-event-includes {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 12px 20px;
}
.kn-event-includes li {
    padding-left: 30px;
    background: var(--kn-orn-rozok) 0 4px / 18px 18px no-repeat;
    font-size: 17px;
}
/* šablóna Shoptetu vkladá do li::before vlastnú šípku – ornament je tu v pozadí li */
.kn-event-includes li::before { content: none !important; }
.kn-event-author {
    position: relative;
    align-self: start;
    border: 1px solid var(--kn-line);
    background: #fff;
    padding: 30px 28px 28px;
}
.kn-event-author::before, .kn-event-author::after {
    content: '';
    position: absolute;
    width: 22px; height: 22px;
    border: 1px solid transparent;
}
.kn-event-author::before { top: 9px; left: 9px; border-top-color: var(--kn-gold); border-left-color: var(--kn-gold); }
.kn-event-author::after { bottom: 9px; right: 9px; border-bottom-color: var(--kn-gold); border-right-color: var(--kn-gold); }
.kn-event-author h3 { margin: 0 0 14px !important; color: var(--kn-red) !important; font-size: 21px !important; }
.kn-event-author p { font-size: 16px !important; line-height: 1.65; margin: 0 0 14px !important; }
.kn-event-author__award { padding-left: 28px; background: var(--kn-orn-zlaty) 0 3px / 18px 18px no-repeat; font-style: italic; }
.kn-event-author a, .kn-event-back { color: var(--kn-red) !important; }
.kn-event-author a { font-weight: 700; }
.kn-event-more { margin: 40px 0 72px; }
.kn-event-more .kn-grid { margin-bottom: 26px; }
.kn-event-missing { text-align: center; padding: 80px 0; }
.kn-event-sticky { display: none; }
@media (max-width: 860px) {
    .kn-event-hero { grid-template-columns: 1fr; min-height: 0; --kn-hero-shape: ellipse 95% 330px at 50% 190px; }
    /* bez pevnej výšky – tá fotku rezala cez hlavu; spodok postavy sa stráca do pozadia */
    .kn-event-hero__photo { order: -1; margin-bottom: -44px; }
    .kn-event-hero__photo img {
        max-width: 240px;
        -webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent 100%);
        mask-image: linear-gradient(to bottom, #000 72%, transparent 100%);
    }
    /* mesiac a netopiere vľavo hore vedľa fotky, nie cez postavu */
    .kn-event-hero--vampirizmus .kn-event-hero__decor {
        background:
            var(--kn-netopier) 8% 3% / 40px auto no-repeat,
            var(--kn-netopier) 30% 13% / 22px auto no-repeat,
            var(--kn-netopier) 94% 20% / 26px auto no-repeat,
            radial-gradient(circle at 17% 10%, #F6ECCB 0, #EADBA8 26px, rgba(234, 219, 168, 0.35) 28px, rgba(234, 219, 168, 0.08) 52px, transparent 90px),
            linear-gradient(to top, rgba(22, 7, 10, 0.85) 0, transparent 110px);
    }
    /* na mobile je fotka hore v strede – motívy do ľavého horného rohu a k okrajom */
    .kn-event-hero--stridzie .kn-event-hero__decor {
        background:
            var(--kn-hviezda) 10% 4% / 28px auto no-repeat,
            var(--kn-vlocka) 28% 16% / 20px auto no-repeat,
            var(--kn-vlocka) 92% 22% / 18px auto no-repeat,
            radial-gradient(circle at 10% 4%, rgba(233, 203, 102, 0.3) 0, transparent 50px),
            radial-gradient(circle, rgba(253, 251, 247, 0.45) 0 1.5px, transparent 2px) 0 0 / 71px 113px,
            radial-gradient(circle, rgba(253, 251, 247, 0.3) 0 1px, transparent 1.5px) 23px 31px / 41px 37px,
        radial-gradient(circle, rgba(253, 251, 247, 0.4) 0 1.2px, transparent 1.7px) 51px 13px / 97px 83px,
            linear-gradient(to top, rgba(10, 15, 30, 0.8) 0, transparent 110px);
    }
    .kn-event-hero--strasidla .kn-event-hero__decor {
        background:
            radial-gradient(circle at 10% 8%, #E8F07A 0 2.5px, rgba(200, 225, 90, 0.35) 4px, transparent 9px),
            radial-gradient(circle at calc(10% + 14px) 8%, #E8F07A 0 2.5px, rgba(200, 225, 90, 0.35) 4px, transparent 9px),
            radial-gradient(circle at 88% 16%, rgba(214, 236, 150, 0.9) 0 3px, rgba(190, 220, 120, 0.25) 6px, transparent 22px),
            radial-gradient(circle at 20% 22%, rgba(214, 236, 150, 0.7) 0 2px, rgba(190, 220, 120, 0.2) 5px, transparent 18px),
            radial-gradient(ellipse 70% 8% at 30% 92%, rgba(190, 205, 185, 0.16), transparent),
            linear-gradient(to top, rgba(8, 14, 11, 0.85) 0, transparent 120px);
    }
    .kn-event-hero--afrodiziaka .kn-event-hero__decor {
        background:
            var(--kn-cili) 8% 4% / 34px auto no-repeat,
            var(--kn-bylinka) 26% 14% / 20px auto no-repeat,
            var(--kn-cili) 92% 18% / 22px auto no-repeat,
            radial-gradient(ellipse 80% 30% at 8% 100%, rgba(214, 140, 44, 0.32), transparent),
            linear-gradient(to top, rgba(42, 15, 7, 0.8) 0, transparent 110px);
    }
    .kn-event-hero--bosorky .kn-event-hero__decor {
        background:
            radial-gradient(circle at 12% 14%, rgba(242, 196, 110, 0.6) 0 1.4px, transparent 2px),
            radial-gradient(circle at 88% 22%, rgba(242, 196, 110, 0.5) 0 1.3px, transparent 1.9px),
            radial-gradient(circle at 20% 90%, rgba(242, 196, 110, 0.9) 0 1.8px, transparent 2.4px),
        radial-gradient(circle at 70% 94%, rgba(242, 196, 110, 0.7) 0 1.4px, transparent 2px),
            radial-gradient(ellipse 90% 25% at 30% 104%, rgba(230, 140, 50, 0.45), transparent),
            linear-gradient(to top, rgba(19, 12, 5, 0.7) 0, transparent 110px);
    }
    .kn-event-hero--lubostna-magia .kn-event-hero__decor {
        background:
            var(--kn-srdce) 8% 4% / 34px auto no-repeat,
            var(--kn-srdce) 26% 15% / 20px auto no-repeat,
            var(--kn-srdce) 92% 20% / 22px auto no-repeat,
            linear-gradient(to top, rgba(37, 4, 15, 0.8) 0, transparent 110px);
    }
    .kn-event-hero--ludova-magia .kn-event-hero__decor {
        background:
            var(--kn-mesiac) 8% 3% / 40px auto no-repeat,
            var(--kn-hviezda) 28% 14% / 12px auto no-repeat,
            var(--kn-hviezda) 92% 20% / 10px auto no-repeat,
            linear-gradient(to top, rgba(8, 21, 15, 0.8) 0, transparent 110px);
    }
    .kn-event-hero--skodiaca-magia .kn-event-hero__decor {
        background:
            var(--kn-mesiac) 8% 3% / 40px auto no-repeat,
            var(--kn-metla) 30% 12% / 48px auto no-repeat,
            var(--kn-hviezda) 92% 20% / 10px auto no-repeat,
            linear-gradient(to top, rgba(13, 9, 20, 0.8) 0, transparent 110px);
    }
    .kn-event-hero--fasiangy .kn-event-hero__text { padding-top: 26px; }
    .kn-event-hero__text { padding: 26px 22px 44px; }
    .kn-event-hero .kn-buy { display: flex; justify-content: center; }
    .kn-event-facts { flex-direction: column; align-items: stretch; }
    .kn-event-facts > div { border-right: 0; border-bottom: 1px dashed var(--kn-line); padding: 16px 22px; }
    .kn-event-facts > div:last-child { border-bottom: 0; }
    .kn-event-facts .kn-event-facts__buy { display: none; }
    .kn-event-body { grid-template-columns: 1fr; gap: 40px; margin-top: 44px; }
    /* ľudia z reklamy prichádzajú hlavne z mobilu – tlačidlo stále po ruke */
    .kn-event-sticky {
        display: flex;
        position: fixed;
        left: 0; right: 0; bottom: 0;
        z-index: 50;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
        background: var(--kn-paper);
        border-top: 1px solid var(--kn-line);
        box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08);
    }
    .kn-event-sticky span { font-size: 14px; line-height: 1.3; }
    .kn-event-sticky .kn-buy { padding: 13px 18px 12px; font-size: 13px; letter-spacing: 1.5px; }
    .kn-event-more { margin-bottom: 110px; }
}

/* =========================================
   8. RESPONZIVITA + PRÍSTUPNOSŤ (KN)
   ========================================= */
@media (max-width: 992px) {
    .kn-grid--4 { grid-template-columns: repeat(2, 1fr); }
    .kn-grid--3 { grid-template-columns: repeat(2, 1fr); }
    .kn-stats__grid { grid-template-columns: repeat(3, 1fr); }
    .kn-split { grid-template-columns: 1fr; gap: 38px; }
}
@media (max-width: 768px) {
    .kn-hero { padding: 40px 0; text-align: center; }
    .kn-hero__text p { padding: 30px 0 0; background-position: center 0; }
    .kn-book { grid-template-columns: 1fr; gap: 22px; padding: 20px; text-align: center; }
    .kn-book__meta { align-items: center; }
    .kn-stats__grid { grid-template-columns: repeat(2, 1fr); }
    .kn-grid--4, .kn-grid--3 { grid-template-columns: 1fr; }
    .kn-panel { padding: 26px; }
    .kn-banner { padding: 50px 20px 46px; }
    .kn-banner::before, .kn-band::before, .kn-stats::before { top: 6px; }
    .kn-banner::after, .kn-band::after, .kn-stats::after { bottom: 6px; }
    .kn-prose p { text-align: left; }
    /* filter tém na mobile v jednom riadku na posúvanie, nech nezaberá pol obrazovky */
    .kn-topics {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        padding-bottom: 6px;
        scrollbar-width: thin;
    }
    .kn-topics__btn { flex: 0 0 auto; white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
    .kn-page *, #kn-lightbox * {
        transition: none !important;
        animation: none !important;
    }
    .kn-card:hover, .kn-book:hover, .kn-media:hover, .kn-gallery__item:hover, .kn-banner:hover { transform: none; }
}

/* --- mapa prednášok (kn-mapa.js) – titulka a /prednasky --- */
/* nočná krajina: kraje tmavé, hranice tenké zlaté, mestá s prednáškou = svetlušky */
.kn-map { margin: 0 0 56px; }
.kn-map__stage {
    position: relative;
    overflow: hidden;
    padding: 34px 40px 30px;
    background: var(--kn-noise), radial-gradient(ellipse 80% 90% at 50% 40%, #1C2A23 0%, #111B16 55%, #090F0C 100%);
    border: 1px solid #2A3A31;
}
.kn-map__svg { display: block; width: 100%; height: auto; overflow: visible; }
.kn-map__region path {
    fill: #17241E;
    stroke: rgba(212, 175, 55, 0.45);
    stroke-width: 1;
    stroke-dasharray: 3 3;
    vector-effect: non-scaling-stroke;
    transition: fill 0.35s ease, stroke 0.35s ease;
}
.kn-map__region { cursor: pointer; outline: none; }
.kn-map__region--empty path { fill: #131D18; }
.kn-map__region--active path { fill: #2A3B31; stroke: var(--kn-gold); stroke-dasharray: none; }
.kn-map__region--selected path { fill: #33251C; stroke: var(--kn-gold); stroke-dasharray: none; }
.kn-map__region:focus-visible path { stroke: var(--kn-paper); stroke-width: 2; stroke-dasharray: none; }
.kn-map__area { position: relative; overflow: hidden; }
.kn-map__zoom { position: relative; transform-origin: 0 0; transition: transform 0.7s ease; }
.kn-map__overlay { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.kn-map__city, .kn-map__label { transition: left 0.7s ease, top 0.7s ease, opacity 0.35s ease, translate 0.6s ease; }
/* reliéf hôr: šedá = rovina, prekrytie zosvetlí svahy v mesačnom svetle a stmaví tiene */
.kn-map__relief { mix-blend-mode: overlay; opacity: 0.85; pointer-events: none; }
/* mesiac vpravo hore (nad Poľskom) */
.kn-map__moon {
    position: absolute;
    top: 22px; right: 46px;
    width: 58px; height: 58px;
    border-radius: 50%;
    background: radial-gradient(circle at 38% 38%, #F6ECCB 0, #EADBA8 55%, #CDBB85 100%);
    box-shadow: 0 0 40px 12px rgba(234, 219, 168, 0.22), 0 0 120px 40px rgba(234, 219, 168, 0.08);
    opacity: 0.9;
    pointer-events: none;
}
/* prízemná hmla – dva rozmazané pásy pomaly plávajú krajinou */
.kn-map__mist { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }
.kn-map__mist span {
    position: absolute;
    left: -30%; width: 90%; height: 34%;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(205, 218, 210, 0.16), rgba(205, 218, 210, 0) 70%);
    filter: blur(8px);
    animation: kn-mist 46s ease-in-out infinite alternate;
}
.kn-map__mist span:first-child { top: 52%; }
.kn-map__mist span:last-child { top: 24%; left: 30%; width: 80%; animation-duration: 63s; animation-direction: alternate-reverse; opacity: 0.8; }
@keyframes kn-mist { from { transform: translateX(-6%); } to { transform: translateX(42%); } }
/* netopier z rytiny – preletí raz za ~half minúty */
.kn-map__bat {
    position: absolute;
    top: 8%; left: 0;
    width: 96px; height: auto;
    z-index: 4;
    opacity: 0;
    pointer-events: none;
    animation: kn-bat 34s linear 5s infinite;
}
@keyframes kn-bat {
    0% { transform: translate(-120px, 120px) rotate(-12deg) scale(0.7); opacity: 0; }
    2% { opacity: 0.85; }
    7% { transform: translate(40vw, 10px) rotate(-4deg) scale(0.9); }
    12% { transform: translate(78vw, 70px) rotate(-14deg) scale(0.75); opacity: 0.8; }
    14%, 100% { transform: translate(92vw, 40px) rotate(-10deg) scale(0.6); opacity: 0; }
}
.kn-map__city {
    position: absolute;
    width: 6px; height: 6px;
    margin: -3px 0 0 -3px;
    border-radius: 50%;
    transition: opacity 0.35s ease;
}
/* svetluška: teplé svetielko so žiarou, každé bliká vlastným tempom (dĺžku nastaví skript);
   je to odkaz na termín – väčšia neviditeľná plocha na klik */
.kn-map__city--live::before { content: ''; position: absolute; inset: -10px; border-radius: 50%; }
.kn-map__city--live:focus-visible { outline: 2px solid var(--kn-paper); outline-offset: 4px; }
.kn-map__city--off { opacity: 0.12 !important; pointer-events: none !important; }
.kn-map__city--live {
    pointer-events: auto;
    cursor: pointer;
    width: 9px; height: 9px;
    margin: -4.5px 0 0 -4.5px;
    background: #FFF3C4;
    box-shadow: 0 0 4px 2px rgba(255, 226, 130, 0.9), 0 0 16px 6px rgba(233, 203, 102, 0.45), 0 0 34px 12px rgba(233, 203, 102, 0.16);
    animation: kn-svetluska 3s ease-in-out infinite;
}
.kn-map__city--next::after {
    content: '';
    position: absolute;
    inset: -10px;
    border: 1px solid rgba(233, 203, 102, 0.7);
    border-radius: 50%;
    animation: kn-svetluska-kruh 2.6s ease-out infinite;
}
.kn-map__city--past { background: rgba(212, 175, 55, 0.45); width: 5px; height: 5px; margin: -2.5px 0 0 -2.5px; }
.kn-map__city--seat { border: 1px solid rgba(253, 251, 247, 0.55); }
.kn-map__label {
    position: absolute;
    color: rgba(253, 251, 247, 0.82);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    line-height: 1;
    white-space: nowrap;
    text-shadow: 0 1px 3px #000;
    transition: opacity 0.35s ease;
}
.kn-map__label--right { transform: translate(10px, -50%); }
.kn-map__label--left { transform: translate(calc(-100% - 10px), -50%); }
.kn-map__label--above { transform: translate(-50%, calc(-100% - 10px)); }
.kn-map__label--below { transform: translate(-50%, 10px); }
.kn-map__dim { opacity: 0.25; }
@keyframes kn-svetluska {
    0%, 100% { opacity: 1; transform: scale(1); }
    38% { opacity: 0.55; transform: scale(0.8); }
    52% { opacity: 0.95; transform: scale(1.08); }
    70% { opacity: 0.7; transform: scale(0.92); }
}
@keyframes kn-svetluska-kruh {
    0% { transform: scale(0.4); opacity: 0.9; }
    100% { transform: scale(1.6); opacity: 0; }
}
/* panel s termínmi kraja – na desktope v pravom dolnom rohu mapy (tam je Maďarsko, nie kraje) */
.kn-map__panel {
    position: absolute;
    right: 24px; bottom: 22px;
    z-index: 4;
    width: 300px;
    max-width: calc(100% - 48px);
    padding: 16px 20px 14px;
    background: rgba(9, 15, 12, 0.88);
    border: 1px solid rgba(212, 175, 55, 0.5);
    color: var(--kn-paper) !important;
}
.kn-map__eyebrow {
    display: block;
    margin: 0 0 8px;
    color: var(--kn-gold) !important;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.kn-map__term {
    display: block;
    padding: 4px 0;
    color: var(--kn-paper) !important;
    font-size: 15px;
    line-height: 1.4;
    text-decoration: none !important;
}
.kn-map__term:hover, .kn-map__term:focus-visible { color: var(--kn-gold) !important; outline: none; }
.kn-map__date { display: inline-block; min-width: 62px; margin-right: 8px; color: var(--kn-gold) !important; font-weight: 700; font-size: 13px; }
.kn-map__hint { margin: 6px 0 0 !important; color: rgba(253, 251, 247, 0.7) !important; font-size: 13px !important; line-height: 1.5 !important; font-style: italic; }
.kn-map__cta {
    display: inline-block;
    margin-top: 10px;
    color: var(--kn-gold) !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none !important;
    border-bottom: 1px dashed var(--kn-gold);
}
.kn-map__cta:hover { border-bottom-style: solid; }
/* hmla (canvas) – pod svetluškami, nad krajmi; rozháňa sa myšou, potom sa rozplynie celá */
.kn-map__fog {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%; height: 100%;
    pointer-events: none;
    transition: opacity 2.4s ease, filter 2.4s ease;
}
.kn-map__stage--clear .kn-map__fog { opacity: 0; filter: blur(12px); }
.kn-map__foghint {
    position: absolute;
    top: 18px; left: 50%;
    z-index: 4;
    transform: translateX(-50%);
    color: var(--kn-paper) !important;
    font-family: 'Caveat', cursive;
    font-size: 26px;
    line-height: 1;
    white-space: nowrap;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
    pointer-events: none;
    transition: opacity 0.8s ease;
}
.kn-map__foghint--gone, .kn-map__stage--clear .kn-map__foghint { opacity: 0; }
@media (hover: none) { .kn-map__foghint { display: none; } }
/* bublina svetlušky s termínmi */
.kn-map__tip {
    position: absolute;
    z-index: 6;
    transform: translate(-50%, -100%);
    min-width: 200px;
    padding: 10px 14px 8px;
    background: rgba(9, 15, 12, 0.94);
    border: 1px solid rgba(212, 175, 55, 0.6);
    color: var(--kn-paper) !important;
}
.kn-map__tip--below { transform: translate(-50%, 0); }
.kn-map__tip strong { display: block; margin-bottom: 4px; color: var(--kn-gold); font-size: 13px; letter-spacing: 1px; text-transform: uppercase; }
.kn-map__tip .kn-map__term { font-size: 14px; padding: 2px 0; }
/* mená ostatných miest – len v priblíženom kraji */
.kn-map__label--town { display: none; font-size: 11px; font-weight: 400; color: rgba(253, 251, 247, 0.75); }
.kn-map__label--town.kn-map__label--show { display: block; }
.kn-map__back {
    position: absolute;
    top: 10px; left: 10px;
    z-index: 5;
    padding: 6px 12px;
    background: rgba(9, 15, 12, 0.85);
    border: 1px solid rgba(212, 175, 55, 0.6);
    color: var(--kn-gold) !important;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
/* výber mesiaca */
.kn-map__month, .kn-map__back { font-family: inherit; }
.kn-map__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px 18px;
    margin: 16px 0 0;
}
.kn-map__months { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 6px; }
.kn-map__month {
    padding: 3px 11px;
    background: none;
    border: 1px dashed var(--kn-line);
    border-radius: 999px;
    color: var(--kn-gold-ink) !important;
    font-size: 13px;
    cursor: pointer;
}
.kn-map__month:first-letter { text-transform: uppercase; }
.kn-map__month[aria-pressed="true"] { border-style: solid; border-color: var(--kn-gold); background: #F6F1E7; font-weight: 700; }
/* zoznam krajov pod mapou */
.kn-map__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 8px;
    margin: 16px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.kn-map__list li { margin: 0 !important; padding: 0 !important; }
.kn-map__list li::before { content: none !important; }
.kn-map__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px 5px 14px;
    background: var(--kn-paper);
    border: 1px solid var(--kn-line);
    border-radius: 999px;
    color: var(--kn-red) !important;
    font-size: 14px;
    line-height: 1.4;
    text-decoration: none !important;
    transition: border-color 0.25s ease;
}
.kn-map__chip:hover, .kn-map__chip:focus-visible { border-color: var(--kn-gold); outline: none; }
.kn-map__chip[aria-current="true"] { background: var(--kn-red); border-color: var(--kn-red); color: var(--kn-paper) !important; }
.kn-map__chip--empty { color: var(--kn-ink-soft) !important; }
.kn-map__chip--all { font-weight: 700; }
.kn-map__count {
    min-width: 22px;
    padding: 1px 6px;
    border-radius: 999px;
    background: #F3EDE0;
    color: var(--kn-gold-ink) !important;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}
.kn-map__chip[aria-current="true"] .kn-map__count { background: rgba(253, 251, 247, 0.2); color: var(--kn-paper) !important; }
@media (max-width: 860px) {
    .kn-map__stage { padding: 16px 12px 0; }
    .kn-map__label { font-size: 10px; letter-spacing: 0.5px; }
    .kn-map__label--m-right { transform: translate(6px, -50%); }
    .kn-map__label--m-left { transform: translate(calc(-100% - 6px), -50%); }
    .kn-map__label--m-above { transform: translate(-50%, calc(-100% - 6px)); }
    .kn-map__label--m-below { transform: translate(-50%, 6px); }
    .kn-map__city--live { width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; }
    .kn-map__city--next::after { inset: -7px; }
    /* panel pod mapou, nie cez ňu */
    .kn-map__panel { position: relative; right: auto; bottom: auto; width: auto; max-width: none; margin: 14px -12px 0; border-width: 1px 0 0; }
    .kn-map__chip { font-size: 13px; }
    .kn-map__moon { top: 10px; right: 14px; width: 26px; height: 26px; }
    .kn-map__bat { width: 54px; }
    .kn-map__tip { min-width: 180px; }
}

/* --- kalendár: dlaždice tém s mini bannerom (kn-prednasky.js) --- */
/* farby a motív berie z tematických hlavičiek .kn-event-hero--<téma> (premenné + __decor) */
.kn-topictiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
    margin: -12px 0 30px;
}
.kn-topictile {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 92px;
    padding: 10px 12px;
    overflow: hidden;
    border: 1px solid transparent;
    cursor: pointer;
    text-align: left;
    color: var(--kn-paper) !important;
    background: var(--kn-noise), radial-gradient(var(--kn-hero-shape), var(--kn-hero-stops));
    transition: transform 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}
/* základné farby s nulovou váhou, aby ich téma (.kn-event-hero--<téma>) prepísala */
:where(.kn-topictile, .kn-event__thumb) {
    --kn-hero-shape: ellipse 70% 90% at 80% 45%;
    --kn-hero-stops: #A31C22 0%, var(--kn-red) 40%, #5E0C10 100%;
}
/* motív len v hornej časti dlaždice, aby nezasahoval do názvu */
.kn-topictile .kn-event-hero__decor {
    opacity: 0.75;
    -webkit-mask-image: linear-gradient(to bottom, #000 30%, transparent 62%);
    mask-image: linear-gradient(to bottom, #000 30%, transparent 62%);
}
@media (min-width: 992px) {
    .kn-topictiles { grid-template-columns: repeat(5, 1fr); }
    .kn-topictile { min-height: 104px; }
}
.kn-topictile:hover { transform: translateY(-2px); }
.kn-topictile[aria-pressed="true"] { border-color: var(--kn-gold); box-shadow: 0 0 0 2px var(--kn-gold); }
.kn-topictile:focus-visible { outline: 3px solid var(--kn-red); outline-offset: 2px; }
.kn-topictile__name { position: relative; font-weight: 700; font-size: 15px; line-height: 1.25; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); }
.kn-topictile__count { position: relative; margin-top: 2px; color: var(--kn-gold) !important; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.kn-topictile--all { background: var(--kn-paper); color: var(--kn-red) !important; border-color: var(--kn-line); }
.kn-topictile--all .kn-topictile__name { text-shadow: none; }
.kn-topictile--all .kn-topictile__count { color: var(--kn-gold-ink) !important; }
.kn-topictile--soon { filter: saturate(0.5); }
.kn-topictile--soon .kn-topictile__count { color: rgba(253, 251, 247, 0.75) !important; }
/* vybraný kraj nad termínmi */
.kn-krajbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px 14px;
    margin: -10px 0 24px;
    font-size: 15px;
}
.kn-krajbar strong { color: var(--kn-red); }
.kn-krajbar button {
    background: none;
    border: 0;
    border-bottom: 1px dashed var(--kn-gold);
    padding: 0;
    color: var(--kn-gold-ink) !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
}
/* mini banner na karte termínu – FB banner termínu, kým nie je, tematické pozadie */
.kn-event__thumb {
    position: relative;
    display: block;
    margin: -10px -10px 18px;
    aspect-ratio: 1200 / 628;
    overflow: hidden;
    background: var(--kn-noise), radial-gradient(var(--kn-hero-shape), var(--kn-hero-stops));
}
.kn-event__thumb img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover; }
/* pozadie témy z bannerov (kn-prednasky.js → .kn-tema-img), na dlaždici so stmavením pod názvom */
.kn-event__thumb.kn-tema-img { background: var(--kn-tema-img) center / cover no-repeat; }
.kn-topictile.kn-tema-img { background: linear-gradient(to top, rgba(0, 0, 0, 0.62), rgba(0, 0, 0, 0) 70%), var(--kn-tema-img) center / cover no-repeat; }
.kn-tema-img > .kn-event-hero__decor { display: none; }
.kn-event__thumb .kn-event-hero__decor { opacity: 0.8; }
@media (max-width: 768px) {
    .kn-topictiles {
        display: flex;
        overflow-x: auto;
        padding-bottom: 6px;
        scrollbar-width: thin;
    }
    .kn-topictile { flex: 0 0 140px; min-height: 80px; }
}

/* --- menu „Prednášky“ na mobile (kn-menu.js): kraje → termíny ako rozbaľovací zoznam --- */
.kn-mnav-toggle { display: none; }
/* !important: šablóna dáva zoznamom v #navigation display: flex */
.kn-mnav, .kn-mnav__terms { display: none !important; }
@media (max-width: 767px) {
    .kn-mnav-host { position: relative !important; }
    .kn-mnav-toggle {
        display: block;
        position: absolute;
        top: 0; right: 0;
        width: 52px; height: 48px;
        background: none;
        border: 0;
        border-left: 1px dashed var(--kn-line);
        cursor: pointer;
    }
    .kn-mnav-toggle::after, .kn-mnav__kraj > button::after {
        content: '';
        display: block;
        width: 8px; height: 8px;
        margin: -4px auto 0;
        border-right: 1.5px solid var(--kn-red);
        border-bottom: 1.5px solid var(--kn-red);
        transform: rotate(45deg);
        transition: transform 0.2s ease;
    }
    .kn-mnav-toggle[aria-expanded="true"]::after, .kn-mnav__kraj > button[aria-expanded="true"]::after { transform: translateY(4px) rotate(-135deg); }
    .kn-mnav[data-open] { display: block !important; }
    .kn-mnav, .kn-mnav ul {
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
        background: #F6F1E7;
    }
    .kn-mnav li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
    .kn-mnav a, .kn-mnav__kraj > button {
        display: flex !important;
        align-items: baseline;
        gap: 10px;
        width: 100%;
        padding: 11px 20px 11px 28px !important;
        background: none;
        border: 0;
        border-top: 1px dashed var(--kn-line) !important;
        color: var(--kn-ink) !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.35 !important;
        text-align: left;
        text-transform: none !important;
        text-decoration: none !important;
    }
    .kn-mnav__kraj > button { justify-content: space-between; cursor: pointer; font-weight: 600 !important; }
    .kn-mnav__kraj > button::after { margin: 0 4px 0 auto; flex: 0 0 auto; align-self: center; }
    .kn-mnav__kraj > button span { color: var(--kn-gold-ink); font-size: 12px; font-weight: 700; }
    .kn-mnav__terms { background: var(--kn-paper) !important; }
    .kn-mnav__terms[data-open] { display: block !important; }
    .kn-mnav__terms a { padding-left: 40px !important; }
    .kn-mnav__all > a { color: var(--kn-red) !important; font-weight: 700 !important; }
    .kn-mnav .kn-submenu__date { flex: 0 0 auto; min-width: 88px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
    .kn-map__city--live, .kn-map__city--next::after, .kn-map__mist span { animation: none !important; }
    .kn-map__bat { display: none; }
    .kn-map__zoom, .kn-map__city, .kn-map__label { transition: none !important; }
}
.kn-home-lectures .kn-map { margin-bottom: 30px; }
