/* ============================================================
   PROGRAM — ovládání filtrů (1.9.7)
   Samostatný versovaný soubor (filemtime), NE @import z additionalStyle.css:
   ten jde bez ?ver= a uvázne v Cloudflare cache. Viz docs/08 §F.
   Webflow export (for-caravan.webflow.css) se needituje, jen přebíjí.
   ============================================================ */

/* Řádek se shrnutím pod filtry. Filtry samotné jsou .filters-wrapper
   z exportu — ten neměníme. */
.program-filters-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin-top: 12px;
}

.program-filters-count {
    color: var(--black, #121930);
    opacity: .7;
    font-size: 15px;
    line-height: 1.4;
    font-variant-numeric: tabular-nums;
}

/* normalize.css resetuje tlačítku jen barvu, písmo a kurzor — zbytek
   (padding 1px 6px, border 2px outset, background ButtonFace a na iOS
   nativní vzhled) by zůstal z prohlížeče, proto explicitní reset. */
.program-filters-reset {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 6px 14px;
    border: 1px solid var(--black, #121930);
    border-radius: 9999px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 14px;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}

.program-filters-reset:hover,
.program-filters-reset:focus-visible {
    background-color: var(--black, #121930);
    color: #fff;
}

/* [hidden] musí přebít display:inline-flex výše, jinak by tlačítko
   zůstalo vidět i schované. Skryté části okna řečníka (prázdný profil,
   chybějící prezentace) musí stejně tak zmizet i proti třídám z exportu. */
.program-filters-reset[hidden],
.program-empty-state[hidden],
.popup-overlay [hidden] {
    display: none !important;
}

/* Prázdný stav — ukáže se jen když filtr nic nenajde. */
.program-empty-state {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin: 24px 0;
    padding: 32px;
    border: 1px dashed var(--black, #121930);
    border-radius: 20px;
}

.program-empty-state > .paragraph {
    margin: 0;
}

@media screen and (max-width: 767px) {
    .program-filters-summary {
        align-items: flex-start;
        justify-content: space-between;
    }

    .program-empty-state {
        padding: 24px;
    }
}

/* ============================================================
   DETAIL ŘEČNÍKA (medailonek)
   Okno i jeho styly jsou z Webflow exportu — ten zůstává beze změny.
   Tady je jen to, co k němu chybělo: zobrazení, posuv dlouhého obsahu,
   křížek jako skutečné tlačítko a medailonek bez profilu.
   ============================================================ */

/* Export má .popup-overlay { display: none }. Otevření přidá třídu (JS navíc
   nastavuje inline display, aby okno fungovalo i při staré CSS z cache). */
.popup-overlay.is-open {
    display: flex;
}

/* Dlouhý profil se dřív nevešel: .pop-up má height:auto a overflow:hidden,
   takže konec textu zmizel pod okrajem obrazovky. Roluje vnitřek, ne celé
   okno — křížek je absolutní vůči .pop-up, takže zůstane na místě. */
.popup-overlay .pop-up {
    max-height: calc(100vh - 48px);
}

@supports (height: 100dvh) {
    .popup-overlay .pop-up {
        max-height: calc(100dvh - 48px);
    }
}

.popup-overlay .pop-up-content-wrapper {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Křížek byl <div role="button"> — nereagoval na Enter ani mezerník.
   Jako <button> potřebuje zrušit vzhled od prohlížeče (na iOS i nativní tvar). */
button.pop-up-close {
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    line-height: 0;
}

button.pop-up-close:focus-visible {
    opacity: 1;
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 4px;
}

/* Medailonek řečníka, jehož okno by nemělo co ukázat (bez profilu, přednášek
   i prezentací — viz abf_speaker_has_content): zůstává <a>, ale bez href,
   role i tabindexu — tedy neklikací a nedosažitelný tabulátorem. Zbývá
   sundat vizuální sliby: kurzor, reakci na najetí a šipku „vede dál“. */
.abf-speaker-static,
.abf-speaker-static * {
    cursor: default;
}

.speaker-card.abf-speaker-static:hover,
.speaker-row.abf-speaker-static:hover,
.speaker-info.abf-speaker-static:hover {
    color: var(--red);
}

.abf-speaker-static > .icon-32px,
.abf-speaker-static .speaker-arrow {
    visibility: hidden;
}
