/* 
   ==========================================================================
   DESIGN SYSTÉM & PRÉMIOVÉ CSS STYLY: BRANNÉ ODDÍLY ČR (BOČR)
   Estetika: Cyber-Military & Glassmorphism
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700;800&family=Playfair+Display:ital,wght@1,700&display=swap');

/* --- Globální Proměnné --- */
:root {
    /* HSL Barevná paleta — AUTENTICKÝ OLIVOVO-KHAKI POLNÍ TÓN */
    --bg-dark: 75 9% 7%;           /* hluboká polní zem #13140e */
    --bg-panel: 72 13% 10%;        /* olivový panel #1a1c13 */
    --primary-hue: 78;             /* Olive Drab */
    --primary: var(--primary-hue) 28% 27%;   /* #545a37 olivová */
    --primary-light: var(--primary-hue) 24% 42%;
    --primary-dark: var(--primary-hue) 34% 14%;

    --accent-hue: 40;              /* Mosazná / polní amber (ne neon) */
    --accent: var(--accent-hue) 62% 53%;     /* #cd9a3d mosaz */
    --accent-glow: var(--accent-hue) 62% 50% / 35%;

    /* sekundární khaki/písková pro detaily */
    --khaki: 44 28% 62%;           /* #bdb189 */
    --accent-rgb: 207, 158, 64;    /* mosaz v RGB pro mřížky/radar */
    --primary-rgb: 84, 90, 55;

    --text-light: 56 10% 94%;      /* teplá špinavě bílá */
    --text-muted: 56 7% 67%;
    --border-glass: 56 30% 100% / 9%;
    --bg-glass: 60 20% 100% / 3%;
    --bg-glass-active: 60 20% 100% / 6%;

    --footer-bg: #0a0b07;
    --passport-grad: linear-gradient(135deg, #15170f 0%, #0d0e09 100%);

    --font-sans: 'Outfit', sans-serif;
    --font-serif: 'Playfair Display', serif;

    --transition-smooth: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), color 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    --transition-bounce: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), border-color 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
    --theme-transition: color 0.4s ease, border-color 0.4s ease;
}

/* --- SVĚTLÝ ("polní denní") REŽIM --- */
html.light-mode {
    --bg-dark: 48 30% 90%;         /* pískové plátno #e9e3d2 */
    --bg-panel: 50 26% 84%;        /* khaki papír #ddd6c0 */
    --primary: var(--primary-hue) 30% 32%;
    --primary-light: var(--primary-hue) 26% 46%;
    --primary-dark: var(--primary-hue) 32% 24%;

    --accent: var(--accent-hue) 68% 40%;     /* tmavší mosaz pro kontrast */
    --accent-glow: var(--accent-hue) 68% 42% / 30%;
    --accent-rgb: 150, 108, 30;

    --text-light: 75 18% 13%;      /* tmavá oliva místo bílé */
    --text-muted: 75 10% 32%;
    --border-glass: 75 25% 20% / 14%;
    --bg-glass: 75 22% 30% / 6%;
    --bg-glass-active: 75 22% 30% / 10%;

    --footer-bg: #d3cbb2;
    --passport-grad: linear-gradient(135deg, #e4ddc8 0%, #d6cdb2 100%);
}

/* --- Reset & Základy --- */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Bez tohoto by třídy jako .btn (display: inline-flex) přebily výchozí chování
   atributu [hidden] — u shodné specificity vyhrává autorské CSS nad UA stylem. */
[hidden] {
    display: none !important;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
    background-color: hsl(var(--bg-dark));
    color: hsl(var(--text-light));
    font-family: var(--font-sans);
    overflow-x: hidden;
    max-width: 100%;
    transition: var(--theme-transition);
}

body, .top-bar, .navbar, .glass-panel, .download-card, .billing-passport,
.tab-btn, .priority-icon-wrapper, footer, .hero-bg-underlay {
    transition: var(--theme-transition), var(--transition-smooth);
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    max-width: 100%;
    line-height: 1.6;
    position: relative;
    background-color: hsl(var(--bg-dark));
    color: hsl(var(--text-light));
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-image: 
        linear-gradient(rgba(var(--accent-rgb), 0.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(var(--accent-rgb), 0.02) 1px, transparent 1px);
    background-size: 50px 50px;
    background-position: center;
    pointer-events: none;
    z-index: 0;
    animation: grid-panning 120s linear infinite;
}

@keyframes grid-panning {
    0% { background-position: 0 0; }
    100% { background-position: 50px 50px; }
}

/* Vzhled Scrollbaru */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: hsl(var(--bg-dark));
}
::-webkit-scrollbar-thumb {
    background: hsl(var(--primary));
    border-radius: 4px;
    border: 1px solid hsl(var(--bg-dark));
}
::-webkit-scrollbar-thumb:hover {
    background: hsl(var(--accent));
}

a {
    color: inherit;
    text-decoration: none;
    transition: var(--transition-smooth);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* --- Typografie --- */
h1, h2, h3, h4 {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1.2;
}

h1 {
    font-size: 3rem;
    font-weight: 800;
}

h2 {
    font-size: 2rem;
    color: hsl(var(--text-light));
}

h3 {
    font-size: 1.3rem;
    color: hsl(var(--accent));
}

p {
    color: hsl(var(--text-muted));
    font-size: 1.05rem;
}

.text-accent {
    color: hsl(var(--accent));
}

/* --- High-Tech Komponenty --- */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

/* Tlačítka (CTA s laserovým sweep efektem) */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.9rem 2.2rem;
    font-family: var(--font-sans);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: 4px;
    border: 2px solid transparent;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: var(--transition-smooth);
}

.btn-primary {
    background: hsl(var(--accent));
    color: #000;
    box-shadow: 0 0 15px hsl(var(--accent-glow));
}

.btn-primary::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: 0.75s;
}

.btn-primary:hover::before {
    left: 150%;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 25px hsl(var(--accent-glow)), 0 5px 15px rgba(0,0,0,0.4);
}

.btn-secondary {
    background: transparent;
    border-color: hsl(var(--border-glass));
    color: hsl(var(--text-light));
    backdrop-filter: blur(5px);
}

.btn-secondary:hover {
    background: hsl(var(--text-light) / 5%);
    border-color: hsl(var(--text-light));
    transform: translateY(-2px);
}

/* Glassmorphic Panely */
.glass-panel {
    background: hsl(var(--bg-glass));
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid hsl(var(--border-glass));
    border-radius: 8px;
    padding: 2.5rem;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    transition: var(--transition-smooth);
}

.glass-panel:hover {
    border-color: hsl(var(--primary-light) / 30%);
    box-shadow: 0 15px 40px rgba(0,0,0,0.6), 0 0 20px hsl(var(--primary-dark) / 10%);
}

/* Skenovací čára pro panely */
.scan-line-effect {
    position: relative;
}

.scan-line-effect::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(to right, transparent, hsl(var(--accent)), transparent);
    animation: scan 6s linear infinite;
    pointer-events: none;
    opacity: 0.4;
}

@keyframes scan {
    0% { top: 0%; }
    50% { top: 100%; }
    100% { top: 0%; }
}

/* --- Záhlaví (Header) --- */
header {
    width: 100%;
    position: relative;
    z-index: 1000;
}

/* Top Kontaktní lišta */
.top-bar {
    background-color: hsl(var(--bg-dark) / 85%);
    border-bottom: 1px solid hsl(var(--border-glass));
    backdrop-filter: blur(10px);
    font-size: 0.82rem;
    padding: 0.5rem 0;
}

.top-bar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1360px;
}

.top-info {
    display: flex;
    align-items: center;
    gap: 1.8rem;
    color: hsl(var(--text-muted));
}

.top-info span {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 500;
}

.top-info a:hover {
    color: hsl(var(--accent));
}

.top-socials {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.top-socials a {
    color: hsl(var(--text-muted));
    font-size: 1rem;
    display: flex;
    align-items: center;
    padding: 0.2rem;
    border-radius: 4px;
    transition: var(--transition-bounce);
}

.top-socials a:hover {
    color: hsl(var(--accent));
    transform: translateY(-1px) scale(1.15);
}

.top-socials svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

/* Hlavní Navigační Panel */
.navbar {
    background-color: hsl(var(--bg-dark) / 60%);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid hsl(var(--border-glass));
    padding: 0.75rem 0;
    transition: var(--transition-smooth);
}

/* Sticky chování navbaru */
.navbar.sticky {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: hsl(var(--bg-dark) / 92%);
    box-shadow: 0 10px 30px rgba(0,0,0,0.5), 0 0 1px hsl(var(--border-glass));
    padding: 0.55rem 0;
}

.navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1360px;
    gap: 1rem;
}

.logo {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-shrink: 0;
    text-decoration: none;
}

.logo-img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    filter: drop-shadow(0 0 10px hsl(var(--primary-light) / 30%));
    transition: var(--transition-bounce);
    flex-shrink: 0;
}

.logo:hover .logo-img {
    transform: rotate(4deg) scale(1.06);
}

.logo-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.15;
    white-space: nowrap;
    flex-shrink: 0;
}

.logo-text span:first-child,
.logo-title {
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: hsl(var(--text-light));
    text-transform: uppercase;
    white-space: nowrap;
}

.logo-text span:last-child,
.logo-sub {
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    color: hsl(var(--accent));
    text-transform: uppercase;
    font-weight: 600;
    white-space: nowrap;
}

/* Menu Odkazy */
.nav-menu {
    display: flex;
    align-items: center;
    list-style: none;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
}

.nav-item {
    display: flex;
    align-items: center;
}

.nav-link {
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.45rem 0.75rem;
    border-radius: 4px;
    color: hsl(var(--text-muted));
    position: relative;
    white-space: nowrap;
    transition: var(--transition-smooth);
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 0.75rem;
    right: 0.75rem;
    height: 2px;
    background-color: hsl(var(--accent));
    transform: scaleX(0);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-link:hover {
    color: hsl(var(--text-light));
    background: hsl(var(--bg-glass-active));
}

.nav-item.active .nav-link {
    color: hsl(var(--text-light));
    background: hsl(var(--primary-dark) / 40%);
}

.nav-link:hover::after, .nav-item.active .nav-link::after {
    transform: scaleX(1);
}

/* Zvýrazněný štítek pro Letní tábory */
.nav-link-badge {
    color: hsl(var(--accent)) !important;
    background: hsl(var(--accent-glow)) !important;
    border: 1px solid hsl(var(--accent) / 35%);
}
.nav-link-badge:hover {
    background: hsl(var(--accent)) !important;
    color: #000 !important;
    box-shadow: 0 0 15px hsl(var(--accent-glow));
}
.nav-link-badge::after {
    display: none;
}

/* Tlačítka přihlášení a témata v navigaci */
.auth-nav-item {
    margin-left: 0.5rem;
}

.auth-nav-btn {
    padding: 0.45rem 1rem !important;
    font-size: 0.76rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    border-radius: 4px !important;
    border: 1px solid hsl(var(--accent) / 50%) !important;
    background: hsl(var(--bg-glass)) !important;
    color: hsl(var(--text-light)) !important;
    transition: var(--transition-bounce) !important;
    white-space: nowrap;
}

.auth-nav-btn:hover {
    background: hsl(var(--accent)) !important;
    color: #000 !important;
    border-color: hsl(var(--accent)) !important;
    box-shadow: 0 0 15px hsl(var(--accent-glow)) !important;
}

.theme-nav-item {
    margin-left: 0.2rem;
}

.theme-toggle {
    margin-left: 0 !important;
    padding: 0.4rem 0.8rem !important;
    font-size: 0.72rem !important;
    background: hsl(var(--bg-glass));
    border: 1px solid hsl(var(--border-glass));
}

/* Hamburger a mobilní menu */
.hamburger {
    display: none;
    cursor: pointer;
    background: transparent;
    border: 1px solid hsl(var(--border-glass));
    border-radius: 4px;
    padding: 0.5rem;
    z-index: 1001;
    transition: var(--transition-smooth);
}

.hamburger:hover {
    border-color: hsl(var(--accent));
}

.hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background-color: hsl(var(--text-light));
    margin: 5px 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.hamburger.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.hamburger.active span:nth-child(2) {
    opacity: 0;
}
.hamburger.active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Responsive breakpoint pro menu */
@media (max-width: 1160px) {
    .hamburger {
        display: block;
    }

    .nav-menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 320px;
        max-width: 85vw;
        height: 100vh;
        background-color: hsl(var(--bg-dark) / 96%);
        backdrop-filter: blur(24px);
        -webkit-backdrop-filter: blur(24px);
        border-left: 1px solid hsl(var(--border-glass));
        flex-direction: column;
        align-items: stretch;
        padding: 5.5rem 2rem 2rem 2rem;
        gap: 0.8rem;
        transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        box-shadow: -15px 0 40px rgba(0,0,0,0.6);
        z-index: 1000;
        overflow-y: auto;
    }

    .nav-menu.active {
        right: 0;
    }

    .nav-link {
        font-size: 0.95rem;
        padding: 0.75rem 1rem;
        width: 100%;
        border-radius: 6px;
    }

    .auth-nav-item, .theme-nav-item {
        margin-left: 0;
        margin-top: 0.8rem;
        width: 100%;
    }

    .auth-nav-btn, .theme-toggle {
        width: 100%;
        justify-content: center;
        padding: 0.75rem 1rem !important;
        font-size: 0.85rem !important;
    }
}

/* --- SPA View management (Přechody stránek) --- */
.views-container {
    position: relative;
    flex-grow: 1;
}

.view-section {
    display: none;
    animation: fade-slide-in 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.view-section.active {
    display: block;
}

@keyframes fade-slide-in {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
        filter: blur(5px);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

/* --- Sekce 1: Úvod (Home View) --- */

/* Hero banner */
.hero-banner {
    position: relative;
    padding: 7rem 0 3.5rem 0;
    min-height: min(60vw, 86vh);   /* poměr 16:9 fotky + spodní pás na text */
    display: flex;
    align-items: flex-end;          /* text dolů, vojáci zůstanou vidět nahoře */
    overflow: hidden;
    background-image: none !important;
}

.hero-bg-underlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #13140e;
    background-image: radial-gradient(rgba(var(--accent-rgb), 0.025) 1px, transparent 1px);
    background-size: 25px 25px;
    z-index: 1;
}

.hero-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../img/hero-landscape.png');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    z-index: 2;
}

/* ===== ODMASKOVÁNÍ VOJÁKŮ: scan vlna + camo rozpad + glitch ===== */

/* Vrstva s vojáky — odkrývaná maskáčovými skvrnami (#camo-clip-hero) */
.hero-bg-soldiers {
    position: absolute;
    inset: 0;
    background-image: url('../img/hero-soldiers.png');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    z-index: 3;
    opacity: 0;
    filter: blur(10px) saturate(0.5) brightness(0.72) contrast(1.05);
    clip-path: url(#camo-clip-hero);
    transform: scale(1.035);
    transition:
        opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1),
        filter 1.7s cubic-bezier(0.16, 1, 0.3, 1),
        transform 1.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-banner.soldiers-revealing .hero-bg-soldiers { opacity: 1; }

.hero-banner.soldiers-revealed .hero-bg-soldiers {
    opacity: 1;
    filter: blur(0) saturate(0.95) brightness(0.95) contrast(1);
    transform: scale(1);
    clip-path: none;                 /* po rozpadu plné odhalení */
    animation: soldier-glitch 0.55s steps(1) 1;
}

/* Krátký digitální glitch ve chvíli dokončení */
@keyframes soldier-glitch {
    0%   { transform: translate(0,0);    filter: blur(0) saturate(0.95) brightness(0.95); }
    14%  { transform: translate(-8px,1px); filter: brightness(1.4) saturate(1.6) hue-rotate(-16deg) contrast(1.3); }
    28%  { transform: translate(7px,-2px); filter: brightness(0.78) saturate(0.65); }
    42%  { transform: translate(-4px,0);   filter: brightness(1.25) contrast(1.4); }
    58%  { transform: translate(3px,1px);  filter: saturate(0.95) brightness(0.95); }
    100% { transform: translate(0,0);    filter: blur(0) saturate(0.95) brightness(0.95); }
}

/* Postupující skenovací vlna (taktický HUD line) */
.hero-scan {
    position: absolute;
    left: 0;
    right: 0;
    top: -110px;
    height: 100px;
    z-index: 6;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(to bottom,
        transparent,
        rgba(var(--accent-rgb), 0.05) 35%,
        rgba(var(--accent-rgb), 0.30) 80%,
        rgba(var(--accent-rgb), 0.95) 97%,
        rgba(255,255,255,0.92) 100%);
    box-shadow: 0 0 34px 5px rgba(var(--accent-rgb), 0.5);
    mix-blend-mode: screen;
}
.hero-banner.soldiers-revealing .hero-scan {
    animation: hero-scan-sweep 1.7s cubic-bezier(0.45, 0, 0.35, 1) 1 forwards;
}
@keyframes hero-scan-sweep {
    0%   { top: -110px; opacity: 0; }
    7%   { opacity: 1; }
    93%  { opacity: 1; }
    100% { top: 100%; opacity: 0; }
}

/* Interaktivní noční-vidění hledáček pod kurzorem (fáze 2) */
.hero-bg-thermal {
    position: absolute;
    inset: 0;
    z-index: 5;
    background-image: url('../img/hero-soldiers.png');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    pointer-events: none;
    opacity: 0;
    filter: brightness(1.1) contrast(1.55) saturate(1.7) sepia(0.5) hue-rotate(345deg);
    mix-blend-mode: screen;
    -webkit-mask-image: radial-gradient(circle var(--reticle-r, 150px) at var(--mx, -999px) var(--my, -999px), #000 0%, #000 52%, transparent 100%);
    mask-image: radial-gradient(circle var(--reticle-r, 150px) at var(--mx, -999px) var(--my, -999px), #000 0%, #000 52%, transparent 100%);
    transition: opacity 0.45s ease;
}
.hero-banner.scanner-active .hero-bg-thermal { opacity: 0.92; }

/* Zaměřovací reticle, který sleduje kurzor */
.hero-reticle {
    position: absolute;
    top: 0;
    left: 0;
    width: 300px;
    height: 300px;
    margin: -150px 0 0 -150px;
    border-radius: 50%;
    border: 1.5px solid rgba(var(--accent-rgb), 0.65);
    box-shadow: 0 0 26px rgba(var(--accent-rgb), 0.35), inset 0 0 34px rgba(var(--accent-rgb), 0.12);
    z-index: 7;
    pointer-events: none;
    opacity: 0;
    transform: translate(-9999px, -9999px);
    transition: opacity 0.3s ease;
}
.hero-reticle::before,
.hero-reticle::after {
    content: '';
    position: absolute;
    background: rgba(var(--accent-rgb), 0.75);
}
.hero-reticle::before { left: 50%; top: -14px; width: 1px; height: calc(100% + 28px); transform: translateX(-50%); }
.hero-reticle::after  { top: 50%; left: -14px; height: 1px; width: calc(100% + 28px); transform: translateY(-50%); }
.hero-banner.scanner-active .hero-reticle { opacity: 0.9; }

.hero-banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(10,11,7,0.30) 0%, rgba(10,11,7,0.12) 32%, rgba(12,13,8,0.45) 66%, rgba(12,13,8,0.92) 100%);
    z-index: 4;
    pointer-events: none;
}

.hero-banner .container {
    position: relative;
    z-index: 9;
    text-align: center;
}

/* ===== MINIHRA V HERO SEKCI: NABIJ A STŘÍLEJ ===== */
.ammo-game {
    position: absolute;
    top: 1.75rem;
    right: 1.75rem;
    z-index: 9;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.6rem;
}

@media (max-width: 768px) {
    .ammo-game {
        top: 1rem;
        right: 1rem;
    }
    .ammo-toggle-btn {
        padding: 0.55rem 0.9rem;
        font-size: 0.8rem;
    }
}

.ammo-toggle-btn.is-armed {
    border-color: hsl(var(--accent));
    box-shadow: 0 0 15px hsl(var(--accent-glow));
    cursor: default;
}

.ammo-toggle-btn.is-empty {
    animation: ammo-btn-pulse 1.1s ease-in-out infinite;
}

@keyframes ammo-btn-pulse {
    0%, 100% { box-shadow: 0 0 0 hsl(var(--accent-glow)); }
    50% { box-shadow: 0 0 22px hsl(var(--accent-glow)); }
}

.ammo-hud {
    display: flex;
    gap: 6px;
    min-height: 22px;
}

.ammo-hud .bullet {
    width: 8px;
    height: 20px;
    border-radius: 3px 3px 1px 1px;
    background: linear-gradient(to bottom, #f0d48a 0%, hsl(var(--accent)) 45%, #7a5a1e 100%);
    box-shadow: 0 0 6px rgba(var(--accent-rgb), 0.55), inset 0 0 2px rgba(0, 0, 0, 0.4);
    animation: bullet-pop-in 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
}

@keyframes bullet-pop-in {
    from { transform: scale(0) translateY(6px); opacity: 0; }
    to   { transform: scale(1) translateY(0); opacity: 1; }
}

.ammo-hud .bullet.is-spent {
    animation: bullet-eject 0.35s ease-in forwards;
}

@keyframes bullet-eject {
    to { transform: translateY(16px) rotate(35deg) scale(0.4); opacity: 0; }
}

.hero-banner.is-armed { cursor: crosshair; }

/* Záblesk výstřelu na místě kliknutí */
.muzzle-flash {
    position: absolute;
    z-index: 10;
    width: 90px;
    height: 90px;
    margin: -45px 0 0 -45px;
    pointer-events: none;
    background: radial-gradient(circle, #fff6dd 0%, rgba(var(--accent-rgb), 0.95) 22%, rgba(var(--accent-rgb), 0.35) 48%, transparent 72%);
    border-radius: 50%;
    animation: muzzle-flash-anim 0.35s cubic-bezier(0.15, 0.9, 0.4, 1) forwards;
}

@keyframes muzzle-flash-anim {
    0%   { transform: scale(0.2); opacity: 1; }
    45%  { transform: scale(1.15); opacity: 1; }
    100% { transform: scale(1.6); opacity: 0; }
}

/* Zpětný ráz celé hero sekce při zásahu */
@keyframes hero-recoil-shake {
    0%   { transform: translate(0, 0); }
    15%  { transform: translate(6px, -3px); }
    35%  { transform: translate(-4px, 2px); }
    55%  { transform: translate(3px, -1px); }
    75%  { transform: translate(-2px, 1px); }
    100% { transform: translate(0, 0); }
}
.hero-banner.is-firing { animation: hero-recoil-shake 0.32s ease-out; }

/* "Cvak" naprázdno, když dojdou náboje */
@keyframes hero-dry-fire-shake {
    0%, 100% { transform: translate(0, 0); }
    20% { transform: translate(-3px, 0); }
    40% { transform: translate(3px, 0); }
    60% { transform: translate(-2px, 0); }
    80% { transform: translate(2px, 0); }
}
.hero-banner.is-dry-fire { animation: hero-dry-fire-shake 0.3s linear; }

/* --- Animace maskovacích skvrn --- */
.camo-spot {
    transition: r 2.2s cubic-bezier(0.25, 1, 0.3, 1);
}

.hero-banner.camo-revealed .camo-spot {
    /* Umožní protnutí a slévání kruhů */
}
.hero-banner.camo-revealed .spot-1 { r: 0.62; transition-delay: 0.10s; }
.hero-banner.camo-revealed .spot-2 { r: 0.58; transition-delay: 0.30s; }
.hero-banner.camo-revealed .spot-3 { r: 0.70; transition-delay: 0.00s; }
.hero-banner.camo-revealed .spot-4 { r: 0.64; transition-delay: 0.20s; }
.hero-banner.camo-revealed .spot-5 { r: 0.62; transition-delay: 0.40s; }
.hero-banner.camo-revealed .spot-6 { r: 0.56; transition-delay: 0.15s; }
.hero-banner.camo-revealed .spot-7 { r: 0.64; transition-delay: 0.25s; }
.hero-banner.camo-revealed .spot-8 { r: 0.60; transition-delay: 0.35s; }

.hero-banner h1 {
    font-size: 4rem;
    margin-bottom: 1.5rem;
    color: hsl(56 14% 96%);
    text-shadow: 0 0 20px rgba(0,0,0,0.6);
}

.hero-banner h2 {
    font-size: 1.5rem;
    text-transform: none;
    font-weight: 400;
    color: hsl(48 16% 86%);
    max-width: 800px;
    margin: 0 auto 2.5rem auto;
    text-shadow: 0 2px 10px rgba(0,0,0,0.8);
}

.hero-banner .btn-group {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
}

/* Sub-Hero Tábory Grid */
.camps-fast-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 3rem;
    position: relative;
    z-index: 5;
    padding-bottom: 5rem;
}

.camp-card-fast {
    padding: 2rem;
    text-align: center;
}

.camp-card-fast h3 {
    margin-bottom: 1rem;
    font-size: 1.5rem;
}

.camp-card-fast .info-line {
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
}

.camp-card-fast .info-line strong {
    color: hsl(var(--text-light));
}

.camp-card-fast .btn {
    margin-top: 1.5rem;
    width: 100%;
    font-size: 0.8rem;
}

.camp-card-actions {
    display: flex;
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.camp-card-actions .btn {
    margin-top: 0;
    flex: 1;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 0.72rem;
}

@media (max-width: 480px) {
    .camp-card-actions { flex-direction: column; }
}

/* Sub-Hero Oddíly Grid (teaser na Úvodu) */
.oddily-fast-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 1rem;
}

.home-block-cta {
    text-align: center;
    margin-top: 2.5rem;
}

/* Úvod: sezónní přepínač Tábory/Oddíly — nadpis sekce + štítek stavu */
.home-block-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.home-block-title h2 {
    margin-bottom: 0;
}

.status-badge.status-open { background: hsl(140 40% 40% / 18%); color: hsl(140 55% 72%); border: 1px solid hsl(140 40% 45% / 40%); }
.status-badge.status-warn { background: hsl(38 70% 50% / 18%); color: hsl(38 80% 68%); border: 1px solid hsl(38 70% 50% / 40%); }
.status-badge.status-closed { background: hsl(6 65% 52% / 18%); color: hsl(6 70% 78%); border: 1px solid hsl(6 65% 52% / 40%); }
.status-badge.status-info { background: hsl(200 60% 50% / 18%); color: hsl(200 70% 78%); border: 1px solid hsl(200 60% 50% / 40%); }

/* Vedlejší (méně důrazná) varianta sekce Tábory/Oddíly na Úvodu */
[data-home-block].is-secondary .home-block-title { margin-bottom: 2rem; }
[data-home-block].is-secondary .home-block-title h2 { font-size: 1.6rem; }
[data-home-block].is-secondary .camps-fast-grid,
[data-home-block].is-secondary .oddily-fast-grid {
    margin-top: 1rem;
    padding-bottom: 2.5rem;
    gap: 1.25rem;
}
[data-home-block].is-secondary .camp-card-fast { padding: 1.25rem; }
[data-home-block].is-secondary .camp-card-fast h3 { font-size: 1.1rem; }

/* Section design */
.section-padding {
    padding: 6rem 0;
}

.section-title-wrapper {
    text-align: center;
    margin-bottom: 4rem;
}

.section-title-wrapper h2 {
    font-size: 2.5rem;
    position: relative;
    display: inline-block;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
}

.section-title-wrapper h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 80px;
    height: 3px;
    background-color: hsl(var(--accent));
    transform: translateX(-50%);
}

/* Tři priority / pilíře výcviku */
.priorities-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
}

.priority-card {
    text-align: center;
    position: relative;
}

.priority-icon-wrapper {
    width: 80px;
    height: 80px;
    background: hsl(var(--primary-dark));
    border: 1px solid hsl(var(--accent));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem auto;
    font-size: 2rem;
    color: hsl(var(--accent));
    box-shadow: 0 0 15px hsl(var(--accent-glow));
    transition: var(--transition-bounce);
}

.priority-card:hover .priority-icon-wrapper {
    transform: scale(1.1) rotate(10deg);
    box-shadow: 0 0 25px hsl(var(--accent-glow));
}

.priority-card h3 {
    margin-bottom: 1rem;
}

/* Sekce Ohlasy & Testimonials */
.testimonials-section {
    background-size: cover;
    background-position: center;
    position: relative;
}

.testimonials-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(11,13,14,0.95), rgba(11,13,14,0.95));
}

.testimonials-section .container {
    position: relative;
    z-index: 2;
}

.testimonials-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 4rem;
    align-items: center;
}

.citation-box h2 {
    color: hsl(var(--accent));
    font-family: var(--font-serif);
    font-size: 3rem;
    opacity: 0.3;
    line-height: 1;
}

.citation-box blockquote {
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    color: hsl(var(--text-light));
}

.citation-box cite {
    font-style: normal;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 1rem;
    letter-spacing: 0.1em;
    color: hsl(var(--accent));
}

/* Video Wrapper */
.video-wrapper {
    position: relative;
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid hsl(var(--border-glass));
    box-shadow: 0 15px 40px rgba(0,0,0,0.6);
}

.video-container {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    height: 0;
    overflow: hidden;
}

.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* --- Sekce 2: Oddíly (Divisions View) --- */

.tab-nav {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    list-style: none;
    margin-bottom: 3rem;
}

.tab-btn {
    background: hsl(var(--bg-glass));
    border: 1px solid hsl(var(--border-glass));
    padding: 0.8rem 2rem;
    border-radius: 4px;
    font-family: var(--font-sans);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: hsl(var(--text-muted));
    cursor: pointer;
    transition: var(--transition-smooth);
}

.tab-btn:hover {
    border-color: hsl(var(--text-light) / 30%);
    color: hsl(var(--text-light));
}

.tab-btn.active {
    background: hsl(var(--accent));
    color: #000;
    border-color: transparent;
    box-shadow: 0 0 15px hsl(var(--accent-glow));
}

.clubs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.club-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: space-between;
}

.club-card h3 {
    margin-bottom: 1.5rem;
    border-bottom: 1px solid hsl(var(--border-glass));
    padding-bottom: 1rem;
    min-height: 4.2rem;
}

.club-card .commander-email {
    margin-bottom: 2rem;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    word-break: break-all;
}

.club-card .commander-email svg {
    width: 18px;
    height: 18px;
    fill: hsl(var(--accent));
    flex-shrink: 0;
}

.club-card .btn {
    width: 100%;
}

.club-desc {
    font-size: 0.95rem;
    color: hsl(var(--text-muted));
    margin-bottom: 1rem;
}

.club-card-actions {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.club-card-actions .btn {
    width: auto;
}

/* Detail oddílu (#/oddily/<slug>) */
.oddil-detail-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2rem;
    align-items: start;
}

.oddil-detail-main,
.oddil-detail-side {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.oddil-lead-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid hsl(var(--border-glass));
}

.oddil-lead-row:last-child {
    border-bottom: none;
}

.oddil-lead-row span {
    font-size: 0.8rem;
    color: hsl(var(--text-muted));
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

@media (max-width: 900px) {
    .oddil-detail-grid {
        grid-template-columns: 1fr;
    }
}

/* --- Sekce 3: Letní Tábory --- */
.tabory-grid-main {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
    margin-bottom: 5rem;
}

.camp-card-detail {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.camp-badge {
    display: inline-block;
    background: hsl(var(--primary-dark));
    color: hsl(var(--accent));
    border: 1px solid hsl(var(--accent));
    padding: 0.4rem 1rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    align-self: flex-start;
}

.camp-card-detail h3 {
    font-size: 1.6rem;
    margin-bottom: 1.5rem;
}

.camp-features {
    list-style: none;
    margin-bottom: 2.5rem;
}

.camp-features li {
    font-size: 1rem;
    margin-bottom: 0.8rem;
    color: hsl(var(--text-muted));
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.camp-features li::before {
    content: '✓';
    color: hsl(var(--accent));
    font-weight: 700;
}

.camp-card-detail .btn {
    width: 100%;
    margin-bottom: 0.8rem;
}

/* Stahovací centrum */
.downloads-panel {
    background: linear-gradient(135deg, hsl(var(--primary-dark) / 40%), hsl(var(--bg-panel) / 60%));
    border: 1px solid hsl(var(--border-glass));
    border-radius: 8px;
    padding: 3rem;
    margin-bottom: 5rem;
}

.downloads-panel h3 {
    margin-bottom: 2rem;
    font-size: 1.8rem;
    text-align: center;
}

.downloads-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

.download-card {
    background: hsl(var(--bg-dark) / 60%);
    border: 1px solid hsl(var(--border-glass));
    padding: 1.5rem;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: var(--transition-bounce);
}

.download-card:hover {
    border-color: hsl(var(--accent));
    transform: translateY(-3px);
}

.download-info {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.download-icon {
    font-size: 2rem;
    color: hsl(var(--accent));
}

.download-texts h4 {
    font-size: 0.95rem;
    color: hsl(var(--text-light));
    text-transform: none;
    margin-bottom: 0.2rem;
}

.download-texts span {
    font-size: 0.75rem;
    color: hsl(var(--text-muted));
    text-transform: uppercase;
}

.download-btn {
    width: 40px;
    height: 40px;
    background: hsl(var(--bg-glass));
    border: 1px solid hsl(var(--border-glass));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: hsl(var(--text-light));
    transition: var(--transition-smooth);
}

.download-card:hover .download-btn {
    background: hsl(var(--accent));
    color: #000;
    border-color: transparent;
    box-shadow: 0 0 10px hsl(var(--accent-glow));
}

/* --- Sekce 4: Kurz Přežití --- */
.survival-showcase {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 4rem;
    align-items: center;
}

.survival-image-wrapper {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid hsl(var(--border-glass));
    box-shadow: 0 20px 50px rgba(0,0,0,0.6);
}

.survival-image-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, hsl(var(--accent-glow)) 0%, transparent 100%);
    opacity: 0.2;
    pointer-events: none;
}

/* --- Sekce 5: O Nás --- */
.about-priorities {
    margin-bottom: 6rem;
}

.team-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 4rem;
    align-items: center;
}

.team-portrait-card {
    text-align: center;
}

.portrait-img-wrapper {
    position: relative;
    width: 100%;
    max-width: 320px;
    margin: 0 auto 2rem auto;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid hsl(var(--primary));
    box-shadow: 0 15px 45px rgba(0,0,0,0.6);
}

.portrait-img-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, transparent 60%, hsl(var(--bg-panel)) 100%);
    pointer-events: none;
}

.team-portrait-card h3 {
    font-size: 1.5rem;
    color: hsl(var(--text-light));
    margin-bottom: 0.3rem;
}

.team-portrait-card span {
    font-size: 0.9rem;
    font-weight: 600;
    color: hsl(var(--accent));
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* --- Sekce 6: Kontakty --- */
.contact-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
}

.billing-passport {
    background: var(--passport-grad);
    border: 2px solid hsl(var(--primary));
    border-radius: 8px;
    padding: 3rem;
    box-shadow: 0 20px 50px rgba(0,0,0,0.6);
}

.passport-header {
    border-bottom: 2px solid hsl(var(--primary-light) / 30%);
    padding-bottom: 1.5rem;
    margin-bottom: 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.passport-header h3 {
    font-size: 1.6rem;
    color: hsl(var(--text-light));
}

.passport-badge {
    background: hsl(var(--primary));
    color: hsl(var(--text-light));
    padding: 0.3rem 0.8rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 700;
}

.passport-fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.passport-field {
    display: flex;
    flex-direction: column;
}

.passport-field label {
    font-size: 0.75rem;
    color: hsl(var(--text-muted));
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 0.3rem;
}

.passport-field span {
    font-size: 1.15rem;
    font-weight: 600;
    color: hsl(var(--text-light));
}

.passport-field a:hover {
    color: hsl(var(--accent));
}

/* Mapy panel */
.maps-widget {
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid hsl(var(--border-glass));
    box-shadow: 0 15px 40px rgba(0,0,0,0.6);
    height: 300px;
    position: relative;
    margin-top: 2rem;
}

.maps-widget iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* Social Buttons Grid */
.socials-grid-large {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 1.5rem;
}

.social-card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 1rem 1.1rem;
    background: hsl(var(--bg-glass));
    border: 1px solid hsl(var(--border-glass));
    border-radius: 6px;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: var(--transition-smooth);
}
/* Jemný "scan" paprsek přejíždějící kartou při hoveru/focusu — konzistentní s HUD stylem webu */
.social-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 40%, hsl(var(--accent) / 12%) 50%, transparent 60%);
    transform: translateX(-120%);
    transition: transform 0.6s ease;
    pointer-events: none;
}
.social-card:hover,
.social-card:focus-visible {
    border-color: hsl(var(--accent));
    background: hsl(var(--bg-glass-active));
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35), 0 0 15px hsl(var(--accent-glow));
}
.social-card:hover::after,
.social-card:focus-visible::after {
    transform: translateX(120%);
}
.social-card:focus-visible {
    outline: 2px solid hsl(var(--accent));
    outline-offset: 2px;
}
.social-icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: hsl(var(--bg-glass-active));
    border: 1px solid hsl(var(--border-glass));
    color: hsl(var(--accent));
    transition: var(--transition-bounce);
}
.social-card:hover .social-icon,
.social-card:focus-visible .social-icon {
    background: hsl(var(--accent));
    color: #000;
    box-shadow: 0 0 15px hsl(var(--accent-glow));
    transform: scale(1.12) rotate(-6deg);
}
.social-icon svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
    transition: var(--transition-smooth);
}
.social-label {
    display: flex;
    flex-direction: column;
    line-height: 1.35;
    min-width: 0;
}
.social-label strong {
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: hsl(var(--text-light));
}
.social-label small {
    font-size: 0.75rem;
    color: hsl(var(--text-muted));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 640px) {
    .socials-grid-large { grid-template-columns: 1fr; }
}

/* --- Sekce 6.2: Partnerství --- */
.partners-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 2rem;
    align-items: center;
    justify-items: center;
}

.partner-logo-wrapper {
    width: 100%;
    max-width: 150px;
    aspect-ratio: 3/2;
    display: flex;
    align-items: center;
    justify-content: center;
    background: hsl(var(--bg-glass));
    border: 1px solid hsl(var(--border-glass));
    border-radius: 6px;
    padding: 1rem;
    transition: var(--transition-bounce);
}

.partner-logo-wrapper img {
    max-height: 100%;
    width: auto;
    filter: grayscale(1) brightness(0.8) contrast(1.2);
    transition: var(--transition-smooth);
}

.partner-logo-wrapper:hover {
    border-color: hsl(var(--accent));
    box-shadow: 0 0 15px hsl(var(--accent-glow));
    transform: scale(1.05);
}

.partner-logo-wrapper:hover img {
    filter: grayscale(0) brightness(1) contrast(1);
}

/* --- Spodní Zápatí (Footer) --- */
footer {
    background-color: var(--footer-bg);
    border-top: 1px solid hsl(var(--border-glass));
    padding: 3rem 0;
    margin-top: auto;
    font-size: 0.9rem;
    color: hsl(var(--text-muted));
}

footer .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.footer-brand {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.footer-brand span {
    font-weight: 700;
    color: hsl(var(--text-light));
}

.footer-credits {
    text-align: right;
}

.footer-credits p:first-child {
    color: hsl(var(--text-light));
    font-weight: 600;
    margin-bottom: 0.3rem;
}

/* --- Responzivita (Media Queries) --- */

@media (max-width: 1024px) {
    h1 { font-size: 2.8rem; }
    .hero-banner h1 { font-size: 3.2rem; }
    
    .camps-fast-grid,
    .oddily-fast-grid {
        grid-template-columns: 1fr;
        margin-top: 2rem;
        padding-bottom: 3rem;
        gap: 1.5rem;
    }
    
    .priorities-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .testimonials-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .clubs-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .tabory-grid-main {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .downloads-grid {
        grid-template-columns: 1fr;
    }
    
    .survival-showcase {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .team-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .contact-layout {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .partners-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    /* Mobilní Navigace */
    .hamburger {
        display: block;
    }
    
    .nav-menu {
        position: fixed;
        top: 0;
        right: 0;
        width: 80%;
        max-width: 320px;
        height: 100vh;
        background-color: hsl(var(--bg-dark));
        border-left: 1px solid hsl(var(--border-glass));
        flex-direction: column;
        padding: 6rem 2rem;
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
        clip-path: inset(0 0 0 100%);
        transition: clip-path 0.45s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease, visibility 0.3s ease;
        box-shadow: -10px 0 30px rgba(0,0,0,0.5);
    }
    
    .nav-menu.active {
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
        clip-path: inset(0);
    }
    
    .hamburger.active span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 6px);
    }
    
    .hamburger.active span:nth-child(2) {
        opacity: 0;
    }
    
    .hamburger.active span:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -6px);
    }
    
    .top-info {
        display: none; /* Skryje info na mobilu, nechá jen sociální sítě */
    }
    
    .navbar {
        padding: 0.6rem 0;
    }
    
    .hero-banner {
        padding: 8rem 0 6rem 0;
    }
    
    .hero-banner h1 {
        font-size: 2.2rem;
    }
    
    .hero-banner h2 {
        font-size: 1.1rem;
        margin-bottom: 2rem;
    }
    
    .hero-banner .btn-group {
        flex-direction: column;
        gap: 1rem;
    }
    
    .clubs-grid {
        grid-template-columns: 1fr;
    }
    
    .tab-nav {
        flex-direction: column;
        gap: 0.8rem;
    }
    
    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    footer .container {
        flex-direction: column;
        text-align: center;
        gap: 1.5rem;
    }
    
    .footer-credits {
        text-align: center;
    }
}

/* ==========================================================================
   PREMIUM CYBER-MILITARY HUD & RADAR EFFECTS
   ========================================================================== */

/* 3D HUD Rohové závorky pro karty */
.glass-panel {
    position: relative;
}

.hud-corner {
    position: absolute;
    width: 10px;
    height: 10px;
    border: 2px solid transparent;
    pointer-events: none;
    transition: var(--transition-bounce);
    z-index: 10;
}

.hud-corner-tl { top: 6px; left: 6px; border-top-color: hsl(var(--accent) / 35%); border-left-color: hsl(var(--accent) / 35%); }
.hud-corner-tr { top: 6px; right: 6px; border-top-color: hsl(var(--accent) / 35%); border-right-color: hsl(var(--accent) / 35%); }
.hud-corner-bl { bottom: 6px; left: 6px; border-bottom-color: hsl(var(--accent) / 35%); border-left-color: hsl(var(--accent) / 35%); }
.hud-corner-br { bottom: 6px; right: 6px; border-bottom-color: hsl(var(--accent) / 35%); border-right-color: hsl(var(--accent) / 35%); }

.glass-panel:hover .hud-corner-tl { border-top-color: hsl(var(--accent)); border-left-color: hsl(var(--accent)); transform: translate(-3px, -3px); filter: drop-shadow(0 0 5px hsl(var(--accent))); }
.glass-panel:hover .hud-corner-tr { border-top-color: hsl(var(--accent)); border-right-color: hsl(var(--accent)); transform: translate(3px, -3px); filter: drop-shadow(0 0 5px hsl(var(--accent))); }
.glass-panel:hover .hud-corner-bl { border-bottom-color: hsl(var(--accent)); border-left-color: hsl(var(--accent)); transform: translate(-3px, 3px); filter: drop-shadow(0 0 5px hsl(var(--accent))); }
.glass-panel:hover .hud-corner-br { border-bottom-color: hsl(var(--accent)); border-right-color: hsl(var(--accent)); transform: translate(3px, 3px); filter: drop-shadow(0 0 5px hsl(var(--accent))); }

/* Taktický Zaměřovací Kursor (pouze desktop rozlišení + jemný pointer, tzn. myš/trackpad) */
@media (min-width: 1025px) and (pointer: fine) {
    /* Univerzální selektor zaručuje, že ŽÁDNÝ jiný prvek (karty, tlačítka v modálech,
       download-card, hamburger, faq-q, social-card atd.) nemůže mít vlastní "cursor: pointer"
       pravidlo, které by prosvítalo pod vlastním kurzorem — odstraňuje "dvojitý kurzor" bug. */
    * {
        cursor: none !important;
    }

    /* Textová pole si i nadále ponechávají nativní textový kurzor (vyšší specificita vyhrává
       při shodné důležitosti, takže tohle přebije univerzální pravidlo výše). */
    input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
    input[type="search"], input[type="url"], input:not([type]), textarea, [contenteditable="true"] {
        cursor: text !important;
    }

    /* Otevřený taktický reticle: prstenec + kříž ODSAZENÝ od kruhu (mezera uprostřed) */
    .custom-cursor {
        width: 28px;
        height: 28px;
        border: 1.5px solid hsl(var(--accent));
        border-radius: 50%;
        position: fixed;
        transform: translate(-50%, -50%);
        pointer-events: none;
        z-index: 999999;
        /* Vlastní compositing vrstva — kurzor musí zůstat viditelný i nad modály
           s backdrop-filter: blur (bez toho jej v některých prohlížečích blur "spolkne"). */
        will-change: transform;
        transition: border-color 0.25s, transform 0.18s cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* Vodorovný a svislý paprsek kříže s mezerou v místě prstence (klasický reticle) */
    .custom-cursor::before, .custom-cursor::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        background: linear-gradient(90deg, hsl(var(--accent)) 0 8px, transparent 8px 36px, hsl(var(--accent)) 36px 44px);
    }
    .custom-cursor::before {
        width: 44px;
        height: 1.5px;
        transform: translate(-50%, -50%);
    }
    .custom-cursor::after {
        width: 44px;
        height: 1.5px;
        transform: translate(-50%, -50%) rotate(90deg);
    }

    .custom-cursor-dot {
        width: 3px;
        height: 3px;
        background-color: hsl(var(--accent));
        border-radius: 50%;
        position: fixed;
        transform: translate(-50%, -50%);
        pointer-events: none;
        z-index: 1000000;
        will-change: transform;
    }

    /* Rámeček pro "zámek cíle" — dva protilehlé HUD rohy, stejný jazyk jako karty na webu */
    .custom-cursor-frame {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 46px;
        height: 46px;
        transform: translate(-50%, -50%) scale(0.7);
        opacity: 0;
        transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    }
    .custom-cursor-frame::before, .custom-cursor-frame::after {
        content: '';
        position: absolute;
        width: 11px;
        height: 11px;
        border-color: hsl(var(--accent));
        filter: drop-shadow(0 0 4px hsl(var(--accent-glow)));
    }
    .custom-cursor-frame::before {
        top: 0;
        left: 0;
        border-top: 1.5px solid hsl(var(--accent));
        border-left: 1.5px solid hsl(var(--accent));
    }
    .custom-cursor-frame::after {
        bottom: 0;
        right: 0;
        border-bottom: 1.5px solid hsl(var(--accent));
        border-right: 1.5px solid hsl(var(--accent));
    }

    .custom-cursor.hovered {
        border-color: hsl(var(--accent-glow));
    }
    .custom-cursor.hovered .custom-cursor-frame {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }

    /* Krátké "zaostření/uzamčení cíle" při kliknutí */
    .custom-cursor.pressed {
        transform: translate(-50%, -50%) scale(0.82);
    }
}

/* Pulzující Sonar Radar na pozadí */
.radar-background {
    position: absolute;
    width: 600px;
    height: 600px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 1;
}

.radar-circle {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 1px solid rgba(var(--accent-rgb), 0.10);
    border-radius: 50%;
    animation: radar-pulse 6s infinite linear;
    transform: scale(0);
    opacity: 0;
}

.radar-circle:nth-child(2) { animation-delay: 2s; }
.radar-circle:nth-child(3) { animation-delay: 4s; }

@keyframes radar-pulse {
    0% {
        transform: scale(0.1);
        opacity: 0;
    }
    10% {
        opacity: 0.8;
        border-color: rgba(var(--accent-rgb), 0.18);
    }
    100% {
        transform: scale(1.2);
        opacity: 0;
    }
}

/* Digitální Glitch textový efekt */
.glitch-text {
    position: relative;
    color: hsl(var(--text-light));
    display: inline-block;
}

.glitch-text:hover {
    animation: text-glitch 0.25s linear infinite;
    color: hsl(var(--accent));
    text-shadow: 2px -1px 0 rgba(255,0,0,0.5), -2px 1px 0 rgba(0,0,255,0.5);
}

@keyframes text-glitch {
    0% { transform: translate(0); }
    20% { transform: translate(-1.5px, 1px); }
    40% { transform: translate(1px, -1.5px); }
    60% { transform: translate(-1px, -1px); }
    80% { transform: translate(1.5px, 1.5px); }
    100% { transform: translate(0); }
}

/* --- Tlačítko Přepínání Režimů --- */
.btn-version-toggle {
    display: inline-flex;
    align-items: center;
    background: hsl(var(--accent));
    color: #000 !important;
    padding: 0.4rem 1rem;
    border-radius: 4px;
    font-weight: 800;
    font-size: 0.8rem;
    letter-spacing: 0.05em;
    box-shadow: 0 0 10px hsl(var(--accent-glow));
    transition: var(--transition-bounce);
    margin-left: 1.5rem;
}

.btn-version-toggle:hover {
    transform: scale(1.05) translateY(-1px);
    box-shadow: 0 0 20px hsl(var(--accent-glow));
}

@media (max-width: 768px) {
    .btn-version-toggle {
        margin-left: 0;
        margin-top: 1rem;
        width: 100%;
        justify-content: center;
    }
}

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

    .custom-cursor,
    .custom-cursor-dot {
        display: none !important;
    }

    .hero-bg-image {
        clip-path: none;
    }

    .hero-bg-soldiers {
        animation: none !important;
        opacity: 1;
        clip-path: none;
        filter: none;
        transform: none;
    }

    .hero-scan,
    .hero-bg-thermal,
    .hero-reticle {
        display: none !important;
    }

    .countdown-num { animation: none !important; }
    .stat-num { animation: none !important; }
}

/* ==========================================================================
   NOVÉ FUNKCE & KOMPONENTY (2026 upgrade)
   ========================================================================== */

/* --- Přepínač světlý / tmavý režim (v navbaru) --- */
.theme-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: hsl(var(--bg-glass-active));
    border: 1px solid hsl(var(--border-glass));
    color: hsl(var(--text-light));
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    margin-left: 1.5rem;
    transition: var(--transition-bounce);
}
.theme-toggle:hover {
    border-color: hsl(var(--accent));
    color: hsl(var(--accent));
    transform: translateY(-1px);
}
.theme-toggle svg { width: 16px; height: 16px; fill: currentColor; }
.theme-toggle .icon-moon { display: none; }
body.light-mode .theme-toggle .icon-sun { display: none; }
body.light-mode .theme-toggle .icon-moon { display: inline; }

@media (max-width: 768px) {
    .theme-toggle { margin-left: 0; margin-top: 1rem; width: 100%; justify-content: center; }
}

/* --- Odpočet do startu táborů --- */
.countdown-strip {
    position: relative;
    z-index: 6;
    margin: 3rem auto 0 auto;
    max-width: 880px;
    background: linear-gradient(135deg, hsl(var(--primary-dark) / 70%), hsl(var(--bg-panel) / 85%));
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid hsl(var(--border-glass));
    border-radius: 10px;
    padding: 1.6rem 2rem;
    box-shadow: 0 20px 50px rgba(0,0,0,0.45);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.countdown-label {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.countdown-label .ct-tag {
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: hsl(var(--accent));
    font-weight: 700;
}
.countdown-label .ct-camp {
    font-size: 1.15rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: hsl(var(--text-light));
}
.countdown-timer { display: flex; gap: 0.8rem; }
.countdown-unit {
    min-width: 64px;
    text-align: center;
    background: hsl(var(--bg-dark) / 55%);
    border: 1px solid hsl(var(--border-glass));
    border-radius: 6px;
    padding: 0.6rem 0.4rem;
}
.countdown-num {
    display: block;
    font-size: 1.9rem;
    font-weight: 800;
    line-height: 1;
    color: hsl(var(--accent));
    font-variant-numeric: tabular-nums;
}
.countdown-unit small {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: hsl(var(--text-muted));
}
@media (max-width: 768px) {
    .countdown-strip { flex-direction: column; text-align: center; margin-top: 1.5rem; }
    .countdown-timer { justify-content: center; }
}

/* --- Kapacita / volná místa táborů --- */
.capacity {
    margin: 1.4rem 0 0.4rem 0;
    text-align: left;
}
.capacity-head {
    display: flex;
    justify-content: space-between;
    font-size: 0.74rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 0.45rem;
    color: hsl(var(--text-muted));
}
.capacity-head strong { color: hsl(var(--accent)); }
.capacity-track {
    height: 8px;
    border-radius: 6px;
    background: hsl(var(--bg-dark) / 65%);
    border: 1px solid hsl(var(--border-glass));
    overflow: hidden;
}
.capacity-fill {
    height: 100%;
    width: 0;
    border-radius: 6px;
    background: linear-gradient(90deg, hsl(var(--primary-light)), hsl(var(--accent)));
    box-shadow: 0 0 12px hsl(var(--accent-glow));
    transition: width 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.capacity-fill.is-low { background: linear-gradient(90deg, hsl(28 60% 45%), hsl(8 65% 52%)); }

/* --- Animovaná statistika --- */
.stats-band {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}
.stat-item { text-align: center; position: relative; }
.stat-num {
    font-size: 3.2rem;
    font-weight: 800;
    line-height: 1;
    color: hsl(var(--accent));
    font-variant-numeric: tabular-nums;
    text-shadow: 0 0 24px hsl(var(--accent-glow));
}
.stat-label {
    margin-top: 0.6rem;
    font-size: 0.82rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: hsl(var(--text-muted));
}
.stat-item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: -1rem;
    top: 15%;
    height: 70%;
    width: 1px;
    background: hsl(var(--border-glass));
}
@media (max-width: 768px) {
    .stats-band { grid-template-columns: repeat(2, 1fr); gap: 2.5rem 1rem; }
    .stat-item::after { display: none !important; }
    .stat-num { font-size: 2.6rem; }
}

/* --- FAQ harmonika --- */
.faq-list {
    max-width: 860px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.faq-item {
    background: hsl(var(--bg-glass));
    border: 1px solid hsl(var(--border-glass));
    border-radius: 8px;
    overflow: hidden;
    transition: var(--transition-smooth);
}
.faq-item.open {
    border-color: hsl(var(--accent) / 50%);
    box-shadow: 0 0 22px hsl(var(--accent-glow));
}
.faq-q {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    padding: 1.3rem 1.6rem;
    font-family: var(--font-sans);
    font-size: 1.05rem;
    font-weight: 700;
    color: hsl(var(--text-light));
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.faq-q .faq-icon {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    position: relative;
    transition: var(--transition-bounce);
}
.faq-q .faq-icon::before,
.faq-q .faq-icon::after {
    content: '';
    position: absolute;
    background: hsl(var(--accent));
    border-radius: 2px;
}
.faq-q .faq-icon::before { top: 50%; left: 0; width: 100%; height: 3px; transform: translateY(-50%); }
.faq-q .faq-icon::after  { left: 50%; top: 0; width: 3px; height: 100%; transform: translateX(-50%); transition: transform 0.35s ease; }
.faq-item.open .faq-icon::after { transform: translateX(-50%) scaleY(0); }
.faq-item.open .faq-icon { transform: rotate(180deg); }
.faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.faq-a-inner {
    padding: 0 1.6rem 1.5rem 1.6rem;
    color: hsl(var(--text-muted));
    font-size: 1rem;
    line-height: 1.7;
}

/* --- Galerie + Lightbox --- */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 180px;
    gap: 1rem;
}
.gallery-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid hsl(var(--border-glass));
    background: hsl(var(--bg-panel));
}
.gallery-item.wide { grid-column: span 2; }
.gallery-item.tall { grid-row: span 2; }
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.4s ease;
    filter: saturate(0.85) brightness(0.9);
}
.gallery-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,11,7,0.55), transparent 55%);
    opacity: 0;
    transition: opacity 0.4s ease;
}
.gallery-item:hover img { transform: scale(1.08); filter: saturate(1.05) brightness(1.02); }
.gallery-item:hover::after { opacity: 1; }
.gallery-item .g-zoom {
    position: absolute;
    bottom: 10px;
    right: 12px;
    z-index: 2;
    color: hsl(var(--accent));
    font-size: 1.3rem;
    opacity: 0;
    transform: translateY(8px);
    transition: var(--transition-smooth);
}
.gallery-item:hover .g-zoom { opacity: 1; transform: translateY(0); }

@media (max-width: 768px) {
    .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 140px; }
    .gallery-item.wide { grid-column: span 2; }
    .gallery-item.tall { grid-row: span 1; }
}

.lightbox {
    position: fixed;
    inset: 0;
    z-index: 11000;
    background: rgba(6,7,4,0.92);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}
.lightbox.open { opacity: 1; visibility: visible; }
.lightbox img {
    max-width: 90vw;
    max-height: 82vh;
    border-radius: 8px;
    border: 1px solid hsl(var(--accent) / 40%);
    box-shadow: 0 30px 80px rgba(0,0,0,0.7);
    transform: scale(0.92);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.lightbox.open img { transform: scale(1); }
.lightbox-close,
.lightbox-nav {
    position: absolute;
    background: hsl(var(--bg-glass-active));
    border: 1px solid hsl(var(--border-glass));
    color: hsl(var(--text-light));
    width: 54px;
    height: 54px;
    border-radius: 50%;
    font-size: 1.6rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-smooth);
}
.lightbox-close:hover,
.lightbox-nav:hover { background: hsl(var(--accent)); color: #000; border-color: transparent; }
.lightbox-close { top: 24px; right: 24px; }
.lightbox-nav.prev { left: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-nav.next { right: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-counter {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    color: hsl(var(--text-muted));
    text-transform: uppercase;
}

/* --- Sekce: Přihláška na tábor --- */
.prihlaska-summary h3 {
    font-size: 1.6rem;
    margin-bottom: 0.5rem;
}
.prihlaska-meta {
    color: hsl(var(--text-muted));
    margin-bottom: 0.5rem;
}
/* --- Formulář přihlášky na tábor --- */
.tabor-form {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid hsl(var(--border-glass));
}
.form-section-title {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--accent));
    margin-bottom: 1.2rem;
}
.tabor-form h4.form-section-title:not(:first-child) {
    margin-top: 2.2rem;
}
.form-hint {
    font-size: 0.8rem;
    color: hsl(var(--text-muted));
    margin-top: -0.8rem;
    margin-bottom: 1.2rem;
}
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
.form-field {
    display: flex;
    flex-direction: column;
}
.form-field-wide {
    grid-column: 1 / -1;
}
.form-field label {
    font-size: 0.75rem;
    color: hsl(var(--text-muted));
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 0.5rem;
}
.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    background: hsl(var(--bg-glass));
    border: 1px solid hsl(var(--border-glass));
    border-radius: 4px;
    padding: 0.8rem 1rem;
    color: hsl(var(--text-light));
    font-family: var(--font-sans);
    font-size: 0.95rem;
    transition: var(--transition-smooth);
}
.form-field select { cursor: pointer; }
.form-field textarea { resize: vertical; min-height: 5.5rem; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    outline: none;
    border-color: hsl(var(--accent));
    box-shadow: 0 0 0 3px hsl(var(--accent-glow));
}
.form-field input::placeholder,
.form-field textarea::placeholder {
    color: hsl(var(--text-muted));
}

.form-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    margin-top: 2rem;
    font-size: 0.9rem;
    color: hsl(var(--text-muted));
    cursor: pointer;
}
.form-checkbox input {
    margin-top: 0.2rem;
    width: 18px;
    height: 18px;
    accent-color: hsl(var(--accent));
    flex-shrink: 0;
    cursor: pointer;
}

.btn-block {
    margin-top: 2rem;
    width: 100%;
}
.btn-block:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
}

.form-feedback {
    padding: 1rem 1.2rem;
    border-radius: 4px;
    margin-bottom: 2rem;
    font-size: 0.9rem;
    border: 1px solid transparent;
}
.form-feedback.is-success {
    background: hsl(140 40% 40% / 12%);
    border-color: hsl(140 40% 45% / 40%);
    color: hsl(140 55% 75%);
}
.form-feedback.is-error {
    background: hsl(6 65% 52% / 12%);
    border-color: hsl(6 65% 52% / 40%);
    color: hsl(6 70% 78%);
}

@media (max-width: 768px) {
    .form-grid { grid-template-columns: 1fr; }
}

/* --- Přihlášení / registrace --- */
.auth-nav-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.auth-nav-btn {
    padding: 0.55rem 1.3rem;
    font-size: 0.72rem;
}
a.auth-nav-btn { text-decoration: none; }

.auth-modal-panel {
    max-width: 460px;
}
.auth-tabs {
    margin-bottom: 1.8rem;
}
.auth-form.tabor-form {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
.auth-form .form-field {
    margin-bottom: 1.2rem;
}
.auth-form .form-checkbox {
    margin-top: 0.2rem;
    margin-bottom: 1.2rem;
}
#guardianFields .form-field:last-child {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .auth-nav-item { margin-top: 1rem; width: 100%; justify-content: center; }
}

/* Uzamčení scrollování pozadí, dokud je otevřený libovolný modál (Důležité info / Přihlášení) */
body.modal-open {
    overflow: hidden;
}

/* --- Modál "Důležité info" --- */
.info-modal {
    position: fixed;
    inset: 0;
    z-index: 11000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}
.info-modal.open { opacity: 1; visibility: visible; }
.info-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6,7,4,0.88);
    backdrop-filter: blur(8px);
}
.info-modal-panel {
    position: relative;
    max-width: 560px;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    transform: scale(0.94);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.info-modal.open .info-modal-panel { transform: scale(1); }
.info-modal-close {
    position: absolute;
    top: 1.2rem;
    right: 1.2rem;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: hsl(var(--bg-glass-active));
    border: 1px solid hsl(var(--border-glass));
    color: hsl(var(--text-light));
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-smooth);
}
.info-modal-close:hover { background: hsl(var(--accent)); color: #000; border-color: transparent; }
.info-modal-panel h3 {
    font-size: 1.5rem;
    margin-bottom: 0.6rem;
}
.info-modal-meta {
    color: hsl(var(--text-muted));
    margin-bottom: 1.5rem;
}
.info-modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 0.5rem;
}
.info-modal-actions .btn { flex: 1; min-width: 180px; }

/* --- Klientská sekce: přehled přihlášek --- */
.account-registrations {
    margin-top: 2.5rem;
}
.account-registrations h3 {
    margin-bottom: 1.2rem;
    color: hsl(var(--text-light));
}
.registration-card {
    background: hsl(var(--bg-dark) / 40%);
    border: 1px solid hsl(var(--border-glass));
    border-radius: 6px;
    padding: 1.2rem 1.4rem;
    margin-bottom: 1rem;
}
.registration-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-bottom: 0.6rem;
}
.registration-card-head strong {
    font-size: 1.05rem;
    color: hsl(var(--text-light));
}
.registration-meta {
    font-size: 0.85rem;
    color: hsl(var(--text-muted));
    line-height: 1.7;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
}
.status-badge.status-pending { background: hsl(38 70% 50% / 18%); color: hsl(38 80% 68%); border: 1px solid hsl(38 70% 50% / 40%); }
.status-badge.status-confirmed { background: hsl(140 40% 40% / 18%); color: hsl(140 55% 72%); border: 1px solid hsl(140 40% 45% / 40%); }
.status-badge.status-cancelled { background: hsl(6 65% 52% / 18%); color: hsl(6 70% 78%); border: 1px solid hsl(6 65% 52% / 40%); }

/* --- Administrace: taby + tabulky --- */
.admin-tabs {
    margin-bottom: 2rem;
}
.admin-tab-content {
    min-height: 120px;
}
.admin-toolbar {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1.5rem;
}
.admin-toolbar select,
.admin-toolbar input {
    background: hsl(var(--bg-dark) / 60%);
    border: 1px solid hsl(var(--border-glass));
    color: hsl(var(--text-light));
    border-radius: 4px;
    padding: 0.5rem 0.8rem;
    font-family: var(--font-sans);
    font-size: 0.85rem;
}
.admin-empty {
    color: hsl(var(--text-muted));
    padding: 2rem 0;
    text-align: center;
}
.admin-table {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}
.admin-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 0.9rem;
    align-items: end;
    background: hsl(var(--bg-dark) / 40%);
    border: 1px solid hsl(var(--border-glass));
    border-radius: 6px;
    padding: 1.1rem 1.3rem;
    transition: var(--transition-smooth);
}
.admin-row:hover {
    border-color: hsl(var(--primary-light) / 30%);
}
.admin-cell {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}
.admin-cell label {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: hsl(var(--text-muted));
}
.admin-cell-static {
    font-size: 0.9rem;
    color: hsl(var(--text-light));
    word-break: break-word;
}
.admin-cell-static small {
    display: block;
    color: hsl(var(--text-muted));
    font-size: 0.75rem;
    margin-top: 0.15rem;
}
.admin-input,
.admin-select {
    background: hsl(var(--bg-dark) / 70%);
    border: 1px solid hsl(var(--border-glass));
    color: hsl(var(--text-light));
    border-radius: 4px;
    padding: 0.5rem 0.6rem;
    font-family: var(--font-sans);
    font-size: 0.85rem;
    width: 100%;
    cursor: text;
}
.admin-select { cursor: pointer; }
.admin-input:focus, .admin-select:focus {
    outline: none;
    border-color: hsl(var(--accent));
    box-shadow: 0 0 0 2px hsl(var(--accent-glow));
}
.admin-actions {
    display: flex;
    gap: 0.6rem;
    align-items: center;
}
.admin-actions .btn {
    padding: 0.55rem 1.1rem;
    font-size: 0.7rem;
    margin-top: 0;
}
.admin-row-detail-toggle {
    background: transparent;
    border: 1px solid hsl(var(--border-glass));
    color: hsl(var(--text-muted));
    border-radius: 4px;
    padding: 0.5rem 0.8rem;
    font-size: 0.75rem;
    cursor: pointer;
    transition: var(--transition-smooth);
}
.admin-row-detail-toggle:hover {
    border-color: hsl(var(--accent));
    color: hsl(var(--accent));
}
.admin-row-detail {
    grid-column: 1 / -1;
    border-top: 1px solid hsl(var(--border-glass));
    margin-top: 0.6rem;
    padding-top: 0.9rem;
    font-size: 0.85rem;
    color: hsl(var(--text-muted));
    line-height: 1.8;
}
.admin-row-detail strong { color: hsl(var(--text-light)); }
.admin-save-note {
    font-size: 0.75rem;
    color: hsl(140 55% 68%);
}

@media (max-width: 640px) {
    .admin-row { grid-template-columns: 1fr; }
}

/* --- Tlačítko zpět nahoru --- */
.back-to-top {
    position: fixed;
    bottom: 28px;
    right: 28px;
    z-index: 9000;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: hsl(var(--accent));
    color: #000;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4), 0 0 18px hsl(var(--accent-glow));
    opacity: 0;
    visibility: hidden;
    transform: translateY(18px) scale(0.85);
    transition: var(--transition-bounce);
}
.back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.back-to-top:hover { transform: translateY(-3px) scale(1.06); }
.back-to-top svg { width: 22px; height: 22px; fill: currentColor; }

@media (max-width: 768px) {
    .back-to-top { bottom: 18px; right: 18px; width: 46px; height: 46px; }
}

/* Scroll-progress proužek nahoře */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0;
    z-index: 10500;
    background: linear-gradient(90deg, hsl(var(--primary-light)), hsl(var(--accent)));
    box-shadow: 0 0 10px hsl(var(--accent-glow));
    transition: width 0.1s linear;
}

/* ==========================================================================
   SVĚTLÝ ("polní denní") REŽIM — vyladěné komponenty
   Sand/khaki papír s teplým kontrastem; karty = pevné krémové plochy,
   tlumené stíny místo černých, akcent ztmavený pro čitelnost.
   ========================================================================== */

/* Hero zůstává vždy tmavě-cinematický (je na fotce) — neměnit */
body.light-mode .hero-bg-underlay { background-color: #13140e; }

/* Karty, panely, pruhy → pevné krémové plochy */
body.light-mode .glass-panel,
body.light-mode .camp-card-fast,
body.light-mode .download-card,
body.light-mode .faq-item,
body.light-mode .billing-passport,
body.light-mode .divisions-tab-content,
body.light-mode .survival-card,
body.light-mode .gallery-item {
    background: hsl(48 32% 90%);
    border-color: hsl(75 22% 28% / 16%);
    box-shadow: 0 12px 30px hsl(75 24% 22% / 12%);
}

body.light-mode .glass-panel:hover,
body.light-mode .camp-card-fast:hover {
    border-color: hsl(var(--accent) / 45%);
    box-shadow: 0 16px 38px hsl(75 24% 22% / 18%);
}

/* Odpočet → krémová karta místo tmavého gradientu */
body.light-mode .countdown-strip {
    background: hsl(48 34% 91%);
    border-color: hsl(75 22% 28% / 16%);
    box-shadow: 0 14px 34px hsl(75 24% 22% / 14%);
}
body.light-mode .countdown-unit {
    background: hsl(46 26% 84%);
    border-color: hsl(75 22% 28% / 14%);
}

/* Progress / kapacita — viditelnější dráha na světlém podkladu */
body.light-mode .capacity-track {
    background: hsl(75 16% 40% / 16%);
    border-color: hsl(75 22% 28% / 16%);
}

/* Navigace a horní lišta — neprůhledný teplý papír */
body.light-mode .top-bar {
    background-color: hsl(48 28% 86% / 92%);
    border-bottom-color: hsl(75 22% 28% / 14%);
}
body.light-mode .navbar {
    background-color: hsl(48 30% 90% / 78%);
}
body.light-mode .navbar.sticky {
    background-color: hsl(48 30% 90% / 92%);
    box-shadow: 0 8px 24px hsl(75 24% 22% / 12%);
}

/* Sekce s tmavým „panel" podkladem → jemný khaki nádech */
body.light-mode .parallax-quote::before { opacity: 0.35; }

/* Footer — text dostatečně tmavý už řeší proměnné; jen jemný okraj */
body.light-mode footer { border-top-color: hsl(75 22% 28% / 16%); }

/* Tlačítka s accentem zůstávají tmavý text na mosazi — čitelné v obou režimech.
   Sekundární tlačítko ztmavíme orámování pro kontrast */
body.light-mode .btn-secondary {
    border-color: hsl(75 28% 30% / 45%);
    color: hsl(var(--text-light));
}

/* HUD rohy + scan efekty zjemnit, ať nepůsobí jako špína na světlém */
body.light-mode .hud-corner { opacity: 0.55; }

/* Lightbox overlay světlejší v denním režimu */
body.light-mode .lightbox { background: hsl(48 20% 30% / 90%); }

/* Glitch nadpisy: na světlém pozadí utlumit barevné duchy */
body.light-mode .glitch-text::before,
body.light-mode .glitch-text::after { opacity: 0.5; }
