/* ============================================================
   Spirit JH – main.css
   Cormorant Garamond (headings) + Inter (body/UI)
   ============================================================ */

/* ── 1. CSS proměnné ──────────────────────────────────────── */
:root {
    --clr-cream:      #EEF2EF;
    --clr-cream-dark: #DDE5DF;
    --clr-sand:       #8AADA0;
    --clr-brown:      #415b4d;
    --clr-brown-dark: #2f4238;
    --clr-dark:       #1C1714;
    --clr-dark-2:     #2A2320;
    --clr-text:       #2A2320;
    --clr-muted:      #6B6560;
    --clr-border:     #E0D5C8;
    --clr-white:      #FFFFFF;

    --font-serif: 'Cormorant Garamond', 'Georgia', serif;
    --font-sans:  'Inter', system-ui, -apple-system, sans-serif;

    --container: 1180px;
    --pad:       clamp(1.25rem, 4vw, 2.5rem);
    --section-y: clamp(5rem, 10vw, 9rem);

    --ease: cubic-bezier(.25,.46,.45,.94);
    --r-sm: 6px;
    --r-md: 14px;
    --r-lg: 28px;
    --r-full: 100px;
}

/* ── 2. Reset ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: rgba(65, 91, 77, .15); }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--clr-text);
    background: var(--clr-cream);
    -webkit-font-smoothing: antialiased;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

/* ── 3. Typografie ────────────────────────────────────────── */
h1, h2, h3, h4 {
    font-family: var(--font-serif);
    line-height: 1.1;
    font-weight: 400;
    letter-spacing: -.01em;
}
h1 { font-size: clamp(2.8rem, 6vw, 5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.8rem); }

/* ── 4. Layout ────────────────────────────────────────────── */
.container {
    max-width: var(--container);
    margin-inline: auto;
    padding-inline: var(--pad);
}

.section { padding-block: var(--section-y); }
.section--alt { background: var(--clr-white); }

.section-header {
    text-align: center;
    max-width: 680px;
    margin-inline: auto;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.section-footer {
    text-align: center;
    margin-top: clamp(2rem, 4vw, 3rem);
}

.section-label {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--clr-brown);
    margin-bottom: 1rem;
}

.section-heading {
    font-family: var(--font-serif);
    color: var(--clr-dark);
    margin-bottom: .75rem;
}

.section-sub {
    color: var(--clr-muted);
    font-size: 1.05rem;
    line-height: 1.7;
}

/* ── 5. Tlačítka ──────────────────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .8rem 2rem;
    border-radius: var(--r-full);
    font-family: var(--font-sans);
    font-size: .875rem;
    font-weight: 500;
    letter-spacing: .03em;
    transition: background .2s var(--ease), color .2s var(--ease),
                border-color .2s var(--ease), transform .15s var(--ease),
                box-shadow .2s var(--ease);
    white-space: nowrap;
    cursor: pointer;
}
.btn:hover  { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

.btn--primary {
    background: var(--clr-brown);
    color: var(--clr-white);
    box-shadow: 0 2px 12px rgba(139,111,94,.25);
}
.btn--primary:hover {
    background: var(--clr-brown-dark);
    box-shadow: 0 4px 20px rgba(139,111,94,.35);
}

.btn--ghost {
    border: 1.5px solid rgba(255,255,255,.55);
    color: var(--clr-white);
    backdrop-filter: blur(4px);
}
.btn--ghost:hover {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.8);
}

.btn--outline {
    border: 1.5px solid var(--clr-brown);
    color: var(--clr-brown);
}
.btn--outline:hover {
    background: var(--clr-brown);
    color: var(--clr-white);
}

.btn--full { width: 100%; justify-content: center; }

/* ── 6. Navigace ──────────────────────────────────────────── */
.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    background: rgba(245,240,234,.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--clr-border);
    transition: box-shadow .3s var(--ease);
}
.site-header.is-scrolled { box-shadow: 0 4px 30px rgba(0,0,0,.07); }

.nav {
    display: flex;
    align-items: center;
    gap: 2rem;
    height: 70px;
}

.nav__logo {
    flex-shrink: 0;
    line-height: 1;
}
.nav__logo-text {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--clr-dark);
    letter-spacing: -.02em;
}
.nav__logo-text em {
    font-style: italic;
    color: var(--clr-brown);
}
.nav__logo-img { height: 40px; width: auto; }

.nav__menu {
    display: flex;
    align-items: center;
    gap: .25rem;
    margin-left: auto;
}
.nav__menu li a {
    font-family: var(--font-sans);
    font-size: .875rem;
    font-weight: 400;
    padding: .5rem .85rem;
    border-radius: var(--r-sm);
    color: var(--clr-muted);
    transition: color .2s, background .2s;
}
.nav__menu li a:hover,
.nav__menu li.current-menu-item a { color: var(--clr-brown); }

.nav__link--cta {
    background: var(--clr-brown) !important;
    color: var(--clr-white) !important;
    border-radius: var(--r-full) !important;
    padding: .5rem 1.25rem !important;
    font-weight: 500 !important;
    margin-left: .5rem;
}
.nav__link--cta:hover { background: var(--clr-brown-dark) !important; }

/* Dropdown */
.nav__item--has-dropdown {
    position: relative;
    display: flex;
    align-items: center;
}
.nav__dropdown-toggle {
    display: flex;
    align-items: center;
    padding: .3rem .25rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--clr-muted);
    transition: color .2s, transform .2s;
    border-radius: var(--r-sm);
}
.nav__item--has-dropdown.is-open .nav__dropdown-toggle { color: var(--clr-brown); }
.nav__item--has-dropdown.is-open .nav__dropdown-toggle svg { transform: rotate(180deg); }

.nav__dropdown {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease, visibility .15s ease;
    position: absolute;
    top: calc(100% + .5rem);
    left: 0;
    min-width: 220px;
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    box-shadow: 0 8px 32px rgba(0,0,0,.10);
    padding: .5rem 0;
    list-style: none;
    z-index: 200;
}
/* Otevřený stav (JS klik) */
.nav__item--has-dropdown.is-open .nav__dropdown {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition-delay: 0ms;
}

/* Odkaz "Všechny X →" a oddělovač za ním — skryté na desktopu, viditelné jen na mobilu */
.nav__dropdown-link--all-link { display: none; }
.nav__dropdown li:has(.nav__dropdown-link--all-link) + .nav__dropdown-divider { display: none; }

.nav__dropdown-link {
    display: block;
    padding: .55rem 1.1rem !important;
    font-size: .875rem !important;
    color: var(--clr-text) !important;
    white-space: nowrap;
    transition: background .15s, color .15s !important;
    border-radius: 0 !important;
}
.nav__dropdown-link:hover { background: var(--clr-cream); color: var(--clr-brown) !important; }
.nav__dropdown-link--service { color: var(--clr-muted) !important; }
.nav__dropdown-link--service:hover { color: var(--clr-brown) !important; }

.nav__dropdown-link small {
    display: inline-block;
    margin-left: .4rem;
    font-size: .75rem;
    color: var(--clr-muted);
    font-style: normal;
}

.nav__dropdown-divider {
    height: 1px;
    background: var(--clr-border);
    margin: .4rem .75rem;
}

/* Label v toggle buttonu — na desktopu skrytý, na mobilu viditelný */
.nav__dropdown-label { display: none; }
@media (max-width: 1024px) {
    .nav__dropdown-label { display: inline; }
}

/* Desktop: dropdown se otevírá pouze kliknutím (třída .is-open řízená JS) */
@media (min-width: 1025px) {
    .nav__item--has-dropdown:hover .nav__dropdown-toggle { color: var(--clr-brown); }
}

/* Dropdown – mobilní menu */
@media (max-width: 1024px) {
    .nav__item--has-dropdown {
        flex-wrap: wrap;
    }
    /* Na mobilu je link skrytý — button přebere celý řádek */
    .nav__item--has-dropdown > a.nav__link {
        display: none !important;
    }
    .nav__dropdown-toggle {
        position: static;
        opacity: 1;
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: .7rem .85rem;
        font-size: 1rem;
        color: var(--clr-muted);
        font-family: var(--font-sans);
    }
    .nav__dropdown-toggle:hover { color: var(--clr-brown); }
    .nav__item--has-dropdown.is-open .nav__dropdown-toggle { color: var(--clr-brown); }
    /* Dropdown se rozbalí jako celý blok pod řádkem */
    /* Na mobilu přepínáme display místo visibility, aby nevznikal prázdný placeholder */
    .nav__dropdown {
        display: none;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transition: none;
        position: static;
        width: 100%;
        flex-basis: 100%;
        box-shadow: none;
        border: none;
        border-left: 2px solid var(--clr-cream-dark);
        border-radius: 0;
        padding: .25rem 0 .25rem .75rem;
        margin: .25rem 0 .25rem .85rem;
        background: transparent;
        min-width: 0;
    }
    .nav__item--has-dropdown.is-open .nav__dropdown {
        display: block;
    }
    .nav__dropdown-link { font-size: .95rem !important; padding: .5rem .5rem !important; white-space: normal !important; }
    .nav__dropdown-link--all-link {
        font-weight: 600 !important;
        color: var(--clr-brown) !important;
    }
}

/* Burger */
.nav__burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: 6px;
    margin-left: auto;
}
.nav__burger span {
    display: block;
    width: 22px;
    height: 1.5px;
    background: var(--clr-dark);
    border-radius: 2px;
    transition: transform .25s var(--ease), opacity .25s;
}
.nav__burger.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2) { opacity: 0; }
.nav__burger.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* Mobilní menu */
.nav__menu.is-open {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    position: absolute;
    top: 70px;
    left: 0; right: 0;
    background: var(--clr-cream);
    border-bottom: 1px solid var(--clr-border);
    padding: 1.25rem var(--pad) 2rem;
    gap: .25rem;
}
.nav__menu.is-open li a { padding: .7rem .85rem; display: block; font-size: 1rem; }
.nav__menu.is-open .nav__link--cta { margin-top: .75rem; text-align: center; }

@media (max-width: 1024px) {
    .nav__menu { display: none; }
    .nav__burger { display: flex; }
}

/* ── 7. Hero ──────────────────────────────────────────────── */
.hero {
    position: relative;
    width: 100%;
    min-height: clamp(420px, 56vw, calc(100svh - 70px));
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--clr-dark);
    color: var(--clr-white);
}

.hero__bg {
    position: absolute;
    inset: 0;
    background-color: var(--clr-dark);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(20,28,23,.88) 0%, rgba(65,91,77,.50) 100%);
}

.hero__content {
    position: relative;
    z-index: 1;
    width: 100%;
    padding-block: 5rem;
    text-align: center;
}

.hero__eyebrow {
    font-family: var(--font-sans);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--clr-sand);
    margin-bottom: 1.5rem;
}

.hero__heading {
    font-family: var(--font-serif);
    font-size: clamp(3rem, 7vw, 5.5rem);
    font-weight: 300;
    line-height: 1.05;
    color: var(--clr-white);
    margin-bottom: 1.5rem;
}

.hero__sub {
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.7;
    color: rgba(255,255,255,.75);
    margin-bottom: 2.5rem;
}

.hero__actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}

.hero__scroll {
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
}
.hero__scroll-line {
    display: block;
    width: 1px;
    height: 60px;
    background: linear-gradient(to bottom, rgba(255,255,255,.0), rgba(255,255,255,.5));
    animation: scroll-line 2s ease-in-out infinite;
}
@keyframes scroll-line {
    0%   { transform: scaleY(0); transform-origin: top; }
    50%  { transform: scaleY(1); transform-origin: top; }
    51%  { transform: scaleY(1); transform-origin: bottom; }
    100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ── 8. O nás ─────────────────────────────────────────────── */
.about__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(3rem, 6vw, 7rem);
    align-items: center;
}

.about__image-wrap {
    border-radius: var(--r-lg);
    overflow: hidden;
    aspect-ratio: 4/5;
}
.about__image-wrap img {
    width: 100%; height: 100%;
    object-fit: cover;
}

.about__perex {
    font-size: 1.1rem;
    line-height: 1.8;
    color: var(--clr-muted);
    margin-block: 1.25rem 2rem;
}

.about__values {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.about__value {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.about__value-icon { font-size: 1.25rem; flex-shrink: 0; margin-top: .1rem; }
.about__value strong { display: block; font-family: var(--font-sans); font-weight: 500; }
.about__value p { font-size: .9rem; color: var(--clr-muted); margin: .2rem 0 0; }

/* ── Team dlaždice ── */
.about__team {
    padding-block-start: 3rem;
    border-top: 1px solid var(--clr-border);
    margin-top: 3rem;
}

.about__team-heading {
    font-family: var(--font-serif);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 400;
    margin-bottom: 2rem;
}

.about__team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.5rem;
}

.about__instr-card {
    background: var(--clr-cream);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: .6rem;
    position: relative;
    transition: border-color .2s, box-shadow .2s, transform .2s var(--ease);
}
.about__instr-card:hover {
    border-color: var(--clr-sand);
    box-shadow: 0 8px 40px rgba(139,111,94,.1);
    transform: translateY(-3px);
}

.about__instr-photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--clr-sage-light, #d8e4dc);
    flex-shrink: 0;
    margin-bottom: .4rem;
}
.about__instr-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.about__instr-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: var(--font-serif);
    font-size: 2rem;
    color: var(--clr-primary);
}

.about__instr-name {
    font-family: var(--font-serif);
    font-size: 1.35rem;
    font-weight: 400;
}
.about__instr-role {
    font-size: .8rem;
    color: var(--clr-muted);
    line-height: 1.4;
}
.about__instr-bio {
    font-size: .875rem;
    color: var(--clr-muted);
    line-height: 1.65;
    flex: 1;
    margin-top: .25rem;
}
.about__instr-link-stretch::after {
    content: '';
    position: absolute;
    inset: 0;
}

@media (max-width: 768px) {
    .about__grid { grid-template-columns: 1fr; }
    .about__image-wrap {
        aspect-ratio: unset;
        height: clamp(240px, 56vw, 420px);
    }
}

/* ── 9. Lekce ─────────────────────────────────────────────── */
.classes__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}

.class-card {
    background: var(--clr-cream);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    transition: border-color .2s, box-shadow .2s, transform .2s var(--ease);
    position: relative;
}
.class-card:hover {
    border-color: var(--clr-sand);
    box-shadow: 0 8px 40px rgba(139,111,94,.1);
    transform: translateY(-3px);
}
.class-card__icon { font-size: 1.75rem; }
.class-card__name {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 400;
}
.class-card__desc { font-size: .9rem; color: var(--clr-muted); line-height: 1.65; flex: 1; }
/* Footer karty – instruktorka vlevo, meta vpravo, povolíme wrap */
.class-card__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .75rem;
    margin-top: auto;
    padding-top: .5rem;
    border-top: 1px solid var(--clr-border);
}

.class-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    font-family: var(--font-sans);
    font-size: .8rem;
    color: var(--clr-muted);
}
.class-card__meta span + span::before {
    content: '·';
    margin-right: .4rem;
    opacity: .4;
}
.class-card__price { font-weight: 500; color: var(--clr-brown); }
.class-card__link {
    font-family: var(--font-sans);
    font-size: .85rem;
    font-weight: 500;
    color: var(--clr-brown);
    transition: gap .2s;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .25rem;
}
.class-card__link:hover { gap: .6rem; }

/* Stretched link – celá karta prokliknutelná */
.class-card__link::after {
    content: '';
    position: absolute;
    inset: 0;
}

/* Instruktorka musí být nad stretched linkem */
.class-card__instructor,
.class-card__footer .class-card__instructor {
    position: relative;
    z-index: 1;
}

/* ── 10. Rozvrh ───────────────────────────────────────────── */
.schedule__tabs {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--clr-border);
    padding-bottom: -.5rem;
}

.schedule__tab {
    font-family: var(--font-sans);
    font-size: .875rem;
    font-weight: 500;
    padding: .6rem 1.25rem;
    border-radius: var(--r-sm) var(--r-sm) 0 0;
    color: var(--clr-muted);
    border: 1px solid transparent;
    border-bottom: none;
    transition: color .2s, background .2s, border-color .2s;
    margin-bottom: -1px;
}
.schedule__tab:hover { color: var(--clr-brown); }
.schedule__tab.is-active {
    color: var(--clr-brown);
    background: var(--clr-white);
    border-color: var(--clr-border);
    border-bottom-color: var(--clr-white);
}

.schedule__panel { display: none; }
.schedule__panel.is-active { display: block; }

.schedule__list { display: flex; flex-direction: column; gap: .75rem; }

.schedule__item {
    display: grid;
    grid-template-columns: 80px 1fr auto;
    gap: 1.25rem;
    align-items: center;
    padding: 1rem 1.25rem;
    background: var(--clr-cream);
    border-radius: var(--r-sm);
    border: 1px solid var(--clr-border);
    position: relative;
    transition: border-color .2s, box-shadow .2s;
}
.schedule__item:hover {
    border-color: var(--clr-sand);
    box-shadow: 0 4px 16px rgba(139,111,94,.07);
}

.schedule__time {
    font-family: var(--font-serif);
    font-size: 1.2rem;
    color: var(--clr-brown);
}
.schedule__info strong { display: block; font-family: var(--font-sans); font-weight: 500; margin-bottom: .2rem; }
.schedule__info strong a { color: inherit; text-decoration: none; }
.schedule__info strong a:hover { color: var(--clr-brown); }
.schedule__info strong a::after {
    content: '';
    position: absolute;
    inset: 0;
}
.schedule__info span { font-size: .85rem; color: var(--clr-muted); }

/* Lector link nad stretched linkem */
.schedule__lector {
    position: relative;
    z-index: 1;
}
.schedule__meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: .4rem;
    font-size: .8rem;
    color: var(--clr-muted);
    white-space: nowrap;
    flex-shrink: 0;
}
.schedule__meta span + span::before {
    content: '·';
    margin-right: .4rem;
    opacity: .4;
}

.schedule__empty { color: var(--clr-muted); font-style: italic; padding: 2rem 0; }
.schedule__cta { text-align: center; margin-top: 3rem; }

@media (max-width: 768px) {
    /* Zúžit čas sloupec */
    .schedule__item {
        grid-template-columns: 64px 1fr;
        gap: .75rem 1rem;
        padding: .9rem 1rem;
    }
    /* Meta přesuneme pod info – zabere celou šířku přes oba sloupce */
    .schedule__meta {
        grid-column: 1 / -1;
        justify-content: flex-start;
        white-space: normal;
        flex-wrap: wrap;
        font-size: .78rem;
        padding-top: .3rem;
        border-top: 1px solid var(--clr-border);
        margin-top: .1rem;
    }
}

@media (max-width: 480px) {
    .schedule__item {
        grid-template-columns: 56px 1fr;
        gap: .5rem .75rem;
        padding: .8rem .75rem;
    }
    .schedule__time {
        font-size: 1rem;
    }
    .schedule__info strong {
        font-size: .95rem;
    }
    .schedule__lector-photo {
        width: 22px;
        height: 22px;
    }
    .schedule__lector-name {
        font-size: .8rem;
    }
}

/* ── 11. Live schedule sekce ──────────────────────────────── */
.live-schedule__footer { text-align: center; margin-top: 2.5rem; }

/* Btn--ghost override pro světlé pozadí */
.live-schedule .btn--ghost,
.live-schedule__footer .btn--ghost {
    border-color: var(--clr-brown);
    color: var(--clr-brown);
    backdrop-filter: none;
}
.live-schedule .btn--ghost:hover,
.live-schedule__footer .btn--ghost:hover {
    background: var(--clr-brown);
    color: var(--clr-white);
}

.ws-reserve-block {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
}

/* ── 12. Workshopy ────────────────────────────────────────── */
.workshops__list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.workshop-card {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    gap: 2rem;
    align-items: center;
    padding: 1.75rem 2rem;
    background: var(--clr-cream);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    transition: border-color .2s, box-shadow .2s;
    position: relative;
}
.workshop-card:hover {
    border-color: var(--clr-sand);
    box-shadow: 0 4px 24px rgba(139,111,94,.08);
}
.workshop-card--live {
    border-color: #c0392b;
    background: #fff9f9;
}

.workshop-card__date {
    text-align: center;
    font-family: var(--font-serif);
}
.workshop-card__day   { display: block; font-size: 2rem; line-height: 1; color: var(--clr-brown); }
.workshop-card__month { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--clr-muted); }

.workshop-card__body h3,
.workshop-card__body h4 { font-size: 1.3rem; margin-bottom: .4rem; }
.workshop-card__body h3 a,
.workshop-card__body h4 a {
    color: inherit;
    transition: color .2s;
}
.workshop-card__body h3 a::after,
.workshop-card__body h4 a::after {
    content: '';
    position: absolute;
    inset: 0;
}
.workshop-card__body h3 a:hover,
.workshop-card__body h4 a:hover { color: var(--clr-brown); }

/* Prvky nad stretched linkem */
.workshop-card__cta,
.workshop-card__footer .class-card__instructor {
    position: relative;
    z-index: 1;
}
.workshop-card__body p  { font-size: .9rem; color: var(--clr-muted); margin: 0; }
.workshop-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .75rem;
    padding-top: .6rem;
    border-top: 1px solid var(--clr-border);
}
.workshop-card--live .workshop-card__footer {
    border-top-color: rgba(192,57,43,.15);
}
.workshop-card__meta {
    display: flex;
    gap: .4rem;
    flex-wrap: nowrap;
    font-size: .8rem;
    color: var(--clr-muted);
    align-items: center;
    overflow: hidden;
    white-space: nowrap;
    flex-shrink: 0;
}
.workshop-card__meta > span {
    overflow: hidden;
    text-overflow: ellipsis;
}
.workshop-card__meta > span + span::before {
    content: '·';
    margin-right: .4rem;
    opacity: .4;
}
.workshop-card__meta .class-card__instructor-photo {
    width: 20px; height: 20px;
    border-radius: 50%;
    object-fit: cover;
    vertical-align: middle;
}

/* CTA oblast */
.workshop-card__cta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .5rem;
    min-width: 140px;
}

/* Badges a stavy */
.ws-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-family: var(--font-sans);
    font-size: .8rem;
    font-weight: 500;
    padding: .4rem .85rem;
    border-radius: var(--r-full);
}
.ws-badge--live {
    background: rgba(192,57,43,.1);
    color: #c0392b;
}
.ws-badge--loading {
    background: var(--clr-cream-dark);
    color: var(--clr-muted);
    animation: pulse 1.2s ease-in-out infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}

.ws-btn-detail {
    font-family: var(--font-sans);
    font-size: .8rem;
    color: var(--clr-muted);
    border-bottom: 1px solid var(--clr-border);
    transition: color .2s;
}
.ws-btn-detail:hover { color: var(--clr-brown); }

/* Hero – datum badge a live badge */
.ws-date-badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--font-sans);
    font-size: .8rem;
    font-weight: 500;
    letter-spacing: .06em;
    color: var(--clr-sand);
    margin-bottom: 1rem;
}
.ws-date-badge__dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #e74c3c;
    animation: blink 1.2s ease-in-out infinite;
}
/* ── Celebration (narozeniny / svátek) ─────────── */
@keyframes celebrate-bounce {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    25%       { transform: translateY(-4px) rotate(-8deg); }
    75%       { transform: translateY(-4px) rotate(8deg); }
}

.instr-celebrate-icon {
    display: inline-block;
    animation: celebrate-bounce 1s ease-in-out infinite;
    margin-left: .25em;
    font-style: normal;
}

.instr-celebrate-banner {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: 1rem;
    padding: .75rem 1.25rem;
    background: linear-gradient(135deg, #fff8e1 0%, #fce4ec 100%);
    border-left: 3px solid #f9a825;
    border-radius: .5rem;
    font-family: var(--font-sans);
    font-size: .9rem;
    color: var(--clr-text);
    animation: celebrate-banner-in .4s ease both;
}

.instr-celebrate-banner__emoji {
    font-size: 1.6rem;
    flex-shrink: 0;
    animation: celebrate-bounce 1.2s ease-in-out infinite;
}

@keyframes celebrate-banner-in {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50%       { opacity: .2; }
}
.ws-live-badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .6rem 1.5rem;
    border-radius: var(--r-full);
    background: rgba(231,76,60,.15);
    color: #e74c3c;
    font-family: var(--font-sans);
    font-size: .9rem;
    font-weight: 500;
}

.workshops__empty { color: var(--clr-muted); font-style: italic; text-align: center; padding: 2rem 0; }

@media (max-width: 768px) {
    .workshop-card { grid-template-columns: 1fr; gap: 1rem; }
    .workshop-card__date { display: flex; gap: .5rem; align-items: baseline; }
    .workshop-card__day { font-size: 1.5rem; }
    .workshop-card__cta { align-items: flex-start; }
}

/* ── Stránka Ceník ─────────────────────────────────────────── */
.cenik-hero { margin-top: 4rem; }
.cenik-hero__inner { max-width: 700px; }
.cenik-notes__inner { max-width: 800px; margin-inline: auto; }

/* ── 13. Ceník ────────────────────────────────────────────── */
.pricing__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    align-items: start;
}

.pricing-card {
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    padding: 2rem;
    background: var(--clr-cream);
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.pricing-card--featured {
    background: var(--clr-dark-2);
    color: var(--clr-white);
    border-color: var(--clr-dark-2);
}
.pricing-card--featured .pricing-card__name,
.pricing-card--featured .pricing-card__note { color: rgba(255,255,255,.65); }

.pricing-card__title {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 400;
}

.pricing-card__list { display: flex; flex-direction: column; gap: .75rem; flex: 1; }

.pricing-card__item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--clr-border);
}
.pricing-card--featured .pricing-card__item { border-bottom-color: rgba(255,255,255,.1); }

.pricing-card__name { font-size: .9rem; color: var(--clr-muted); }
.pricing-card__price { font-family: var(--font-serif); font-size: 1.2rem; white-space: nowrap; }
.pricing-card__note  { font-size: .75rem; color: var(--clr-muted); }

/* ── 14. Kontakt ──────────────────────────────────────────── */
.contact__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 4rem);
    align-items: stretch;
}
.contact__map {
    border-radius: var(--r-md);
    overflow: hidden;
    min-height: 360px;
}
.contact__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
}

.contact__details { display: flex; flex-direction: column; gap: 1.25rem; margin-block: 2rem 2rem; }
.contact__details li { display: flex; gap: 1rem; align-items: flex-start; }
.contact__icon { font-size: 1.1rem; flex-shrink: 0; margin-top: .1rem; }
.contact__details strong { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--clr-muted); margin-bottom: .2rem; }
.contact__details a { color: var(--clr-text); font-size: .95rem; transition: color .2s; }
.contact__details a:hover { color: var(--clr-brown); }

.contact__hours h3 { font-family: var(--font-serif); font-size: 1.2rem; margin-bottom: .75rem; }
.contact__hours ul { display: flex; flex-direction: column; gap: .4rem; }
.contact__hours li { display: flex; justify-content: space-between; font-size: .9rem; color: var(--clr-muted); gap: 1rem; }

.contact__social { display: flex; gap: 1rem; margin-top: 2rem; }
.social-link {
    font-family: var(--font-sans);
    font-size: .85rem;
    font-weight: 500;
    color: var(--clr-brown);
    border-bottom: 1px solid var(--clr-sand);
    padding-bottom: 1px;
    transition: color .2s, border-color .2s;
}
.social-link:hover { color: var(--clr-brown-dark); border-color: var(--clr-brown-dark); }


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

/* ── 15. Footer ───────────────────────────────────────────── */
.site-footer {
    background: var(--clr-dark);
    color: rgba(255,255,255,.55);
    padding-top: 5rem;
    padding-bottom: 2.5rem;
}

.footer__inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1.2fr;
    gap: 3rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-bottom: 2rem;
}

.footer__brand .nav__logo-text { color: var(--clr-white); font-size: 1.5rem; display: block; margin-bottom: .5rem; }
.footer__tagline { font-size: .85rem; line-height: 1.6; }

.footer__map {
    border-radius: var(--radius);
    overflow: hidden;
    min-height: 220px;
    height: 100%;
}
.footer__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 220px;
    border: 0;
    filter: grayscale(20%);
}

.footer__legal {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem .75rem;
}
.footer__legal p, .footer__legal a { font-size: .8rem; }
.footer__legal a { transition: color .2s; }
.footer__legal a:hover { color: var(--clr-white); }
.footer__legal a + a::before {
    content: '|';
    margin-right: .75rem;
    opacity: .4;
}
.footer__legal p::after {
    content: '|';
    margin-left: .75rem;
    opacity: .4;
}

/* ── 404 fallback ─────────────────────────────────────────── */
.not-found-section {
    min-height: 60vh;
    display: flex;
    align-items: center;
}
.not-found-section__inner {
    text-align: center;
    padding-block: var(--section-y);
}
.not-found-section__code {
    font-family: var(--font-serif);
    font-size: clamp(6rem, 20vw, 14rem);
    font-weight: 300;
    line-height: 1;
    color: var(--clr-brown);
    margin: .5rem 0 1rem;
}
.not-found-section__msg {
    font-size: clamp(1rem, 2vw, 1.2rem);
    color: var(--clr-muted);
    margin-bottom: 2.5rem;
}
.not-found-section__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .footer__inner { grid-template-columns: 1fr; }
    .footer__map { min-height: 200px; height: 200px; }
    .footer__legal { flex-wrap: wrap; }
}

/* ── 16. Back to top ──────────────────────────────────────── */
.back-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--clr-brown);
    color: var(--clr-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    box-shadow: 0 4px 16px rgba(139,111,94,.35);
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .25s, transform .25s var(--ease);
    z-index: 300;
}
.back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.back-to-top:hover { background: var(--clr-brown-dark); }

/* ── 17. Live schedule block CSS overrides ────────────────── */
/* Styly bloku jsou v blocks/live-schedule/live-schedule.css   */

/* ── 18. Utility ──────────────────────────────────────────── */
.visually-hidden {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ── 19. Stránka lekce ────────────────────────────────────── */

/* Homepage class-card — instruktorka */
.class-card__instructor {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .8rem;
    color: var(--clr-muted);
    min-width: 0;
    overflow: hidden;
}
.class-card__instructor a,
.class-card__instructor span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.class-card__instructor a {
    color: var(--clr-muted);
    text-decoration: none;
    transition: color .2s;
}
.class-card__instructor a:hover { color: var(--clr-brown); }
.class-card__instructor-photo {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

/* Popis lekce */
.lekce-desc__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(3rem, 6vw, 7rem);
    align-items: start;
}
.lekce-desc__grid--full { grid-template-columns: 1fr; max-width: 760px; margin-inline: auto; }

.lekce-desc__media {
    border-radius: var(--r-lg);
    overflow: hidden;
    position: sticky;
    top: 90px;
}
.lekce-desc__media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }

/* WYSIWYG obsah */
.wysiwyg h2, .wysiwyg h3 { margin-block: 1.5rem .75rem; }
.wysiwyg p  { margin-bottom: 1rem; color: var(--clr-muted); line-height: 1.8; }
.wysiwyg ul, .wysiwyg ol { padding-left: 1.5rem; margin-bottom: 1rem; color: var(--clr-muted); }
.wysiwyg ul { list-style: disc; }
.wysiwyg ol { list-style: decimal; }
.wysiwyg li { margin-bottom: .4rem; }
.wysiwyg strong { color: var(--clr-text); font-weight: 600; }
.wysiwyg a { color: var(--clr-brown); border-bottom: 1px solid var(--clr-sand); }

@media (max-width: 768px) {
    .lekce-desc__grid { grid-template-columns: 1fr; }
    .lekce-desc__media { position: static; }
}

/* UPS grid */
.ups-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
}

.ups-card {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 1.75rem;
    background: var(--clr-cream);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    transition: border-color .2s, box-shadow .2s, transform .2s var(--ease);
}
.ups-card:hover {
    border-color: var(--clr-sand);
    box-shadow: 0 6px 30px rgba(139,111,94,.1);
    transform: translateY(-2px);
}

.ups-card__icon {
    font-size: 1.75rem;
    flex-shrink: 0;
    line-height: 1;
    margin-top: .1rem;
}

.ups-card__title {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 400;
    margin-bottom: .35rem;
}

.ups-card__text {
    font-size: .9rem;
    color: var(--clr-muted);
    line-height: 1.65;
    margin: 0;
}

/* Cena + kapacita */
.lekce-meta {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-block: 2rem;
    padding: 1.5rem;
    background: var(--clr-cream-dark);
    border-radius: var(--r-md);
}
.lekce-meta__item {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.lekce-meta__icon { font-size: 1.25rem; }
.lekce-meta__label {
    display: block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--clr-muted);
    margin-bottom: .1rem;
}
.lekce-meta__value {
    font-family: var(--font-serif);
    font-size: 1.2rem;
    font-weight: 400;
    color: var(--clr-text);
}

/* Instruktorka */
.lekce-instructor {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    padding: 1.5rem;
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    margin-top: 2rem;
}
.lekce-instructor__photo {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: hidden;
}
.lekce-instructor__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.lekce-instructor__label {
    display: block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--clr-muted);
    margin-bottom: .2rem;
}
.lekce-instructor__name {
    display: block;
    font-family: var(--font-serif);
    font-size: 1.2rem;
    font-weight: 400;
    margin-bottom: .35rem;
}
.lekce-instructor__bio {
    font-size: .875rem;
    color: var(--clr-muted);
    line-height: 1.6;
    margin: 0;
}

/* Filter note */
.lekce-sch__filter-note {
    font-size: .85rem;
    color: var(--clr-muted);
    margin-top: .5rem;
}
.lekce-sch__filter-note strong { color: var(--clr-brown); }

.schedule__note {
    font-size: .8rem;
    color: var(--clr-muted);
    font-style: italic;
}
.schedule__info a {
    color: inherit;
    text-decoration: none;
}
.schedule__info a:hover {
    color: var(--clr-brown);
}

.schedule__lector {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .2rem;
}
.schedule__lector-photo {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.schedule__lector-name {
    font-size: .85rem;
    color: var(--clr-muted);
    text-decoration: none;
}
a.schedule__lector-name:hover {
    color: var(--clr-brown);
    text-decoration: underline;
}

/* ══════════════════════════════════════════════
   DALŠÍ SLUŽBY – dlaždice
══════════════════════════════════════════════ */
.services-block {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--clr-border);
}

.services-block__heading {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    font-weight: 300;
    color: var(--clr-brown);
    margin: 0 0 1.5rem;
}

.services__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: .875rem;
}

.service-card {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    transition: border-color .2s, box-shadow .2s, transform .2s var(--ease);
    position: relative;
}
.service-card:hover {
    border-color: var(--clr-sand);
    box-shadow: 0 4px 20px rgba(139,111,94,.08);
    transform: translateY(-2px);
}

.service-card__thumb {
    margin: -1.25rem -1.5rem .75rem;
    overflow: hidden;
    border-radius: var(--r-md) var(--r-md) 0 0;
}
.service-card__thumb img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.service-card:hover .service-card__thumb img { transform: scale(1.04); }

.service-card__name {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 1.3;
}

.service-card__desc {
    font-size: .85rem;
    color: var(--clr-muted);
    line-height: 1.6;
    flex: 1;
    margin: 0;
}

.service-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-top: auto;
    padding-top: .5rem;
    border-top: 1px solid var(--clr-border);
}

/* Instruktorka v service kartě nad stretched linkem */
.service-card__footer .class-card__instructor {
    position: relative;
    z-index: 1;
}

/* ══════════════════════════════════════════════
   TERMÍNY NA KARTĚ – homepage & archiv
══════════════════════════════════════════════ */
.class-card__times {
    list-style: none;
    padding: 0;
    margin: 0 0 .75rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.class-card__times li {
    display: flex;
    align-items: baseline;
    gap: .4rem;
    font-size: .825rem;
}

.class-card__times-day {
    font-family: var(--font-serif);
    font-size: .95rem;
    color: var(--clr-brown);
    min-width: 5rem;
}

.class-card__times-time {
    font-weight: 500;
    color: var(--clr-dark);
}

.class-card__times-dur {
    color: var(--clr-muted);
    font-size: .75rem;
}

/* ══════════════════════════════════════════════
   TERMÍNY V TÝDNU – lekce
══════════════════════════════════════════════ */
.lekce-times { background: var(--clr-cream); }

/* Zmenšení mezer na detailu lekce */
.lekce-desc.section,
.lekce-ups.section,
.lekce-times.section,
.live-schedule.section { padding-block: clamp(2.5rem, 5vw, 4rem); }

.times__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
}

.times__card {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: 1.5rem;
    background: #fff;
    border: 1px solid var(--clr-border);
    border-radius: 2px;
    transition: border-color .2s, box-shadow .2s;
}

.times__card:hover {
    border-color: var(--clr-brown);
    box-shadow: 0 4px 16px rgba(0,0,0,.06);
}

.times__day {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 400;
    color: var(--clr-brown);
    line-height: 1.2;
}

.times__time {
    font-size: 1.5rem;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--clr-dark);
    line-height: 1;
    margin-top: .25rem;
}

.times__duration {
    font-size: .8rem;
    color: var(--clr-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
}

.times__note {
    font-size: .825rem;
    color: var(--clr-muted);
    margin-top: .35rem;
    padding-top: .35rem;
    border-top: 1px solid var(--clr-border);
    font-style: italic;
}

/* ══════════════════════════════════════════════
   ARCHIVNÍ STRÁNKY – lekce & workshopy
══════════════════════════════════════════════ */

/* Thumbnail na kartě lekce (archive) */
.class-card__thumb {
    margin: -1.5rem -1.5rem 1rem;
    overflow: hidden;
    border-radius: 2px 2px 0 0;
}
.class-card__thumb img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.class-card:hover .class-card__thumb img {
    transform: scale(1.04);
}

/* Prázdný stav */
.archive__empty {
    text-align: center;
    color: var(--clr-muted);
    padding: 3rem 0;
    font-size: 1rem;
}

/* ══════════════════════════════════════════════
   INSTRUKTORKA – detail stránky
══════════════════════════════════════════════ */

/* Odkaz na jméno instruktorky */
.lekce-instructor__name-link {
    text-decoration: none;
    color: inherit;
}
.lekce-instructor__name-link:hover .lekce-instructor__name {
    color: var(--clr-brown);
}
.lekce-instructor__role {
    display: block;
    font-size: .8rem;
    color: var(--clr-muted);
    margin-bottom: .3rem;
}

/* ── Provozovna na detailu lekce ─────────────── */
.lekce-prov {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 1.5rem;
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    margin-top: 1rem;
    background: var(--clr-cream);
}
.lekce-prov__thumb {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: var(--r-sm);
    background-size: cover;
    background-position: center;
}
.lekce-prov__body {
    min-width: 0;
}
.lekce-prov__name {
    display: block;
    font-family: var(--font-serif);
    font-size: 1.2rem;
    font-weight: 400;
    margin-bottom: .5rem;
}
.lekce-prov__name-link {
    text-decoration: none;
    color: inherit;
}
.lekce-prov__name-link:hover .lekce-prov__name {
    color: var(--clr-brown);
}
.lekce-prov__details {
    list-style: none;
    padding: 0;
    margin: 0 0 .75rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.lekce-prov__details li {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    font-size: .875rem;
    color: var(--clr-muted);
}
.lekce-prov__details a {
    color: var(--clr-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.lekce-prov__details a:hover { color: var(--clr-brown); }
.lekce-prov__link {
    font-size: .8rem;
    color: var(--clr-brown);
    text-decoration: none;
    font-weight: 500;
}
.lekce-prov__link:hover { text-decoration: underline; }

/* ── Hero profilu ────────────────────────────── */
.instr-hero { padding-block: var(--section-pad); margin-top: 4rem; }

.instr-hero__grid {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

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

.instr-hero__photo img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: top;
    border-radius: 2rem 2rem 8rem 2rem;
    display: block;
}

.instr-hero__name {
    font-family: var(--font-serif);
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    font-weight: 300;
    line-height: 1.1;
    margin: .5rem 0 1rem;
}

.instr-hero__bio {
    font-size: 1.1rem;
    color: var(--clr-muted);
    line-height: 1.7;
    max-width: 56ch;
    margin-bottom: 1.5rem;
}

.instr-hero__bio-long {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--clr-border);
}

/* ── Specializace (tagy) ─────────────────────── */
.instr-specs {
    list-style: none;
    padding: 0;
    margin: 0 0 1.75rem;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.instr-specs__item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: .35rem .8rem;
    border: 1px solid var(--clr-border);
    border-radius: 2px;
    background: var(--clr-cream);
    color: var(--clr-brown);
}

.instr-specs__icon { font-size: .85em; }

/* ── Sociální sítě ───────────────────────────── */
.instr-social {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.instr-social__link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .85rem;
    color: var(--clr-muted);
    text-decoration: none;
    transition: color .2s;
}

.instr-social__link:hover { color: var(--clr-brown); }

/* ── Bio sekce ───────────────────────────────── */
.instr-bio-section { background: var(--clr-cream); }

.instr-bio-section__inner {
    max-width: 72ch;
    margin-inline: auto;
}

/* ── Certifikace ─────────────────────────────── */
.instr-certs { padding-block: var(--section-pad); margin-top: 4rem; }

.instr-certs__section {
    max-width: 800px;
    margin-inline: auto;
    margin-bottom: 1rem;
}

.instr-certs__section:last-child { margin-bottom: 0; }

.instr-certs__section-toggle {
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    background: none;
    border: none;
    border-bottom: 2px solid var(--clr-brown);
    padding: .5rem 0;
    cursor: pointer;
    text-align: left;
}

.instr-certs__section-toggle:hover .instr-certs__section-title { opacity: .75; }

.instr-certs__section-title {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 400;
    color: var(--clr-brown);
    flex: 1;
    transition: opacity .15s ease;
}

.instr-certs__toggle-label {
    font-size: .8rem;
    font-family: var(--font-sans);
    color: var(--clr-muted);
    white-space: nowrap;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.instr-certs__toggle-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    transition: transform .2s ease;
}

.instr-certs__section-toggle[aria-expanded="true"] .instr-certs__toggle-icon {
    transform: rotate(180deg);
}

.instr-certs__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.instr-certs__list[hidden] { display: none; }

.instr-certs__item {
    display: grid;
    grid-template-columns: 5rem 1fr;
    gap: 1.5rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--clr-border);
}

.instr-certs__item:last-child { border-bottom: none; }

.instr-certs__year {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--clr-muted);
    line-height: 1.2;
    padding-top: .1rem;
}

.instr-certs__body {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.instr-certs__title {
    font-family: var(--font-serif);
    font-size: 1.15rem;
    font-weight: 400;
}

.instr-certs__org {
    font-size: .875rem;
    color: var(--clr-muted);
}

/* ── Related lekce & workshopy ───────────────── */
.instr-related { background: var(--clr-cream); }

.instr-related__subheading {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    font-weight: 300;
    margin: 0 0 1.5rem;
    color: var(--clr-brown);
}

.instr-related .classes__grid,
.instr-related .workshops__list { margin-bottom: 3rem; }

/* ════════════════════════════════════════════
   PROVOZOVNA – detail stránky
════════════════════════════════════════════ */

/* ── Archiv – hlavní provozovna ─────────── */
.prov-main__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}
.prov-main__img img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius);
}
.prov-main__desc { margin-bottom: 1.5rem; line-height: 1.7; }
.prov-main__contact {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}
.prov-main__contact a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.prov-main__socials {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
}
.prov-main__socials a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 768px) {
    .prov-main__grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* ── Info sekce ──────────────────────────── */
.prov-info__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}

@media (max-width: 768px) {
    .prov-info__grid { grid-template-columns: 1fr; gap: 2.5rem; }
}

.prov-info__desc {
    font-size: 1.05rem;
    line-height: 1.75;
    margin-bottom: 2rem;
    color: var(--clr-dark);
}
.prov-info__desc p { margin-bottom: 1rem; }

.prov-info__contact {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.prov-info__contact-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    font-size: .95rem;
}

.prov-info__contact-icon { flex-shrink: 0; font-size: 1.1rem; }

.prov-info__contact-item a {
    color: var(--clr-dark);
    text-decoration: none;
    border-bottom: 1px solid var(--clr-gold);
    transition: color .2s;
}
.prov-info__contact-item a:hover { color: var(--clr-brown); }

.prov-info__hours { margin-top: 1.5rem; }
.prov-info__hours-title {
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--clr-brown);
    margin-bottom: .75rem;
}
.prov-info__hours-list { list-style: none; padding: 0; margin: 0; }
.prov-info__hours-row {
    display: grid;
    grid-template-columns: 7rem 1fr auto;
    gap: .25rem 1rem;
    padding: .35rem 0;
    border-bottom: 1px solid var(--clr-cream-dark);
    font-size: .95rem;
}
.prov-info__hours-row:last-child { border-bottom: none; }
.prov-info__hours-day { font-weight: 600; }
.prov-info__hours-note { color: var(--clr-muted); font-size: .85rem; align-self: center; }

.prov-info__socials {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.prov-info__social-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem .9rem;
    border: 1px solid var(--clr-gold);
    border-radius: 2rem;
    font-size: .85rem;
    text-decoration: none;
    color: var(--clr-dark);
    transition: background .2s, color .2s;
}
.prov-info__social-link:hover {
    background: var(--clr-gold);
    color: var(--clr-white);
}

.prov-info__map iframe {
    border-radius: var(--radius);
    display: block;
    width: 100%;
    min-height: 380px;
}

/* ── Galerie ─────────────────────────────── */
.prov-gallery__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}

.prov-gallery__item a {
    display: block;
    overflow: hidden;
    border-radius: var(--radius);
    aspect-ratio: 4/3;
}

.prov-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.prov-gallery__item a:hover img { transform: scale(1.04); }

/* ── Related sekce ───────────────────────── */
.prov-related__block {
    margin-bottom: 3rem;
}

.prov-related__sub {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--clr-brown);
    margin: 0 0 1.5rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--clr-gold);
}

/* ── Footer kontakt ──────────────────────── */
.footer__contact {
    font-size: .9rem;
    line-height: 1.7;
}

.footer__contact-name {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    font-weight: 400;
    margin: 0 0 .5rem;
    color: var(--clr-white);
}

.footer__contact-item {
    margin: 0 0 .3rem;
    color: rgba(255,255,255,.7);
}

.footer__contact-item a {
    color: rgba(255,255,255,.8);
    text-decoration: none;
    transition: color .2s;
}
.footer__contact-item a:hover { color: var(--clr-gold); }

.footer__socials {
    list-style: none;
    padding: 0;
    margin: .75rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.footer__socials a {
    font-size: .8rem;
    color: rgba(255,255,255,.7);
    text-decoration: none;
    transition: color .2s;
}
.footer__socials a:hover { color: var(--clr-gold); }

.footer__prov-link {
    display: inline-block;
    margin-top: 1rem;
    font-size: .8rem;
    font-weight: 500;
    color: rgba(255,255,255,.6);
    text-decoration: none;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: var(--r-sm);
    padding: .35rem .75rem;
    transition: color .2s, border-color .2s;
}
.footer__prov-link:hover {
    color: #fff;
    border-color: rgba(255,255,255,.6);
}


/* Ostatní provozovny pod kontaktní sekcí */
.contact__other-provs {
    margin-top: 4rem;
    padding-top: 3rem;
    border-top: 1px solid var(--clr-border);
}
.contact__other-heading {
    font-family: var(--font-serif);
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    margin-bottom: 1.5rem;
    color: var(--clr-text);
}
.contact__other-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
}
.contact__other-card {
    border: 1px solid var(--clr-border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--clr-white);
}
.contact__other-thumb {
    height: 140px;
    background-size: cover;
    background-position: center;
}
.contact__other-body {
    padding: 1.25rem;
}
.contact__other-name {
    display: block;
    font-family: var(--font-serif);
    font-size: 1.1rem;
    margin-bottom: .75rem;
}
.contact__other-details {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    font-size: .875rem;
    color: var(--clr-muted);
}
.contact__other-details a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color .2s, border-color .2s;
}
.contact__other-details a:hover {
    color: var(--clr-brown);
    border-bottom-color: var(--clr-gold);
}
.contact__other-link {
    font-size: .85rem;
    color: var(--clr-brown);
    text-decoration: none;
    border-bottom: 1px solid var(--clr-gold);
    transition: color .2s;
}
.contact__other-link:hover { color: var(--clr-gold); }

.contact__prov-link {
    display: inline-block;
    margin-top: 1rem;
    font-size: .9rem;
    color: var(--clr-brown);
    text-decoration: none;
    border-bottom: 1px solid var(--clr-gold);
    transition: color .2s;
}
.contact__prov-link:hover { color: var(--clr-gold); }

.contact__social li { display: inline; }
.contact__social { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .75rem; }

/* ── Provozovna v kartě ──────────────────── */
.class-card__provozovna {
    font-size: .8rem;
    color: var(--clr-muted, #888);
}

.class-card__provozovna a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color .2s, border-color .2s;
}

.class-card__provozovna a:hover {
    color: var(--clr-brown);
    border-bottom-color: var(--clr-gold);
}

/* ════════════════════════════════════════════
   MOBILNÍ RESPONZIVITA
════════════════════════════════════════════ */

/* ── Karty lekcí / dalších služeb ───────── */
@media (max-width: 640px) {

    /* 1 sloupec vždy */
    .classes__grid {
        grid-template-columns: 1fr;
    }

    .class-card {
        padding: 1.5rem;
        gap: .6rem;
    }

    .class-card__name {
        font-size: 1.3rem;
    }

    /* Footer karty: stack pod sebe */
    .class-card__footer {
        flex-direction: column;
        align-items: flex-start;
        gap: .5rem;
    }

    /* Meta: povolíme wrap + zrušíme nowrap */
    .class-card__meta {
        white-space: normal;
        flex-wrap: wrap;
        flex-shrink: 1;
    }

    /* Termíny */
    .class-card__times li {
        flex-wrap: wrap;
        gap: .25rem;
    }
}

/* ── Workshop karty ──────────────────────── */
@media (max-width: 640px) {

    .workshop-card {
        grid-template-columns: 1fr;
        padding: 1.25rem;
        gap: .75rem;
    }

    /* Datum inline */
    .workshop-card__date {
        display: flex;
        flex-direction: row;
        align-items: baseline;
        gap: .4rem;
    }
    .workshop-card__day   { font-size: 1.4rem; }
    .workshop-card__month { font-size: .8rem; }

    .workshop-card__body h3,
    .workshop-card__body h4 { font-size: 1.15rem; }

    /* Footer workshopu: stack */
    .workshop-card__footer {
        flex-direction: column;
        align-items: flex-start;
        gap: .5rem;
    }

    .workshop-card__meta {
        white-space: normal;
        flex-wrap: wrap;
    }

    .workshop-card__cta {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .workshop-card__cta .btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
}

/* ── Sekce headery ───────────────────────── */
@media (max-width: 640px) {

    .section-header {
        margin-bottom: 2rem;
    }

    .section-heading {
        font-size: clamp(1.8rem, 7vw, 2.5rem);
    }

    .section-sub {
        font-size: .9rem;
    }
}

/* ── Kontakt sekce ───────────────────────── */
@media (max-width: 768px) {
    .contact__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .contact__map iframe { height: 260px; }
}

@media (max-width: 640px) {
    .contact__details li { gap: .5rem; font-size: .9rem; }
    .contact-form { padding: 1.5rem; }
    .contact__map iframe { height: 220px; }
}

/* ── UPS grid ────────────────────────────── */
@media (max-width: 480px) {
    .ups-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Galerie provozovny ──────────────────── */
@media (max-width: 640px) {
    .prov-gallery__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .prov-info__map iframe {
        min-height: 260px;
    }
}

/* ── Footer ──────────────────────────────── */
@media (max-width: 768px) {

    .footer__inner {
        grid-template-columns: 1fr;
        gap: 2rem;
        text-align: center;
    }

    .footer__contact { text-align: left; }

    .footer__socials {
        justify-content: flex-start;
    }

    .footer__nav ul {
        flex-direction: column;
        gap: .5rem;
        align-items: center;
    }
}

/* ── Hero ────────────────────────────────── */
@media (max-width: 640px) {

    .hero__heading {
        font-size: clamp(2.2rem, 9vw, 3.5rem);
    }

    .hero__sub {
        font-size: .95rem;
    }

    .hero__cta {
        flex-direction: column;
        align-items: flex-start;
        gap: .75rem;
    }

    .hero__cta .btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
}

/* ── Archiv stránky ──────────────────────── */
@media (max-width: 640px) {

    .archive__empty {
        font-size: .95rem;
        padding: 1.5rem 0;
    }

    .services-block {
        margin-top: 2rem;
    }
}

/* ── Filtr sálů v rozvrhu ────────────────── */
.schedule__sal-filter {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.5rem;
}

.schedule__sal-btn {
    padding: .35rem 1rem;
    border-radius: var(--r-full);
    border: 1px solid var(--clr-border);
    background: transparent;
    font-family: var(--font-sans);
    font-size: .85rem;
    color: var(--clr-muted);
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s;
}

.schedule__sal-btn:hover {
    border-color: var(--clr-sand);
    color: var(--clr-dark);
}

.schedule__sal-btn.is-active {
    background: var(--sal-color, var(--clr-brown));
    border-color: var(--sal-color, var(--clr-brown));
    color: var(--clr-white);
}

/* Barevný akcent položky pokud má sál barvu */
.schedule__item[style*="--sal-color"] {
    border-left: 3px solid var(--sal-color);
}

/* Tag sálu v položce rozvrhu */
.schedule__name-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
}

.schedule__sal-tag {
    display: inline-block;
    font-size: .7rem;
    padding: .1rem .45rem;
    border-radius: var(--r-full);
    background: var(--clr-cream-dark);
    color: var(--clr-muted);
    font-family: var(--font-sans);
    font-weight: 500;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .schedule__sal-filter {
        gap: .4rem;
        margin-bottom: 1rem;
    }
    .schedule__sal-btn {
        font-size: .8rem;
        padding: .3rem .8rem;
    }
}

.schedule__item.is-sal-hidden { display: none; }


/* ══════════════════════════════════════════════
   FAQ – accordion (archiv + homepage)
══════════════════════════════════════════════ */

.faq-list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-width: 780px;
    margin: 0 auto;
}

.faq-item {
    background: var(--clr-white, #fff);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-md);
    overflow: hidden;
    transition: border-color .2s, box-shadow .2s;
}

.faq-item:has(.faq-item__toggle[aria-expanded="true"]) {
    border-color: var(--clr-sand);
    box-shadow: 0 4px 20px rgba(139,111,94,.08);
}

.faq-item__toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-serif);
    font-size: 1.15rem;
    font-weight: 400;
    color: var(--clr-dark);
    line-height: 1.3;
}

.faq-item__toggle:hover { color: var(--clr-brown); }

.faq-item__question {
    flex: 1;
}

.faq-item__cat {
    font-family: var(--font-sans);
    font-size: .75rem;
    font-weight: 500;
    color: var(--clr-muted);
    background: var(--clr-cream-dark);
    padding: .2rem .6rem;
    border-radius: var(--r-full);
    white-space: nowrap;
    flex-shrink: 0;
}

.faq-item__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid var(--clr-border);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s, background .2s, border-color .2s;
    position: relative;
}

.faq-item__icon::before,
.faq-item__icon::after {
    content: '';
    position: absolute;
    background: var(--clr-dark);
    border-radius: 2px;
    transition: transform .25s, opacity .2s;
}
.faq-item__icon::before { width: 8px; height: 1.5px; }
.faq-item__icon::after  { width: 1.5px; height: 8px; }

.faq-item__toggle[aria-expanded="true"] .faq-item__icon {
    background: var(--clr-brown);
    border-color: var(--clr-brown);
}
.faq-item__toggle[aria-expanded="true"] .faq-item__icon::before,
.faq-item__toggle[aria-expanded="true"] .faq-item__icon::after {
    background: #fff;
}
.faq-item__toggle[aria-expanded="true"] .faq-item__icon::after {
    transform: rotate(90deg) scaleY(0);
    opacity: 0;
}

.faq-item__answer {
    padding: 0 1.5rem 1.5rem;
    animation: faq-open .25s ease both;
}

@keyframes faq-open {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.faq-item__answer .wysiwyg p:first-child { margin-top: 0; }

.faq-item__detail-link {
    display: inline-block;
    margin-top: 1rem;
    font-size: .9rem;
    font-weight: 500;
    color: var(--clr-brown);
    text-decoration: none;
    transition: opacity .2s;
}
.faq-item__detail-link:hover { opacity: .75; }

/* ── Filtr kategorií ── */
.faq-filter { margin-bottom: 2.5rem; }
.faq-item.is-faq-hidden { display: none; }

/* ══════════════════════════════════════════════
   FAQ – detail stránka
══════════════════════════════════════════════ */

.faq-detail__grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 4rem;
    align-items: start;
}

.faq-detail__question {
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    margin-bottom: 1.25rem;
    line-height: 1.2;
}

.faq-detail__short {
    font-size: 1.1rem;
    color: var(--clr-muted);
    border-left: 3px solid var(--clr-sand);
    padding-left: 1rem;
    margin-bottom: 2rem;
    font-style: italic;
}

.faq-detail__answer { margin-bottom: 2.5rem; }

.faq-detail__related-content {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid var(--clr-border);
}

.faq-detail__related-heading {
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

.faq-detail__related-list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.faq-detail__related-list a {
    color: var(--clr-brown);
    font-weight: 500;
    transition: opacity .2s;
}
.faq-detail__related-list a:hover { opacity: .75; }

.faq-detail__related-type {
    display: inline-block;
    font-size: .75rem;
    font-weight: 500;
    color: var(--clr-muted);
    background: var(--clr-cream-dark);
    padding: .15rem .5rem;
    border-radius: var(--r-full);
    margin-right: .4rem;
}

.faq-detail__back { margin-top: 2.5rem; }

/* Sidebar */
.faq-detail__sidebar {
    position: sticky;
    top: 6rem;
    background: var(--clr-cream);
    border-radius: var(--r-md);
    padding: 1.75rem;
}

.faq-detail__sidebar-heading {
    font-size: 1rem;
    margin-bottom: 1.25rem;
    color: var(--clr-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-family: var(--font-sans);
    font-weight: 600;
}

.faq-detail__sidebar-list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin-bottom: 1.5rem;
}

.faq-detail__sidebar-list a {
    font-size: .95rem;
    color: var(--clr-dark);
    transition: color .2s;
    line-height: 1.4;
}
.faq-detail__sidebar-list a:hover { color: var(--clr-brown); }

.faq-detail__cat-link {
    font-size: .9rem;
    font-weight: 500;
    color: var(--clr-brown);
    transition: opacity .2s;
}
.faq-detail__cat-link:hover { opacity: .75; }

/* ── Breadcrumb ── */
.breadcrumb {
    padding-top: 1.5rem;
    padding-bottom: .5rem;
}
.breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    list-style: none;
    padding: 0;
    font-size: .85rem;
    color: var(--clr-muted);
}
.breadcrumb__list li + li::before {
    content: '/';
    margin-right: .4rem;
    opacity: .4;
}
.breadcrumb__list a {
    color: var(--clr-muted);
    transition: color .2s;
}
.breadcrumb__list a:hover { color: var(--clr-brown); }
.breadcrumb__list [aria-current="page"] { color: var(--clr-dark); }

/* ══════════════════════════════════════════════
   FAQ – responzivita
══════════════════════════════════════════════ */

@media (max-width: 900px) {
    .faq-detail__grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }
    .faq-detail__sidebar { position: static; }
}

@media (max-width: 640px) {
    .faq-item__toggle { font-size: 1rem; padding: 1rem 1.25rem; }
    .faq-item__answer { padding: 0 1.25rem 1.25rem; }
    .faq-item__cat    { display: none; }
}

/* ══════════════════════════════════════════════
   Instructor Archive – grid + cards
══════════════════════════════════════════════ */

.team-archive { background: var(--clr-cream); }
.team-archive--external { background: var(--clr-white); }

.instr-archive-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 2.5rem;
}
.instr-archive-grid--external {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.5rem;
}

/* ── Card shell ── */
.instr-card {
    background: var(--clr-white);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
.instr-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,.08);
}

/* ── Photo area ── */
.instr-card__photo-link {
    display: block;
    position: relative;
}
.instr-card__photo {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--clr-border);
}
.instr-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.instr-card:hover .instr-card__photo img {
    transform: scale(1.04);
}

/* Initials fallback */
.instr-card__initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: var(--font-serif);
    font-size: 3.5rem;
    font-weight: 400;
    color: var(--clr-muted);
    background: var(--clr-border);
}

/* Social overlay */
.instr-card__social {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    gap: .5rem;
    padding: .75rem 1rem;
    background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 100%);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .25s ease, transform .25s ease;
}
.instr-card:hover .instr-card__social {
    opacity: 1;
    transform: translateY(0);
}
.instr-card__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,.2);
    backdrop-filter: blur(4px);
    color: #fff;
    transition: background .2s;
}
.instr-card__social-link:hover {
    background: rgba(255,255,255,.4);
    color: #fff;
}
.instr-card__social-link svg { flex-shrink: 0; }

/* ── Card body ── */
.instr-card__body {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: 1.25rem 1.25rem 1.5rem;
    flex: 1;
}
.instr-card__role {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--clr-brown);
}
.instr-card__name {
    font-family: var(--font-serif);
    font-size: 1.45rem;
    font-weight: 400;
    line-height: 1.15;
    margin: 0;
    color: var(--clr-dark);
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}
.instr-card__name a {
    color: inherit;
    text-decoration: none;
    transition: color .2s;
}
.instr-card__name a:hover { color: var(--clr-brown); }
.instr-card__bio {
    font-size: .9rem;
    color: var(--clr-muted);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
}
.instr-card__cta {
    margin-top: auto;
    padding-top: .75rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--clr-brown);
    text-decoration: none;
    transition: opacity .2s;
}
.instr-card__cta:hover { opacity: .7; }

/* Specs inside card */
.instr-card__body .instr-specs {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.instr-card__body .instr-specs__item {
    font-size: .75rem;
    background: var(--clr-cream);
    border-radius: 20px;
    padding: .2rem .65rem;
    color: var(--clr-text);
    display: flex;
    align-items: center;
    gap: .3rem;
}

/* External section: slightly smaller cards */
.instr-archive-grid--external .instr-card__photo { aspect-ratio: 1 / 1; }
.instr-archive-grid--external .instr-card__name { font-size: 1.2rem; }

/* ── Responsive ── */
@media (max-width: 900px) {
    .instr-archive-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}
@media (max-width: 540px) {
    .instr-archive-grid,
    .instr-archive-grid--external {
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }
    .instr-card__body { padding: 1rem; }
    .instr-card__name { font-size: 1.15rem; }
    .instr-card__bio  { display: none; }
}
@media (max-width: 360px) {
    .instr-archive-grid,
    .instr-archive-grid--external {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
   Blog – archiv (karty)
══════════════════════════════════════════════ */

.blog-archive { background: var(--clr-cream); }

.blog-archive-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 2rem;
    margin-top: 2.5rem;
}

.blog-card {
    background: var(--clr-white);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,.08);
}

.blog-card__photo-link { display: block; }
.blog-card__photo {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--clr-border);
}
.blog-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.blog-card:hover .blog-card__photo img { transform: scale(1.04); }

.blog-card__cluster {
    position: absolute;
    top: .75rem;
    left: .75rem;
    background: var(--clr-brown);
    color: #fff;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .25rem .65rem;
    border-radius: 20px;
}

.blog-card__body {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: 1.25rem 1.25rem 1.5rem;
    flex: 1;
}
.blog-card__title {
    font-family: var(--font-serif);
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1.2;
    margin: 0;
}
.blog-card__title a {
    color: var(--clr-dark);
    text-decoration: none;
    transition: color .2s;
}
.blog-card__title a:hover { color: var(--clr-brown); }

.blog-card__perex {
    font-size: .9rem;
    color: var(--clr-muted);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
}

.blog-card__footer {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: auto;
    padding-top: .75rem;
    font-size: .8rem;
    color: var(--clr-muted);
}
.blog-card__author {
    display: flex;
    align-items: center;
    gap: .4rem;
}
.blog-card__author-avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
}
.blog-card__meta-sep { opacity: .4; }
.blog-card__date { color: var(--clr-muted); }

/* Paginace */
.blog-pagination {
    margin-top: 3rem;
    display: flex;
    justify-content: center;
}
.blog-pagination .page-numbers {
    display: flex;
    gap: .5rem;
    list-style: none;
    padding: 0;
}
.blog-pagination .page-numbers li a,
.blog-pagination .page-numbers li span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 .75rem;
    border-radius: 6px;
    font-size: .9rem;
    text-decoration: none;
    border: 1.5px solid var(--clr-border);
    color: var(--clr-dark);
    transition: background .2s, border-color .2s;
}
.blog-pagination .page-numbers li a:hover { background: var(--clr-cream); border-color: var(--clr-brown); }
.blog-pagination .page-numbers li .current { background: var(--clr-brown); color: #fff; border-color: var(--clr-brown); }

/* ══════════════════════════════════════════════
   Blog – detail článku
══════════════════════════════════════════════ */

.post-hero {
    width: 100%;
    max-height: 480px;
    overflow: hidden;
}
.post-hero__img {
    width: 100%;
    height: 480px;
    object-fit: cover;
    display: block;
}

.post-detail { background: var(--clr-cream); }

.post-detail__grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 4rem;
    align-items: start;
}

.post-detail__title {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 400;
    line-height: 1.1;
    margin: .5rem 0 1rem;
}

.post-detail__meta {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .85rem;
    color: var(--clr-muted);
    margin-bottom: 1.5rem;
}
.post-detail__author-inline {
    display: flex;
    align-items: center;
    gap: .4rem;
}
.post-detail__author-inline a { color: var(--clr-brown); text-decoration: none; }
.post-detail__author-inline a:hover { opacity: .75; }
.post-detail__author-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}
.post-detail__meta-sep { opacity: .4; }

.post-detail__perex {
    font-size: 1.1rem;
    color: var(--clr-muted);
    line-height: 1.7;
    border-left: 3px solid var(--clr-brown);
    padding-left: 1.25rem;
    margin-bottom: 2rem;
}

.post-detail__back { margin-top: 2.5rem; }

/* FAQ sekce v článku */
.post-faq {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--clr-border);
}
.post-faq__heading {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    font-weight: 400;
    margin-bottom: 1.25rem;
}

/* CTA blok */
.post-cta-block {
    margin-top: 3rem;
    padding: 2rem;
    background: var(--clr-white);
    border-radius: 12px;
    border-left: 4px solid var(--clr-brown);
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.post-cta-block__type {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--clr-brown);
}
.post-cta-block__title {
    font-family: var(--font-serif);
    font-size: 1.3rem;
    font-weight: 400;
    margin: 0;
    color: var(--clr-dark);
}

/* ── Author box (sidebar) ── */
.post-author-box {
    position: sticky;
    top: 6rem;
    background: var(--clr-white);
    border-radius: 12px;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: .6rem;
    text-align: center;
}
.post-author-box__label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--clr-brown);
    margin: 0;
}
.post-author-box__photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    margin: .5rem auto;
    display: block;
}
.post-author-box__role {
    font-size: .8rem;
    color: var(--clr-muted);
    margin: 0;
}
.post-author-box__name {
    font-family: var(--font-serif);
    font-size: 1.3rem;
    font-weight: 400;
    margin: 0;
    color: var(--clr-dark);
}
.post-author-box__bio {
    font-size: .85rem;
    color: var(--clr-muted);
    line-height: 1.6;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.post-author-box__link {
    font-size: .85rem;
    font-weight: 600;
    color: var(--clr-brown);
    text-decoration: none;
    transition: opacity .2s;
}
.post-author-box__link:hover { opacity: .7; }

/* ── Responzivita ── */
@media (max-width: 900px) {
    .post-detail__grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }
    .post-author-box { position: static; }
    .blog-archive-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
}
@media (max-width: 540px) {
    .blog-archive-grid { grid-template-columns: 1fr; }
    .post-hero__img { height: 240px; }
    .post-detail__title { font-size: 1.8rem; }
}

/* ══════════════════════════════════════════════
   Blog – série box
══════════════════════════════════════════════ */

.post-serie-box {
    background: var(--clr-white);
    border-radius: 12px;
    border-left: 4px solid var(--clr-brown);
    padding: 1.5rem 1.75rem;
    margin-bottom: 2.5rem;
}
.post-serie-box__label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--clr-brown);
    margin: 0 0 .4rem;
}
.post-serie-box__title {
    display: block;
    font-family: var(--font-serif);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--clr-dark);
    text-decoration: none;
    margin-bottom: .25rem;
    transition: color .2s;
}
.post-serie-box__title:hover { color: var(--clr-brown); }

.post-serie-box__desc {
    font-size: .85rem;
    color: var(--clr-muted);
    margin: 0 0 1rem;
    line-height: 1.6;
}

.post-serie-box__list {
    list-style: none;
    padding: 0;
    margin: .75rem 0 0;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.post-serie-box__item {
    display: flex;
    align-items: baseline;
    gap: .6rem;
    font-size: .9rem;
    color: var(--clr-muted);
}
.post-serie-box__item a {
    color: var(--clr-dark);
    text-decoration: none;
    transition: color .2s;
}
.post-serie-box__item a:hover { color: var(--clr-brown); }

.post-serie-box__item.is-current {
    font-weight: 600;
    color: var(--clr-dark);
}
.post-serie-box__item.is-current::before {
    content: '▶';
    font-size: .6rem;
    color: var(--clr-brown);
    margin-right: -.2rem;
}
.post-serie-box__num {
    min-width: 1.4rem;
    color: var(--clr-brown);
    font-weight: 600;
    font-size: .8rem;
}
.post-serie-box__current { color: var(--clr-dark); }

/* ══════════════════════════════════════════════
   Homepage – automatické střídání pozadí sekcí
══════════════════════════════════════════════ */

/* Přepíšeme napevno nastavené barvy pozadí pro sekce uvnitř homepage-sections */
.homepage-sections > .section,
.homepage-sections > .section.section--alt {
    background: unset;
}

/* Liché sekce (1., 3., 5. …) — cream */
.homepage-sections > .section:nth-child(odd) {
    background: var(--clr-cream);
}

/* Sudé sekce (2., 4., 6. …) — white */
.homepage-sections > .section:nth-child(even) {
    background: var(--clr-white);
}

/* Hero nemá třídu .section, takže není dotčeno */
