/* styles.css – OPTIMALIZOVANÁ VERZE (Zaručená funkčnost 1:1)
   Upraveno: Očištěno od duplicit, seřazeno do kategorií. 
   Pravidlo kaskády ("spodní zabíjí horní") bylo striktně dodrženo.
   - Písmo je globálně sjednoceno na Arial (1rem).
   - Křížky mají všude kurzor ruky a blokovaný výběr textu.
   - Opraveno zelené pozadí u modálů (přidáno !important).
   - Opraveny vstupní animace a viditelnost pro sekci Kariéra.
   - OPRAVA: Opraven mřížkový (grid) layout pro karty v Kariéře na mobilních zařízeních.
   - OPRAVA: Třída .primary-trigger upravena na globální, aby byla dlaždice vždy zelená.
   - OPRAVA: Hero sekce se nyní správně zobrazuje i ve WCAG režimu bez animací.
   - OPRAVA: Boční panel se ve WCAG režimu na mobilu správně skrývá a funguje křížek.
*/

/* ===================================================================
   01. PROMĚNNÉ, ZÁKLADNÍ STYLY A LAYOUT
   =================================================================== */
:root {
    --primary: #94e3c2;
    --light: #ecfcf5;
    --white: #fff;
    --gray: #f7f7f7;

    /* Proměnné z dlaždic Bento / Povinná sdělení */
    --tile-bg: #c4f0de;
    --tile-text: #0a3d3d;
    --accent-bright: #94e3c2;
    --muted-text: #3d5a5a;

    /* --- SÉMANTICKÉ TOKENY (jednotný zdroj barev – používat ve všech nových úpravách
       místo „natvrdo“ zapsaných hexů; usnadní to údržbu i přepínání témat) --- */
    --edc-teal-deep: #0a3d3d;   /* hlavní tmavě tyrkysová – modály, footer, nadpisy */
    --edc-bg-page: #050505;     /* pozadí stránky (tmavý režim) */
    --edc-text-main: #14302e;   /* hlavní text na světlém povrchu */
    --edc-surface: #ffffff;     /* světlý povrch karet */
    --edc-accent: #94e3c2;      /* zvýraznění / akcent */
}
/* Hodnoty tokenů pro světlý režim */
[data-theme="light"] {
    --edc-bg-page: #eef1f5;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1rem;
    background-color: #050505;
    color: #030303;
    line-height: 1.6;
    position: relative;
    min-height: 100vh;
    overflow-x: hidden;
}

body.modal-open, body.menu-open {
    overflow: hidden;
    height: 100vh;
    position: fixed;
    width: 100%;
}

.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
main { margin-top: 90px; padding: 4rem 0 2.5rem 0; }

p { text-wrap: pretty; }

/* Zamezení dělení slov napříč webem */
body, p, li, h1, h2, h3, h4, h5, h6, div, span, a, .text-bez-deleni, main, .container, .zprava-content, .edc-content-page, .aktuality, .hero, .modal-content, .modal-inner, footer {
    hyphens: none !important;
    -webkit-hyphens: none !important;
    -ms-hyphens: none !important;
    word-break: normal;
    overflow-wrap: normal;
}
.dovoleno-deleni {
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
}

#energy-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -1;
    opacity: 0.6;
    pointer-events: none;
}

/* Neviditelné texty pro čtečky obrazovky */
.visually-hidden {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ===================================================================
   02. PŘÍSTUPNOST (Klávesnicový Focus a Aria)
   =================================================================== */
.modal[aria-hidden="false"], .sub-modal[aria-hidden="false"] { z-index: 1000; }
.modal[aria-hidden="true"], .sub-modal[aria-hidden="true"] { display: none !important; }

/* Viditelný focus pro navigaci klávesnicí */
.modal-trigger:focus, .login-btn:focus, .newsletter-btn:focus, .wcag-accessibility-link:focus, .close:focus, .sub-close:focus, .modal-btn:focus, .sub-modal-btn:focus, #tereza-send:focus, #tereza-input:focus, .letter-btn:focus {
    outline: 3px solid #FFD60A !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 6px rgba(255, 214, 10, 0.3) !important;
}

.modal-trigger:focus-visible {
    transform: translateY(-4px);
    background: var(--light);
}
.skip-link:focus {
    top: 10px; left: 10px;
}

/* Oprava kurzoru pro všechny zavírací křížky */
.close, .sub-close, .close-btn, .modal-close-btn, .warning-close, .system-banner-close, .tereza-close, .side-panel-close,
.close *, .sub-close *, .close-btn *, .modal-close-btn *, .warning-close *, .system-banner-close *, .tereza-close *, .side-panel-close * {
    cursor: pointer !important;
    user-select: none !important;
    -webkit-user-select: none !important;
}

/* ===================================================================
   03. HLAVIČKA, NAVIGACE A ROLETY
   =================================================================== */
header {
    background: rgb(255, 255, 255); backdrop-filter: blur(12px); position: fixed; width: 100%; top: 0; z-index: 1000;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12), inset 0 10px 20px -5px rgba(0, 0, 0, 0.20), inset 0 2px 6px rgba(0, 0, 0, 0.15), inset 0 -4px 10px rgba(0, 0, 0, 0.06);
    border-radius: 24px; border: 1px solid rgba(0, 0, 0, 0.08);
}
.nav-container { display: flex; align-items: center; justify-content: space-between; padding: 1rem 0; mix-blend-mode: multiply; }
.logo-group { display: flex; align-items: center; gap: 15px; }
.logo-area img { height: 50px; }
.logo-img img { height: 100%; width: auto; max-width: 100%; object-fit: contain; object-position: center; mix-blend-mode: multiply; }
.desktop-nav .nav-links { display: flex; gap: 1rem; align-items: center; list-style: none; margin: 0; padding: 0; }
.desktop-nav .nav-links li { margin: 0; }
.desktop-nav .nav-links a { text-decoration: none; color: #333; font-weight: 500; }
.desktop-nav .nav-links a:hover { color: var(--primary); }

.calendar-link-top { display: flex; align-items: center; gap: 8px; text-decoration: none; background-color: var(--primary); color: #0a3d3d; font-weight: 700; padding: 8px 16px; border-radius: 50px; transition: all 0.3s ease; white-space: nowrap; box-shadow: 0 4px 10px rgba(148, 227, 194, 0.2); }
.calendar-link-top:hover, .calendar-link-top:focus { transform: translateY(-2px); background-color: #7dd1b1; box-shadow: 0 6px 15px rgba(148, 227, 194, 0.4); color: #000; }
.calendar-icon-svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }

/* Tlačítka v navigaci */
.login-btn, .newsletter-btn, .wcag-accessibility-link, .curtain-toggle-btn {
    padding: 0.65rem 1.6rem; border-radius: 50px; font-weight: 700; text-decoration: none; display: inline-flex !important; align-items: center; justify-content: center; white-space: nowrap; height: 42px; box-sizing: border-box; font-size: 0.95rem; letter-spacing: 0.5px; transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); -webkit-font-smoothing: antialiased; position: relative; overflow: hidden; z-index: 1;
}
.login-btn { background: linear-gradient(135deg, var(--primary) 0%, #7dd1b1 100%); color: #05282a !important; border: 1px solid rgba(255, 255, 255, 0.4); box-shadow: 0 4px 15px rgba(148, 227, 194, 0.3), inset 0 2px 4px rgba(255, 255, 255, 0.5); }
.newsletter-btn { background: linear-gradient(135deg, #FFD60A 0%, #ffc107 100%); color: #05282a !important; border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 4px 15px rgba(255, 214, 10, 0.25), inset 0 2px 4px rgba(255, 255, 255, 0.6); }
.wcag-accessibility-link { background: #000000; color: #ffffff !important; border: 4px solid #ffffff; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
.curtain-toggle-btn { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #333333 !important; border: 1px solid rgba(10, 61, 61, 0.1); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); }

/* Odlesk tlačítek */
.login-btn::before, .newsletter-btn::before, .curtain-toggle-btn::before, .wcag-accessibility-link::before {
    content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0) 100%); transform: skewX(-25deg); transition: all 0.6s ease; z-index: -1;
}
.login-btn:hover, .login-btn:focus { background: #7dd1b1; color: rgb(3, 3, 3) !important; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(5,40,42,0.3); }
.newsletter-btn:hover, .newsletter-btn:focus { transform: translateY(-3px) scale(1.02); box-shadow: 0 10px 25px rgba(255, 214, 10, 0.4), inset 0 2px 4px rgba(255, 255, 255, 0.7); color: #000000 !important; }
.wcag-accessibility-link:hover, .wcag-accessibility-link:focus { background: #333333; outline: 8px solid #000000; outline-offset: 4px; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(5,40,42); color: #ffffff !important; }
.curtain-toggle-btn:hover { transform: translateY(-3px) scale(1.02); background: #ffffff; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08); border-color: rgba(148, 227, 194, 0.4); color: #0a3d3d !important; }
.login-btn:hover::before, .newsletter-btn:hover::before, .curtain-toggle-btn:hover::before, .wcag-accessibility-link:hover::before { left: 150%; }

/* Mobilní menu a Hamburger */
.hamburger { display: none; cursor: pointer; background: none; border: none; padding: 0; width: 40px; height: 36px; position: relative; z-index: 1001; }
.hamburger span { display: block; position: absolute; height: 5px; width: 100%; background: #0a3d3d; border-radius: 5px; opacity: 1; left: 0; transform: rotate(0deg); transition: .3s ease-in-out; }
.hamburger span:nth-child(1) { top: 0px; }
.hamburger span:nth-child(2) { top: 15px; }
.hamburger span:nth-child(3) { top: 30px; }
.hamburger.active span:nth-child(1) { top: 15px; transform: rotate(135deg); }
.hamburger.active span:nth-child(2) { opacity: 0; left: -60px; }
.hamburger.active span:nth-child(3) { top: 15px; transform: rotate(-135deg); }

.mobile-nav { position: fixed; top: 0; right: -100%; width: 80%; max-width: 320px; height: 100dvh; background: rgba(255, 255, 255, .98); backdrop-filter: blur(12px); padding: 100px 30px 40px; transition: right .4s; z-index: 1000; }
.mobile-nav.active { right: 0; }
.nav-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); backdrop-filter: blur(4px); z-index: 999; opacity: 0; pointer-events: none; transition: opacity 0.4s ease; }
.nav-overlay.active { opacity: 1; pointer-events: auto; }
.mobile-nav .nav-links { display: flex; flex-direction: column; gap: 1.8rem; padding: 0; margin: 0; list-style: none; }
.mobile-nav .nav-links li { width: 100%; }
.mobile-nav .nav-links a { display: block; width: 100%; padding: 16px 24px; text-align: left; font-weight: 600; border-radius: 12px; transition: background 0.3s, transform 0.2s; }
.mobile-nav .wcag-accessibility-link { background: #000000; color: #ffffff !important; border: 4px solid #ffffff; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
.mobile-nav .newsletter-btn { background: #FFD60A; color: #0a3d3d; }
.mobile-nav .login-btn { background: var(--primary); color: white; }
.mobile-nav .nav-links a:hover, .mobile-nav .nav-links a:focus { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0,0,0,0.2); outline: 4px solid #ffffff; outline-offset: 4px; }

/* Rolety - desktop efekt */
.curtain { position: fixed; top: 0; bottom: 0; width: 20vw; background-image: url('obrázky/zarovky.png'); background-size: cover; background-position: center; z-index: 9998; opacity: 0.95; transition: transform 5.5s ease-out 0.5s; box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); }
.curtain-left { left: 0; transform: translateX(0); }
.curtain-right { right: 0; transform: translateX(0); }
body.loaded .curtain-left { transform: translateX(-100%); }
body.loaded .curtain-right { transform: translateX(100%); }

/* ===================================================================
   03. sOUČÁST HEADER TROJÚHELNÍK S NOVINKAMI
   =================================================================== */
.magic-corner-left { position: fixed; top: 0; left: 0; width: 118px; height: 118px; background: linear-gradient(135deg, #b6f0d6 0%, #4fd6a6 55%, #16a585 100%); clip-path: polygon(0 0, 100% 0, 0 100%); z-index: 10001; cursor: pointer; filter: drop-shadow(2px 2px 6px rgba(0,0,0,0.32)); animation: edcCornerPulse 3.2s ease-in-out infinite; transition: transform 0.3s ease, filter 0.3s ease; }
.magic-corner-left:hover { transform: scale(1.06); filter: drop-shadow(3px 3px 11px rgba(22,165,133,0.65)); animation: none; }
@keyframes edcCornerPulse { 0%,100% { filter: drop-shadow(2px 2px 6px rgba(0,0,0,0.3)); } 50% { filter: drop-shadow(2px 2px 13px rgba(78,214,166,0.9)); } }
@media (prefers-reduced-motion: reduce) { .magic-corner-left { animation: none; } }
.corner-text-left { color: #06302b; font-weight: 800; font-size: 15px; letter-spacing: 0.4px; text-transform: uppercase; transform: rotate(-45deg) translate(-20px, 18px); display: inline-block; width: 100%; text-align: center; pointer-events: none; }
.corner-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(5, 40, 42, 0.95); backdrop-filter: blur(10px); z-index: 20000; overflow-y: auto; display: flex; justify-content: center; align-items: flex-start; opacity: 0; visibility: hidden; transition: all 0.4s ease; }
.corner-overlay.show { opacity: 1; visibility: visible; }
.corner-overlay-content { background: #fff; padding: 30px 26px; border-radius: 20px; position: relative; border: 1px solid #d6efe6; box-shadow: 0 24px 70px rgba(0,0,0,0.42); max-width: 920px; width: 100%; margin: 70px auto; text-align: left; }
.corner-overlay-content h2 { color: #0a3d3d; font-size: 1.9rem; margin: 0; font-family: inherit; }
/* Novinky – moderní karty */
.news-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.news-pill { background: #eafaf3; color: #0a3d3d; font-weight: 700; font-size: 0.8rem; padding: 4px 12px; border-radius: 999px; border: 1px solid #b6e6d3; white-space: nowrap; }
.news-lead { color: #3f5f59; font-size: 1rem; line-height: 1.55; margin: 10px 0 22px; }
.news-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.news-card { border: 1px solid #e1efe9; border-left: 4px solid #16a585; border-radius: 14px; padding: 16px 18px; background: #fafffd; transition: box-shadow 0.2s ease, transform 0.2s ease; }
.news-card:hover { box-shadow: 0 10px 26px rgba(10,61,61,0.12); transform: translateY(-2px); }
.news-card .ic { font-size: 1.5rem; line-height: 1; }
.news-card h3 { color: #0a3d3d; font-size: 1.05rem; margin: 8px 0 6px; }
.news-card p { color: #4a665f; font-size: 0.92rem; line-height: 1.5; margin: 0; }
.news-cta { display: flex; justify-content: center; margin-top: 24px; }
.news-cta a { display: inline-flex; align-items: center; gap: 8px; background: #0a3d3d; color: #eafff7; font-weight: 700; padding: 11px 22px; border-radius: 12px; text-decoration: none; transition: background 0.2s ease; }
.news-cta a:hover { background: #125049; }
.corner-close { position: fixed; top: 20px; right: 20px; width: 44px; height: 44px; background: #0a3d3d; color: white; border: none; border-radius: 50%; font-size: 24px; cursor: pointer; z-index: 20001; display: flex; align-items: center; justify-content: center; }
.corner-close:hover { background: #ff4d4d; }
.corner-dismiss { position: absolute; top: 5px; left: 5px; background: rgba(10, 61, 61, 0.2); border: none; color: #0a3d3d; font-size: 18px; line-height: 1; cursor: pointer; border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; z-index: 10002; }
.corner-dismiss:hover { background: #0a3d3d; color: #94e3c2; transform: scale(1.1); }
.magic-corner-left.hidden { opacity: 0; transform: translate(-20px, -20px) scale(0.8); pointer-events: none; transition: all 0.5s ease; }

/* ===================================================================
   04. BANNERY (Systém, Chyby, Výstavba)
   =================================================================== */
.error-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; background: linear-gradient(90deg, #dc2626 0%, #b91c1c 100%); color: #ffffff; line-height: 1.5; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transform: translateY(0); transition: transform 0.3s ease; }
.error-banner.hidden { transform: translateY(-100%); display: none !important; }
.error-content { max-width: 1200px; margin: 0 auto; padding: 1rem 1.5rem; display: flex; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.error-icon { font-size: 1.5rem; flex-shrink: 0; margin-top: 0.125rem; }
.error-text { flex: 1; min-width: 250px; hyphens: auto; word-break: break-word; overflow-wrap: break-word; }
.close-btn { background: rgba(255,255,255,0.2); border: none; border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #ffffff; font-size: 1.25rem; font-weight: bold; flex-shrink: 0; transition: all 0.2s ease; outline: none; }
.close-btn:hover, .close-btn:focus { background: rgba(255,255,255,0.3); box-shadow: 0 0 0 3px rgba(255,255,255,0.5); transform: scale(1.05); }
.close-btn:active { transform: scale(0.98); }
.close-icon { line-height: 1; }

.system-banner-fixed { position: fixed; top: 0; left: 0; width: 100%; min-height: 100px; background-color: #FF0000; color: #FFFFFF; z-index: 1000000; display: flex; align-items: center; justify-content: center; padding: 10px 50px; box-sizing: border-box; border-bottom: 2px solid #94e3c2; overflow: hidden; transition: background-color 0.4s ease, box-shadow 0.4s ease; }
.system-banner-fixed .system-banner-icon { background-color: #ffffff; color: initial; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; box-shadow: 0 2px 4px rgba(0,0,0,0.2); font-size: 1.2rem; flex-shrink: 0; }
.system-banner-inner { display: flex; align-items: center; justify-content: center; gap: 12px; max-width: 1200px; position: relative; z-index: 2; }
#system-banner-text { font-weight: 700; line-height: 1.4; }
.system-banner-close { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); background: transparent; border: 1px solid rgba(148, 227, 194, 0.3); color: #94e3c2; font-size: 24px; line-height: 1; cursor: pointer; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 4px; transition: all 0.2s ease; z-index: 3; }
.system-banner-close:hover { background-color: #94e3c2; color: #05282a; }
.system-banner-fixed::before { content: ''; position: absolute; top: 0; left: -150%; width: 60%; height: 100%; background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.7) 50%, rgba(255, 255, 255, 0) 100%); transform: skewX(-25deg); transition: left 0.7s cubic-bezier(0.4, 0, 0.2, 1); z-index: 1; pointer-events: none; }
.system-banner-fixed:hover { background-color: #e60000; box-shadow: inset 0 2px 5px rgba(255, 255, 255, 0.4), inset 0 -2px 5px rgba(0, 0, 0, 0.2), 0 10px 25px rgba(255, 0, 0, 0.4); }
.system-banner-fixed:hover::before { left: 150%; }

.warning-banner { position: fixed; top: 0; left: 0; right: 0; width: 100%; background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); color: white; font-weight: 900; font-size: 1.5rem; padding: 1.5rem 2rem; text-align: center; z-index: 10000; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); border-bottom: 3px solid #ffcccc; animation: pulse 2s infinite; }
.warning-content { display: flex; align-items: center; gap: 1rem; text-transform: uppercase; letter-spacing: 2px; }
.warning-icon { font-size: 2rem; animation: blink 1s infinite; }
.warning-icon:nth-child(3) { animation-delay: 0.5s; }
.warning-close { position: absolute; right: 1.5rem; top: 50%; transform: translateY(-50%); background: none; border: none; color: white; font-size: 2rem; cursor: pointer; padding: 0; line-height: 1; transition: transform 0.2s ease; }
.warning-close:hover { transform: translateY(-50%) scale(1.2); }

.construction-banner { position: fixed !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: max-content !important; max-width: 95vw !important; min-width: 500px !important; margin: 0 !important; z-index: 99999 !important; background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); color: white; font-weight: 900; font-size: 2.5rem; padding: 3.5rem 5rem; text-align: center; text-transform: uppercase; letter-spacing: 5px; pointer-events: none; animation: pulse 2s infinite; border: 6px solid #ffcccc; border-radius: 20px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7); }
.construction-icon { font-size: 3rem; vertical-align: middle; margin: 0 15px; animation: blink 5s infinite; }
.construction-icon:nth-child(2) { animation-delay: 1.5s; }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }

/* ===================================================================
   05. HERO SEKCE A DASHBOARD
   =================================================================== */
.hero {
    text-align: center; padding: 7rem 2rem 5rem 2rem; background: linear-gradient(135deg, var(--primary), var(--light)); color: #0a0a0a; border-radius: 2.8rem 2.8rem 1.6rem 1.6rem; border: 3px solid #ffffff; margin: 8.5rem 1rem 3rem 1rem; max-width: 1400px; margin-left: auto; margin-right: auto; box-shadow: 0 25px 50px -12px rgba(148, 227, 194, 0.28), 0 12px 24px -8px rgba(0, 0, 0, 0.12); backdrop-filter: blur(1px); opacity: 0; transform: translateY(40px) scale(0.96); animation: heroEntrance 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards; animation-delay: 120ms; transition: box-shadow 0.4s ease;
}
.hero:hover { box-shadow: 0 25px 50px -12px rgba(148, 227, 194, 0.28), 0 12px 24px -8px rgba(0, 0, 0, 0.12), inset 0 15px 30px -10px rgba(0, 0, 0, 0.12), inset 0 -10px 20px rgba(255, 255, 255, 0.6); }
.hero h1 { font-size: 2.5rem; margin-bottom: 1.1rem; opacity: 0; transform: translateY(24px); animation: fadeUpText 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; animation-delay: 380ms; }
.hero p { opacity: 0; transform: translateY(18px); animation: fadeUpText 0.95s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; animation-delay: 520ms; }
@keyframes heroEntrance { to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes fadeUpText { to { opacity: 1; transform: translateY(0); } }

.hero-image-wrapper { max-width: 100%; margin-top: 3rem; display: flex; justify-content: center; }
.responsive-img { max-width: 100%; height: auto; border-radius: 28px; box-shadow: 0 15px 35px rgba(10, 61, 61, 0.1); border: 1px solid rgba(148, 227, 194, 0.2); }
.hero.kariera .responsive-img, .hero-video-manuals .responsive-img { max-width: 100%; height: auto; display: block; margin: 3rem auto; border-radius: 16px; box-shadow: 0 8px 25px rgba(0, 0, 0, .08); }

.hero-video-manuals { text-align: center; padding: 6rem 2rem; }
.hero.hero-video-manuals { position: relative; padding: 5rem 2rem 4rem; color: #0a3d3d; text-align: center; overflow: hidden; }
.hero.hero-video-manuals::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(255,255,255,0.25), rgba(255,255,255,0.6)); z-index: 1; pointer-events: none; }
.hero.hero-video-manuals > * { position: relative; z-index: 2; }
.hero-video-manuals h1 { font-size: 2.5rem; margin-bottom: 1.5rem; font-weight: 400; }
.hero-video-manuals .highlight { margin: 2rem 0; color: #0a3d3d; }

.hero.hero-akumulace { background: linear-gradient(135deg, #e0f2fe 0%, #bfdbfe 50%, #93c5fd 100%); }
.hero.hero-akumulace h1 { color: #1e40af; }
.hero.hero-akumulace .highlight { color: #1e3a8a; background: rgba(219, 234, 254, 0.6); padding: 1rem; border-radius: 12px; }

.hero.hero-flexibilita { background: linear-gradient(135deg, #ffb572 0%, #ffe8b2 50%, #ffd97e 100%); }
.hero.hero-flexibilita h1 { color: #065f46; }
.hero.hero-flexibilita .highlight { color: #064e3b; background: #ffe8b2; padding: 1rem; border-radius: 12px; }

.hero.hero-semafor { background: linear-gradient(135deg,#c2c2c2  0%, #dadada 50%, #c2c2c2 100%); }
.hero.hero-semafor h1 { color: #065f46; }
.hero.hero-semafor .highlight { color: #064e3b; background: #dadada ; padding: 1rem; border-radius: 12px; }

.hero.hero-sdileni { background: linear-gradient(135deg,#c4f0de  0%, #d5e8ae 50%, #b9d878 100%); }
.hero.hero-sdileni h1 { color: #065f46; }
.hero.hero-sdileni .highlight { color: #064e3b; background: #d5e8ae ; padding: 1rem; border-radius: 12px; }

/* Dashboard layout grid */
.hero-dashboard-layout { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 4rem; align-items: center; text-align: left; }
.hero-text-content h1 { font-size: 3rem; line-height: 1.2; margin-bottom: 1.5rem; }
.hero-text-content p { font-size: 1.1rem; line-height: 1.7; color: inherit; opacity: 0.9; }
.hero-action-panel { background: rgba(255, 255, 255, 0.45); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.8); border-radius: 24px; padding: 2.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
.hero-action-panel p.info-text { font-size: 0.9rem; opacity: 0.8; margin-bottom: 0.5rem; text-align: center; }

.dashboard-grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 450px), 1fr)); gap: 2rem; margin-top: 2rem; margin-bottom: 5rem; }
.dashboard-grid-container .category-group { margin: 0 !important; height: 100%; display: flex; flex-direction: column; }
.dashboard-grid-container .modal-grid { display: grid !important; gap: 1.2rem; margin-top: auto; }
.dashboard-grid-container .grid-count-3 { grid-template-columns: repeat(3, 1fr) !important; }
.dashboard-grid-container .grid-count-4 { grid-template-columns: repeat(2, 1fr) !important; }
.dashboard-grid-container .grid-count-6 { grid-template-columns: repeat(3, 1fr) !important; }
.dashboard-grid-container .grid-primary-top { grid-template-columns: repeat(2, 1fr) !important; }

/* OPRAVA .primary-trigger na globální úroveň, aby byl "O společnosti" modal tile vždy zelený */
.primary-trigger { grid-column: 1 / -1; background: linear-gradient(135deg, #94e3c2 0%, #7dd1b1 100%) !important; border-color: #7dd1b1 !important; color: #05282a !important; padding: 2.5rem 1.5rem !important; }
.primary-trigger h4 { font-size: 1.6rem; margin-bottom: 0.5rem; color: #05282a !important; }
.primary-trigger p { color: #05282a !important; opacity: 0.8 !important; }
.primary-trigger:hover { background: linear-gradient(135deg, #7dd1b1 0%, #94e3c2 100%) !important; box-shadow: 0 18px 40px rgba(148, 227, 194, 0.4) !important; transform: scale(1.02) translateY(-6px) !important; z-index: 2; }

.dashboard-grid-container .modal-trigger { height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; }

/* Luxury Lightbulb Hero */
.luxury-lightbulb-hero { position: relative; overflow: hidden; min-height: 500px; display: flex; align-items: center; justify-content: center; background-color: #050505; padding: 4rem 2rem; text-align: center; }
.luxury-lightbulb-hero .hero-bg-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('obrázky/bulb.jpg'); background-position: center; background-repeat: no-repeat; background-size: contain; opacity: 0.7; mask-image: radial-gradient(circle, black 40%, transparent 90%); -webkit-mask-image: radial-gradient(circle, black 40%, transparent 90%); }
.luxury-lightbulb-hero .hero-content-wrap { position: relative; z-index: 2; max-width: 900px; background: none; backdrop-filter: none; border: none; padding: 0; }
.luxury-lightbulb-hero h1, .luxury-lightbulb-hero h1 strong { color: #ffffff !important; font-size: 3.5rem; text-shadow: 0 0 20px rgba(0, 0, 0, 1), 0 4px 10px rgba(0, 0, 0, 0.8); margin-bottom: 2rem; letter-spacing: 1px; }
.luxury-lightbulb-hero .highlight { color: #94e3c2 !important; font-size: 1.35rem; font-weight: 600; line-height: 1.6; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.9); max-width: 750px; margin: 0 auto; }

/* Hero With Video */
.hero-with-video { position: relative; overflow: hidden !important; background: transparent !important; border: none !important; }
.video-background-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; overflow: hidden; }
.bg-video { width: 100%; height: 100%; object-fit: cover; object-position: center; animation: videoZoom 30s infinite alternate ease-in-out; }
@keyframes videoZoom { 0% { transform: scale(1); } 100% { transform: scale(1.08); } }
.video-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(5, 40, 42, 0.45) 0%, rgba(10, 61, 61, 0.25) 100%); z-index: 1; }
.hero-with-video .hero-content { position: relative; z-index: 2; }
.hero-with-video .hero-text-content h1, .hero-with-video .hero-text-content p, .hero-with-video .hero-text-content strong, .hero-with-video .hero-text-content em { color: #ffffff !important; text-shadow: 0 2px 15px rgba(0, 0, 0, 0.4); }
.hero-with-video .hero-action-panel { background: rgba(255, 255, 255, 0.12); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3); }
.hero-with-video .hero-action-panel p.info-text { color: rgba(255, 255, 255, 0.9); text-shadow: 0 1px 4px rgba(0,0,0,0.3); }
.hero-with-video .hero-action-panel .modal-trigger { background: rgba(255, 255, 255, 0.95); border: none; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); }
.hero-with-video .hero-action-panel .modal-trigger h2, .hero-with-video .hero-action-panel .modal-trigger p { color: #05282a; }
.hero-with-video .hero-action-panel .modal-trigger:hover { background: #ffffff; box-shadow: 0 15px 35px rgba(148, 227, 194, 0.5); }

/* M2M Hero Layout */
.m2m-hero-layout { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; padding: 6rem 1.5rem; position: relative; overflow: hidden; }
.hero-subtitle { display: inline-block; color: #0a3d3d; background-color: #c4f0de; padding: 6px 14px; border-radius: 8px; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 1.5rem; }
.composite-side { position: relative; display: flex; justify-content: center; }
.main-image-frame { position: relative; width: 100%; max-width: 500px; clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%); -webkit-clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%); transition: transform 0.6s ease; z-index: 2; }
.composite-img { width: 100%; height: auto; display: block; border-radius: 20px; }
.decor-element { position: absolute; background-color: #c4f0de; border-radius: 12px; z-index: 1; opacity: 0.5; }
.datastream-1 { width: 100px; height: 300px; top: -40px; left: -20px; transform: rotate(15deg); }
.datastream-2 { width: 150px; height: 200px; bottom: -50px; right: -10px; transform: rotate(-10deg); }
.glow-point { width: 20px; height: 20px; background-color: #94e3c2; border-radius: 50%; top: 20%; right: 20%; box-shadow: 0 0 30px 10px rgba(148, 227, 194, 0.6); z-index: 3; animation: glowPulse 3s infinite ease-in-out; }

/* CSS pro nová tlačítka pod sebou sekce sdílení, akumulace flex... video sekce*/
.custom-cta-stack { display: flex; flex-direction: column; gap: 16px; margin: 2.5rem auto 0 auto; max-width: 320px; }
.btn-yt-custom { background: linear-gradient(135deg, #ff0000 0%, #cc0000 100%); color: #ffffff !important; padding: 14px 24px; border-radius: 12px; font-weight: 700; font-size: 1.05rem; text-decoration: none; text-align: center; box-shadow: 0 6px 15px rgba(255, 0, 0, 0.25); transition: transform 0.3s ease, box-shadow 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 10px; border: none; }
.btn-yt-custom:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(255, 0, 0, 0.4); }
.btn-docs-custom { background: linear-gradient(135deg, #0a3d3d 0%, #0f5c5c 100%); color: #ffffff !important; padding: 14px 24px; border-radius: 12px; font-weight: 700; font-size: 1.05rem; text-decoration: none; text-align: center; box-shadow: 0 6px 15px rgba(10, 61, 61, 0.25); transition: transform 0.3s ease, box-shadow 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 10px; border: none; }
.btn-docs-custom:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(10, 61, 61, 0.4); }

/* Pulse Tlačítko */
.pulse-btn { display: flex; align-items: center; gap: 16px; margin: 2.5rem auto; padding: 1.1rem 2.8rem; font-weight: 700; background: linear-gradient(135deg, #a9defd); color: #ff8a84; border: none; border-radius: 999px; cursor: pointer; box-shadow: 0 8px 24px rgba(59,130,246,0.35); transition: all 0.28s ease; }
.pulse-btn:hover { transform: scale(1.08); box-shadow: 0 20px 50px rgba(59,130,246,0.6); background: linear-gradient(135deg, #a9defd, #70c8fb); }
.pulse-btn span { font-size: 2.5rem; transition: all 0.28s ease; }
.pulse-btn:hover span { transform: scale(1.35); animation: pulse 1.2s infinite; }
@keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }

/* ===================================================================
   06. MODÁLY A SUB-MODÁLY
   =================================================================== */
.modal { display: none; position: fixed; inset: 0; background: rgba(0, 0, 0, .8); align-items: center; justify-content: center; padding: 20px; z-index: 1000; }
.sub-modal { display: none; position: fixed; inset: 0; background: transparent; align-items: center; justify-content: center; padding: 20px; z-index: 2000; pointer-events: none; }
.sub-modal > .sub-modal-content { pointer-events: auto; }

/* OPRAVA: Zelené pozadí pro modály bez background-image (přidáno !important) */
.modal-content { position: relative; width: 90%; max-width: 1000px; height: 80vh; border-radius: 20px; overflow: hidden; box-shadow: 0 20px 50px rgba(0, 0, 0, .5); background-color: #0a3d3d !important; background-size: cover; background-position: center; overflow-y: auto; -webkit-overflow-scrolling: touch; max-height: 96vh; padding-right: 1.5rem; }
.modal-content.no-scroll { overflow-y: visible !important; overflow: visible !important; height: auto !important; max-height: none !important; padding-right: 0 !important; }
.modal-content.no-scroll .modal-inner { overflow: visible !important; max-height: none !important; }
.modal-content::before { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(8, 46, 44, .9) 0%, rgba(16, 90, 76, .78) 100%); }
#modal2 .modal-content { background-color: #0a3d3d !important; }
.modal-inner { position: relative; z-index: 2; color: white; text-align: center; padding: 80px 40px 100px; height: 100%; display: flex; flex-direction: column; gap: 2rem; }
.modal-btn { margin-top: auto; padding: 1.05rem 3rem; background: linear-gradient(135deg, #2be09a 0%, #16a585 100%); color: #ffffff; border: none; border-radius: 50px; font-weight: 700; letter-spacing: .3px; cursor: pointer; text-decoration: none; display: inline-block; box-shadow: 0 10px 28px rgba(22, 165, 133, .45); transition: transform .3s ease, box-shadow .3s ease, filter .3s ease; }
.modal-btn:hover { transform: translateY(-3px); box-shadow: 0 16px 38px rgba(22, 165, 133, .6); filter: brightness(1.07); }

.sub-modal-urgent .sub-modal-content { background-color: #cc0000 !important; color: #ffffff !important; border: 3px solid #ff4d4d; }
.sub-modal-urgent .sub-modal-content h2, .sub-modal-urgent .sub-modal-content strong { color: #ffffff !important; }
.sub-modal-urgent .sub-close { color: #ffffff !important; }
.sub-modal-urgent .sub-modal-content:hover { background-color: #b30000 !important; transform: scale(1.01); transition: all 0.2s ease-in-out; }
.sub-modal-urgent a { color: #ffffff; text-decoration: underline; font-weight: bold; }
.sub-modal-urgent .highlight-text { display: block; margin-top: 10px; padding: 10px; background: rgba(255, 255, 255, 0.2); border-radius: 4px; }
.sub-modal-trigger.trigger-urgent { background-color: #94e3c2 !important; border: 2px solid #7dd1b1 !important; transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important; }
.sub-modal-trigger.trigger-urgent h3 { color: #0a3d3d !important; text-shadow: none; }
.sub-modal-trigger.trigger-urgent:hover { background-color: #7dd1b1 !important; border-color: #FFD60A !important; transform: translateY(-12px) scale(1.05) !important; box-shadow: 0 22px 50px rgba(148, 227, 194, 0.45) !important; }

.close { position: absolute; top: 20px; right: 25px; width: 54px; height: 54px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; color: white; font-size: 38px; font-weight: 200; display: flex; align-items: center; justify-content: center; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); z-index: 10; line-height: 0; padding-bottom: 4px; }
.close:hover, .close:focus { background: white; color: #0a3d3d; transform: rotate(90deg) scale(1.1); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); outline: none; }
.sub-modal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; margin: 2.5rem 0; padding: 0 20px; }
.sub-modal-trigger { background: rgba(255, 255, 255, .12); backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%); border: 1px solid rgba(255, 255, 255, .30); border-radius: 22px; padding: 2.2rem 1.5rem; cursor: pointer; transition: transform .35s cubic-bezier(.34, 1.4, .64, 1), background .35s ease, border-color .35s ease, box-shadow .35s ease; box-shadow: 0 8px 32px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .25); display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 170px; height: 100%; gap: .8rem; text-align: center; }
.sub-modal-trigger:hover { background: rgba(255, 255, 255, .22); border-color: rgba(148, 227, 194, .9); transform: translateY(-8px); box-shadow: 0 20px 48px rgba(0, 0, 0, .34), 0 0 0 1px rgba(148, 227, 194, .55), inset 0 1px 0 rgba(255, 255, 255, .4); }
.sub-modal-trigger h3, .sub-modal-trigger p { margin: 0; }
.sub-modal-trigger h3 { font-size: 1.45rem; color: #ffffff; line-height: 1.3; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
.sub-modal-trigger p { color: rgba(255, 255, 255, .85); }
a.sub-modal-trigger, .sub-modal-trigger.no-link-style { text-decoration: none; color: inherit; display: block; }
.modal-trigger { background: white; border: 2px solid var(--primary); border-radius: 1.5rem; padding: 2.2rem 1.6rem; text-align: center; cursor: pointer; transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07); will-change: transform, box-shadow, background; position: relative; }
.modal-trigger:hover { transform: translateY(-12px) scale(1.03); background: var(--light); box-shadow: 0 22px 44px rgba(148, 227, 194, 0.32); }
a.modal-trigger { text-decoration: none; color: inherit; display: block; }

.sub-modal-content { background-color: #94e3c2; padding: 2.5rem 2rem; border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, .15); max-width: 400px; margin: 0 auto; color: #000 !important; position: relative; }
.sub-modal-content h2 { color: #000; margin-top: 0; margin-bottom: 1.2rem; font-size: 2rem; text-align: center; }
.sub-modal-content strong { color: #000; }
.sub-modal-content a { color: #000; text-decoration: underline; font-weight: 600; }
.sub-modal-content a:hover { color: #0a3d3d; }
.sub-close { position: absolute; top: 15px; right: 15px; width: 40px; height: 40px; background: rgba(10, 61, 61, 0.05); border-radius: 50%; color: #0a3d3d; font-size: 28px; font-weight: 300; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; opacity: 0.8; line-height: 0; padding-bottom: 3px; }
.sub-close:hover, .sub-close:focus { background: #0a3d3d; color: white; transform: scale(1.15); opacity: 1; outline: none; }
.sub-modal-content svg { fill: #ff0000; }

.video-wrapper { flex: 1; position: relative; width: 100%; min-height: 0; padding-bottom: 56.25%; border-radius: 16px; overflow: hidden; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35); background: #000; }
.video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100% !important; height: 100% !important; border: none; }

.fullscreen-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.9); z-index: 1200; overflow-y: auto; overscroll-behavior: contain; }
.fullscreen-modal .modal-content { min-height: 100dvh; padding: 5rem 1.5rem 4rem; position: relative; color: white; max-width: 960px; margin: 0 auto; background-color: #0a3d3d !important; }
.fullscreen-modal .modal-close-btn { position: fixed; top: 20px; right: 30px; background: none; border: none; font-size: 48px; color: white; cursor: pointer; width: 60px; height: 60px; line-height: 60px; text-align: center; z-index: 1300; transition: all 0.2s; }
.fullscreen-modal .modal-close-btn:hover { color: #ddd; transform: scale(1.15); background: rgba(255,255,255,0.1); border-radius: 50%; }
.fullscreen-modal .modal-body { background: #0a3d3d; padding: 2.5rem; border-radius: 12px; line-height: 1.65; }

.accumulation-contact { color: #ff4d4d !important; font-weight: bold; margin-top: 1rem; }
.accumulation-contact a { color: inherit; text-decoration: underline; }

/* Newsletter Sub-modál */
#newsletterModal { position: fixed; z-index: 2000; inset: 0; background: rgba(0, 0, 0, 0.75); backdrop-filter: blur(8px); align-items: center; justify-content: center; padding: 20px; display: none; }
#newsletterModal .sub-modal-content { background: linear-gradient(135deg, #94e3c2 0%, #7dd1b1 100%); padding: 4rem 3.5rem; border-radius: 28px; box-shadow: 0 25px 70px rgba(0, 0, 0, 0.3); max-width: 560px; width: 100%; text-align: center; position: relative; color: #0a3d3d; transform: scale(0.95); transition: transform 0.4s ease; }
#newsletterModal[style*="flex"] .sub-modal-content, #newsletterModal[style*="block"] .sub-modal-content { transform: scale(1); }
#newsletterModal h2 { font-size: 2rem; font-weight: 900; margin: 0 0 1.2rem 0; color: #0a3d3d; }
#newsletterModal #newsletterDesc { line-height: 1.7; margin-bottom: 2.5rem; opacity: 0.95; }
#newsletterModal form { display: flex; flex-direction: column; gap: 1.8rem; margin-bottom: 1.5rem; }
#newsletterModal input[type="email"] { padding: 1.3rem 1.8rem; border: none; border-radius: 50px; background: rgba(255, 255, 255, 0.95); color: #0a3d3d; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12); transition: all 0.3s ease; }
#newsletterModal input[type="email"]:focus { outline: none; background: #ffffff; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18); transform: translateY(-2px); }
#newsletterModal .sub-modal-btn { padding: 1.3rem 2rem; background: #FFD60A; color: #0a3d3d; border: none; border-radius: 50px; font-weight: 800; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 8px 25px rgba(255, 214, 10, 0.4); }
#newsletterModal .sub-modal-btn:hover { background: #ffc107; transform: translateY(-4px); box-shadow: 0 14px 35px rgba(255, 214, 10, 0.5); }
#newsletterModal .privacy-note { color: rgba(10, 61, 61, 0.85); margin-top: 1.5rem; line-height: 1.5; }
#newsletterModal .sub-close { position: absolute; top: 1.8rem; right: 1.8rem; background: rgba(255, 255, 255, 0.4); border: none; border-radius: 50%; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; color: #0a3d3d; font-size: 1.8rem; font-weight: 300; cursor: pointer; transition: all 0.3s ease; line-height: 0; padding-bottom: 3px; }
#newsletterModal .sub-close:hover, #newsletterModal .sub-close:focus { background: rgba(255, 255, 255, 0.9); color: #0a3d3d; transform: rotate(90deg) scale(1.1); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); outline: none; }

/* Cookie Banner (Pouze vnitřek) */
#cookie-banner .sub-modal-content { max-height: 90vh; display: flex; flex-direction: column; padding: 2rem 1.5rem 1.5rem !important; overflow: hidden; }
#cookie-banner .cookie-options { overflow-y: auto; flex: 1; margin-bottom: 1.5rem; padding-right: 5px; -webkit-overflow-scrolling: touch; }
.cookie-buttons-layout { display: flex; flex-direction: column; gap: 10px; width: 100%; padding-top: 15px; border-top: 1px solid #eee; }
.cookie-btn { width: 100%; padding: 14px; border-radius: 12px; font-weight: 700; font-size: 1rem; cursor: pointer; transition: all 0.3s ease; border: none; text-align: center; }
.btn-main { background-color: #13524e; color: white !important; }
.btn-sub { background-color: #f0f2f5; color: #333 !important; border: 1px solid #ddd; }
.btn-text { background: transparent; color: #666 !important; text-decoration: underline; font-size: 0.9rem; }


/* ===================================================================
   07. CHATBOT TEREZA
   =================================================================== */







/* ===================================================================
   08. KARIÉRA A STRUKTURA SPOLEČNOSTI
   =================================================================== */

/* KARIÉRA (Moderní mentolová edice) */
.kariera-spa-wrapper {
    --lux-bg-deep: #01100F; --lux-bg-glass: rgba(26, 77, 67, 0.4); --lux-accent: #94e3c2; --lux-accent-glow: rgba(148, 227, 194, 0.3); --lux-text-main: #c4f0de; --lux-text-highlight: #ecfcf5; --lux-transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    background-color: var(--lux-bg-deep); color: var(--lux-text-main);
}
.lux-hero { min-height: 80vh; display: flex; align-items: center; justify-content: center; text-align: center; position: relative; background: radial-gradient(circle at center, #0a2d29 0%, var(--lux-bg-deep) 70%); padding: 100px 20px 40px; }

.lux-hero-content {
    max-width: 900px;
    opacity: 0;
    transform: translateY(30px);
    animation: luxHeroReveal 1.2s ease forwards 0.3s;
}
@keyframes luxHeroReveal {
    to { opacity: 1; transform: translateY(0); }
}

.lux-heading { color: var(--lux-text-highlight); font-weight: 700; }
.lux-hero h1.lux-heading { font-size: 4rem; margin-bottom: 0.5rem; text-shadow: 0 0 20px var(--lux-accent-glow); letter-spacing: -1px; }
.hero-divider { width: 80px; height: 3px; background-color: var(--lux-accent); margin: 2rem auto; border: none; }

.fade-in-line {
    opacity: 0;
    transform: translateY(15px);
    animation: luxFadeInLine 0.8s ease forwards;
    color: var(--lux-text-main);
}
@keyframes luxFadeInLine {
    to { opacity: 1; transform: translateY(0); }
}

.fade-in-line strong { color: var(--lux-text-highlight); }
.line-1 { animation-delay: 1.0s; font-size: 1.3rem; } .line-2 { animation-delay: 1.5s; font-size: 1.1rem; } .line-3 { animation-delay: 2.0s; max-width: 700px; margin: 2rem auto; }

.video-frame-container { position: relative; width: 100%; min-height: 100vh; background-color: #000; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 60px 0; }
.bg-video-element { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; transform: translate(-50%, -50%); z-index: 1; object-fit: cover; filter: brightness(40%) contrast(110%); pointer-events: none; }
.inner-content-wrapper { position: relative; z-index: 2; width: 90%; max-width: 1300px; margin: 0 auto; background-color: var(--lux-bg-deep); padding: 80px 60px; border: 1px solid var(--lux-accent); box-shadow: 0 20px 50px rgba(0,0,0,0.9), 0 0 20px var(--lux-accent-glow); border-radius: 4px; }
.section-heading-area { text-align: center; margin-bottom: 60px; }
.section-heading-area h2.lux-heading { font-size: 3rem; letter-spacing: 2px; text-transform: uppercase; }
.gold-subtitle { color: var(--lux-accent); text-transform: uppercase; letter-spacing: 3px; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.5rem; }

.lux-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); gap: 30px; }
.lux-card { background: var(--lux-bg-glass); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 40px; border: 1px solid rgba(148, 227, 194, 0.1); transition: var(--lux-transition); display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; opacity: 0; transform: translateY(40px); }
.lux-card.active { opacity: 1; transform: translateY(0); }
.lux-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, var(--lux-accent), transparent); transform: translateX(-100%); transition: transform 0.6s ease; }
.lux-card:hover { transform: translateY(-5px) scale(1.02); border-color: var(--lux-accent); box-shadow: 0 15px 30px rgba(0,0,0,0.4), 0 0 15px var(--lux-accent-glow); }
.lux-card:hover::before { transform: translateX(100%); }
.card-icon-area { margin-bottom: 25px; color: var(--lux-accent); transition: var(--lux-transition); }
.lux-card:hover .card-icon-area { color: var(--lux-text-highlight); filter: drop-shadow(0 0 8px var(--lux-accent)); }
.lux-card h3 { font-size: 1.6rem; margin-bottom: 15px; line-height: 1.3; color: var(--lux-text-highlight); }
.lux-card p { font-weight: 300; color: var(--lux-text-main); margin-bottom: 30px; flex-grow: 1; }
.lux-btn-underlined { background: transparent; border: none; color: var(--lux-accent); font-weight: 600; text-transform: uppercase; font-size: 0.85rem; letter-spacing: 1px; align-self: flex-start; position: relative; padding: 0 0 5px 0; cursor: pointer; transition: var(--lux-transition); }
.lux-btn-underlined::after { content: ''; position: absolute; bottom: 0; left: 0; width: 30px; height: 1px; background-color: var(--lux-accent); transition: var(--lux-transition); }
.lux-card:hover .lux-btn-underlined::after { width: 100%; background-color: var(--lux-text-highlight); }
.lux-card:hover .lux-btn-underlined { color: var(--lux-text-highlight); }

/* KARIÉRA Modál */
.modal.modal-kariera { background: #000000CC; }
.modal-kariera .modal-content { background: #94e3c2; background-image: none !important; border-radius: 30px; padding: 60px 80px; max-height: 90vh; overflow-y: auto; width: 90%; max-width: 950px; margin: 0 auto; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); color: #ecfcf5 !important; line-height: 1.9; }
.modal-kariera .modal-content::before { background: transparent !important; content: none !important; }
.modal-kariera .modal-content::-webkit-scrollbar-track { background: #94e3c2; }
.modal-kariera .modal-content::-webkit-scrollbar-thumb { background: #0a3d3d99; border-radius: 10px; }
.modal-kariera h2 { font-size: 2rem; text-align: center; color: #c4f0de; margin-bottom: 50px; }
.modal-kariera h3 { font-size: 1.5rem; text-align: center; color: #c4f0de; margin: 60px 0 30px; position: relative; }
.modal-kariera h3::after { content: ''; display: block; width: 100px; height: 6px; background: white; opacity: 0.8; margin: 20px auto 0; border-radius: 4px; }
.modal-kariera ul { padding-left: 30px; margin: 25px 0; }
.modal-kariera ul li { margin-bottom: 18px; color: #ecfcf5; }
.modal-kariera .close { position: fixed !important; top: 15px !important; right: 20px !important; left: auto !important; z-index: 10000; color: #0a3d3d !important; background: rgba(255, 255, 255, 0.9) !important; border: 1px solid rgba(10, 61, 61, 0.2) !important; }
.modal-kariera .close:hover, .modal-kariera .close:focus { background: #0a3d3d !important; color: white !important; transform: rotate(90deg) scale(1.1); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); }
.modal-kariera .modal-btn { display: block; width: fit-content; margin: 70px auto 40px; padding: 1.4rem 4.5rem; background: white; color: #0a3d3d; border: 4px solid #0a3d3d; border-radius: 50px; font-weight: 700; text-decoration: none; }

/* STRUKTURA SPOLEČNOSTI */
.edc-intro, .edc-services, .edc-activities, .edc-organs, .edc-structure { font-family: Arial, Helvetica, sans-serif; }
.edc-intro h1 { font-size: 2.5rem; color: #052222; margin-bottom: 2rem; line-height: 1.2; font-weight: bold; }
.edc-intro p { line-height: 1.8; color: #222222; margin-bottom: 1.5rem; }
.edc-intro .quote { background: #ffffff; padding: 30px; border-radius: 20px; box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06); font-style: italic; margin: 2rem 0; position: relative; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.edc-intro .quote:hover { transform: translateY(-5px); box-shadow: 0 25px 50px rgba(148, 227, 194, 0.3); }
.edc-intro .quote-author { margin-top: 1rem; font-weight: bold; color: #c4f0de; font-style: normal; }
.edc-intro-img { border-radius: 24px; overflow: hidden; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1); transition: transform 0.4s ease, box-shadow 0.4s ease; }
.edc-intro-img:hover { transform: scale(1.02); box-shadow: 0 30px 60px rgba(148, 227, 194, 0.4); }
.edc-intro-img img { width: 100%; height: auto; display: block; }
.edc-intro.dynamic-hero .edc-intro-img { display: none; }

.edc-services { background: linear-gradient(135deg, #ecfcf5 0%, #c4f0de 50%, #94e3c2 100%); padding: 80px 0; margin: 0 0 60px 0; }
.edc-services .container { background: #ffffff; border: none; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08); padding: 50px 60px; border-radius: 24px; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.edc-services .container:hover { transform: translateY(-5px); box-shadow: 0 30px 60px rgba(10, 61, 61, 0.15); }
.edc-services h2 { color: #052222; font-size: 2rem; margin-bottom: 1.5rem; font-weight: bold; }
.edc-services p, .edc-services li { line-height: 1.8; color: #222222; hyphens: auto; word-break: break-word; overflow-wrap: break-word; }
.edc-services ul { margin: 1.5rem 0; padding-left: 1.8rem; }
.edc-services ul li { margin-bottom: 0.9rem; }

.edc-activities .container, .edc-organs .container, .edc-structure .container { text-align: center; }
.edc-activities h2, .edc-organs h2, .edc-structure h2 { font-size: 2rem; color: #c4f0de; margin-bottom: 1.5rem; font-weight: bold; }
.image-full img { width: 100%; height: auto; border-radius: 24px; box-shadow: 0 15px 40px rgba(0,0,0,0.08); }
.organs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2.5rem; }
.organ-section h3 { font-size: 1.5rem; color: #ecfcf5; margin-bottom: 1.5rem; font-weight: bold; }

.edc-services.modern-slant { background: #050a14; padding-bottom: 5rem; position: relative; z-index: 1; }
.services-card { background: white; padding: 4rem; border-radius: 24px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); margin-top: -80px; clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%); position: relative; transition: transform 0.3s ease; }
.services-card h2 { color: #05282a; font-size: 2.2rem; margin-top: 1rem; margin-bottom: 1.5rem; }
.services-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; margin: 2.5rem 0; }
.services-list li { padding: 1.5rem; background: #ecfcf5; border-left: 4px solid #94e3c2; border-radius: 8px; font-size: 0.95rem; line-height: 1.5; }
.future-solution { background: linear-gradient(135deg, #94e3c2 0%, #27504c 100%); padding: 2rem; border-radius: 16px; margin-top: 3rem; }

.member-card { background: #ffffff; padding: 2rem 1.5rem; border-radius: 20px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); margin-bottom: 1rem; text-align: center; border: 1px solid rgba(148, 227, 194, 0.2); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.member-card:hover { transform: translateY(-10px) scale(1.02); background: linear-gradient(135deg, #c4f0de, #94e3c2); box-shadow: 0 25px 50px rgba(148, 227, 194, 0.6); border-color: transparent; z-index: 10; }
.member-card:hover .member-name { color: #052222; font-weight: bold; }
.member-card:hover .member-role { color: #052222; font-weight: bold; opacity: 0.9; }
.member-name { font-weight: bold; color: #052222; margin-bottom: 0.5rem; font-size: 1.2rem; transition: color 0.3s ease; }
.member-role { font-style: italic; color: #444444; transition: color 0.3s ease; }

.pie-chart-container { margin: 2rem auto; max-width: 400px; }
.structure-highlight { color: #c4f0de; margin-top: 1rem; font-weight: bold; }

.dynamic-hero { position: relative; background-size: cover; background-position: center; color: white; padding: 6rem 0; clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%); }
.dynamic-hero .overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to right, rgba(10, 30, 60, 0.9) 30%, rgba(10, 30, 60, 0.2) 100%); z-index: 1; }
.dynamic-hero .container { position: relative; z-index: 2; }
.hero-edc { width: 60%; }
.hero-edc h1, .hero-edc p, .hero-edc .quote { color: white; }
.hero-edc .quote { border-left-color: rgba(255,255,255,0.5); background: rgba(255,255,255,0.1); }

.modern-structure-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin: 3rem 0; }
.structure-card { background: #ffffff; border-radius: 20px; padding: 2.5rem 1.5rem; text-align: center; border: 1px solid rgba(148, 227, 194, 0.3); box-shadow: 0 10px 30px rgba(10, 61, 61, 0.05); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); display: flex; flex-direction: column; align-items: center; }
.structure-card:hover { transform: translateY(-12px); box-shadow: 0 20px 40px rgba(148, 227, 194, 0.25); border-color: #94e3c2; }
.share-badge { width: 86px; height: 86px; background: linear-gradient(135deg, #ecfcf5, #c4f0de); color: #0a3d3d; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; font-weight: 800; margin-bottom: 1.5rem; border: 4px solid #ffffff; box-shadow: 0 8px 20px rgba(10, 61, 61, 0.08); transition: transform 0.4s ease, background 0.4s ease, color 0.4s ease; }
.structure-card:hover .share-badge { transform: scale(1.1) rotate(5deg); background: linear-gradient(135deg, #94e3c2, #7dd1b1); color: #ffffff; }
.structure-card h3 { font-size: 1.25rem; color: #0a3d3d; margin-bottom: 0.5rem; font-weight: 700; }
.structure-card p { font-size: 0.9rem; color: #555555; margin: 0; line-height: 1.5; }

/* valné hromady, výročky atd odkaz zpět v hero cekci */
.hero-action-area { margin-top: 2rem; }
.elegant-divider { border: 0; height: 1px; background: linear-gradient(to right, transparent, rgba(148, 227, 194, 0.5), transparent); margin-bottom: 1.5rem; }
.btn-hero-back { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1.2rem; color: #0a3d3d; background: #ecfcf5; text-decoration: none; font-weight: 700; border: 1px solid rgba(148, 227, 194, 0.3); border-radius: 999px; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.btn-hero-back:hover { transform: translateX(-6px); background: linear-gradient(135deg, #94e3c2, #7dd1b1); color: #ffffff; box-shadow: 0 10px 20px rgba(148, 227, 194, 0.25); border-color: transparent; }

/* STRUKTURA SPOLEČNOSTI aktivity routemapa*/

.edc-odyssey-container { background: #020a0a; color: white; padding: 100px 20px; position: relative; min-height: 200vh; z-index: 1; } 
.odyssey-sticky-header { position: sticky; top: 85px; z-index: 9999; display: flex; flex-direction: column; align-items: center; margin-bottom: 100px; } 
.edc-core-node { width: 220px; height: 100px; background: #0a3d3d; border-radius: 24px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 10px; box-shadow: 0 0 40px rgba(148, 227, 194, 0.3); border: 1px solid rgba(148, 227, 194, 0.5); position: relative; overflow: visible; }
.core-logo { font-size: 1.4rem; font-weight: 900; color: #94e3c2; line-height: 1.2; letter-spacing: 0.5px; }
.service-glass-card { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 25px; margin: 20px 0; opacity: 0; transform: translateY(40px) scale(0.95); transition: opacity 0.8s ease-out, transform 0.8s ease-out, box-shadow 0.3s ease; animation: force-show 0.5s ease-out 3s forwards; }
.service-glass-card.visible { opacity: 1 !important; transform: translateY(0) scale(1) !important; animation: none; }
.service-glass-card:hover { box-shadow: 0 10px 30px rgba(0,0,0,0.5); border-color: rgba(255, 255, 255, 0.3); transform: translateY(-5px) scale(1.02) !important; z-index: 10; }
.green { border-left: 4px solid #659c84; }
.dark-blue { border-left: 4px solid #0f435c; }
.light-blue { border-left: 4px solid #9ec7e8; }
.gray { border-left: 4px solid #c7c7c7; }
.milestone { max-width: 800px; margin: 0 auto 150px; padding-left: 50px; border-left: 2px dashed rgba(255,255,255,0.1); }
.year-tag { font-size: 1.5rem; font-weight: 800; margin-bottom: 20px; color: #94e3c2; }

@keyframes force-show { to { opacity: 1; transform: translateY(0) scale(1); } }

/* ===================================================================
   09. AKTUALITY, ZPRÁVY A OBSAHOVÉ STRÁNKY
   =================================================================== */
.aktuality, .aktualitytext { padding: 6rem 2rem; text-align: center; background: var(--light); }
.aktuality h1, .aktualitytext h1 { font-size: 2.5rem; margin-bottom: 4rem; color: #0a3d3d; }
.aktuality-list, .aktualitytext-list { display: flex; flex-direction: column; gap: 1.5rem; max-width: 1200px; margin: 0 auto; }
.aktualitytext p, .aktualitytext ul, .aktualitytext ol { text-align: left; }
.aktualita-row { display: flex; align-items: center; background: white; border-radius: 20px; padding: 2rem 3rem; box-shadow: 0 10px 30px rgba(0, 0, 0, .1); transition: transform .3s, box-shadow .3s; flex-wrap: nowrap; }
.aktualita-row:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0, 0, 0, .15); }
.aktualita-title { flex: 0 0 250px; font-size: 1.5rem; font-weight: 600; color: #0a3d3d; text-align: left; }
.aktualita-text { flex: 1; text-align: left; color: #555; line-height: 1.7; padding: 0 2rem; }
.aktualita-buttons { flex: 0 0 auto; display: flex; gap: 1.2rem; }
.btn-cist, .btn-stahnout { padding: 0.9rem 2.2rem; border-radius: 50px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: all .3s; color: #0a3d3d; }
.btn-cist { background: var(--primary); }
.btn-cist:hover { background: #7dd1b1; transform: translateY(-3px); }
.btn-stahnout { background: #FFD60A; }
.btn-stahnout:hover { background: #ffea4d; transform: translateY(-3px); }
.aktualita-row.highlight { background-color: #e6f0ff; border-left: 4px solid #0066cc; padding-left: 16px; transition: all 0.4s ease; animation: fadeHighlight 3s forwards; }
.aktualita-row[id^="q"] { scroll-margin-top: 90px; }
#faq-start { margin-top: -80px; padding-top: 80px; display: block; }

@keyframes fadeHighlight {
    0% { background-color: #d4e6ff; border-left-color: #0066cc; }
    100% { background-color: transparent; border-left-color: transparent; padding-left: 20px; }
}

.zprava-content { background: linear-gradient(135deg, #05282a, rgba(148, 227, 194, 0.06)); padding: 100px 0 120px; margin-bottom: 60px; }
.zprava-content .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; width: 100%; box-sizing: border-box; }
.zprava-content h1 { font-size: 2.5rem; color: #94e3c2; margin-bottom: 2rem; line-height: 1.2; text-align: center; }
.zprava-content p, .zprava-content ul, .zprava-content ol { line-height: 1.8; color: #ecfcf5; margin-bottom: 1.5rem; text-align: justify; }
.zprava-content ul, .zprava-content ol { padding-left: 1.5rem; }
.zprava-content li { margin-bottom: 0.5rem; }
.zprava-content .quote { background: white; padding: 30px; border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); font-style: italic; margin: 2rem auto; max-width: 900px; position: relative; text-align: center; }
.zprava-content .quote::before { content: '„'; font-size: 6rem; color: var(--primary); position: absolute; top: -20px; left: 20px; opacity: 0.3; }
.zprava-content .quote-author { margin-top: 1rem; font-weight: 600; color: #0a3d3d; font-style: normal; text-align: right; }
.zprava-back-wrapper { margin-bottom: 2rem; text-align: left; }
.zprava-back-wrapper .login-btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.8rem 2.2rem; border-radius: 999px; background: var(--primary); color: #ffffff; font-weight: 600; text-decoration: none; border: 2px solid var(--primary); box-shadow: 0 8px 20px rgba(0, 0, 0, .12); transition: background 0.2s ease, color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease; }
.zprava-back-wrapper .login-btn:hover, .zprava-back-wrapper .login-btn:focus { background: #ffffff; color: #0a3d3d; transform: translateY(-1px); box-shadow: 0 10px 25px rgba(0, 0, 0, .18); outline: none; }

.edc-content-page { padding-top: 120px; }
.edc-content-page .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.container.edc-content-page { padding-top: 120px; }
.edc-content-page h1 { font-size: 2.5rem; font-weight: 700; color: #003366; margin: 2rem 0 2.5rem; line-height: 1.2; }
.edc-content-page h2 { font-size: 2rem; font-weight: 600; color: #003366; margin: 3.5rem 0 1.5rem; padding-bottom: 0.8rem; border-bottom: 3px solid #004488; }
.edc-content-page h3 { font-size: 1.5rem; font-weight: 600; color: #004488; margin: 3rem 0 1rem; }
.edc-content-page h4 { font-size: 1.25rem; font-weight: 600; color: #003366; margin: 2.5rem 0 0.8rem; background-color: #f0f8ff; padding: 0.8rem 1.2rem; border-radius: 6px; }
.edc-content-page p { margin-bottom: 1.4rem; line-height: 1.7; }
.edc-content-page p strong { color: #003366; }
.edc-content-page ul { list-style-type: disc; padding-left: 2.8rem; margin: 1.5rem 0; }
.edc-content-page ul li { margin-bottom: 0.9rem; position: relative; }
.edc-content-page ul li::marker { color: #004488; }
.edc-content-page .quote { background-color: #e9f5ff; border-left: 6px solid #004488; padding: 2rem; margin: 3rem 0; font-style: italic; color: #003366; border-radius: 0 8px 8px 0; }
.edc-content-page .quote-author { margin-top: 1.2rem; font-weight: 600; color: #004488; font-style: normal; text-align: right; }
.edc-content-page .content-block { padding: 2.5rem 2rem; margin: 2rem 0; border-radius: 12px; background-color: transparent; transition: background-color 0.3s ease; }
.edc-content-page .content-block:nth-of-type(even) { background-color: #c4f0de; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); }
main.container.edc-content-page { padding-top: 100px; }

/* ===================================================================
   10. SLOVNÍK A FAQ
   =================================================================== */
.hero-slovnik { padding-top: 6rem; }
.slovnik-controls { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2rem; }
.slovnik-search label { display: block; margin-bottom: 0.25rem; font-weight: 500; color: #ecfcf5; }
.slovnik-search input { width: 100%; max-width: 420px; padding: 0.6rem 0.75rem; border-radius: 0.5rem; border: 1px solid #d0d5dd;color: #ecfcf5; }
/* Vyhledávací pole s tlačítkem pro vymazání a lupou (vyhledat) */
.slovnik-search-field { position: relative; width: 100%; max-width: 420px; }
.slovnik-search-field input { padding-right: 5rem; }
/* Křížek (vymazat) – nalevo od lupy */
.slovnik-clear-btn { position: absolute; top: 50%; right: 2.9rem; transform: translateY(-50%); width: 1.6rem; height: 1.6rem; display: flex; align-items: center; justify-content: center; padding: 0; border: none; border-radius: 50%; cursor: pointer; background: rgba(255, 255, 255, 0.18); color: #ecfcf5; font-size: 1.15rem; line-height: 1; transition: background 0.2s ease, color 0.2s ease; }
.slovnik-clear-btn:hover, .slovnik-clear-btn:focus { background: rgba(255, 255, 255, 0.38); color: #ffffff; outline: none; }
.slovnik-clear-btn[hidden] { display: none; }
/* Lupa (vyhledat = náhrada Enteru) – vpravo, primární akce */
.slovnik-go-btn { position: absolute; top: 50%; right: 0.45rem; transform: translateY(-50%); width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; padding: 0; border: none; border-radius: 8px; cursor: pointer; background: #0a3d3d; color: #ffffff; transition: background 0.2s ease, color 0.2s ease; }
.slovnik-go-btn:hover, .slovnik-go-btn:focus { background: #94e3c2; color: #0a3d3d; outline: none; }
.slovnik-go-btn[hidden] { display: none; }
[data-theme="wcag-aaa"] .slovnik-go-btn { background: #000; color: #ffff00; border: 2px solid #ffff00; }
.slovnik-letters { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.letter-btn { border: 1px solid #d0d5dd; background: #fff; border-radius: 999px; padding: 0.4rem 0.8rem; cursor: pointer; transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); position: relative; overflow: hidden; transform-origin: center; min-width: 36px; min-height: 36px; display: flex; align-items: center; justify-content: center; font-weight: 600; color: #0a3d3d; }
.letter-btn:hover:not(.active) { transform: scale(1.4) rotate(3deg); background: linear-gradient(135deg, #94e3c2 0%, #7dd1b1 100%); border-color: transparent; color: #fff; box-shadow: 0 6px 20px rgba(148, 227, 194, 0.5); z-index: 10; }
.letter-btn.active { background: linear-gradient(135deg, #0a3d3d 0%, #1a5d5d 100%); color: white; border-color: transparent; transform: scale(1.2); box-shadow: 0 4px 15px rgba(10, 61, 61, 0.3); }
.letter-btn.flash-effect { animation: letterFlash 0.7s cubic-bezier(0.68, -0.55, 0.27, 1.55); }
.letter-btn[data-letter="vse"].flash-effect { animation: letterFlashVse 0.7s cubic-bezier(0.68, -0.55, 0.27, 1.55); }
.slovnik-letters:hover .letter-btn:not(:hover):not(.active) { opacity: 0.8; transform: scale(0.95); }

@keyframes letterFlash {
    0% { transform: scale(1); background: #fff; color: #0a3d3d; box-shadow: 0 0 0 0 rgba(255, 214, 10, 0); }
    20% { transform: scale(1.5); background: #FFD60A; color: #0a3d3d; box-shadow: 0 0 0 8px rgba(255, 214, 10, 0.4); }
    40% { transform: scale(1.3); background: #ffea4d; color: #0a3d3d; box-shadow: 0 0 0 12px rgba(255, 214, 10, 0.3); }
    60% { transform: scale(1.4); background: #FFD60A; color: #0a3d3d; box-shadow: 0 0 0 6px rgba(255, 214, 10, 0.2); }
    80% { transform: scale(1.25); background: #94e3c2; color: #fff; box-shadow: 0 0 0 4px rgba(148, 227, 194, 0.3); }
    100% { transform: scale(1.2); background: linear-gradient(135deg, #0a3d3d 0%, #1a5d5d 100%); color: white; box-shadow: 0 4px 15px rgba(10, 61, 61, 0.3); }
}
@keyframes letterFlashVse {
    0% { transform: scale(1); background: #fff; color: #0a3d3d; }
    20% { transform: scale(1.5) rotate(-5deg); background: #FFD60A; color: #0a3d3d; box-shadow: 0 0 0 10px rgba(255, 214, 10, 0.4); }
    40% { transform: scale(1.4) rotate(5deg); background: #ffea4d; color: #0a3d3d; }
    60% { transform: scale(1.45) rotate(-3deg); background: #FFD60A; color: #0a3d3d; }
    80% { transform: scale(1.35); background: #94e3c2; color: #fff; }
    100% { transform: scale(1.2); background: linear-gradient(135deg, #0a3d3d 0%, #1a5d5d 100%); color: white; box-shadow: 0 4px 15px rgba(10, 61, 61, 0.3); }
}

.slovnik-list { display: flex; flex-direction: column; gap: 1rem; margin: 2rem 0 3rem; }
.slovnik-item { position: static; border-radius: 0.75rem; border: 1px solid #e4e7ec; padding: 1rem 1.25rem; background: #fff; }
.slovnik-item-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.slovnik-term { font-weight: 600; display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: baseline; }
.slovnik-term-full { font-weight: 400; color: #667085; }
.slovnik-toggle { border: none; background: transparent; color: #0052cc; font-weight: 500; cursor: pointer; }
.slovnik-detail { margin-top: 0.75rem; display: none; color: #344054; }
.slovnik-item.open .slovnik-detail { display: block; }
.slovnik-source { margin-top: 0.5rem; color: #98a2b3; }
.slovnik-note { margin-bottom: 3rem; }
.slovnik-note h2, .slovnik-note p { color: #94e3c2; }
.slovnik-count-container { color: #c4f0de; font-weight: bold; }

.slovnik-modal { position: fixed; inset: 0; display: none; justify-content: center; align-items: center; background: #94e3c2; z-index: 9999; }
.slovnik-modal-content { background: #fff; max-width: 800px; width: 90%; max-height: 80vh; display: flex; flex-direction: column; border-radius: 8px; padding: 1.5rem; }
.modal-slovnik .modal-content { background: #ecfcf5; background-image: none; position: relative; width: 90%; max-width: 900px; max-height: 80vh; border-radius: 20px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.5); padding-right: 0; }
.modal-slovnik .modal-content::before { content: none !important; }
.modal-slovnik .modal-inner { position: relative; z-index: 1; color: #ecfcf5; text-align: left; padding: 40px 30px 30px; display: block; max-height: 80vh; overflow-y: auto; gap: 0; }

.slovnik-result-item { background: #ecfcf5; border-radius: 12px; margin-bottom: 1rem; box-shadow: 0 4px 15px rgba(0,0,0,0.08); overflow: hidden; }
.slovnik-result-header { padding: 1.2rem 1.5rem; background: var(--primary); color: #05282a; font-size: 1.25rem; cursor: pointer; display: flex; justify-content: space-between; align-items: center; user-select: none; }
.slovnik-result-header:hover { background: #c4f0de; }
.slovnik-arrow { font-size: 1.4rem; transition: transform .3s; }
.slovnik-result-body { max-height: 0; overflow: hidden; transition: max-height .4s ease; padding: 0 1.5rem; background: #c4f0de; }
.slovnik-result-body p { padding: 1.5rem 0; color: #27504c; }
.slovnik-result-item.open .slovnik-result-body { padding: 1.5rem; }

/* FAQ */
.faq-category-select, .faq-dropdown { position: relative; display: inline-block; margin: 20px 0; width: 100%; max-width: 500px; }
.faq-category-btn, .faq-dropdown-btn { background-color: #f8f9fa; color: #333; padding: 14px 20px; font-weight: 600; border: 1px solid #ddd; border-radius: 6px; cursor: pointer; width: 100%; text-align: left; box-sizing: border-box; transition: background-color 0.2s, box-shadow 0.2s, border-color 0.2s; }
.faq-category-btn:hover, .faq-dropdown-btn:hover { background-color: #e9ecef; }
.faq-category-btn::after, .faq-dropdown-btn::after { content: "▼"; float: right; font-size: 14px; transition: transform 0.3s; }
.faq-category-select.active .faq-category-btn, .faq-dropdown.active .faq-dropdown-btn { background: #ffffff; border-color: #94e3c2; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06); color: #0a3d3d; }
.faq-category-select.active .faq-category-btn::after, .faq-dropdown.active .faq-dropdown-btn::after { transform: rotate(180deg); }

.faq-category-content, .faq-dropdown-content { display: none; position: absolute; background-color: #ffffff; min-width: 100%; box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18); z-index: 20; border-radius: 14px; overflow: hidden; margin-top: 8px; border: 1px solid #e4e7ec; padding: 6px 0; max-height: min(400px, 60vh); overflow-y: auto; scrollbar-width: thin; scrollbar-color: #94e3c2 #f0f0f0; }
.faq-category-select.active .faq-category-content, .faq-dropdown.active .faq-dropdown-content { display: block; }
.faq-category-content button, .faq-dropdown-content a { width: 100%; border: none; background: transparent; text-align: left; padding: 10px 16px; color: #101828; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: background-color 0.18s ease, color 0.18s ease, padding-left 0.18s ease; font-weight: 500; }
.faq-category-content button::before, .faq-dropdown-content a::before { content: "●"; font-size: 8px; color: #94e3c2; }
.faq-category-content button:hover, .faq-dropdown-content a:hover { background-color: #f5f8ff; color: #004488; padding-left: 20px; }
.faq-category-content button + button, .faq-dropdown-content a + a { border-top: 1px solid #f1f3f5; }

.faq-category-content::-webkit-scrollbar, .faq-dropdown-content::-webkit-scrollbar { width: 8px; }
.faq-category-content::-webkit-scrollbar-track, .faq-dropdown-content::-webkit-scrollbar-track { background: #f0f0f0; border-radius: 4px; }
.faq-category-content::-webkit-scrollbar-thumb, .faq-dropdown-content::-webkit-scrollbar-thumb { background: #94e3c2; border-radius: 4px; border: 2px solid #f0f0f0; }
.faq-category-content::-webkit-scrollbar-thumb:hover, .faq-dropdown-content::-webkit-scrollbar-thumb:hover { background: #7dd1b1; }

/* ===================================================================
   11. POVINNÁ SDĚLENÍ A BENTO PRŮVODCE
   =================================================================== */
.info-section { margin: 80px 0; text-align: center; }
.info-section h2 { font-size: 2rem; color: #94e3c2; margin-bottom: 40px; position: relative; }
.info-section h2::after { content: ''; display: block; width: 80px; height: 5px; background: #94e3c2; margin: 20px auto 0; border-radius: 3px; }
.single-tile .modal-trigger { max-width: 600px; margin: 0 auto; }
.large-tile { padding: 60px 40px; }
.large-tile h3 { font-size: 1.5rem; }
.zakazky-section p { max-width: 800px; margin: 0 auto 20px; color: #94e3c2; line-height: 1.8; }

.category-group { background: white; border-radius: 16px; border: 6px solid #94e3c2; padding: 1.5rem 1.5rem 2rem 1.5rem; margin: 2.5rem 0; box-shadow: 0 6px 16px rgba(148, 227, 194, 0.18); transition: all 0.25s ease; }
.category-title { font-size: 2rem; color: #0a3d3d; margin: 0 0 1.4rem 0; padding-bottom: 0; border-bottom: none; text-align: center; font-weight: 700; }
.category-group:hover { background-color: #fafcfb; box-shadow: inset 0 25px 50px -12px rgba(10, 61, 61, 0.15), inset 0 4px 12px rgba(10, 61, 61, 0.08), inset 0 -15px 30px rgba(6, 226, 134, 0.25); transform: translateY(2px) scale(0.99); border-color: rgba(148, 227, 194, 0.6); }

.modal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem 1.2rem; margin: 1.5rem 0; }
.modal-grid .modal-trigger { padding: 1.5rem 1.2rem; min-height: 120px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; border-radius: 12px; background: white; border: 1px solid #e5e7eb; transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, border-color 0.25s ease; will-change: transform, box-shadow; }
.modal-grid .modal-trigger:hover { transform: scale(1.14) translateY(-6px); background: #ecfdf5; border-color: #94e3c2; box-shadow: 0 12px 32px rgba(148, 227, 194, 0.32); z-index: 2; }

/* Modály barevné sekce */
.modals-section.flexibilita-section .modal-trigger { background: #ffe8b2; border: 1px solid #ffd97e; box-shadow: 0 4px 12px rgba(96, 165, 250, 0.15); }
.modals-section.flexibilita-section .modal-trigger:hover { background: #ffd97e; border-color: #ffe8b2; box-shadow: 0 12px 32px rgba(96, 165, 250, 0.3); transform: scale(1.08) translateY(-8px); margin-bottom: 16px; transition: all 0.35s ease; }
.modals-section.flexibilita-section .step-number { background: #10b981; color: white; }
.flexibilita-section { margin-bottom: 80px; padding-bottom: 40px; }

.modals-section.semafor-section .modal-trigger { background: #dadada; border: 1px solid #c2c2c2; box-shadow: 0 4px 12px rgba(96, 165, 250, 0.15); }
.modals-section.semafor-section .modal-trigger:hover { background: #c2c2c2; border-color: #dadada; box-shadow: 0 12px 32px rgba(96, 165, 250, 0.3); transform: scale(1.08) translateY(-8px); margin-bottom: 16px; transition: all 0.35s ease; }
.modals-section.semafor-section .step-number { background: #10b981; color: white; }
.semafor-section { margin-bottom: 80px; padding-bottom: 40px; }

.modals-section.akumulace-section .modal-trigger { background: #a9defd; border: 1px solid #70c8fb; box-shadow: 0 4px 12px rgba(96, 165, 250, 0.15); }
.modals-section.akumulace-section .modal-trigger:hover { background: #70c8fb; border-color: #a9defd; box-shadow: 0 12px 32px rgba(96, 165, 250, 0.3); transform: scale(1.08) translateY(-8px); margin-bottom: 16px; transition: all 0.35s ease; }
.modals-section.akumulace-section .step-number { background: #3b82f6; color: white; }
.akumulace-section { margin-bottom: 80px; padding-bottom: 40px; }

.modals-section.sdileni-section .modal-trigger { background: #d5e8ae; border: 1px solid #b9d878; box-shadow: 0 4px 12px rgba(96, 165, 250, 0.15); }
.modals-section.sdileni-section .modal-trigger:hover { background: #b9d878; border-color: #d5e8ae; box-shadow: 0 12px 32px rgba(96, 165, 250, 0.3); transform: scale(1.08) translateY(-8px); margin-bottom: 16px; transition: all 0.35s ease; }
.sdileni-section { margin-bottom: 80px; padding-bottom: 40px; }

/* Průvodce 2026 Bento */
.luxury-grid { padding: 4rem 1.5rem; max-width: 1200px; margin: 0 auto; }
.section-title { color: var(--accent-bright); font-size: 2.2rem; font-weight: 800; margin-bottom: 2.5rem; letter-spacing: -0.02em; }
.bento-layout { display: grid; grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); gap: 1.5rem; }
.bento-layout .modal-trigger { background-color: var(--tile-bg); border: 1px solid rgba(10, 61, 61, 0.1); border-radius: 24px; padding: 1.8rem; text-decoration: none; display: flex; flex-direction: column; transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03); align-items: flex-start; }
.bento-layout .modal-trigger:hover { transform: translateY(-8px); background-color: var(--white); border-color: var(--accent-bright); box-shadow: 0 20px 40px rgba(10, 61, 61, 0.12); }
.card-icon { width: 48px; height: 48px; background: rgba(10, 61, 61, 0.08); border-radius: 14px; display: flex; align-items: center; justify-content: center; color: var(--tile-text); margin-bottom: 1.2rem; transition: transform 0.3s ease, background 0.3s ease; }
.bento-layout .modal-trigger:hover .card-icon { background: var(--tile-bg); transform: rotate(-5deg) scale(1.1); }
.card-date { display: block; white-space: nowrap; font-size: 0.85rem; margin-bottom: 8px; opacity: 0.8; transition: all 0.3s ease; border-radius: 4px; }
.bento-layout .modal-trigger:hover .card-date { background-color: #0a3d3d; color: #ffffff; transform: scale(1.1); padding: 2px 6px; }
.card-content { display: flex; flex-direction: column; align-items: flex-start; width: 100%; }
.card-content h3 { margin-top: 0; line-height: 1.3; color: var(--tile-text); font-size: 1.2rem; margin: 0.6rem 0 1.2rem 0; font-weight: 700; }
.card-footer { margin-top: auto; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid rgba(10, 61, 61, 0.05); padding-top: 1rem; width: 100%; }
.file-tag { font-size: 0.7rem; font-weight: 800; padding: 5px 12px; background: rgba(10, 61, 61, 0.1); border-radius: 6px; color: var(--tile-text); }
.download-text { font-size: 0.85rem; font-weight: 700; color: var(--tile-text); }
.luxury-btn { display: inline-block; padding: 1rem 2.2rem; background: var(--tile-text); color: var(--tile-bg); text-decoration: none; border-radius: 50px; font-weight: 700; transition: all 0.3s ease; }
.luxury-btn:hover { background: var(--accent-bright); color: var(--tile-text); transform: scale(1.05); }
.card-excel .card-icon { color: #217346; }

.guide-section { padding: 2rem 1.5rem 6rem; max-width: 1200px; margin: 0 auto; }
.guide-bento { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1.8rem; }
.guide-card { background: #ffffff; border-radius: 28px; padding: 2.5rem; box-shadow: 0 15px 35px rgba(10, 61, 61, 0.05); border: 1px solid rgba(148, 227, 194, 0.3); transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease; display: flex; flex-direction: column; }
.guide-card:hover { transform: translateY(-8px); box-shadow: 0 25px 50px rgba(10, 61, 61, 0.12); border-color: #94e3c2; }
.guide-icon { width: 56px; height: 56px; border-radius: 18px; background: #ecfcf5; color: #065f46; display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; transition: transform 0.3s ease; }
.guide-card:hover .guide-icon { transform: scale(1.1) rotate(-5deg); background: #94e3c2; color: #05282a; }
.guide-icon svg { width: 28px; height: 28px; }
.guide-card h2 { font-size: 1.6rem; color: #0a3d3d; margin-bottom: 1rem; font-weight: 800; letter-spacing: -0.02em; }
.guide-card p { color: #3d5a5a; line-height: 1.6; margin-bottom: 2rem; flex-grow: 1; font-size: 0.95rem; }
.guide-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.action-pill { background: #f0fdf6; color: #065f46; border: 1px solid #a7f3d0; padding: 0.7rem 1.2rem; border-radius: 50px; font-weight: 700; font-size: 0.9rem; cursor: pointer; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 8px; }
.action-pill:hover, .action-pill:focus { background: #065f46; color: #ffffff; transform: translateY(-3px); box-shadow: 0 10px 20px rgba(6, 95, 70, 0.25); border-color: #065f46; outline: none; }
.action-pill svg { width: 16px; height: 16px; transition: transform 0.3s ease; }
.action-pill:hover svg { transform: translateX(3px); }

.terezka-card { grid-column: 1 / -1; background: linear-gradient(135deg, #05282a 0%, #0f5151 100%); color: white; border: none; position: relative; overflow: hidden; }
.terezka-card::before { content: ''; position: absolute; top: -50%; right: -10%; width: 400px; height: 400px; background: radial-gradient(circle, rgba(148,227,194,0.15) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
.terezka-card h2 { color: #94e3c2; }
.terezka-card p { color: #e2e8f0; font-size: 1.05rem; }
.terezka-card .guide-icon { background: rgba(148, 227, 194, 0.15); color: #94e3c2; }
.terezka-card:hover .guide-icon { background: #94e3c2; color: #05282a; }
.terezka-btn { background: #94e3c2; color: #05282a; border: none; }
.terezka-btn:hover { background: #ffffff; color: #05282a; }

/* Fullscreen Grid */
#all-sections-fullscreen, #all-sections-fullscreen #fs-grid { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 40px 16px !important; box-sizing: border-box; background: #ecfcf5 !important; }
#fs-grid { display: grid !important; grid-template-columns: repeat(5, 1fr) !important; gap: 28px 20px !important; width: 100% !important; max-width: 100% !important; }
#fs-grid > div { min-width: 0; background: #05282a; border: 1px solid #c4f0de; border-radius: 14px; padding: 24px 20px; backdrop-filter: blur(10px); box-shadow: 0 6px 24px #27504c; transition: transform 0.2s; display: flex; flex-direction: column; }
#fs-grid > div:hover { transform: translateY(-4px); }
#fs-grid h2 { margin: 0 0 10px; font-size: 1.5rem; color: #ecfcf5 !important; }
#fs-grid p { margin: 0; color: #ecfcf5!important; line-height: 1.4; }

/* ===================================================================
   12. BOČNÍ PANEL (Energetické společnosti)
   =================================================================== */
.side-panel { position: fixed; top: 0; left: 0; width: 280px; height: 100vh; background-color: rgb(196, 240, 222); color: #000000; z-index: 1000; padding: 1.5rem; box-shadow: 5px 0 30px rgba(0, 0, 0, 0.15); display: flex; flex-direction: column; overflow-y: auto; transform: translateX(-100%); transition: transform 0.4s ease; }
.side-panel.active { transform: translateX(0); }
.side-nav { margin-top: 1rem; width: 100%; }
.main-menu, .submenu { list-style: none; padding: 0; margin: 0; }
.main-menu > li { border-bottom: 1px solid rgba(10, 61, 61, 0.15); }
.main-menu > li:last-child { border-bottom: none; }
.main-menu a { display: flex; justify-content: space-between; align-items: center; padding: 14px 12px; color: #0a3d3d; text-decoration: none; font-weight: 600; font-size: 1.05rem; transition: all 0.3s ease; border-radius: 8px; margin: 2px 0; }
.main-menu a:hover { background-color: #ffffff; color: #05282a; padding-left: 18px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); }
.submenu { display: none; padding-left: 15px; margin-bottom: 10px; }
.has-submenu.active .submenu { display: block; }
.submenu a { padding: 10px 12px; font-weight: 500; font-size: 0.95rem; color: #1a5d5d; border-radius: 6px; }
.submenu a:hover { background-color: rgba(255, 255, 255, 0.7); color: #0a3d3d; padding-left: 18px; box-shadow: none; }
/* Zvýraznění produkčního (ostrého) portálu v bočním panelu */
.side-nav .submenu a.portal-prod { color: #05453a; font-weight: 800; background-color: rgba(255, 255, 255, 0.55); }
.side-nav .submenu a.portal-prod:hover { background-color: #ffffff; color: #05282a; }
.arrow { font-size: 0.75rem; transition: transform 0.3s ease; opacity: 0.7; }
.has-submenu.active .arrow { transform: rotate(180deg); }
.side-nav-separator { height: 2px; background-color: #0a3d3d; margin: 2rem 0; opacity: 0.15; border-radius: 2px; }

.side-panel-toggle { position: fixed; top: 50%; left: 0; transform: translateY(-50%); background: rgb(196, 240, 222); color: #000000; border: 2px solid #0a3d3d; border-radius: 0 10px 10px 0; padding: 12px 8px; cursor: pointer; z-index: 999; box-shadow: 2px 0 10px rgba(0, 0, 0, 0.2); transition: all 0.3s ease; }
.side-panel-toggle:hover { background: rgb(180, 220, 202); padding-left: 12px; }
.side-panel-close { position: absolute; top: 15px; right: 15px; background: #0a3d3d; border: none; border-radius: 50%; width: 35px; height: 35px; color: rgb(196, 240, 222); font-size: 22px; cursor: pointer; z-index: 1001; display: flex; align-items: center; justify-content: center; }
.side-panel-close:hover { background: #083030; }

.energy-logos { margin-top: 0.5rem; width: 100%; }
.energy-logos h4 { color: #000000; font-size: 1.25rem; margin-bottom: 1.5rem; text-align: center; font-weight: 600; border-bottom: 2px solid #0a3d3d; padding-bottom: 0.5rem; }
.logos-grid { display: flex; flex-direction: column; gap: 1.2rem; width: 100%; }
.logo-item { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #000000; padding: 1.2rem; border-radius: 12px; background: transparent !important; border: 1px solid transparent; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.logo-item:hover { background: #ffffff !important; transform: translateY(-6px) scale(1.02); box-shadow: 0 12px 25px rgba(10, 61, 61, 0.15); border-color: #ffffff; }
img.logo-img { height: 80px; width: auto; max-width: 100%; object-fit: contain; object-position: center; mix-blend-mode: multiply; background: transparent !important; }
.logo-item span { font-weight: 600; text-align: center; color: #000000; line-height: 1.3; }

/* Mapa webu */
.mapa-webu-section h1 { margin-bottom: 0.5rem; }
.mapa-webu-section p { margin-bottom: 2rem; color: #94e3c2; }
.site-map-tree { list-style: none; padding-left: 0; margin: 0; }
.site-map-tree ul { padding-left: 24px; margin: 8px 0; }
.site-map-tree li { margin: 10px 0; line-height: 1.4; }
.site-map-tree span, .site-map-tree li[onclick] { cursor: pointer; color: #ecfcf5; transition: color 0.2s ease; }
.site-map-tree span:hover, .site-map-tree li[onclick]:hover { color: #00a0a0; text-decoration: underline; }
.site-map-tree > li > span { font-weight: 600; }
.site-map-tree li::before { content: "└─ "; color: #aaa; font-family: monospace; }
.site-map-tree ul li::before { content: "├─ "; }
.site-map-tree li:last-child::before { content: "└─ "; }
.site-map-tree a { color: #ecfcf5; text-decoration: none; transition: color 0.2s ease; }
.site-map-tree a:hover { color: #00a0a0; text-decoration: underline; }
/* Mapa webu – světlý režim: tmavý text na světlém pozadí */
[data-theme="light"] .mapa-webu-section h1 { color: #0a3d3d; }
[data-theme="light"] .site-map-tree a { color: #14302e; }
[data-theme="light"] .site-map-tree a:hover { color: #007a7a; }
[data-theme="light"] .mapa-webu-section p { color: #3d5a5a; }
[data-theme="light"] .site-map-tree span, [data-theme="light"] .site-map-tree li[onclick] { color: #14302e; }
[data-theme="light"] .site-map-tree span:hover, [data-theme="light"] .site-map-tree li[onclick]:hover { color: #007a7a; }
[data-theme="light"] .site-map-tree li::before { color: #6b7f7f; }

/* ===================================================================
   13. PATIČKA A SCROLL TO TOP
   =================================================================== */
footer { background: #0a3d3d; color: #ccc; padding: 40px 0; }
.footer-content { display: flex; justify-content: space-between; flex-wrap: wrap; }
.footer-column { flex: 1; min-width: 200px; margin: 1rem; }
.footer-logo-img { height: 60px; }
.copyright { text-align: center; margin-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: 1rem; }
footer a, .footer a { color: inherit; text-decoration: none; font-weight: inherit; }
footer a:hover, .footer a:hover { text-decoration: underline; }
footer a .download-info, .footer a .download-info { font-weight: normal; opacity: 0.9; }

#scroll-to-top { position: fixed; bottom: 30px; left: 30px; width: 54px; height: 54px; background: var(--primary, #94e3c2); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18); opacity: 0; visibility: hidden; transform: translateY(20px); transition: all 0.4s ease; z-index: 900; text-decoration: none; cursor: pointer; }
#scroll-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
#scroll-to-top:hover { background: #7dd1b1; transform: translateY(-4px) scale(1.08); box-shadow: 0 12px 28px rgba(148, 227, 194, 0.4); }
#scroll-to-top svg { transition: transform 0.4s ease; }
#scroll-to-top:hover svg { transform: translateY(-3px); }


/* ===================================================================
   14. MEDIA QUERIES A RESPONZIVITA (Pohromadě dle velikosti)
   =================================================================== */

/*@media (min-width: 993px) {
    #modal2 .modal-content { overflow-y: visible !important; overflow: visible !important; height: auto !important; max-height: none !important; }
}*/

@media (min-width: 992px) {
    .structure-image { max-width: 600px; }
    .hero-image-wrapper { max-width: 800px; margin-left: auto; margin-right: auto; }
    .m2m-hero-layout { grid-template-columns: 1.2fr 1fr; padding: 10rem 2rem; }
}

@media (min-width: 481px) {
    .cookie-buttons-layout { flex-direction: row; }
    .btn-text { width: auto; }
}

@media (max-width: 1600px) {
    #fs-grid { grid-template-columns: repeat(4, 1fr) !important; }
}

@media (max-width: 1200px) {
    .dashboard-grid-container { grid-template-columns: 1fr; }
    .dashboard-grid-container .grid-count-4 { grid-template-columns: repeat(4, 1fr) !important; }
    #fs-grid { grid-template-columns: repeat(3, 1fr) !important; }
}

@media (max-width: 1024px) {
    .inner-content-wrapper { padding: 40px; margin: 0 20px; }
    .lux-hero h1.lux-heading { font-size: 3rem; }
}

@media (max-width: 992px) {
    .desktop-nav { display: none; }
    .hamburger { display: block; }
    .nav-container { justify-content: space-between; padding: 1rem; }
    .mobile-nav .login-btn, .mobile-nav .newsletter-btn, .mobile-nav .curtain-toggle-btn, .mobile-nav .wcag-accessibility-link { box-shadow: none; border: none; height: auto; padding: 16px 24px; border-radius: 12px; transform: none; }
    .mobile-nav .login-btn::before, .mobile-nav .newsletter-btn::before, .mobile-nav .curtain-toggle-btn::before, .mobile-nav .wcag-accessibility-link::before { display: none; }
    .wcag-accessibility-link { padding: 10px 18px; }
    
    .edc-intro .container { grid-template-columns: 1fr; text-align: center; }
    .edc-intro-img { order: -1; margin-bottom: 40px; max-width: 600px; margin-left: auto; margin-right: auto; }
    .aktualita-row { flex-wrap: wrap; padding: 2rem; }
    .aktualita-title { flex: 1 1 100%; margin-bottom: 1rem; text-align: center; }
    .aktualita-text { flex: 1 1 100%; padding: 0 0 1.5rem 0; text-align: center; }
    .aktualita-buttons { justify-content: center; width: 100%; }
    .zprava-content { padding: 80px 0 100px; }
    .zprava-content p { text-align: left; }
    .zprava-content .quote { padding: 25px; }
    .edc-content-page .content-block { padding: 2rem 1.8rem; margin: 1.8rem 0; border-radius: 10px; }
    .edc-services h2 { font-size: 1.75rem; }
    .edc-services .container { padding: 40px 30px; border-radius: 20px; }
    .modern-structure-grid { grid-template-columns: repeat(2, 1fr); }
    
    .hero-dashboard-layout { grid-template-columns: 1fr; text-align: center; gap: 2rem; }
    .hero-text-content h1 { font-size: 2.5rem; }
    .dashboard-grid-container .grid-count-4 { grid-template-columns: repeat(2, 1fr) !important; }
    .dashboard-grid-container .grid-count-3, .dashboard-grid-container .grid-count-6 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important; }
    
    #modal2 .modal-content { overflow-y: auto !important; max-height: 90vh !important; height: 90vh !important; display: flex !important; flex-direction: column !important; }
    #modal2 .modal-inner { flex: 1 !important; display: flex !important; flex-direction: column !important; min-height: 0 !important; padding: 40px 20px 20px !important; }
    #modal2 .sub-modal-grid { flex: 1 !important; min-height: 0 !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch !important; margin-top: 1rem !important; }
}

@media (max-width: 991px) {
    .curtain { display: none; }
    .modal-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
    .category-group { padding: 1.2rem 1.2rem 1.8rem 1.2rem; border-radius: 14px; }
}

@media (max-width: 900px) {
    #fs-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 768px) {
    .error-content { padding: 1rem; flex-direction: column; align-items: stretch; gap: 0.75rem; }
    .error-text { order: -1; }
    .close-btn { align-self: flex-end; margin-top: 0.5rem; }
    .system-banner-fixed { padding: 10px 40px 10px 15px; }
    .system-banner-inner { gap: 8px; }
    .system-banner-icon { font-size: 1rem; }
    .system-banner-close { right: 8px; width: 28px; height: 28px; font-size: 20px; }
    .construction-banner { padding: 1.5rem 2rem !important; letter-spacing: 2px !important; min-width: 250px !important; font-size: 1.75rem !important; }
    
    .side-panel { width: 85%; max-width: 320px; padding: 1rem; z-index: 2000; }
    .side-panel-toggle { display: flex; width: 45px; height: 50px; align-items: center; justify-content: center; }
    .logos-grid { gap: 1rem; }
    .logo-img { height: 70px; }
    
    .close { position: fixed; top: 15px; right: 15px; width: 48px; height: 48px; font-size: 32px; background: rgba(10, 61, 61, 0.9); border: 1px solid rgba(148, 227, 194, 0.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 2001; }
    .modal-inner { padding-top: 70px !important; }
    .sub-modal-content { padding-top: 50px !important; }
    .sub-close { top: 10px; right: 10px; background: rgba(10, 61, 61, 0.1); opacity: 1; }
    .modal-content { padding: 1rem; }
    
    h2 { font-size: 1.75rem; }
    .hero.kariera { padding: 3rem 1rem; }
    .hero.kariera h1 { font-size: 2rem; }
    .hero.kariera .responsive-img { margin: 2rem auto; }
    .info-section h2 { font-size: 1.75rem; }
    .large-tile { padding: 40px 20px; }
    .large-tile h3 { font-size: 1.25rem; }
    
    .modal.modal-kariera { padding-top: 2vh; }
    .modal-kariera .modal-content { position: relative; padding: 60px 80px; overflow-y: auto; max-height: 90vh; border-radius: 24px; width: 95%; }
    .modal-kariera h2 { font-size: 1.75rem; }
    .modal-kariera h3 { font-size: 1.25rem; }
    .modal-kariera .close { position: fixed !important; margin: 0; top: 15px !important; right: 15px !important; width: 48px; height: 48px; font-size: 32px; box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
    
    .aktuality h1 { font-size: 2rem; }
    .aktualita-row { padding: 1.5rem; }
    .slovnik-item-header { flex-direction: column; align-items: flex-start; }
    .faq-dropdown { max-width: 100%; }
    .faq-dropdown-btn { padding: 12px 16px; }
    
    .edc-content-page h1 { font-size: 2rem; }
    .edc-content-page h2 { font-size: 1.75rem; }
    .edc-content-page h3 { font-size: 1.25rem; }
    .edc-content-page .quote { padding: 1.5rem; }
    .edc-content-page .content-block { padding: 1.8rem 1.5rem; margin: 1.5rem 0; }
    
    .inner-content-wrapper { width: 100% !important; margin: 0 !important; padding: 30px 15px !important; border-radius: 0 !important; box-sizing: border-box !important; }
    .video-frame-container { padding: 20px 0 !important; }
    .lux-card { padding: 25px 15px !important; box-sizing: border-box !important; }
    .lux-card h3 { font-size: 1.35rem !important; word-break: break-word !important; overflow-wrap: break-word !important; hyphens: auto !important; -webkit-hyphens: auto !important; }
    .lux-card p { font-size: 0.95rem !important; }
    .lux-grid { gap: 15px !important; }
    .lux-hero { padding-top: 120px; }
    .lux-hero h1.lux-heading { font-size: 2.2rem; }
    .line-1 { font-size: 1.1rem; }
    
    .services-card { padding: 4rem 1.2rem 2rem 1.2rem !important; width: 100% !important; box-sizing: border-box !important; margin-left: 0 !important; margin-right: 0 !important; margin-top: -40px; clip-path: polygon(0 4%, 100% 0, 100% 100%, 0 100%); }
    .services-card h2 { hyphens: none !important; -webkit-hyphens: none !important; word-break: normal !important; }
    .services-list { grid-template-columns: 1fr; }
    .services-list li { padding: 1.2rem 1rem !important; font-size: 0.95rem !important; }
    .member-card { padding: 1.5rem 1rem !important; width: 100% !important; box-sizing: border-box !important; }
    .member-name { font-size: 1.1rem !important; }
    .structure-card { padding: 2rem 1rem !important; width: 100% !important; box-sizing: border-box !important; }
    .services-card p, .services-card h2, .services-list li, .member-card, .member-name, .member-role, .structure-card p, .structure-card h3 { word-wrap: break-word !important; overflow-wrap: break-word !important; hyphens: auto !important; -webkit-hyphens: auto !important; white-space: normal !important; }
    
    .edc-intro .container { display: flex; flex-direction: column; grid-template-columns: 1fr; gap: 40px; }
    .hero-edc { width: 100% !important; max-width: 100% !important; padding-left: 15px; padding-right: 15px; box-sizing: border-box; }
    .hero-edc p { width: 100%; max-width: 100%; text-align: left; }
    .edc-services .container { padding: 35px 25px; }
    
    .letter-btn { min-width: 32px; min-height: 32px; padding: 0.3rem 0.6rem; }
    .letter-btn:hover:not(.active) { transform: scale(1.3) rotate(2deg); }
    #slovnikModalClose { position: absolute !important; top: 15px !important; right: 15px !important; color: #05282a !important; background-color: #94e3c2 !important; border: 2px solid #05282a !important; width: 44px !important; height: 44px !important; font-size: 32px !important; font-weight: bold !important; line-height: 1 !important; display: flex !important; align-items: center !important; justify-content: center !important; border-radius: 50% !important; z-index: 2147483647 !important; opacity: 1 !important; visibility: visible !important; }
    #slovnikModal .modal-inner { padding-top: 70px !important; }
    
    .luxury-lightbulb-hero h1, .luxury-lightbulb-hero h1 strong { font-size: 1.8rem !important; line-height: 1.2 !important; letter-spacing: normal !important; word-wrap: break-word !important; overflow-wrap: break-word !important; margin-bottom: 1rem !important; }
    .luxury-lightbulb-hero .highlight { font-size: 1rem !important; line-height: 1.5 !important; padding: 0 10px !important; }
    .luxury-lightbulb-hero { min-height: auto !important; padding: 4rem 1rem 2rem !important; }
    .hero.hero-video-manuals { padding: 4rem 1.5rem 3rem; }
    .bento-layout { grid-template-columns: 1fr; }
    .luxury-grid { padding: 2.5rem 1rem; }
    
    @keyframes letterFlash { 20% { transform: scale(1.4); } 40% { transform: scale(1.25); } 60% { transform: scale(1.35); } 80% { transform: scale(1.3); } 100% { transform: scale(1.2); } }
}

@media (max-width: 768px) and (min-width: 481px) {
}

@media (max-width: 600px) {
    .calendar-link-top span { display: none; }
    .calendar-link-top { padding: 8px; border-radius: 50%; }
    .logo-group { gap: 8px; }
    .edc-intro { padding: 80px 0 100px; }
    .edc-intro h1 { font-size: 2rem; }
    .modern-structure-grid { grid-template-columns: 1fr; gap: 1rem; }
    .structure-card { padding: 2rem 1.5rem; }
    .zprava-content { padding: 60px 0 80px; }
    .zprava-content h1 { font-size: 2rem; }
    .zprava-content .quote::before { font-size: 5rem; left: 15px; }
    .edc-content-page .container { padding: 0 15px; }
    
    .dashboard-grid-container .grid-count-3, .dashboard-grid-container .grid-count-4, .dashboard-grid-container .grid-count-6, .dashboard-grid-container .grid-primary-top { grid-template-columns: 1fr !important; }
    .dashboard-grid-container { margin-bottom: 3rem; }
    #fs-grid { grid-template-columns: 1fr !important; gap: 24px 0 !important; }
    
    .modal-grid { grid-template-columns: 1fr; gap: 1rem; }
    .modal-grid .modal-trigger { padding: 1.3rem 1rem; min-height: 100px; }
    .category-group { padding: 1rem 1rem 1.5rem 1rem; border-radius: 12px; margin: 2rem 0; }
    .modals-section .modal-trigger { padding: 1.2rem 1rem; min-height: 100px; }
    
    .fullscreen-modal .modal-content { padding: 4rem 1rem 3rem; }
    .fullscreen-modal .modal-close-btn { top: 12px; right: 15px; font-size: 40px; }
    .modal-content { padding: 3rem 1rem 1rem; }
    .modal-close { top: 12px; right: 15px; font-size: 36px; }

    /* ..Bento design pro mobily*/
    .bento-layout { grid-template-columns: 1fr !important; gap: 1.5rem; width: 100%; }
    .bento-layout .modal-trigger { width: 100%; min-width: 0; box-sizing: border-box; }
}

@media (max-width: 480px) {
    .error-content { padding: 0.875rem 1rem; }
    .system-banner-icon { display: none; }
    .construction-banner { padding: 1.2rem 1.5rem !important; letter-spacing: 1px !important; min-width: 200px !important; font-size: 1.5rem !important; }
    .warning-banner { font-size: 1.25rem !important; }
    
    
    .hero { padding: 3rem 1.5rem !important; border-radius: 12px !important; margin: 0 8px 2rem 8px !important; }
    .hero h1 { font-size: 1.75rem !important; line-height: 1.25 !important; max-width: 100% !important; text-align: center !important; margin: 0 0 1rem 0 !important; word-wrap: break-word !important; hyphens: none !important; }
    .hero p { line-height: 1.5 !important; max-width: 100%; word-wrap: break-word !important; hyphens: none !important; }
    main { margin-top: 120px !important; }
    
    .modal { padding: 0 !important; align-items: center !important; justify-content: center !important; }
    .modal-content { width: 100vw !important; max-width: 100vw !important; height: auto !important; max-height: 90vh; margin: 0 !important; border-radius: 0 !important; padding-right: 0 !important; overflow-x: hidden !important; overflow-y: auto; box-sizing: border-box !important; background-position: center top !important; }
    .modal-inner { text-align: center; height: auto !important; min-height: auto; padding: 60px 40px 80px; }
    .sub-modal-grid { grid-template-columns: 1fr !important; gap: 1rem !important; padding: 0 !important; }
    .sub-modal-trigger { width: 100% !important; box-sizing: border-box !important; }
    
    .aktuality { padding: 4rem 0.75rem; }
    .aktualita-row { display: block; padding: 1.5rem 1rem; border-radius: 18px; box-sizing: border-box; }
    .aktualita-title { width: 100%; text-align: center; font-size: 1.25rem; margin-bottom: 0.75rem; }
    .aktualita-text { width: 100%; text-align: center; padding: 0; line-height: 1.6; margin-bottom: 1.2rem; }
    .aktualita-buttons { width: 100%; display: flex; gap: 0.75rem; justify-content: space-between; }
    .aktualita-buttons .btn-cist, .aktualita-buttons .btn-stahnout { flex: 1 1 0; width: 100%; text-align: center; padding: 0.9rem 0; }
    .aktualita-buttons .btn-stahnout { font-weight: 700; }
    
    .edc-content-page .container { padding: 0 12px; }
    .edc-content-page .content-block { padding: 1.6rem 1.2rem; margin: 1.4rem 0; border-radius: 12px; }
    .edc-content-page .content-block:nth-of-type(even) { background-color: rgba(196, 240, 222, 0.6); }
    .edc-content-page h1 { font-size: 1.75rem; line-height: 1.3; }
    .edc-content-page h3 { font-size: 1.25rem; margin: 1.8rem 0 1rem; }
    .edc-content-page p, .edc-content-page ul li { line-height: 1.75; }
    .edc-content-page ul { padding-left: 1.6rem; }
    .edc-content-page ul li { margin-bottom: 0.9rem; }
    
    .slovnik-result-header { flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px 16px; }
    .slovnik-result-header .full-text { white-space: normal; overflow: visible; text-overflow: unset; color: #444; margin-left: 0; line-height: 1.4; }
    .slovnik-arrow { position: absolute; right: 16px; top: 14px; }
    #newsletterModal .sub-modal-content { padding: 3rem 2rem; max-width: 92%; border-radius: 24px; }
    #newsletterModal h2 { font-size: 1.75rem; }
    #newsletterModal input[type="email"], #newsletterModal .sub-modal-btn { padding: 1.2rem 1.6rem; }
    
    .hero.kariera h1 { font-size: 1.75rem; }
    .modal-kariera .modal-content { padding: 40px 25px; border-radius: 24px; width: 95%; max-height: 92vh; }
    .modal-kariera h2 { font-size: 1.75rem; }
    
    .edc-services { padding: 60px 0; }
    .edc-services .container { padding: 30px 20px; border-radius: 16px; }
    .edc-services h2 { line-height: 1.3; }
    .edc-services p, .edc-services li { line-height: 1.7; }
    .edc-services ul { padding-left: 1.4rem; }
    .edc-services ul li { margin-bottom: 0.8rem; }
    
    .lux-grid { grid-template-columns: 1fr !important; gap: 15px !important; }
    .lux-card { width: 100% !important; min-width: 0 !important; max-width: 100vw !important; padding: 25px 15px !important; box-sizing: border-box !important; }
}

@media (max-height: 600px) {
    #cookie-banner h2 { font-size: 1.2rem; }
    #cookie-banner p { font-size: 0.85rem; }
}


@media (max-width: 992px) {
    .edc-odyssey-container { padding: 60px 15px; }
    .milestone { margin-bottom: 100px; padding-left: 40px; }
    .edc-core-node { width: 220px; height: auto; min-height: 100px; padding: 15px 10px; }
    .core-logo { font-size: 1.2rem; white-space: normal; word-wrap: break-word; }
}

/* Mobily (pod 768px) */
@media (max-width: 768px) {
    .odyssey-sticky-header { top: 20px; margin-bottom: 60px; }
    .edc-core-node { width: 200px; height: auto; min-height: 80px; border-radius: 18px; padding: 12px; box-shadow: 0 0 25px rgba(148, 227, 194, 0.3); }
    .core-logo { font-size: 1.1rem; white-space: normal; word-wrap: break-word; }
    .milestone { padding-left: 20px; margin-bottom: 70px; border-left-width: 1px; }
    .year-tag { font-size: 1.2rem; margin-bottom: 15px; }
    .service-glass-card { padding: 15px; margin: 15px 0; border-radius: 15px; }
    .service-glass-card h3 { font-size: 1.1rem; margin-bottom: 5px; }
    .service-glass-card p { font-size: 0.9rem; }
}

/* Velmi malé mobily (pod 480px) */
@media (max-width: 480px) {
    .edc-odyssey-container { padding: 40px 10px; }
    .milestone { padding-left: 15px; }
    .edc-core-node { width: 160px; height: auto; min-height: 65px; border-radius: 14px; padding: 10px; }
    .core-logo { font-size: 1rem; white-space: normal; word-wrap: break-word; }
    .year-tag { font-size: 1.1rem; }
    .service-glass-card { padding: 12px; }
}

@media (min-width: 768px) { .bento-layout { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bento-layout { grid-template-columns: repeat(3, 1fr); } }

/* Trojúhelník v hlavičce novinky header */
@media (max-width: 768px) {
    .magic-corner-left { width: 88px; height: 88px; }
    .corner-text-left { font-size: 12px; transform: rotate(-45deg) translate(-15px, 13px); }
    .corner-dismiss { width: 20px; height: 20px; font-size: 13px; top: 3px; left: 3px; }
    .corner-overlay { align-items: flex-start; padding: 50px 12px; }
    .corner-overlay-content { max-width: 100%; padding: 26px 16px; margin: 10px auto; word-wrap: break-word; }
    .corner-overlay-content h2 { font-size: 1.5rem; line-height: 1.2; }
    .news-grid { grid-template-columns: 1fr; }
}


/* ===================================================================
   15. WCAG AAA - VYSOCE KONTRASTNÍ REŽIM A FIXY
   =================================================================== */
[data-theme="wcag-aaa"] { 
    --primary: #ffff00 !important; 
    --light: #000000 !important; 
    --white: #000000 !important; 
    --gray: #000000 !important; 
}
[data-theme="wcag-aaa"] body, [data-theme="wcag-aaa"] main, [data-theme="wcag-aaa"] header, [data-theme="wcag-aaa"] footer, [data-theme="wcag-aaa"] .container, [data-theme="wcag-aaa"] .modal-content, [data-theme="wcag-aaa"] .sub-modal-content, [data-theme="wcag-aaa"] .side-panel, [data-theme="wcag-aaa"] .hero, [data-theme="wcag-aaa"] .category-group, [data-theme="wcag-aaa"] .zprava-content, [data-theme="wcag-aaa"] .edc-services .container, [data-theme="wcag-aaa"] .aktualita-row, [data-theme="wcag-aaa"] .tereza-modern, [data-theme="wcag-aaa"] .sub-modal-trigger, [data-theme="wcag-aaa"] .edc-intro, [data-theme="wcag-aaa"] .edc-services, [data-theme="wcag-aaa"] .edc-activities, [data-theme="wcag-aaa"] .edc-organs, [data-theme="wcag-aaa"] .edc-structure, [data-theme="wcag-aaa"] .services-card, [data-theme="wcag-aaa"] .dynamic-hero, [data-theme="wcag-aaa"] .guide-card, [data-theme="wcag-aaa"] .terezka-card, [data-theme="wcag-aaa"] .member-card, [data-theme="wcag-aaa"] .lux-card, [data-theme="wcag-aaa"] .inner-content-wrapper, [data-theme="wcag-aaa"] .services-list li, [data-theme="wcag-aaa"] .future-solution, [data-theme="wcag-aaa"] .quote, [data-theme="wcag-aaa"] .hero-with-video, [data-theme="wcag-aaa"] .slovnik-result-header, [data-theme="wcag-aaa"] .guide-icon, [data-theme="wcag-aaa"] .nav-links a { 
    background: #000000 !important; background-color: #000000 !important; background-image: none !important; box-shadow: none !important; border-color: #ffffff !important; transform: none !important; transition: none !important;
}
/* WCAG: čitelnost obsahu chatu (bubliny + karty) – černý text na bílé; odkazy/tlačítka ponechat WCAG styl */
[data-theme="wcag-aaa"] #tereza-chat .tereza-bubble,
[data-theme="wcag-aaa"] #tereza-chat .tereza-card { background: #ffffff !important; color: #000000 !important; border: 2px solid #000000 !important; }
[data-theme="wcag-aaa"] #tereza-chat .tereza-bubble *:not(a):not(button),
[data-theme="wcag-aaa"] #tereza-chat .tereza-card *:not(a):not(button) { color: #000000 !important; background-color: transparent !important; }
/* WCAG: launcher tlačítka „Provést portálem" – žlutý text na černém (text byl jinak černý na černém) */
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button { background: #000000 !important; border: 2px solid #ffff00 !important; }
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button .pt,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button .pd,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button .pl { color: #ffff00 !important; background-color: transparent !important; }
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:hover,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:focus { background: #ffff00 !important; }
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:hover .pt,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:hover .pd,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:hover .pl,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:focus .pt,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:focus .pd,
[data-theme="wcag-aaa"] #tereza-chat .edc-sim-launch button:focus .pl { color: #000000 !important; }
/* WCAG: otevřený chat musí být VIDITELNÝ na černé stránce (žlutý rámeček, kontrastní plochy) */
[data-theme="wcag-aaa"] #tereza-chat.open { display: flex !important; }
[data-theme="wcag-aaa"] #tereza-chat { border: 3px solid #ffff00 !important; box-shadow: 0 0 28px rgba(255,255,0,.6) !important; }
[data-theme="wcag-aaa"] #tereza-chat .tereza-header { background: #000000 !important; border-bottom: 2px solid #ffff00 !important; }
[data-theme="wcag-aaa"] #tereza-chat .tereza-content,
[data-theme="wcag-aaa"] #tereza-chat .tereza-messages { background: #000000 !important; }
[data-theme="wcag-aaa"] #tereza-chat .tereza-input { background: #000000 !important; border-top: 2px solid #ffff00 !important; }
[data-theme="wcag-aaa"] #tereza-chat .tereza-sidebar { border-right: 2px solid #ffff00 !important; }
[data-theme="wcag-aaa"] p, [data-theme="wcag-aaa"] span, [data-theme="wcag-aaa"] div, [data-theme="wcag-aaa"] li, [data-theme="wcag-aaa"] strong, [data-theme="wcag-aaa"] .slovnik-source, [data-theme="wcag-aaa"] .structure-highlight, [data-theme="wcag-aaa"] .member-role, [data-theme="wcag-aaa"] .lux-btn-underlined, [data-theme="wcag-aaa"] .guide-card p, [data-theme="wcag-aaa"] .terezka-card p, [data-theme="wcag-aaa"] .slovnik-result-body p { 
    color: #ffffff !important; letter-spacing: 0.05em !important; line-height: 1.8 !important; font-style: normal !important; 
}
[data-theme="wcag-aaa"] h1, [data-theme="wcag-aaa"] h2, [data-theme="wcag-aaa"] h3, [data-theme="wcag-aaa"] h4, [data-theme="wcag-aaa"] .member-name, [data-theme="wcag-aaa"] .guide-card h2, [data-theme="wcag-aaa"] .terezka-card h2, [data-theme="wcag-aaa"] .lux-card h3, [data-theme="wcag-aaa"] .slovnik-result-header, [data-theme="wcag-aaa"] .quote-author { 
    color: #ffff00 !important; border-bottom-color: #ffff00 !important; 
}
[data-theme="wcag-aaa"] a, [data-theme="wcag-aaa"] button, [data-theme="wcag-aaa"] .login-btn, [data-theme="wcag-aaa"] .newsletter-btn, [data-theme="wcag-aaa"] .modal-btn, [data-theme="wcag-aaa"] .sub-modal-btn, [data-theme="wcag-aaa"] .modal-trigger, [data-theme="wcag-aaa"] .member-card, [data-theme="wcag-aaa"] .guide-card, [data-theme="wcag-aaa"] .terezka-card, [data-theme="wcag-aaa"] .action-pill, [data-theme="wcag-aaa"] .terezka-btn, [data-theme="wcag-aaa"] .quote, [data-theme="wcag-aaa"] .services-card, [data-theme="wcag-aaa"] .guide-icon, [data-theme="wcag-aaa"] .lux-card, [data-theme="wcag-aaa"] .inner-content-wrapper { 
    color: #ffff00 !important; background: #000000 !important; border: 3px solid #ffff00 !important; text-decoration: none !important; 
}
[data-theme="wcag-aaa"] p a { 
    text-decoration: underline !important; text-decoration-thickness: 2px !important; 
}
[data-theme="wcag-aaa"] .modal-slovnik .modal-content, [data-theme="wcag-aaa"] .slovnik-result-item.open .slovnik-result-body { 
    background-color: #ffff00 !important; border: 5px solid #000000 !important; 
}
[data-theme="wcag-aaa"] .modal-slovnik .modal-inner, [data-theme="wcag-aaa"] .modal-slovnik h2, [data-theme="wcag-aaa"] .modal-slovnik h3, [data-theme="wcag-aaa"] .modal-slovnik p, [data-theme="wcag-aaa"] .modal-slovnik .slovnik-source { 
    color: #000000 !important; 
}
[data-theme="wcag-aaa"] .modal-slovnik .close { 
    color: #000000 !important; background-color: #ffffff !important; border: 2px solid #000000 !important; opacity: 1 !important; 
}
[data-theme="wcag-aaa"] a:hover, [data-theme="wcag-aaa"] button:hover, [data-theme="wcag-aaa"] a:focus, [data-theme="wcag-aaa"] button:focus, [data-theme="wcag-aaa"] .modal-trigger:hover, [data-theme="wcag-aaa"] .modal-trigger:focus, [data-theme="wcag-aaa"] .sub-modal-trigger:hover, [data-theme="wcag-aaa"] .member-card:hover, [data-theme="wcag-aaa"] .action-pill:hover, [data-theme="wcag-aaa"] .action-pill:focus, [data-theme="wcag-aaa"] .terezka-btn:hover, [data-theme="wcag-aaa"] .terezka-btn:focus, [data-theme="wcag-aaa"] .guide-card:hover .guide-icon, [data-theme="wcag-aaa"] .terezka-card:hover .guide-icon { 
    background: #ffff00 !important; color: #000000 !important; outline: 4px solid #ffffff !important; outline-offset: 4px !important; transform: none !important; 
}
[data-theme="wcag-aaa"] .modal-trigger:hover h3, [data-theme="wcag-aaa"] .modal-trigger:hover p, [data-theme="wcag-aaa"] .sub-modal-trigger:hover h3, [data-theme="wcag-aaa"] .member-card:hover .member-name, [data-theme="wcag-aaa"] .member-card:hover .member-role { 
    color: #000000 !important; 
}
[data-theme="wcag-aaa"] .curtain, [data-theme="wcag-aaa"] .overlay.gradient-right, [data-theme="wcag-aaa"] .video-background-container, [data-theme="wcag-aaa"] .bg-video, [data-theme="wcag-aaa"] .video-overlay, [data-theme="wcag-aaa"] #energy-canvas, [data-theme="wcag-aaa"] .bg-video-element, [data-theme="wcag-aaa"] .video-wrapper iframe, [data-theme="wcag-aaa"] .terezka-card::before { 
    display: none !important; 
}

/* Zastavení animací a opravy z tvého originálu */
[data-theme="wcag-aaa"] * { 
    animation-play-state: paused !important; 
}
[data-theme="wcag-aaa"] .services-card { 
    clip-path: none !important; margin-top: 2rem !important; 
}
[data-theme="wcag-aaa"] .services-list li { 
    border-left: 8px solid #ffff00 !important; 
}
[data-theme="wcag-aaa"] .future-solution { 
    border: 3px dashed #ffff00 !important; 
}
[data-theme="wcag-aaa"] .quote::before { 
    opacity: 1 !important; color: #ffff00 !important; 
}
[data-theme="wcag-aaa"] .image-full img, [data-theme="wcag-aaa"] .edc-intro-img img { 
    border: 4px solid #ffff00 !important; filter: contrast(120%) grayscale(100%); 
}
[data-theme="wcag-aaa"] .nav-container { 
    mix-blend-mode: normal !important; 
}
html:not([data-theme="wcag-aaa"]) .skip-link, html:not([data-theme="wcag-aaa"]) .nav-overlay { 
    display: none !important; 
}

/* ===================================================================
   WCAG AAA - OPRAVA PRO KARIÉRU A IFRAME VIDEA (Z TVÉHO ORIGINÁLU)
   =================================================================== */
[data-theme="wcag-aaa"] .bg-video-element { display: none !important; }
[data-theme="wcag-aaa"] .video-wrapper iframe { display: none !important; }
[data-theme="wcag-aaa"] .lux-hero-content, 
[data-theme="wcag-aaa"] .fade-in-line, 
[data-theme="wcag-aaa"] .lux-card,
[data-theme="wcag-aaa"] .hero,
[data-theme="wcag-aaa"] .hero h1,
[data-theme="wcag-aaa"] .hero p { 
    opacity: 1 !important; transform: none !important; animation: none !important; 
}

/* OPRAVA: Boční panel ve WCAG (Zabrání trvalému zobrazení přes celou obrazovku kvůli transform: none) */
[data-theme="wcag-aaa"] .side-panel:not(.active) {
    transform: translateX(-100%) !important;
}
[data-theme="wcag-aaa"] .side-panel.active {
    transform: translateX(0) !important;
}

/* WCAG AAA ÚPRAVA pro struktura_spolesnosti  routemapa*/
[data-theme="wcag-aaa"] .data-server { background: #000 !important; border: 3px solid #ffff00 !important; }
[data-theme="wcag-aaa"] .core-logo { color: #ffff00 !important; }

/* Zvýraznění fokusu pro všechny interaktivní prvky - WCAG 2.1 */
:focus-visible { outline: 4px solid #FFD60A !important; outline-offset: 4px !important; box-shadow: 0 0 0 8px rgba(255, 214, 10, 0.4) !important; }

/* Kontrastní režim pro nové komponenty */
[data-theme="wcag-aaa"] .edc-core-node, [data-theme="wcag-aaa"] .data-server { background: #000 !important; border: 4px solid #ffff00 !important; }
[data-theme="wcag-aaa"] .core-logo, [data-theme="wcag-aaa"] .year-tag { color: #ffff00 !important; -webkit-text-fill-color: #ffff00 !important; }
[data-theme="wcag-aaa"] .custom-cta-stack a { background: #000 !important; color: #ffff00 !important; border: 3px solid #ffff00 !important; box-shadow: none !important; }
[data-theme="wcag-aaa"] .custom-cta-stack a:hover { background: #ffff00 !important; color: #000 !important; }
[data-theme="wcag-aaa"] .service-glass-card { background: #000 !important; border: 2px solid #ffffff !important; opacity: 1 !important; transform: none !important; }
[data-theme="wcag-aaa"] .service-glass-card:hover { border-color: #ffff00 !important; outline: 2px solid #ffff00; }

/* ===================================================================
   12. SVĚTLÝ REŽIM (data-theme="light")
   Zachovává efekty i obsah – mění pouze pozadí a barvu písma kvůli čitelnosti.
   Header a boční panel jsou světlé už v základu, proto se neřeší.
   =================================================================== */
/* Základní plocha stránky */
[data-theme="light"] body { background-color: #eef1f5 !important; color: #14302e; }
/* Částicový efekt zůstává – v light režimu se vykresluje tmavě (viz JS), proto vyšší viditelnost */
[data-theme="light"] #energy-canvas { opacity: 0.5; }

/* Velké tmavé sekce -> světlé pozadí */
[data-theme="light"] .edc-services.modern-slant { background: #e7ecf1 !important; }
[data-theme="light"] .edc-odyssey-container { background: #eef1f5 !important; color: #14302e !important; }
[data-theme="light"] .edc-odyssey-container h1,
[data-theme="light"] .edc-odyssey-container h2,
[data-theme="light"] .edc-odyssey-container h3,
[data-theme="light"] .edc-odyssey-container p {
    color: #14302e !important; -webkit-text-fill-color: #14302e !important;
}
/* Logo uzlu/štítky v ose zůstávají na tmavých prvcích – neměníme service-glass-card ani edc-core-node */

/* Bílé nadpisy zadané inline (např. „Seznam dokumentů ke stažení“) – přebití kvůli čitelnosti */
[data-theme="light"] .section-title[style*="#fff"],
[data-theme="light"] .section-title[style*="#ffffff"],
[data-theme="light"] .section-title { color: #0a3d3d !important; }

/* Domovská sekce „Klíčové služby EDC“ – bílé/šedé texty na světlém pozadí */
[data-theme="light"] .glass-card { background: #ffffff !important; border-color: rgba(10,61,61,0.12) !important; }
[data-theme="light"] .glass-card h3,
[data-theme="light"] .glass-card h4 { color: #0f2e2b !important; }
[data-theme="light"] .glass-card .text-gray-200,
[data-theme="light"] .glass-card .text-gray-300,
[data-theme="light"] .glass-card .text-gray-400,
[data-theme="light"] .glass-card .text-gray-500,
[data-theme="light"] .glass-card p { color: #41595a !important; }
/* Nadpis sekce „Klíčové služby EDC“ – bílý text na světlém panelu ve světlém režimu */
[data-theme="light"] .services-heading { color: #0a3d3d !important; }

/* Nadpisy ve „Struktura společnosti“ (světlé barvy → tmavé, čitelné) */
[data-theme="light"] .edc-organs h2,
[data-theme="light"] .edc-activities h2,
[data-theme="light"] .edc-structure h2,
[data-theme="light"] .organ-section h3 { color: #0a3d3d !important; -webkit-text-fill-color: #0a3d3d !important; }

/* Panel „Nástroje a Informace“ – ztmavení textu i ohraničení pilulek */
[data-theme="light"] .glass-card .text-gray-300,
[data-theme="light"] .glass-card button { color: #2f4a4a !important; }
[data-theme="light"] .glass-card button { border-color: rgba(10,61,61,0.25) !important; background-color: rgba(10,61,61,0.05) !important; }

/* Slovník – čitelnost popisu a vyhledávacího pole ve světlém režimu (jinak světlý text na světlém pozadí) */
[data-theme="light"] .slovnik-search label { color: #0a3d3d; }
[data-theme="light"] .slovnik-search input { color: #0a3d3d; }
[data-theme="light"] .slovnik-search input::placeholder { color: #5a7a7a; opacity: 1; }
[data-theme="light"] .slovnik-clear-btn { background: rgba(10,61,61,0.12); color: #0a3d3d; }
[data-theme="light"] .slovnik-clear-btn:hover, [data-theme="light"] .slovnik-clear-btn:focus { background: rgba(10,61,61,0.28); color: #0a3d3d; }

/* ===================================================================
   13. UX – stav načítání, tlačítko nahoru, omezení pohybu
   =================================================================== */
/* Plynulé načítání obsahu v SPA */
#main-content.content-loading { opacity: 0.35; transition: opacity 0.15s ease; pointer-events: none; }
#main-content.content-enter { animation: contentFadeIn 0.45s ease; }
@keyframes contentFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Respektování systémové předvolby omezeného pohybu */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
    #energy-canvas { display: none !important; }
}

/* Aktivní položka navigace (kde uživatel právě je) */
.side-nav a.active-route { background: #ffffff; color: #05282a; font-weight: 700; box-shadow: inset 3px 0 0 #0a3d3d; }
[data-theme="light"] .side-nav a.active-route { background: #0a3d3d; color: #ffffff; box-shadow: inset 3px 0 0 #94e3c2; }

/* FAQ – vyhledávací pole s mazacím křížkem a lupou */
.faq-search-field { position: relative; }
.faq-search-field input { padding-right: 5rem !important; }
/* Křížek (vymazat) – nalevo od lupy */
.faq-search-clear { position: absolute; top: 50%; right: 2.9rem; transform: translateY(-50%); width: 1.7rem; height: 1.7rem; display: flex; align-items: center; justify-content: center; padding: 0; border: none; border-radius: 50%; cursor: pointer; background: rgba(10,61,61,0.12); color: #0a3d3d; font-size: 1.25rem; line-height: 1; transition: background 0.2s ease; }
.faq-search-clear:hover, .faq-search-clear:focus { background: rgba(10,61,61,0.28); outline: none; }
.faq-search-clear[hidden] { display: none; }
/* Lupa (přejít na výsledky) – vpravo */
.faq-search-go { position: absolute; top: 50%; right: 0.45rem; transform: translateY(-50%); width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; padding: 0; border: none; border-radius: 8px; cursor: pointer; background: #0a3d3d; color: #ffffff; transition: background 0.2s ease, color 0.2s ease; }
.faq-search-go:hover, .faq-search-go:focus { background: #94e3c2; color: #0a3d3d; outline: none; }
.faq-search-go[hidden] { display: none; }
[data-theme="wcag-aaa"] .faq-search-go { background: #000; color: #ffff00; border: 2px solid #ffff00; }

/* Drobečková navigace (kde uživatel je) */
.breadcrumb { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; font-size: 0.9rem; margin: 0 0 1.25rem; padding: 0.3rem 0; }
.breadcrumb a { color: #94e3c2; text-decoration: none; font-weight: 600; }
.breadcrumb a:hover, .breadcrumb a:focus { text-decoration: underline; }
.breadcrumb-sep { opacity: 0.6; }
.breadcrumb-current { color: #cfe9e0; }
[data-theme="light"] .breadcrumb a { color: #0a3d3d; }
[data-theme="light"] .breadcrumb-current, [data-theme="light"] .breadcrumb-sep { color: #41595a; }
[data-theme="wcag-aaa"] .breadcrumb a { color: #ffff00; }
[data-theme="wcag-aaa"] .breadcrumb-current { color: #ffffff; }

/* Filtr dokumentů (stránky s dokumenty ke stažení) */
.doc-filter-wrap { max-width: 480px; margin: 0 auto 2rem; }
.doc-filter-field { position: relative; }
.doc-filter-input { width: 100%; padding: 0.7rem 2.6rem 0.7rem 0.9rem; font-size: 1rem; border: 1px solid #d0d5dd; border-radius: 8px; box-sizing: border-box; background: #ffffff; color: #0a3d3d; }
.doc-filter-input::placeholder { color: #5a7a7a; opacity: 1; }
.doc-filter-clear { position: absolute; top: 50%; right: 0.5rem; transform: translateY(-50%); width: 1.7rem; height: 1.7rem; display: flex; align-items: center; justify-content: center; padding: 0; border: none; border-radius: 50%; cursor: pointer; background: rgba(10,61,61,0.12); color: #0a3d3d; font-size: 1.25rem; line-height: 1; transition: background 0.2s ease; }
.doc-filter-clear:hover, .doc-filter-clear:focus { background: rgba(10,61,61,0.28); outline: none; }
.doc-filter-clear[hidden] { display: none; }
.doc-filter-count { margin-top: 0.6rem; text-align: center; font-size: 0.92rem; font-weight: 700; color: #94e3c2; }
[data-theme="light"] .doc-filter-count { color: #0a3d3d; }
[data-theme="wcag-aaa"] .doc-filter-count { color: #ffff00; }

/* ===================================================================
   REŽIM LOVE EDC (data-theme="love-edc") – zelený brand základ + duhové akcenty
   =================================================================== */
[data-theme="love-edc"] body { background: radial-gradient(circle at 50% -10%, #0a3d3d 0%, #05282a 60%, #021a1b 100%) !important; background-attachment: fixed !important; color: #ecfcf5; }
/* Podkladové video LOVE EDC: zobrazení/skrytí řídí JS (inline styl), aby to nezáviselo na cache CSS */
/* částice v LOVE režimu jsou jen jemný překryv nad videem */
[data-theme="love-edc"] #energy-canvas { opacity: 0.55; }
/* Čitelnost obsahu nad videem: ztmavené video + matné tmavé karty */
[data-theme="love-edc"] #love-bg-video { filter: brightness(0.5) saturate(1.05); }
[data-theme="love-edc"] .glass-card { background: rgba(5, 40, 42, 0.8) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(148, 227, 194, 0.35) !important; box-shadow: 0 10px 30px rgba(0,0,0,0.35) !important; }
[data-theme="love-edc"] .glass-card h3, [data-theme="love-edc"] .glass-card h4 { color: #ffffff !important; }
[data-theme="love-edc"] .glass-card p, [data-theme="love-edc"] .glass-card .text-gray-400, [data-theme="love-edc"] .glass-card .text-gray-500, [data-theme="love-edc"] .glass-card .text-gray-300 { color: #cfe9e0 !important; }
/* LOVE EDC: štítek typu dokumentu nad nadpisem na světlých dlaždicích (ne číselné odznáčky) */
[data-theme="love-edc"] .bento-layout .card-date:not(.step-number) { color: #0a3d3d; opacity: 0.85; }
/* jemný duhový proužek pod hlavičkou */
[data-theme="love-edc"] header::after { content: ''; position: absolute; left: 0; right: 0; bottom: -3px; height: 3px; background: linear-gradient(90deg, #ffd97e, #ff8a84, #f6a1c8, #b893c6, #70c8fb, #b9d878, #94e3c2); }

/* ===================================================================
   REŽIM EDC BRAND (data-theme="brand") – ilustrované pozadí v barvách
   EDC guidelines (#05282a, #27504c, #94e3c2, #c4f0de, #ecfcf5),
   bez podkladového videa a bez částicového efektu
   =================================================================== */
[data-theme="brand"] body { background: #27504c url('obrázky/edc-brand-pozadi.svg') center / cover no-repeat fixed !important; color: #ecfcf5; }
/* Jemný tmavý stín pro čitelnost světlého textu nad světlými kopci */
[data-theme="brand"] main { text-shadow: 0 1px 10px rgba(5, 40, 42, 0.6); }
/* Žádné animované podklady – obrázek je jediný podklad */
[data-theme="brand"] #energy-canvas { display: none !important; }
[data-theme="brand"] #love-bg-video { display: none !important; }
[data-theme="brand"] .video-background-container, [data-theme="brand"] .bg-video, [data-theme="brand"] .bg-video-element { display: none !important; }
/* Karty: matná tmavě zelená s mentolovým rámečkem */
[data-theme="brand"] .glass-card { background: rgba(5, 40, 42, 0.78) !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid rgba(148, 227, 194, 0.3) !important; box-shadow: 0 10px 30px rgba(2, 20, 21, 0.45) !important; }
[data-theme="brand"] .glass-card h3, [data-theme="brand"] .glass-card h4 { color: #ecfcf5 !important; }
[data-theme="brand"] .glass-card p, [data-theme="brand"] .glass-card .text-gray-200, [data-theme="brand"] .glass-card .text-gray-300, [data-theme="brand"] .glass-card .text-gray-400, [data-theme="brand"] .glass-card .text-gray-500 { color: #c4f0de !important; }
[data-theme="brand"] .glass-card button { color: #c4f0de !important; border-color: rgba(148, 227, 194, 0.35) !important; background-color: rgba(148, 227, 194, 0.08) !important; }
/* Nadpisy sekcí mentolově */
[data-theme="brand"] .section-title, [data-theme="brand"] .services-heading { color: #94e3c2 !important; }
[data-theme="brand"] .edc-organs h2, [data-theme="brand"] .edc-activities h2, [data-theme="brand"] .edc-structure h2, [data-theme="brand"] .organ-section h3 { color: #94e3c2 !important; -webkit-text-fill-color: #94e3c2 !important; }
/* Pruhované sekce nechat prosvítat na obrázek */
[data-theme="brand"] .edc-services.modern-slant { background: rgba(5, 40, 42, 0.55) !important; }
/* Štítek typu dokumentu na světlých dlaždicích */
[data-theme="brand"] .bento-layout .card-date:not(.step-number) { color: #05282a; opacity: 0.85; }
/* Mentolový proužek pod hlavičkou */
[data-theme="brand"] header::after { content: ''; position: absolute; left: 0; right: 0; bottom: -3px; height: 3px; background: linear-gradient(90deg, #05282a, #94e3c2, #c4f0de, #94e3c2, #05282a); }

/* Duhové tlačítko LOVE EDC v hlavičce */
.love-edc-link { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 700; color: #05282a !important; padding: 8px 16px; border-radius: 50px; white-space: nowrap; background: linear-gradient(90deg, #ffd97e, #ff8a84, #f6a1c8, #b893c6, #70c8fb, #b9d878); background-size: 200% 100%; border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); transition: background-position 0.5s ease, transform 0.2s ease, box-shadow 0.2s ease; }
.love-edc-link:hover, .love-edc-link:focus { background-position: 100% 0; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25); outline: none; }

/* FAQ – zvýraznění hledaného výrazu a počet výsledků */
mark.faq-hl { background: #94e3c2; color: #0a3d3d; padding: 0 2px; border-radius: 3px; }
.faq-search-count { margin: -0.5rem 0 1.25rem; font-size: 0.92rem; font-weight: 700; color: #94e3c2; }
[data-theme="light"] .faq-search-count { color: #0a3d3d; }
[data-theme="wcag-aaa"] .faq-search-count { color: #ffff00; }

/* Fix barvy slovníku pro standardní zobrazení */
.hero-slovnik .hero-content-wrap h1, .hero-slovnik .hero-content-wrap p { color: #05282a !important; text-shadow: 0 0 15px rgba(255,255,255,0.5); }
/* Fix pro WCAG režim slovníku (aby nezůstal tmavý na černém) */
[data-theme="wcag-aaa"] .hero-slovnik .hero-content-wrap h1 { color: #ffff00 !important; text-shadow: none !important; }
[data-theme="wcag-aaa"] .hero-slovnik .hero-content-wrap p { color: #ffffff !important; text-shadow: none !important; }

/* Fix pro barvy ve slovníku v WCAG AAA režimu */
[data-theme="wcag-aaa"] #hero-heading { color: #ffff00 !important; text-shadow: none !important; }
[data-theme="wcag-aaa"] .hero-slovnik .highlight { color: #ffff00 !important; text-shadow: none !important; }

/* Definice hodnot proměnných pro vysoký kontrast */
[data-theme="wcag-aaa"] {
    --hero-color: #ffff00 !important; /* Vynutí žlutou */
    --hero-shadow: none !important;    /* Vypne stíny pro lepší čitelnost */
}

[data-theme="wcag-aaa"] .accumulation-contact { color: #ffff00 !important; }



/* --- GLASSMORPHISM PRO DLAŽDICE --- */
/* Zacílíme přesně na mřížku a vynecháme hlavní dlaždici (.primary-trigger) */

/* 1. Barva: Světle tyrkysová (s 85% neprůhledností) */
.modals-section .modal-grid .modal-trigger:not(.primary-trigger):nth-child(3n+1) {
    background-color: rgba(196, 240, 222, 0.85) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-color: rgba(255, 255, 255, 0.5) !important; /* Efekt odlesku hran */
}

/* 2. Barva: Zelenkavá (s 85% neprůhledností) */
.modals-section .modal-grid .modal-trigger:not(.primary-trigger):nth-child(3n+2) {
    background-color: rgba(148, 227, 194, 0.85) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-color: rgba(255, 255, 255, 0.5) !important;
}

/* 3. Barva: Nejsvětlejší mentolová (s 85% neprůhledností) */
.modals-section .modal-grid .modal-trigger:not(.primary-trigger):nth-child(3n+3) {
    background-color: rgba(236, 252, 245, 0.85) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-color: rgba(255, 255, 255, 0.5) !important;
}

/* --- SUPER HOVER EFEKT --- */
.modals-section .modal-grid .modal-trigger:not(.primary-trigger):hover {
    transform: translateY(-10px) scale(1.05) !important;
    background-color: rgba(255, 255, 255, 0.95) !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1), 0 0 30px rgba(148, 227, 194, 0.9) !important;
    border-color: #ffffff !important;
    z-index: 10 !important;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
}
/* === Přístupnost: respektovat systémové omezení pohybu === */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* <picture> obal nesmí ovlivnit layout obrázků (WebP optimalizace) */
picture { display: contents; }

/* Pozadí modálů (žárovky) – dedup inline stylů + WebP s PNG fallbackem */
.modal-bg-zarovky {
  background-image: url('obrázky/zarovky.png');
  background-image: image-set(url('obrázky/zarovky.webp') type('image/webp'), url('obrázky/zarovky.png') type('image/png'));
}

/* Barevné štítky souborů (dříve inline) */
.file-tag.tag-green { background: #10b981; color: #fff; }
.file-tag.tag-blue  { background: #3b82f6; color: #fff; }
.file-tag.tag-red   { background: #d9382f; color: #fff; }

/* Číslo kroku v kartách (dříve inline flex-centrování) */
.card-step-badge { margin-bottom: 1rem; text-align: center; display: flex; justify-content: center; align-items: center; }

/* Modal-trigger ve formě řádku (levý, plná šířka) – dříve inline */
.modal-trigger.trigger-list { width: 100%; text-align: left; font-family: inherit; }

/* Skrytá plovoucí Daktela bublina – druhý chat se otevírá jen tlačítkem „Kontaktujte nás" v Terezce
   (prvek zůstává v DOM, takže edcOpenDaktela() ho může programově kliknout a chat otevřít) */
[data-component-name="mainButton"] { display: flex !important; }  /* Daktela bublina zobrazena (asistent EDC dočasně vypnutý) */
