/* ==========================================================================
   Cowork Šumperk – hlavní styly
   Barvy a typografie dle návrhu cowork_1.png
   ========================================================================== */

/* Písmo Plus Jakarta Sans – self-hosted (assets/fonts), proměnná tloušťka 200–800 */
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/plus-jakarta-sans-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/plus-jakarta-sans-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    --navy: #17191e;
    --navy-dark: #101216;
    --red: #c22630;
    --red-dark: #a81e28;
    --cream: #f4f2ee;
    --gray-bg: #eceae6;
    --gray-box: #f4f2ee;
    --text: #1b1d22;
    --text-muted: #62656c;
    --text-light: #8b8e95;
    --white: #ffffff;
    --accent: #f5a800;
    --radius-sm: 6px;
    --radius: 8px;
    --radius-lg: 10px;
    --font: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --container: min(88vw, 1680px);
    --section-gap: clamp(56px, 6.2vw, 100px);
}

/* Reset ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

/* Krátké stránky: patička vždy u spodní hrany okna */
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
#main { flex: 1 0 auto; width: 100%; }
body {
    margin: 0;
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.55;
    color: var(--text);
    background: var(--white);
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--red); text-decoration: none; }
h1, h2, h3, h4 { margin: 0; line-height: 1.2; font-weight: 800; color: var(--navy); }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }

.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

/* Ikony – Material Symbols Outlined (tenká linka dle návrhu) ------------- */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 40;
    font-size: inherit;
    line-height: 1;
    vertical-align: middle;
    user-select: none;
}
.contact-list .material-symbols-outlined { font-size: 19px; color: var(--navy); width: 20px; }
.pricing-link-arrow { font-size: 17px; margin-left: 4px; }

/* Tlačítka --------------------------------------------------------------- */
.btn {
    display: inline-block;
    padding: 14px 28px;
    border-radius: var(--radius);
    font-family: var(--font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    border: 2px solid transparent;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    text-align: center;
}
.btn-primary {
    background: var(--red);
    color: var(--white);
    border-color: var(--red);
}
.btn-primary:hover { background: var(--red-dark); border-color: var(--red-dark); }
.btn-outline {
    background: transparent;
    color: var(--red);
    border-color: var(--red);
}
.btn-outline:hover { background: var(--red); color: var(--white); }

/* Nadpisy sekcí ---------------------------------------------------------- */
.section-title {
    font-size: 26px;
    font-weight: 800;
    color: var(--navy);
}
.section-title--line {
    display: flex;
    align-items: center;
    gap: 24px;
}
.section-title--line::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #ddd9d2;
}

/* ==========================================================================
   Hlavička
   ========================================================================== */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: transparent;
    transition: background 0.25s, box-shadow 0.25s;
}
/* Po odscrollování (nebo mimo homepage) bílé pozadí */
.site-header.is-scrolled,
body:not(.home) .site-header,
.site-header:has(.mobile-menu.is-open) {
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(8px);
    box-shadow: 0 2px 16px rgba(29, 43, 69, 0.08);
}
/* Na homepage přes tmavé hero: bílé menu, bílé logo, bílý hamburger */
body.home .site-header:not(.is-scrolled):not(:has(.mobile-menu.is-open)) .nav-link { color: var(--white); }
body.home .site-header:not(.is-scrolled):not(:has(.mobile-menu.is-open)) .nav-link:hover { color: var(--white); background: rgba(255, 255, 255, 0.14); }
body.home .site-header:not(.is-scrolled):not(:has(.mobile-menu.is-open)) .site-logo img { filter: brightness(0) invert(1); }
body.home .site-header:not(.is-scrolled):not(:has(.mobile-menu.is-open)) .nav-toggle { color: var(--white); }

/* Odsazení obsahu pod fixní hlavičkou na vnitřních stránkách */
body:not(.home) .page-main { padding-top: 140px; }
.header-inner {
    display: flex;
    align-items: center;
    gap: 32px;
    min-height: 84px;
    /* Obsah hlavičky zarovnaný s kontejnerem (1200 px) – logo lícuje s obsahem */
}
.site-logo { flex-shrink: 0; line-height: 1; }
.site-logo img { max-height: clamp(38px, 2.4vw, 59px); width: auto; height: auto; transition: filter 0.25s, max-height 0.3s ease; }
/* Nahoře na úvodní stránce (před scrollem): logo o 20 % větší a hlavička víc odsazená shora */
.header-inner { transition: padding 0.3s ease; }
body.home .site-header:not(.is-scrolled) .header-inner { padding-top: 22px; }
body.home .site-header:not(.is-scrolled) .site-logo img { max-height: clamp(52px, 3.24vw, 80px); }

.site-nav { flex: 1; display: flex; justify-content: center; }
.nav-menu {
    display: flex;
    gap: 8px;
}
.nav-link {
    display: inline-block;
    padding: 10px 16px;
    font-size: clamp(11.5px, 0.85vw, 17px);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
    border-radius: 6px;
    transition: color 0.2s, background 0.2s;
}
.nav-link:hover, .nav-link.is-active { color: var(--red); background: #f1efe9; }

.header-cta { flex-shrink: 0; padding: 12px 24px; }

.nav-toggle {
    display: none;
    background: none;
    border: 0;
    font-size: 30px;
    color: var(--navy);
    cursor: pointer;
    padding: 8px;
    line-height: 1;
}
.nav-toggle-icon { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 40; }

.mobile-menu {
    display: none;
    padding: 12px 24px 24px;
    background: var(--white);
    border-top: 1px solid #e6e4e0;
}
.mobile-menu.is-open { display: block; }
.mobile-nav-menu, .mobile-menu .nav-menu { display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px; }
.mobile-menu .nav-link { display: block; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
    position: relative;
    overflow: hidden;
    background: var(--navy-dark);
}
/* Fotka jako pozadí celé hero sekce – jde až pod transparentní hlavičku */
.hero-bg {
    position: absolute;
    inset: 0;
}
.hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 62% center;
}
/* Světlý přechod zleva, aby byl text čitelný a fotka pod ním prosvítala */
.hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(20, 22, 27, 0.7) 0%,
        rgba(20, 22, 27, 0.5) 34%,
        rgba(20, 22, 27, 0.16) 66%,
        rgba(20, 22, 27, 0.06) 100%
    );
}
.hero-inner {
    position: relative;
    z-index: 2;
}
.hero-content {
    max-width: 58%;
    color: var(--white);
    /* Odsazení pod fixní hlavičkou + prostor pro skleněnou lištu dole */
    padding: clamp(130px, 11vw, 250px) 0 clamp(180px, 15vw, 300px);
}
/* Oranžový zvýrazněný řádek „Otevíráme v září 2026." */
.hero-highlight {
    font-size: clamp(16px, 1.15vw, 26px);
    font-weight: 800;
    color: var(--accent);
    margin-bottom: clamp(20px, 1.6vw, 36px);
}
.hero-title {
    font-size: clamp(32px, 3.3vw, 78px);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--white);
    margin-bottom: clamp(16px, 1.4vw, 32px);
}
/* Oranžové zvýraznění části nadpisu (*text* v administraci) */
.hero-title .hl {
    color: var(--accent);
    white-space: nowrap;
}
.hero-subtitle {
    font-size: clamp(16px, 1.15vw, 26px);
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: clamp(12px, 1vw, 24px);
}
.hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 24px;
}
.hero-buttons .btn { padding: clamp(12px, 1vw, 20px) clamp(18px, 1.6vw, 34px); font-size: clamp(11.5px, 0.85vw, 17px); }
/* Sekundární tlačítko na tmavém hero: bílý obrys */
.hero .btn-outline { border-color: rgba(255, 255, 255, 0.75); color: var(--white); }
.hero .btn-outline:hover { background: var(--white); color: var(--navy); border-color: var(--white); }
.hero-note {
    font-size: clamp(12px, 0.82vw, 16px);
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
}

/* ==========================================================================
   Lišta výhod
   ========================================================================== */
/* Skleněná lišta u spodní hrany hero (přes fotku) */
.features-bar-wrap {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 6;
    background: rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(14px);
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.features-bar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(14px, 1.4vw, 32px);
    padding: clamp(18px, 1.5vw, 34px) 0;
}
.feature-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: var(--white);
}
.feature-icon {
    color: var(--accent);
    font-size: clamp(28px, 2vw, 44px);
    line-height: 1;
    opacity: 0.95;
}
.feature-text {
    display: flex;
    flex-direction: column;
    font-size: clamp(12.5px, 0.95vw, 19px);
    line-height: 1.35;
}
.feature-text strong { font-weight: 700; }
.feature-text span { opacity: 0.85; }

/* ==========================================================================
   Pracujte / Propojujte se / Tvořte – tři stálé nadpisy v jedné řadě
   Nadpisy se nemění. Fotka je jen v písmenech nadpisu (dodané fotky nesnesou
   velký formát) a velmi pomalu se v nich posouvá. Při prvním zobrazení se
   sloupce načtou postupně jeden po druhém.
   ========================================================================== */
.goals { padding: var(--section-gap) 0 0; }
.goals-row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    border-top: 1px solid #ddd9d2;
    border-bottom: 1px solid #ddd9d2;
}
.goals-col {
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 2.6vw, 40px) clamp(16px, 2.2vw, 36px);
    border-left: 1px solid #ddd9d2;
    color: inherit;
    text-decoration: none;
}
.goals-col:first-child { border-left: 0; padding-left: 0; }
.goals-col:last-child { padding-right: 0; }
.goals-col:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.goals-word {
    align-self: flex-start;
    padding: 0 0.04em 0.08em 0;
    font-size: clamp(28px, 3.1vw, 50px);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.1;
    white-space: nowrap;
    color: var(--text);
}
/* Fotka v písmenech (ztmavená, aby se písmena četla); bez fotky zůstane plný text */
.goals-word:not(.goals-word--plain) {
    background: linear-gradient(rgba(23, 25, 30, 0.38), rgba(23, 25, 30, 0.38)), var(--ph) 30% 60% / 140% no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    animation: goals-drift 26s ease-in-out infinite alternate;
}
@keyframes goals-drift { to { background-position: 0 0, 70% 40%; } }
.goals-text { margin-top: 10px; font-size: 16px; line-height: 1.5; color: var(--text-muted); max-width: 32ch; }
.goals-link {
    margin-top: auto;
    padding-top: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--red);
}
.goals-link svg { width: 16px; height: 16px; transition: transform 0.35s ease; }
.goals-col:hover .goals-link svg { transform: translateX(5px); }

/* Nájezd: sloupce se načítají postupně jeden po druhém – nejdřív celý první
   (nadpis se odkryje zleva, pak naběhne popis a odkaz), po něm další.
   Třídu .js přidává main.js, bez skriptu je obsah vidět rovnou. */
.goals.js .goals-word { clip-path: inset(0 100% 0 0); }
.goals.js .goals-text, .goals.js .goals-link { opacity: 0; transform: translateY(10px); }
.goals.js .goals-col { --d: 0s; }
.goals.js .goals-col:nth-child(2) { --d: 0.75s; }
.goals.js .goals-col:nth-child(3) { --d: 1.5s; }
.goals.js .goals-col:nth-child(4) { --d: 2.25s; }
.goals.js.is-in .goals-word { clip-path: inset(0 -5% 0 0); transition: clip-path 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) var(--d); }
.goals.js.is-in .goals-text { opacity: 1; transform: none; transition: opacity 0.6s ease calc(var(--d) + 0.3s), transform 0.6s ease calc(var(--d) + 0.3s); }
.goals.js.is-in .goals-link { opacity: 1; transform: none; transition: opacity 0.6s ease calc(var(--d) + 0.45s), transform 0.6s ease calc(var(--d) + 0.45s); }

@media (prefers-reduced-motion: reduce) {
    .goals-word:not(.goals-word--plain) { animation: none; }
    .goals.js .goals-word { clip-path: none; }
    .goals.js .goals-text, .goals.js .goals-link { opacity: 1; transform: none; }
}
@media (max-width: 860px) {
    .goals-row { grid-auto-flow: row; }
    .goals-col, .goals-col:first-child, .goals-col:last-child { border-left: 0; border-top: 1px solid #ddd9d2; padding: 22px 0; }
    .goals-col:first-child { border-top: 0; }
    .goals-word { font-size: 34px; }
}

/* ==========================================================================
   Galerie
   ========================================================================== */
.gallery { padding: var(--section-gap) 0 0; }
.gallery .section-title { margin-bottom: 32px; }
.gallery-carousel {
    --gallery-item-w: calc((100cqw - 4 * 20px) / 5);
    container-type: inline-size;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.gallery-carousel::-webkit-scrollbar { display: none; }
.gallery-carousel.is-marquee { overflow: hidden; }
.gallery-track {
    display: flex;
    gap: 20px;
    width: max-content;
    will-change: transform;
}
.gallery-item {
    margin: 0;
    flex: 0 0 var(--gallery-item-w);
    width: var(--gallery-item-w);
}
.gallery-item img {
    width: 100%;
    aspect-ratio: 1 / 1.05;
    object-fit: cover;
    border-radius: var(--radius-sm);
}
.gallery-item figcaption {
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: var(--navy);
    margin-top: 12px;
}
.gallery-link {
    position: relative;
    display: block;
    color: inherit;
    cursor: zoom-in;
    border-radius: var(--radius);
    overflow: hidden;
}
.gallery-link img { transition: transform 0.35s ease; }
.gallery-link:hover img, .gallery-link:focus-visible img { transform: scale(1.04); }
.gallery-link:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
.gallery-zoom {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(23, 25, 30, 0.35);
    color: var(--white);
    font-size: 40px;
    opacity: 0;
    transition: opacity 0.25s;
}
.gallery-link:hover .gallery-zoom, .gallery-link:focus-visible .gallery-zoom { opacity: 1; }
.gallery-count {
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(23, 25, 30, 0.75);
    color: var(--white);
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1;
}
.gallery-count .material-symbols-outlined { font-size: 16px; }

/* Lightbox ---------------------------------------------------------------- */
html.lb-open { overflow: hidden; }
.lb {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 56px 72px;
}
.lb.is-open { display: flex; }
.lb-backdrop { position: absolute; inset: 0; background: rgba(12, 13, 16, 0.94); }
.lb-figure {
    position: relative;
    margin: 0;
    max-width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.lb-img {
    cursor: pointer;
    max-width: 100%;
    max-height: calc(100vh - 56px * 2 - 60px);
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 6px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    background: #1c1e24;
    transition: opacity 0.2s;
}
.lb-img.is-loading { opacity: 0.4; }
.lb-caption {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 6px 14px;
    color: var(--white);
    text-align: center;
    max-width: 800px;
}
.lb-title { font-weight: 800; font-size: 16px; }
.lb-desc { font-size: 14px; color: rgba(255, 255, 255, 0.72); }
.lb-counter { font-size: 13px; color: rgba(255, 255, 255, 0.55); font-variant-numeric: tabular-nums; }
.lb-btn {
    position: absolute;
    z-index: 2;
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    transition: background 0.2s;
}
.lb-btn:hover, .lb-btn:focus-visible { background: var(--red); outline: none; }
.lb-btn[hidden] { display: none; }
.lb-close { top: 16px; right: 16px; }
.lb-prev { left: 12px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 12px; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) {
    .lb { padding: 64px 8px 24px; }
    .lb-img {
    cursor: pointer; max-height: calc(100vh - 64px - 24px - 70px); }
    .lb-btn { width: 44px; height: 44px; font-size: 26px; background: rgba(255, 255, 255, 0.16); }
    .lb-prev { left: 6px; }
    .lb-next { right: 6px; }
}


/* ==========================================================================
   Co zde najdete
   ========================================================================== */
.amenities {
    padding: var(--section-gap) 0;
    margin-top: var(--section-gap);
    background: var(--navy);
    color: var(--white);
}
.amenities-head { max-width: 720px; margin: 0 auto 44px; text-align: center; }
.amenities .section-title { color: var(--white); }
.amenities .section-perex { color: rgba(255, 255, 255, 0.65); margin-left: auto; margin-right: auto; }
.amenities-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 20px;
}
.amenity-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
}
/* Velká bílá ikona, pod ní krátká oranžová linka */
.amenity-icon {
    font-size: 42px;
    color: var(--white);
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.2s;
}
.amenity-icon::after {
    content: '';
    display: block;
    width: 28px;
    height: 3px;
    border-radius: 2px;
    background: var(--accent);
    margin-top: 14px;
    transition: width 0.25s;
}
.amenity-item:hover .amenity-icon { transform: translateY(-2px); }
.amenity-item:hover .amenity-icon::after { width: 44px; }
.amenity-label {
    font-size: 13px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.4;
}

/* ==========================================================================
   Ceník + newsletter
   ========================================================================== */
.pricing { padding: 24px 0 0; }
.pricing-box {
    background: var(--gray-box);
    border-radius: var(--radius-lg);
    padding: 40px;
}
.pricing-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}
.pricing-link {
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.pricing-link:hover { color: var(--red); }
.pricing-link i { margin-left: 6px; text-decoration: none; }

.pricing-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    align-items: stretch;
}
.pricing-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.price-card {
    background: var(--white);
    border-radius: 8px;
    padding: 28px 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.price-icon {
    font-size: 30px;
    color: var(--red);
    margin-bottom: 16px;
}
.price-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
}
.price-desc {
    font-size: 12.5px;
    color: var(--text-muted);
    margin-bottom: 18px;
    flex: 1;
}
.price-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--red);
    margin: 0;
}

/* Newsletter box --------------------------------------------------------- */
.newsletter-box {
    background: var(--navy);
    border-radius: var(--radius);
    padding: 28px 24px;
    color: var(--white);
    display: flex;
    flex-direction: column;
}
.newsletter-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 20px;
}
.newsletter-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}
.newsletter-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--white);
    line-height: 1.4;
}
.newsletter-input-wrap {
    display: flex;
    background: var(--white);
    border-radius: var(--radius);
    padding: 4px;
}
.newsletter-input-wrap input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    padding: 10px 16px;
    font-family: var(--font);
    font-size: 14px;
    color: var(--text);
}
.newsletter-input-wrap .btn { padding: 10px 20px; font-size: 12px; border-radius: 5px; }
.nl-hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; }
.newsletter-message {
    font-size: 13px;
    margin: 10px 0 0;
    min-height: 1em;
}
.newsletter-message.is-error { color: #ffb3b8; }
.newsletter-message.is-success { color: #9be29b; }
.newsletter-consent {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
    font-size: 12.5px;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
}
.newsletter-consent input { margin: 2px 0 0; accent-color: var(--red); flex-shrink: 0; }
.newsletter-consent a { color: var(--white); text-decoration: underline; }
.nl-result { text-align: center; max-width: 640px; padding-top: 16px; padding-bottom: 16px; }
.nl-result-icon { font-size: 64px; color: #1e7a1e; display: block; margin: 0 auto 16px; }
.nl-result--error .nl-result-icon { color: var(--red); }
.nl-result-text { font-size: 17px; color: var(--text-muted); margin-bottom: 28px; }
.newsletter-note {
    font-size: 12.5px;
    color: rgba(255, 255, 255, 0.65);
    margin: auto 0 0;
    padding-top: 18px;
}

/* ==========================================================================
   Patička
   ========================================================================== */
.site-footer {
    margin-top: var(--section-gap);
    background: #fafafa;
    border-top: 1px solid #e8e6e2;
}
.footer-grid {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 380px 1fr 1fr;
    gap: 40px;
    align-items: stretch;
}
.footer-map {
    min-height: 240px;
    background: #e8ebee;
}
.footer-map iframe {
    width: 100%;
    height: 100%;
    min-height: 240px;
    border: 0;
    display: block;
}
.footer-map-placeholder {
    height: 100%;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background:
        linear-gradient(rgba(232, 235, 238, 0.6), rgba(232, 235, 238, 0.6)),
        repeating-linear-gradient(45deg, #dfe3e8 0 2px, transparent 2px 24px),
        repeating-linear-gradient(-45deg, #dfe3e8 0 2px, transparent 2px 24px);
}
.footer-map-facade {
    width: 100%;
    height: 100%;
    min-height: 240px;
    border: 0;
    cursor: pointer;
    font-family: var(--font);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background:
        linear-gradient(rgba(232, 235, 238, 0.6), rgba(232, 235, 238, 0.6)),
        repeating-linear-gradient(45deg, #dfe3e8 0 2px, transparent 2px 24px),
        repeating-linear-gradient(-45deg, #dfe3e8 0 2px, transparent 2px 24px);
    transition: filter 0.2s;
}
.footer-map-facade:hover { filter: brightness(1.04); }
.map-cta {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--white);
    background: var(--red);
    padding: 8px 14px;
    border-radius: var(--radius-sm);
}
.map-pin { font-size: 32px; color: var(--red); }
.map-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--navy);
    background: var(--white);
    padding: 6px 14px;
    border-radius: var(--radius-sm);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.footer-contact, .footer-partners { padding: 40px 0; }
.footer-contact h3, .footer-partners h3 {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 18px;
}
.contact-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    font-size: 14px;
}
.contact-list i { color: var(--navy); width: 18px; text-align: center; }
.contact-list li > span:not(.material-symbols-outlined) { color: var(--text-muted); }
.footer-contact .contact-list li { align-items: flex-start; }
.footer-contact .contact-list .material-symbols-outlined { margin-top: 2px; }
.contact-list a { color: var(--text-muted); }
.contact-list a:hover { color: var(--red); }

.footer-social {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
}
.footer-social span { font-size: 14px; font-weight: 600; color: var(--navy); margin-right: 4px; }
.footer-social a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--navy);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    transition: background 0.2s;
}
.footer-social a:hover { background: var(--red); }

.partners-logos {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 28px;
}
.partner-logo img { max-height: 64px; width: auto; }
.partner-name {
    font-size: 24px;
    font-weight: 800;
    color: var(--navy);
}
.partner-name--sumperk { color: var(--red); }

.footer-bottom {
    border-top: 1px solid #e8e6e2;
    padding: 16px 0;
}
.footer-bottom p {
    margin: 0;
    font-size: 12.5px;
    color: var(--text-light);
}

/* Patička – tmavý koncept Grafit ----------------------------------------- */
.site-footer { background: var(--navy); border-top: 0; }
.site-footer .footer-contact h3,
.site-footer .footer-partners h3 { color: var(--white); }
.site-footer .contact-list li,
.site-footer .contact-list li > span:not(.material-symbols-outlined) { color: var(--white); }
.site-footer .contact-list a { color: var(--white); }
.site-footer .contact-list a:hover { color: var(--accent); }
.site-footer .contact-list .material-symbols-outlined { color: var(--accent); }
.site-footer .footer-social span { color: var(--white); }
.site-footer .footer-social a { background: rgba(255, 255, 255, 0.14); }
.site-footer .footer-social a:hover { background: var(--red); }
.site-footer .footer-map { background: transparent; }
.site-footer .footer-map-placeholder { background:
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.08) 0 2px, transparent 2px 24px),
    repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.08) 0 2px, transparent 2px 24px); }
.site-footer .map-pin { color: var(--accent); }
.site-footer .footer-map-facade { background: linear-gradient(rgba(40, 43, 50, 0.85), rgba(40, 43, 50, 0.85)), repeating-linear-gradient(45deg, #3a3e46 0 2px, transparent 2px 24px), repeating-linear-gradient(-45deg, #3a3e46 0 2px, transparent 2px 24px); }
.site-footer .map-label { color: var(--text); }
/* Loga partnerů přebarvená na bílo (bez podkladových dlaždic) */
.site-footer .partner-logo img { filter: brightness(0) invert(1); opacity: 0.9; }
.site-footer .partner-logo:hover img { opacity: 1; }
.site-footer .partner-name { color: var(--white); }
.site-footer .partner-name--sumperk { color: var(--white); }
.site-footer .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.14); }
.site-footer .footer-bottom p { color: var(--white); }
.footer-bottom-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.footer-credit a { color: var(--white); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.footer-credit a:hover { color: var(--accent); }

/* ==========================================================================
   Vnitřní stránky
   ========================================================================== */
.page-main { padding: 56px 24px; min-height: 40vh; }
.page-title { font-size: 36px; margin-bottom: 24px; }
.page-content { max-width: 760px; }
.error-404 { text-align: center; }
.error-404 .page-title { font-size: 80px; }

/* Hero podstránky -------------------------------------------------------- */
.page-hero {
    background: linear-gradient(135deg, #f7f5f1 0%, #edebe5 100%);
    padding: 156px 0 56px;
}
.page-hero-title {
    font-size: 38px;
    font-weight: 800;
    letter-spacing: -0.02em;
    max-width: 720px;
}
.page-hero-perex {
    font-size: 18px;
    color: var(--text-muted);
    margin: 16px 0 0;
    max-width: 640px;
}

/* Obsahové sekce --------------------------------------------------------- */
.content-section { padding: 56px 0; }
.content-section--gray { background: var(--gray-box); }
.section-perex {
    font-size: 17px;
    color: var(--text-muted);
    max-width: 640px;
    margin: 12px 0 0;
}
.section-note {
    font-size: 15px;
    color: var(--text-muted);
    max-width: 640px;
    margin: 32px 0 0;
}
.lead-text {
    font-size: 19px;
    line-height: 1.6;
    color: var(--text);
    margin: 0;
}

/* Text + fotka vedle sebe */
.split-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: center;
}
.split-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius);
}

/* Výčty s ikonami */
.icon-list-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 36px;
}
.icon-list-grid--wide { margin-top: 0; }
.icon-list-item {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-radius: 8px;
    padding: 18px 20px;
}
.content-section--gray .icon-list-item { border-color: transparent; }
.icon-list-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: var(--cream);
    color: var(--red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}
.icon-list-label {
    font-size: 15px;
    font-weight: 600;
    color: var(--navy);
}

/* CTA pás ---------------------------------------------------------------- */
.cta-band-wrap { padding: 8px 0 24px; }
.cta-band {
    background: var(--navy);
    border-radius: var(--radius-lg);
    padding: 32px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}
.cta-band-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--white);
    margin: 0;
}
.cta-band-note {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.7);
    margin: 6px 0 0;
}

/* Tarify na podstránce Členství */
.pricing-cards--page .price-card {
    border: 1px solid #e6e4e0;
    padding: 36px 20px;
}

/* Newsletter box samostatně (stránka Akce) */
.newsletter-standalone {
    max-width: 420px;
    margin-top: 40px;
}

/* Typy akcí – karty s popisem (stránka Akce) */
.event-types-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 28px;
}
.event-type-card {
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-top: 4px solid var(--accent);
    border-radius: var(--radius-lg);
    padding: 24px 22px;
}
.event-type-icon .material-symbols-outlined { font-size: 34px; color: var(--red); }
.event-type-title { font-size: 16px; margin: 10px 0 6px; }
.event-type-desc { font-size: 13.5px; color: var(--text-muted); margin: 0; }
@media (max-width: 980px) { .event-types-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .event-types-grid { grid-template-columns: 1fr; } }

/* Newsletter jako široký pás (stránka Akce) */
.newsletter-standalone--wide { max-width: none; }
@media (min-width: 861px) {
    .newsletter-standalone--wide .newsletter-box {
        display: grid;
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
        gap: 10px 40px;
        align-items: center;
        padding: 28px 36px;
    }
    .newsletter-standalone--wide .newsletter-head { margin-bottom: 0; }
    .newsletter-standalone--wide .newsletter-note { grid-column: 2; margin: 6px 0 0; }
}

/* Pronájem – dvě karty --------------------------------------------------- */
.rent-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.rent-card {
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-radius: var(--radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.rent-card-image img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.rent-card-body {
    padding: 28px 28px 32px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    flex: 1;
}
.rent-card-title { font-size: 22px; }
.rent-card-text {
    font-size: 15px;
    color: var(--text-muted);
    margin: 0;
    flex: 1;
}

/* Kontaktní formulář ----------------------------------------------------- */
.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 48px;
    align-items: start;
}
.contact-form {
    background: var(--gray-box);
    border-radius: var(--radius-lg);
    padding: 36px;
}
.form-row--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.form-field {
    display: block;
    margin-bottom: 16px;
}
.form-label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 6px;
}
.form-label small { font-weight: 400; color: var(--text-light); }
.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    border: 1px solid #ddd9d2;
    border-radius: 6px;
    background: var(--white);
    padding: 12px 14px;
    font-family: var(--font);
    font-size: 15px;
    color: var(--text);
    outline: none;
    transition: border-color 0.2s;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-color: var(--navy); }
.form-field textarea { resize: vertical; }
.form-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    color: var(--text-muted);
    margin-bottom: 10px;
    cursor: pointer;
}
.form-check input {
    margin-top: 2px;
    accent-color: var(--red);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
.contact-message {
    font-size: 14px;
    margin: 8px 0 12px;
    min-height: 1em;
}
.contact-message.is-error { color: var(--red); }
.contact-message.is-success { color: #1e7a1e; }

.contact-aside-title { font-size: 30px; margin-bottom: 24px; }
.contact-aside .contact-list li { font-size: 18px; line-height: 1.55; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.contact-aside .contact-list .material-symbols-outlined { font-size: 25px; width: 27px; margin-top: 2px; }
.contact-aside .contact-list i { margin-top: 3px; }
.contact-aside-map {
    margin-top: 24px;
    border-radius: var(--radius);
    overflow: hidden;
    min-height: 260px;
}
.contact-aside-map iframe {
    width: 100%;
    height: 260px;
    border: 0;
    display: block;
}
.contact-aside-map .footer-map-placeholder { min-height: 260px; }

/* ==========================================================================
   Pás „Otevíráme" (termíny otevření pod hero sekcí)
   ========================================================================== */
.opening { padding: calc(var(--section-gap) * 0.7) 0 0; }
.opening-box {
    display: grid;
    grid-template-columns: minmax(220px, 0.9fr) minmax(0, 2.4fr);
    gap: 24px 40px;
    align-items: center;
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-left: 4px solid var(--red);
    border-radius: var(--radius-lg);
    padding: 26px 32px;
}
.opening-title {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.opening-link {
    display: inline-block;
    margin-top: 6px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.opening-link:hover { color: var(--red); }
.opening-items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.opening-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-left: 20px;
    border-left: 1px solid #e6e4e0;
}
.opening-items .opening-item:first-child { border-left: 0; padding-left: 0; }
.opening-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--cream);
    color: var(--red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}
.opening-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.opening-label {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.opening-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--navy);
    line-height: 1.25;
}

/* ==========================================================================
   Ceník – doplňky (karta jako odkaz, období, poznámky pod tarify)
   ========================================================================== */
a.price-card { color: inherit; transition: box-shadow 0.2s, transform 0.2s; }
a.price-card:hover { box-shadow: 0 8px 24px rgba(23, 25, 30, 0.08); transform: translateY(-2px); }
.price-card--featured { box-shadow: inset 0 0 0 2px var(--red); }
.price-period {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    margin-top: 2px;
}
.pricing-notes {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 24px;
    font-size: 14px;
    color: var(--text-muted);
}
.pricing-notes li { display: flex; align-items: center; gap: 10px; }
.pricing-notes .material-symbols-outlined { font-size: 20px; color: var(--red); flex-shrink: 0; }
.pricing-notes--center { align-items: center; text-align: center; margin-top: 36px; font-size: 15px; }
.pricing-notes--center li:first-child { color: var(--navy); font-weight: 700; }

/* ==========================================================================
   Stránka Členství – úplné karty tarifů
   ========================================================================== */
.plans-section { padding-top: 40px; }
.plans-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}
.plans-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plans-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; margin: 0 auto; }
.plans-grid--1 { grid-template-columns: minmax(0, 1fr); max-width: 460px; margin: 0 auto; }
.plan-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-radius: var(--radius-lg);
    padding: 36px 24px 28px;
    transition: box-shadow 0.2s;
}
.plan-card:hover { box-shadow: 0 10px 30px rgba(23, 25, 30, 0.08); }
.plan-card--featured {
    border-color: rgba(194, 38, 48, 0.45);
    box-shadow: 0 0 0 1px rgba(194, 38, 48, 0.45), 0 12px 32px rgba(194, 38, 48, 0.08);
    background: linear-gradient(180deg, #fff8f5 0%, var(--white) 32%);
}
.plan-badge {
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 999px;
    white-space: nowrap;
}
.plan-icon {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: var(--cream);
    color: var(--red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    margin-bottom: 18px;
}
.plan-title { font-size: 20px; font-weight: 800; margin-bottom: 6px; }
.plan-desc {
    font-size: 14px;
    color: var(--text-muted);
    margin: 0;
    min-height: 2.6em;
}
.plan-price {
    width: 100%;
    margin: 20px 0;
    padding: 18px 0;
    border-top: 1px solid #e6e4e0;
    border-bottom: 1px solid #e6e4e0;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
    color: var(--navy);
}
.plan-card--featured .plan-price { color: var(--red); }
.plan-price-amount { font-size: 40px; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.plan-price-currency { font-size: 20px; font-weight: 800; }
.plan-price-period { font-size: 13.5px; font-weight: 600; color: var(--text-muted); margin-left: 4px; }
.plan-features {
    width: 100%;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 26px;
    flex: 1;
}
.plan-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14.5px;
    color: var(--text);
    line-height: 1.4;
}
.plan-features .material-symbols-outlined {
    font-size: 20px;
    color: var(--red);
    flex-shrink: 0;
    margin-top: 1px;
}
.plan-btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: auto;
}
.plan-btn .material-symbols-outlined { font-size: 19px; }

/* ==========================================================================
   Stránka Akce – nadcházející akce
   ========================================================================== */
.events-section { padding-top: 40px; }
.events-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 28px;
}
.event-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-left: 4px solid var(--red);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.event-card--has-image { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.event-image img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.event-body {
    padding: 32px 36px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin-bottom: 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--red);
}
.event-meta li { display: flex; align-items: center; gap: 6px; }
.event-meta .material-symbols-outlined { font-size: 19px; }
.event-meta li:nth-child(n + 3) { color: var(--text-muted); font-weight: 600; }
.event-title { font-size: 26px; margin-bottom: 12px; letter-spacing: -0.01em; }
.event-text { font-size: 15.5px; color: var(--text-muted); max-width: 720px; }
.event-text p:last-child { margin-bottom: 0; }
.event-card { scroll-margin-top: 100px; }
.event-meta li.event-cat {
    background: var(--red);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 3px 12px;
    border-radius: 999px;
}
.events-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}
.events-filter-btn {
    border: 1px solid #d9d5cf;
    background: var(--white);
    color: inherit;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    padding: 8px 18px;
    border-radius: 999px;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.events-filter-btn:hover { border-color: var(--red); color: var(--red); }
.events-filter-btn.is-active { background: var(--red); border-color: var(--red); color: #fff; }
.event-card.is-hidden { display: none; }

/* Kalendář akcí */
.event-calendar {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 24px;
}
.ec-month {
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-radius: var(--radius-lg);
    padding: 18px 20px 20px;
    width: 300px;
    max-width: 100%;
}
.ec-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 12px;
    text-transform: capitalize;
}
.ec-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    text-align: center;
    font-size: 13px;
}
.ec-dow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
    padding: 2px 0;
}
.ec-day, .ec-day-empty {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.ec-day--today { box-shadow: inset 0 0 0 1px var(--red); }
a.ec-day--event {
    background: var(--red);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.15s ease;
}
a.ec-day--event:hover { transform: scale(1.15); }

/* Rozložení stránky Akce: osa vlevo, sidebar s kalendářem vpravo */
.events-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 34px;
    align-items: start;
    margin-top: 28px;
}
.events-side { position: sticky; top: 96px; }
@media (max-width: 1000px) {
    .events-layout { grid-template-columns: 1fr; }
    .events-side { position: static; }
}

/* Editorial osa akcí */
.ev-timeline { position: relative; padding-left: 92px; }
.ev-timeline::before { content: ''; position: absolute; left: 72px; top: 4px; bottom: 4px; width: 2px; background: #e3e0da; }
.ev-month { position: relative; display: flex; align-items: baseline; gap: 14px; margin: 30px 0 6px; }
.ev-month:first-child { margin-top: 0; }
.ev-month::before {
    content: '';
    position: absolute;
    left: -26px;
    top: 10px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 4px rgba(245, 168, 0, 0.18);
}
.ev-month::after { content: ''; flex: 1; height: 2px; background: var(--navy); opacity: 0.1; }
.ev-month-name { font-size: clamp(22px, 2.4vw, 30px); font-weight: 300; letter-spacing: -0.01em; margin: 0; text-transform: capitalize; }
.ev-month-name b { font-weight: 800; }
.ev-month-count { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); }

.ev-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px 34px;
    gap: 22px;
    align-items: center;
    padding: 20px 6px 20px 0;
    border-bottom: 1px solid #e3e0da;
    color: inherit;
    text-decoration: none;
    scroll-margin-top: 110px;
    transition: background 0.3s ease, padding 0.3s ease;
}
.ev-row::before { content: ''; position: absolute; left: -24px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--red); }
.ev-row:hover { background: var(--cream); padding-left: 12px; }
.ev-row.is-hidden { display: none; }
.ev-row.is-active {
    background: var(--cream);
    box-shadow: inset 3px 0 0 var(--red);
    padding-left: 12px;
}
.ev-row.is-active .ev-arrow { opacity: 1; transform: translateX(3px); }
.ev-day { position: absolute; left: -92px; top: 50%; transform: translateY(-50%); width: 58px; text-align: right; }
.ev-day b { display: block; font-size: 30px; font-weight: 800; color: var(--red); line-height: 1; letter-spacing: -0.02em; }
.ev-day span { font-size: 11.5px; font-weight: 600; color: var(--text-muted); }
.ev-body { display: block; }
.ev-cat {
    display: inline-block;
    background: rgba(194, 38, 48, 0.1);
    color: var(--red);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 3px 11px;
    border-radius: 999px;
    margin: 0 6px 6px 0;
}
.ev-title { display: block; font-size: 19px; font-weight: 800; line-height: 1.3; margin-bottom: 4px; }
.ev-text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 13.5px; color: var(--text-muted); }
.ev-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; font-size: 13px; font-weight: 600; color: var(--text-muted); }
.ev-meta > span { display: inline-flex; align-items: center; gap: 5px; }
.ev-meta .material-symbols-outlined { font-size: 16px; color: var(--red); }
.ev-thumb img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.ev-arrow { color: var(--red); opacity: 0.25; justify-self: end; transition: opacity 0.3s ease, transform 0.3s ease; }
.ev-row:hover .ev-arrow { opacity: 1; transform: translateX(3px); }

/* Sidebar akcí: kalendář, legenda, filtr */
.events-side .event-calendar { flex-direction: column; gap: 14px; margin-top: 0; }
.events-side .ec-month { width: 100%; }
.ev-legend { display: flex; align-items: center; gap: 8px; margin: 12px 2px 0; font-size: 12px; color: var(--text-muted); }
.ev-legend i { width: 10px; height: 10px; border-radius: 50%; background: var(--red); flex-shrink: 0; }
.ev-filter { margin-top: 16px; background: var(--white); border: 1px solid #e6e4e0; border-radius: var(--radius-lg); padding: 16px 18px 18px; }
.ev-filter-title { font-size: 11.5px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 10px; }
.ev-filter .events-filter { margin: 0; gap: 7px; }
.ev-filter .events-filter-btn { font-size: 12.5px; padding: 5px 13px; }

@media (max-width: 760px) {
    .ev-timeline { padding-left: 0; }
    .ev-timeline::before, .ev-row::before { display: none; }
    .ev-row { grid-template-columns: 62px minmax(0, 1fr); gap: 16px; align-items: start; }
    .ev-day { position: static; width: auto; text-align: left; transform: none; }
    .ev-thumb, .ev-arrow { display: none; }
    .ev-month-name { font-size: 22px; }
}

.events-types-title { margin-bottom: 28px; }

/* ==========================================================================
   Hero podstránky s fotkou
   ========================================================================== */
.page-hero--image {
    position: relative;
    background: var(--navy);
    padding: 200px 0 88px;
    color: var(--white);
    overflow: hidden;
}
.page-hero-bg { position: absolute; inset: 0; }
.page-hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(20, 22, 27, 0.86) 0%, rgba(20, 22, 27, 0.62) 45%, rgba(20, 22, 27, 0.25) 100%);
}
.page-hero--image .container { position: relative; }
.page-hero--image .page-hero-title { color: var(--white); font-size: clamp(34px, 3.4vw, 54px); max-width: 820px; }
.page-hero--image .page-hero-perex { color: rgba(255, 255, 255, 0.85); font-size: clamp(16px, 1.15vw, 20px); max-width: 680px; }
.page-hero-label {
    display: inline-block;
    margin: 0 0 16px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--red);
    color: var(--white);
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* ==========================================================================
   Stránka Prostor – jednotlivé prostory
   ========================================================================== */
.spaces { padding: 64px 0 24px; }
.spaces-head { max-width: 720px; margin-bottom: 40px; }
.spaces-list { display: flex; flex-direction: column; gap: 56px; }
.space {
    display: grid;
    grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
    gap: 48px;
    align-items: center;
}
.space--flip .space-media { order: 2; }
.space--flip .space-body { order: 1; }
.space-media { display: flex; flex-direction: column; gap: 12px; }
.space-main .gallery-link, .space-thumb .gallery-link { border-radius: var(--radius-lg); }
.space-main img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-lg);
}
.space-thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.space-thumbs--1 { grid-template-columns: 1fr; }
.space-thumbs--1 .space-thumb img { aspect-ratio: 16 / 7; }
.space-thumbs--2 { grid-template-columns: repeat(2, 1fr); }
.space-thumbs--2 .space-thumb img { aspect-ratio: 16 / 9; }
.space-thumb img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius);
}
.space-body { padding: 8px 0; }
.space--flip .space-body { padding-right: 24px; }
.space:not(.space--flip) .space-body { padding-left: 24px; }
.space-num {
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: var(--red);
    margin-bottom: 14px;
}
.space-num::after {
    content: '';
    display: inline-block;
    width: 36px;
    height: 2px;
    background: var(--red);
    vertical-align: middle;
    margin-left: 12px;
}
.space-title { font-size: clamp(24px, 2vw, 32px); margin-bottom: 14px; letter-spacing: -0.01em; }
.space-desc { font-size: 16.5px; line-height: 1.65; color: var(--text-muted); margin-bottom: 22px; max-width: 520px; }
.space-more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 4px;
}
.space-more:hover { color: var(--red); }
.space-more .material-symbols-outlined { font-size: 20px; color: var(--red); }
.space-text {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #e6e4e0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--text);
    max-width: 520px;
}
.space-text p:last-child { margin-bottom: 0; }
.space-text ul, .space-text ol { margin: 0 0 1em; padding-left: 20px; list-style: disc; }
.space-text li { margin-bottom: 4px; }

/* Vybavení a zázemí */
.offer-section { margin-top: 40px; }
.offer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 36px;
}
.offer-item {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: 28px 22px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    border: 1px solid #e6e4e0;
}
.offer-icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--cream);
    color: var(--red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
}
.offer-label { font-size: 15.5px; font-weight: 700; color: var(--navy); line-height: 1.35; }

/* ==========================================================================
   Stránka O projektu
   ========================================================================== */
.split-grid--about { align-items: center; }
.about-collage {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 12px;
}
.about-collage-item .gallery-link { border-radius: var(--radius-lg); height: 100%; }
.about-collage-item img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-lg); }
.about-collage-item:first-child { grid-column: 1 / -1; }
.about-collage-item:first-child img { aspect-ratio: 16 / 10; }
.about-collage-item:not(:first-child) img { aspect-ratio: 4 / 3; }
.about-collage--1 .about-collage-item:first-child img { aspect-ratio: 4 / 3; }
.about-collage--2 .about-collage-item:nth-child(2) { grid-column: 1 / -1; }
.about-collage--2 .about-collage-item:nth-child(2) img { aspect-ratio: 16 / 7; }

.pillars-section { padding-top: 8px; }
.pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 32px;
}
.pillar {
    background: var(--cream);
    border-radius: var(--radius-lg);
    padding: 34px 28px;
}
.pillar-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--white);
    color: var(--red);
    font-size: 28px;
    margin-bottom: 20px;
}
.pillar-title { font-size: 19px; margin-bottom: 10px; }
.pillar-text { font-size: 15px; line-height: 1.65; color: var(--text-muted); margin: 0; }

.partners-section { padding-bottom: 24px; }
.partners-box {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 40px;
    align-items: center;
    border: 1px solid #e6e4e0;
    border-radius: var(--radius-lg);
    padding: 40px 44px;
}
.partners-box-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 20px 36px;
}
.partner-tile { display: inline-flex; align-items: center; }
.partner-tile img { max-height: 72px; width: auto; max-width: 220px; }
.partner-tile-name { font-size: 28px; font-weight: 800; color: var(--navy); letter-spacing: -0.02em; }
.partner-tile-name.partner-name--sumperk { color: var(--navy); }
.partner-tile-name.partner-name--sumperk span { color: var(--red); }

/* ==========================================================================
   Ceník – doporučený tarif uprostřed
   ========================================================================== */
.pricing { padding: var(--section-gap) 0 0; }
.btn-sm { padding: 10px 18px; font-size: 12px; }
.btn-navy { background: var(--navy); color: var(--white); border-color: var(--navy); }
.btn-navy:hover { background: #000; border-color: #000; }
.pricing-stage {
    display: grid;
    grid-template-columns: 1fr 1.25fr 1fr;
    gap: 20px;
    align-items: stretch;
}
.pricing-stage--2 { grid-template-columns: 1fr 1.25fr; }
.pricing-side { display: flex; flex-direction: column; gap: 16px; }
.plan-mini {
    background: var(--cream);
    border-radius: var(--radius-lg);
    padding: 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.plan-mini-icon { font-size: 30px; color: var(--red); margin-bottom: 12px; }
.plan-mini-title { font-size: 16px; }
.plan-mini-price { font-size: 22px; font-weight: 800; color: var(--navy); margin: 10px 0 4px; }
.plan-mini-price small { font-size: 13px; color: var(--text-muted); font-weight: 600; }
.plan-mini-desc { font-size: 13px; color: var(--text-muted); margin: 0 0 14px; flex: 1; }
.plan-hero {
    background: var(--navy);
    color: var(--white);
    border-radius: var(--radius-lg);
    padding: 36px 34px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    overflow: hidden;
}
.plan-hero::before {
    content: '';
    position: absolute;
    right: -60px;
    top: -60px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(194, 38, 48, 0.35);
}
.plan-hero > * { position: relative; }
.plan-hero-badge {
    display: inline-block;
    background: var(--accent);
    color: var(--navy);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 999px;
    margin-bottom: 16px;
}
.plan-hero-title { color: var(--white); font-size: 26px; }
.plan-hero-price { font-size: 48px; font-weight: 800; letter-spacing: -0.03em; margin: 14px 0 2px; line-height: 1; }
.plan-hero-price small { font-size: 18px; }
.plan-hero-per { color: rgba(255, 255, 255, 0.65); font-size: 14px; margin-bottom: 18px; }
.plan-hero-list { display: flex; flex-direction: column; gap: 8px; font-size: 14px; margin-bottom: 24px; color: rgba(255, 255, 255, 0.9); }
.plan-hero-list li { display: flex; gap: 8px; align-items: flex-start; }
.plan-hero-list .material-symbols-outlined { color: var(--accent); font-size: 19px; flex-shrink: 0; }
.plan-hero .btn { margin-top: auto; }
.plan-right {
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-radius: var(--radius-lg);
    padding: 26px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.plan-right-title { font-size: 18px; }
.plan-right-price { font-size: 28px; font-weight: 800; color: var(--navy); margin: 10px 0 2px; }
.plan-right-per { font-size: 13px; color: var(--text-muted); margin-bottom: 14px; }
.plan-right-list { font-size: 13.5px; color: var(--text-muted); display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; flex: 1; }
.plan-right-list li { display: flex; gap: 6px; align-items: flex-start; }
.plan-right-list .material-symbols-outlined { color: var(--red); font-size: 18px; flex-shrink: 0; }
.plan-right .btn { margin-top: auto; }

/* ==========================================================================
   Newsletter – červený pás pod ceníkem
   ========================================================================== */
.nl-band-wrap { padding: calc(var(--section-gap) * 0.6) 0 0; }
.nl-band {
    background: var(--red);
    border-radius: var(--radius-lg);
    padding: 48px 52px;
    color: var(--white);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.nl-band::after {
    content: '';
    position: absolute;
    left: -80px;
    bottom: -140px;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.07);
}
.nl-band > * { position: relative; z-index: 1; }
.nl-band-tag {
    display: inline-block;
    background: rgba(255, 255, 255, 0.16);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 999px;
    margin-bottom: 16px;
}
.nl-band-title { color: var(--white); font-size: clamp(24px, 2.3vw, 32px); max-width: 720px; margin: 0 auto 10px; letter-spacing: -0.01em; }
.nl-band-intro { color: rgba(255, 255, 255, 0.85); font-size: 15.5px; max-width: 600px; margin: 0 auto 24px; }
.nl-band-form { max-width: 620px; margin: 0 auto; }
.nl-band-form .newsletter-input-wrap { padding: 6px; }
.nl-band-form .newsletter-input-wrap input { padding: 15px 20px; font-size: 16px; }
.nl-band-form .newsletter-input-wrap .btn { border-radius: 5px; }
.nl-band-consent { justify-content: center; color: rgba(255, 255, 255, 0.9); }
.nl-band-consent input { accent-color: var(--white); }
.nl-band-consent a { color: var(--white); }
.nl-band .newsletter-message { text-align: center; }
.nl-band .newsletter-message.is-error { color: #fff; font-weight: 700; }
.nl-band .newsletter-message.is-success { color: #fff; font-weight: 700; }
.nl-band-trust {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 36px;
    margin-top: 22px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
}
.nl-band-trust li { display: inline-flex; align-items: center; gap: 6px; }
.nl-band-trust .material-symbols-outlined { font-size: 18px; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-section { padding-top: 24px; }
.faq-list { max-width: 860px; margin-top: 28px; border-top: 1px solid #e6e4e0; }
.faq-item { border-bottom: 1px solid #e6e4e0; }
.faq-q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 4px;
    font-size: 17px;
    font-weight: 700;
    color: var(--navy);
    cursor: pointer;
    list-style: none;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q:hover { color: var(--red); }
.faq-icon { font-size: 26px; color: var(--red); transition: transform 0.25s; flex-shrink: 0; }
.faq-item[open] .faq-icon { transform: rotate(180deg); }
.faq-a { padding: 0 4px 20px; font-size: 15.5px; line-height: 1.65; color: var(--text-muted); max-width: 760px; }
.faq-a p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Responzivita
   ========================================================================== */
/* --- Tablet na šířku (861–1100 px) -------------------------------------- */
@media (max-width: 1100px) {
    /* Menu se nesmí lámat – zhuštěná navigace */
    .header-inner { gap: 16px; }
    .nav-menu { gap: 2px; }
    .nav-link { padding: 10px 10px; font-size: 12px; letter-spacing: 0.04em; }
    .header-cta { padding: 11px 18px; font-size: 12px; }

    .hero-content { max-width: 64%; }
    .pricing-grid { grid-template-columns: 1fr; }
    .pricing-cards { grid-template-columns: repeat(2, 1fr); }
    .pricing-stage, .pricing-stage--2 { grid-template-columns: 1fr 1fr; }
    .pricing-side { grid-column: 1 / -1; flex-direction: row; }
    .plan-hero { grid-column: 1; }
    .plan-right { grid-column: 2; }
    .amenities-grid { grid-template-columns: repeat(4, 1fr); gap: 28px 16px; }
    .gallery-carousel { --gallery-item-w: calc((100cqw - 2 * 20px) / 3); }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-map { grid-column: 1 / -1; }
    .footer-contact, .footer-partners { padding: 8px 24px 40px; }
}

/* --- Tablet na výšku (641–860 px) ---------------------------------------- */
@media (max-width: 860px) {
    .site-nav, .header-cta { display: none; }
    .nav-toggle { display: block; margin-left: auto; }

    .hero-content { max-width: 76%; padding: 150px 0 190px; }

    .features-bar { grid-template-columns: repeat(2, 1fr); }
    .feature-item { justify-content: flex-start; }


    .gallery-carousel { --gallery-item-w: calc((100cqw - 20px) / 2); }
    .pricing-box { padding: 24px; }
    .pricing-stage, .pricing-stage--2 { grid-template-columns: 1fr; }
    .pricing-side { flex-direction: column; }
    .plan-hero, .plan-right { grid-column: auto; }
    .nl-band { padding: 36px 24px; }
    .nl-band-trust { flex-direction: column; gap: 8px; align-items: center; }
    .pricing-header { flex-direction: column; align-items: flex-start; gap: 8px; }

    /* Podstránky */
    .page-hero { padding: 128px 0 40px; }
    .page-hero-title { font-size: 30px; }
    .opening-box { grid-template-columns: 1fr; gap: 20px; padding: 24px; }
    .page-hero--image { padding: 150px 0 56px; }
    .pillars-grid { grid-template-columns: 1fr; gap: 14px; }
    .partners-box { grid-template-columns: 1fr; gap: 24px; padding: 28px 24px; }
    .partners-box-logos { justify-content: flex-start; }
    .space, .space--flip { grid-template-columns: 1fr; gap: 24px; }
    .space--flip .space-media { order: 1; }
    .space--flip .space-body { order: 2; }
    .space .space-body, .space--flip .space-body { padding: 0; }
    .offer-grid { grid-template-columns: repeat(2, 1fr); }
    .plans-grid, .plans-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .event-card--has-image { grid-template-columns: 1fr; }
    .event-body { padding: 24px; }
    .event-title { font-size: 22px; }
    .split-grid { grid-template-columns: 1fr; gap: 28px; }
    .contact-grid { grid-template-columns: 1fr; gap: 32px; }
    .cta-band { padding: 28px 24px; }
}

/* --- Mobil (do 640 px) ---------------------------------------------------- */
@media (max-width: 640px) {
    /* Hero: tmavá fotka přes celou plochu, rovnoměrný závoj, lišta 2×2 */
    .hero-bg::after {
        background: linear-gradient(
            180deg,
            rgba(20, 22, 27, 0.62) 0%,
            rgba(20, 22, 27, 0.46) 55%,
            rgba(20, 22, 27, 0.56) 100%
        );
    }
    .hero-content { max-width: none; padding: 160px 0 210px; }
    body.home .site-header:not(.is-scrolled) .header-inner { padding-top: 14px; }
    body.home .site-header:not(.is-scrolled) .site-logo img { max-height: 50px; }
    .features-bar { grid-template-columns: repeat(2, 1fr); padding: 16px 0; gap: 12px 16px; }
    .feature-item { justify-content: flex-start; gap: 12px; }
    .feature-icon { font-size: 26px; }
    .feature-text { font-size: 12.5px; white-space: nowrap; }


    .rent-grid { grid-template-columns: 1fr; }
    .opening-items { grid-template-columns: 1fr; gap: 14px; }
    .spaces-list { gap: 40px; }
    .space-thumbs { gap: 8px; }
    .offer-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .offer-item { padding: 18px 14px; gap: 10px; }
    .offer-label { font-size: 14px; }
    .opening-item, .opening-items .opening-item:first-child { border-left: 0; padding-left: 0; }
    .plans-grid, .plans-grid--3, .plans-grid--2 { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
    .plan-badge { top: -12px; }
    .pricing-notes--center { align-items: flex-start; text-align: left; }
    .form-row--2col { grid-template-columns: 1fr; gap: 0; }
    .contact-form { padding: 24px; }
}

/* --- Malý mobil (do 560 px) ----------------------------------------------- */
@media (max-width: 560px) {
    .amenities-grid { grid-template-columns: repeat(2, 1fr); }

    /* Ceník: 2 kompaktní sloupce místo dlouhého sloupce karet */
    .pricing-cards { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .price-card { padding: 22px 12px; }
    .price-title { font-size: 14.5px; }
    .price-desc { font-size: 12px; margin-bottom: 12px; }
    .price-value { font-size: 13.5px; }
    .pricing-notes { font-size: 13px; }

    .gallery-carousel { --gallery-item-w: 85cqw; }
    .footer-grid { grid-template-columns: 1fr; gap: 0; }
    .hero-buttons .btn { width: 100%; }
    .section-title { font-size: 22px; }
}

/* Dočasná omezení otevírací doby (Kontakt) */
.contact-hours-note, .contact-hours-note .material-symbols-outlined { color: var(--red); }
.contact-hours-note { font-weight: 600; }

/* Ceník prostor a doplňkových služeb (Pronájem) */
.addon-pricing-perex { color: var(--text-muted); max-width: 760px; margin: 10px 0 0; }
.addon-pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 28px;
}
.addon-price-card {
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-top: 4px solid var(--accent);
    border-radius: var(--radius-lg);
    padding: 26px 24px;
}
.addon-price-title { font-size: 17px; margin: 0 0 8px; }
.addon-price-value { font-size: 26px; font-weight: 800; color: var(--red); letter-spacing: -0.01em; margin: 0 0 10px; }
.addon-price-desc { font-size: 14px; color: var(--text-muted); margin: 0; }
@media (max-width: 860px) {
    .addon-pricing-grid { grid-template-columns: 1fr; }
}

/* Dočasná omezení otevírací doby v patičce */
.site-footer .footer-hours-note,
.site-footer .footer-hours-note > span:not(.material-symbols-outlined),
.site-footer .footer-hours-note .material-symbols-outlined { color: var(--accent); }
.site-footer .footer-hours-note { font-weight: 600; }

/* ==========================================================================
   Nejbližší akce na úvodní stránce
   ========================================================================== */
/* Stejný rytmus jako ostatní sekce úvodky: odsazení jen shora */
.hev-section.content-section { padding: var(--section-gap) 0 0; }
.hev-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 26px;
}
.hev-head .section-title { margin: 0; }
.hev-more-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--red);
}
.hev-more-link:hover { color: var(--red-dark); }
.hev-more-link .material-symbols-outlined { font-size: 19px; }

.hev-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.hev-grid--1 { grid-template-columns: minmax(0, 520px); }
.hev-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hev-grid--4, .hev-grid--5, .hev-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.hev-card {
    background: var(--white);
    border: 1px solid #e6e4e0;
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hev-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(23, 25, 30, 0.12); }
.hev-card-link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.hev-thumb { position: relative; overflow: hidden; }
.hev-thumb img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.hev-card:hover .hev-thumb img { transform: scale(1.05); }
.hev-date {
    position: absolute;
    left: 14px;
    bottom: 14px;
    background: var(--white);
    border-radius: 999px;
    padding: 5px 14px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
}
.hev-date--plain { position: static; padding: 0; background: none; color: var(--red); font-size: 13px; }
/* Proběhlá akce doplněná do řady: štítek a mírně ztlumená fotka, ať je jasné, že už byla */
.hev-past {
    align-self: flex-start;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--gray-bg);
    color: var(--text-muted);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.hev-card--past .hev-thumb img { filter: grayscale(0.55); opacity: 0.85; }
.hev-card--past:hover .hev-thumb img { filter: none; opacity: 1; }
.hev-body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.hev-title { font-size: 19px; font-weight: 800; line-height: 1.32; margin: 0; }
.hev-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-muted);
}
.hev-meta li { display: flex; align-items: center; gap: 5px; }
.hev-meta .material-symbols-outlined { font-size: 17px; }
.hev-text { font-size: 14px; color: var(--text-muted); margin: 0; flex: 1; }
.hev-cta { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--red); }
.hev-cta .material-symbols-outlined { font-size: 18px; transition: transform 0.3s ease; }
.hev-card:hover .hev-cta .material-symbols-outlined { transform: translateX(4px); }

@media (max-width: 900px) {
    .hev-grid, .hev-grid--1, .hev-grid--2,
    .hev-grid--4, .hev-grid--5, .hev-grid--6 { grid-template-columns: 1fr; }
}

/* Proběhlé akce (stránka Akce) – archivní osa ------------------------------ */
.events-past .section-title { margin-bottom: 28px; }
.events-past-sub { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); margin-left: 4px; }
.ev-timeline--past { max-width: calc(100% - 340px); }
.ev-year { font-size: 13px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-muted); margin: 44px 0 0; }
.ev-year:first-child { margin-top: 0; }
.ev-year + .ev-month { margin-top: 10px; }
.ev-timeline--past .ev-month::before { background: #b9bcc4; box-shadow: 0 0 0 4px rgba(185, 188, 196, 0.25); }
.ev-timeline--past .ev-month-name { color: var(--text-muted); }
.ev-timeline--past .ev-month-name b { color: var(--text); }
.ev-timeline--past .ev-row::before { background: #b9bcc4; transition: background 0.25s ease; }
.ev-timeline--past .ev-row:hover::before { background: var(--red); }
.ev-timeline--past .ev-day b { color: var(--text-muted); font-size: 26px; transition: color 0.25s ease; }
.ev-timeline--past .ev-row:hover .ev-day b { color: var(--red); }
.ev-timeline--past .ev-title { font-size: 17px; }
.ev-timeline--past .ev-meta .material-symbols-outlined { color: #b9bcc4; }
.ev-timeline--past .ev-thumb img { filter: grayscale(1); opacity: 0.85; transition: filter 0.4s ease, opacity 0.4s ease; }
.ev-timeline--past .ev-row:hover .ev-thumb img { filter: grayscale(0); opacity: 1; }
.events-past .is-more { display: none; }
.events-past.is-expanded .is-more:not(.ev-row.is-hidden) { display: grid; }
.events-past.is-expanded .ev-month.is-more { display: flex; }
.events-past.is-expanded .ev-year.is-more { display: block; }
.events-past-more { margin: 32px 0 0; text-align: center; }
@media (max-width: 1100px) { .ev-timeline--past { max-width: none; } }

/* ==========================================================================
   Detail akce (single-cowork_akce.php) – tmavé premium
   ========================================================================== */
.event-hero {
    position: relative;
    background: var(--navy);
    color: var(--white);
    padding: 150px 0 0;
    overflow: hidden;
}
.event-hero-ghost {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.16;
    filter: grayscale(1);
}
.event-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(80% 100% at 20% 50%, rgba(23, 25, 30, 0.1), rgba(23, 25, 30, 0.85));
    pointer-events: none;
}
.event-hero-in { position: relative; z-index: 2; }
.event-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 18px;
}
.event-back:hover { color: var(--white); }
.event-back .material-symbols-outlined { font-size: 18px; }
.event-hero-badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.event-flag {
    display: inline-block;
    background: var(--accent);
    color: var(--navy);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 999px;
}
.event-flag--past { background: #6f7278; color: var(--white); }
.event-hero-title {
    font-size: clamp(34px, 4.4vw, 58px);
    font-weight: 300;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--white);
    max-width: 20ch;
    margin: 0 0 12px;
}
.event-hero-title b { font-weight: 800; }
.event-hero-perex {
    font-size: clamp(16px, 1.15vw, 18px);
    color: #c7c9ce;
    max-width: 58ch;
    margin: 0;
}

/* Pruh údajů v hlavičce */
.event-ebar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 40px;
    margin-top: 34px;
    padding: 20px 0 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.event-ebar-cell { display: flex; flex-direction: column; gap: 2px; }
.event-ebar-k {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
}
.event-ebar-v { font-size: 16px; font-weight: 800; color: var(--white); }
.event-ebar-v small { font-size: 13px; font-weight: 600; color: #b9bcc4; }
.event-ebar-v a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.event-ebar-v a:hover { color: var(--accent); }
.event-ebar-cell--action { margin-left: auto; }
.event-ebar-note { font-size: 14px; font-weight: 700; color: #b9bcc4; }

/* Tlačítka s ikonou */
.event-cta,
.event-reg-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 999px;
}
.event-cta .material-symbols-outlined,
.event-reg-submit .material-symbols-outlined { font-size: 19px; }

/* Tělo: obsah + boční karta */
.event-body { padding: var(--section-gap) 0; }
.event-body-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
.event-main { max-width: 760px; }
.event-content p { font-size: 16.5px; line-height: 1.75; }
.event-block-title {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.01em;
    margin: 44px 0 20px;
}
.event-block-title::after { content: ''; flex: 1; height: 1px; background: #e3e0da; }
.event-main > .event-block-title:first-child { margin-top: 0; }

/* Program – časová osa */
.event-program { list-style: none; margin: 0; padding: 0 0 0 108px; position: relative; }
.event-program::before {
    content: '';
    position: absolute;
    left: 86px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: #e3e0da;
}
.event-program-item { position: relative; padding: 16px 0; border-bottom: 1px solid #e3e0da; }
.event-program-item:last-child { border-bottom: none; }
.event-program-item::before {
    content: '';
    position: absolute;
    left: -26px;
    top: 26px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--red);
    box-shadow: 0 0 0 4px rgba(194, 38, 48, 0.13);
}
.event-program-time {
    position: absolute;
    left: -108px;
    top: 16px;
    width: 66px;
    text-align: right;
    font-size: 17px;
    font-weight: 800;
    color: var(--red);
    letter-spacing: -0.01em;
}
.event-program-body b { display: block; font-size: 17px; font-weight: 800; }
.event-program-body p { font-size: 14px; color: var(--text-muted); margin: 2px 0 0; }

/* Hosté */
.event-speakers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.event-speaker {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    background: var(--white);
    border: 1px solid #e3e0da;
    border-radius: 12px;
    padding: 18px;
}
.event-speaker-av {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(135deg, var(--navy), #3a3f4a);
    color: var(--white);
    display: grid;
    place-items: center;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.event-speaker-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.event-speaker-body b { display: block; font-size: 17px; font-weight: 800; }
.event-speaker-role { display: block; font-size: 13.5px; color: var(--text-muted); }
.event-speaker-bio { font-size: 13.5px; margin: 8px 0 0; }

/* Dokumenty */
.event-docs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.event-doc {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--white);
    border: 1px solid #e3e0da;
    border-radius: 12px;
    padding: 18px 18px 16px;
    color: inherit;
    text-decoration: none;
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.event-doc:hover { border-color: var(--red); transform: translateY(-2px); }
.event-doc-type {
    align-self: flex-start;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.12em;
    padding: 3px 9px;
    border-radius: 6px;
    background: var(--navy);
    color: var(--white);
}
.event-doc-type--pdf { background: var(--red); }
.event-doc-type--doc, .event-doc-type--docx { background: #2b5fb3; }
.event-doc-type--xls, .event-doc-type--xlsx, .event-doc-type--csv { background: #1b7f4b; }
.event-doc-type--ppt, .event-doc-type--pptx { background: #c8501a; }
.event-doc-type--zip { background: #6f7278; }
.event-doc b { font-size: 15px; font-weight: 800; }
.event-doc small { font-size: 12.5px; color: var(--text-muted); }
.event-doc-dl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--red);
    margin-top: auto;
}
.event-doc-dl .material-symbols-outlined { font-size: 18px; }

/* Boční karta */
.event-side { position: sticky; top: 110px; }
.event-card-side {
    background: var(--white);
    border: 1px solid #e3e0da;
    border-top: 4px solid var(--accent);
    border-radius: 14px;
    padding: 22px 24px 20px;
}
.event-side-title { font-size: 15px; font-weight: 800; margin: 0 0 12px; }
.event-side-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.event-side-list li { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; font-weight: 600; color: var(--text-muted); }
.event-side-list .material-symbols-outlined { font-size: 19px; color: var(--red); flex-shrink: 0; }
.event-side-note { font-size: 14px; font-weight: 700; color: var(--text-muted); margin: 16px 0 0; text-align: center; }
.event-side-docs { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.event-side-docs a {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13.5px;
    font-weight: 700;
    padding: 10px 12px;
    background: var(--cream);
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
}
.event-side-docs a:hover { color: var(--red); }
.event-side-docs .material-symbols-outlined { font-size: 18px; color: var(--red); flex-shrink: 0; }
.event-side-doc-dl { margin-left: auto; color: var(--text-muted) !important; }
.event-side-tools { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; }
.event-side-tool {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-muted);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}
.event-side-tool:hover { color: var(--red); }
.event-side-tool .material-symbols-outlined { font-size: 18px; }

/* Tmavý blok registrace */
.event-reg {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 44px;
    align-items: start;
    background: var(--navy);
    color: var(--white);
    border-radius: 18px;
    padding: 40px 44px;
    margin-top: 52px;
    scroll-margin-top: 110px;
}
.event-reg-title {
    font-size: clamp(26px, 2.4vw, 32px);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.01em;
    color: var(--white);
    margin: 0 0 10px;
}
.event-reg-text { font-size: 15px; color: #b9bcc4; margin: 0; }
.event-cap { display: flex; flex-direction: column; gap: 8px; margin-top: 22px; }
.event-cap-row { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; }
.event-cap-row span:last-child { color: #b9bcc4; font-weight: 600; }
.event-cap-bar { height: 8px; border-radius: 99px; background: rgba(255, 255, 255, 0.14); overflow: hidden; }
.event-cap-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--accent), #ffc94a); }
.event-reg-counter {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 14px;
    color: #e2e3e6;
}
.event-reg-avs { display: flex; }
.event-reg-avs i {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--navy);
    border: 2px solid var(--navy);
    margin-left: -10px;
    font-style: normal;
    font-size: 11px;
    font-weight: 800;
    display: grid;
    place-items: center;
}
.event-reg-avs i:first-child { margin-left: 0; }
.event-reg-avs .material-symbols-outlined { font-size: 18px; }
.event-reg-note {
    font-size: 15px;
    color: #e2e3e6;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 18px 20px;
    margin: 0;
}
.event-reg-form { display: flex; flex-direction: column; gap: 14px; }
.event-reg-form .form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.event-reg-form label > span { display: block; font-size: 12.5px; font-weight: 700; color: var(--white); margin-bottom: 5px; }
.event-reg-form input[type="text"],
.event-reg-form input[type="email"],
.event-reg-form input[type="tel"],
.event-reg-form input[type="number"] {
    width: 100%;
    border: none;
    border-radius: 10px;
    background: var(--white);
    color: var(--text);
    padding: 12px 14px;
    font: inherit;
    font-size: 15px;
}
.event-reg-form input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.event-reg-form .form-check { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; color: #b9bcc4; }
.event-reg-form .form-check input { margin-top: 3px; }
.event-reg-form .form-check a { color: var(--accent); }
.event-reg-submit {
    align-self: flex-start;
    background: var(--white);
    color: var(--navy);
    border-color: var(--white);
}
.event-reg-submit:hover { background: #f0efeb; border-color: #f0efeb; }
.event-reg-submit:disabled { opacity: 0.6; cursor: wait; }
.event-reg-message { font-size: 14px; font-weight: 600; margin: 0; color: #e2e3e6; }
.event-reg-message.is-success { color: #8fe08f; }
.event-reg-message.is-error { color: #ff9aa0; }

@media (max-width: 1100px) {
    .event-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
    .event-body-grid { grid-template-columns: 1fr; gap: 36px; }
    .event-side { position: static; }
    .event-reg { grid-template-columns: 1fr; padding: 32px 28px; }
    .event-speakers { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .event-hero { padding-top: 120px; }
    .event-ebar { gap: 14px 24px; }
    .event-ebar-cell--action { margin-left: 0; width: 100%; }
    .event-ebar-cell--action .btn { width: 100%; }
    .event-docs { grid-template-columns: 1fr; }
    .event-program { padding-left: 0; }
    .event-program::before, .event-program-item::before { display: none; }
    .event-program-time { position: static; display: block; width: auto; text-align: left; margin-bottom: 4px; }
    .event-reg { padding: 26px 20px; border-radius: 14px; }
    .event-reg-form .form-row { grid-template-columns: 1fr; }
    .event-side-tools { flex-wrap: wrap; }
}
