/* ============================================================
   hilton.ticketlive.bg – overridy nad redesign style.css
   Načítá se AŽ PO style.css (stejná specificita → vyhrává pořadí).

   Poznámka: dřívější blok pravidel pro rozcestník (#main > .container,
   .main__content--category, .cards--category-layout, .main__toolbar…)
   byl 28. 8. 2026 odstraněn spolu s výpisem událostí — homepage je nově
   single-event a žádná z těch tříd už v šablonách není.
   ============================================================ */

/* ============================================================================
   hilton.ticketlive.bg — hlavička, hero na celý viewport, patička
   ----------------------------------------------------------------------------
   Načítá se až po redesign `style.css`, takže při shodné specificitě vyhrává
   pořadím. Barvy a písma jsou z redesignu: #2d0d30 (tmavá lila), #f4f0ec
   (teplá podkladová), růžový přechod #ff0061 → #ff00bd, Onest + Open Sans.

   ⚠️ Blok `.hphero` v `style.css` je nedodělaný — zůstaly v něm SCSS proměnné
   (`$dark-lila`, `$fluid-64-40`), které prohlížeč zahodí. Hero proto stojí na
   vlastních třídách `.se-*` a o `.hphero` se neopírá.
   ============================================================================ */

:root {
    /* Výška hlavičky: hero se o ni opírá, aby vyplnilo přesně zbytek okna. */
    --hilton-header-h: 86px;
}

.hilton-site {
    background: #f4f0ec;
    color: #2d0d30;
    font-family: "Open Sans", system-ui, sans-serif;
    margin: 0;
}

.hilton-site .skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: #2d0d30;
    color: #fff;
    padding: 12px 20px;
    z-index: 100;
}

.hilton-site .skip-link:focus {
    left: 16px;
    top: 16px;
}

/* --- horní lišta ---------------------------------------------------------- */
.hilton-site .header__bar {
    background: #2d0d30;
    color: #fdfcfb;
    font-size: 0.8125rem;
}

.hilton-site .header__bar-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 40px;
    flex-wrap: wrap;
}

.hilton-site .header__bar-left,
.hilton-site .header__bar-right {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.hilton-site .header__bar a.light-link,
.hilton-site .header__bar-contact {
    color: #fff;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.hilton-site .header__bar a.light-link:hover,
.hilton-site .header__bar a.light-link:focus-visible {
    color: #fff;
}

.hilton-site .header__lang-switcher {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
}

.hilton-site .header__lang-pill {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    color: rgba(253, 252, 251, 0.75);
    text-decoration: none;
}

.hilton-site .header__lang-pill.is-active {
    background: linear-gradient(90deg, #ff0061, #ff00bd);
    color: #fff;
}

/* --- hlavička -------------------------------------------------------------
   ⚠️ `background` níž je NEÚČINNÝ. Vlastní lišta je `.header__desktop` uvnitř
   a tu barví `style.css` selektorem `body > header .header__desktop`
   (specificita 0-2-1) růžovým gradientem #ff0061 → #ff00bd. Obsah hlavičky
   se proto musí barvit na tmavě růžový podklad, ne na světlý. */
.hilton-header {
    background: #fdfcfb;
    position: sticky;
    top: 0;
    z-index: 30;
}

.hilton-header .header__desktop-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.hilton-header__brand {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.header__desktop-logo {
    border-radius: 6px;
}

.hilton-header__domain {
    font-family: "Onest", sans-serif;
    font-size: 0.8125rem;
    color: #fff;
    white-space: nowrap;
}

/* --- navigace v pravém bloku ------------------------------------------------
   Sedí vedle přepínače jazyka; oba drží `.hilton-header__actions` na jedné
   ose, jinak by se nav jako blokový prvek zalomil nad přepínač. */
.hilton-header__actions {
    display: flex;
    align-items: center;
    gap: 20px;
}

.hilton-header__nav {
    display: flex;
    align-items: center;
    min-width: 0;
}

/* Bílá, protože lišta hlavičky je růžový gradient (viz poznámka u .hilton-header).
   Hover jen decentně zešedne — barevný hover by se na gradientu ztratil. */
.hilton-header__nav-link {
    color: #fff;
    text-decoration: none;
    font-family: "Onest", sans-serif;
    font-weight: 600;
    font-size: 0.9375rem;
    padding: 8px 4px;
    white-space: nowrap;
    transition: color 0.2s ease;
}

.hilton-header__nav-link:hover {
    color: #ece7ec;
}

.hilton-header__nav-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
    border-radius: 4px;
}

.hilton-header__actions .header__desktop-right-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #2d0d30;
    text-decoration: none;
    font-family: "Onest", sans-serif;
    font-weight: 600;
    font-size: 0.875rem;
}

.hilton-header__actions .header__desktop-right-link:hover {
    color: #ff0061;
}

/* --- jazykový přepínač (dropdown v hlavičce) ------------------------------
   Nahradil odkaz „Moje vstupenky“. Zavírání a otevírání řeší vanilla JS
   v base šabloně přes třídu `.is-open` na `.hilton-lang`. */
.hilton-lang {
    position: relative;
    font-family: "Onest", sans-serif;
}

.hilton-lang__toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(45, 13, 48, 0.15);
    border-radius: 999px;
    background: #fff;
    color: #2d0d30;
    font-family: inherit;
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1;
    cursor: pointer;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.hilton-lang__toggle:hover,
.hilton-lang.is-open .hilton-lang__toggle {
    border-color: #ff0061;
    color: #ff0061;
}

.hilton-lang__toggle:focus-visible {
    outline: 2px solid #ff0061;
    outline-offset: 2px;
}

.hilton-lang__flag {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
    /* Vlajky jsou obdélníkové SVG — kroužek jim ubere okraje, ale drží
       hlavičku klidnou i při různém poměru stran (BG 5:3, UK 2:1). */
}

.hilton-lang__caret {
    transition: transform 0.2s ease;
}

.hilton-lang.is-open .hilton-lang__caret {
    transform: rotate(180deg);
}

.hilton-lang__menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 190px;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border: 1px solid rgba(45, 13, 48, 0.12);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(45, 13, 48, 0.16);
    z-index: 40;
    display: none;
}

.hilton-lang.is-open .hilton-lang__menu {
    display: block;
}

.hilton-lang__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    color: #2d0d30;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
}

.hilton-lang__item:hover {
    background: #f4f0ec;
    color: #ff0061;
}

.hilton-lang__item.is-active {
    background: linear-gradient(90deg, #ff0061, #ff00bd);
    color: #fff;
}

/* --- tlačítko ------------------------------------------------------------- */
.se-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 26px;
    border-radius: 999px;
    font-family: "Onest", sans-serif;
    font-weight: 600;
    font-size: 0.9375rem;
    line-height: 1;
    text-decoration: none;
    border: 1px solid transparent;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.se-btn--primary {
    background: linear-gradient(90deg, #ff0061, #ff00bd);
    color: #fff;
    box-shadow: 0 10px 24px rgba(255, 0, 97, 0.25);
}

.se-btn--primary:hover,
.se-btn--primary:focus-visible {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(255, 0, 97, 0.32);
}

.se-btn--lg {
    padding: 18px 36px;
    font-size: 1.0625rem;
}

/* --- karusel akcí na titulní straně --------------------------------------- */
/* Návrh „2a — Event hub": pás bannerů v poměru 2,5 : 1, pod ním tmavý popisový
   pruh se štítkem, názvem, termínem, místem a tlačítkem.

   ⚠️ Stojí to na vlastních třídách `.hi-*`, ne na komponentě `.carousel`
   z redesignového `style.css`. Ta počítá s náhledovými dlaždicemi po straně
   (`.carousel__thumbnails*`), které tady nejsou, a její pravidla by se
   s tímhle rozvržením praly. */
.hi-carousel {
    position: relative;
    background: #2d0d30;
}

.hi-carousel__viewport {
    overflow: hidden;
}

.hi-carousel__track {
    display: flex;
    will-change: transform;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ⚠️ `min-width: 0` je nutné. Bez něj by flexový potomek narostl podle svého
   obsahu (dlouhý název akce v pruhu) a slidy by se rozjely mimo osu posuvu —
   `translateX(-100%)` by pak neukázal druhý slide, ale jeho kus. */
.hi-carousel__slide {
    flex: 0 0 100%;
    min-width: 0;
}

.hi-carousel__media {
    display: block;
}

.hi-carousel__image {
    display: block;
    width: 100%;
    aspect-ratio: 2.5;
    object-fit: cover;
    object-position: center 30%;
}

/* Vrstva ovládání kopíruje plochu banneru (stejný poměr stran), takže šipky
   i tečky sedí nad jeho spodní hranou v jakékoliv šířce okna — bez měření
   výšky v JS. Sama kliky nechytá, jinak by překryla odkaz na banneru;
   chytají je až tlačítka přes `pointer-events: auto`. */
.hi-carousel__controls {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    aspect-ratio: 2.5;
    pointer-events: none;
    z-index: 2;
}

.hi-carousel__arrows {
    position: absolute;
    left: clamp(16px, 4vw, 64px);
    bottom: 26px;
    display: flex;
    gap: 12px;
}

.hi-carousel__arrow {
    pointer-events: auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(45, 13, 48, 0.55);
    backdrop-filter: blur(6px);
    color: #fff;
    cursor: pointer;
    transition: background 0.15s ease;
}

.hi-carousel__arrow:hover,
.hi-carousel__arrow:focus-visible {
    background: rgba(45, 13, 48, 0.85);
}

.hi-carousel__dots {
    position: absolute;
    right: clamp(16px, 4vw, 64px);
    bottom: 34px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.hi-carousel__dot {
    pointer-events: auto;
    width: 34px;
    height: 5px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    transition: background 0.15s ease;
}

.hi-carousel__dot.is-active {
    background: #fff;
}

/* --- popisový pruh pod bannerem ------------------------------------------- */
.hi-carousel__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 24px clamp(16px, 4vw, 64px);
    background: #2d0d30;
    color: #fdfcfb;
}

.hi-carousel__bar-main {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.hi-carousel__label {
    flex: none;
    background: #d1c4e9;
    color: #2d0d30;
    border-radius: 999px;
    padding: 7px 16px;
    font-family: "Onest", sans-serif;
    font-weight: 700;
    font-size: 0.8125rem;
    white-space: nowrap;
}

.hi-carousel__title {
    font-family: "Onest", sans-serif;
    font-weight: 700;
    font-size: clamp(1.125rem, 1.8vw, 1.5rem);
    line-height: 1.15;
    margin: 0;
    text-wrap: balance;
}

.hi-carousel__meta {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    padding: 0;
    margin: 6px 0 0;
    font-size: 0.9375rem;
    color: rgba(253, 252, 251, 0.8);
}

.hi-carousel__meta li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.hi-carousel__meta svg {
    flex: none;
    opacity: 0.75;
}

.hi-carousel__bar-actions {
    flex: none;
}

/* --- seznam akcí pod karuselem -------------------------------------------- */
/* Návrh „2a — Event hub", spodní polovina: nadpis a perex vlevo, pod nimi
   mřížka karet po dvou. Karta drží obrázek nahoře a tlačítko přišpendlené
   dole, aby řada karet měla tlačítka v jedné lince i při různě dlouhých
   názvech (`margin-top: auto` na patičce + `flex-direction: column`).

   Sekce se zarovnává `.container`em ze `style.css` (1440 px, padding 64 px),
   tedy na stejnou osu jako hlavička a patička. */
.hi-events {
    padding: clamp(32px, 5vw, 56px) 0 clamp(40px, 6vw, 64px);
}

.hi-events__head {
    max-width: 760px;
    margin-bottom: clamp(24px, 3vw, 36px);
}

.hi-events__title {
    font-family: "Onest", sans-serif;
    font-weight: 700;
    font-size: clamp(1.5rem, 3vw, 2rem);
    line-height: 1.05;
    margin: 0 0 12px;
    color: #2d0d30;
    text-wrap: balance;
}

.hi-events__lead {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.5;
    color: rgba(45, 13, 48, 0.75);
    text-wrap: pretty;
}

/* Dva sloupce natvrdo, jak je v návrhu — ne `auto-fill`. Ten by na 1440 px
   nacpal do řady tři karty (1312 px obsahu / 320 px minimum), takže by se
   šířka karty měnila s počtem akcí v bookeru a s návrhem by se rozešla. */
.hi-events__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.hi-event-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(45, 13, 48, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.hi-event-card:hover,
.hi-event-card:focus-within {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(45, 13, 48, 0.18);
}

.hi-event-card__media {
    display: block;
    background: #2d0d30;
}

/* Box obrázku má ZADANÝ poměr master banneru — 1633 : 816. Není to 2 : 1
   a schválně se to na 2 : 1 nezaokrouhluje: poměr je tady proto, aby měly
   všechny karty v řadě obrázek stejně vysoký a mřížka byla srovnaná, takže
   musí odpovídat tomu, co se do něj reálně nahrává.

   `contain` drží požadavek „obrázek musí být vidět celý, bez ořezu": banner
   ve správném poměru box vyplní přesně, cokoliv jiného se do něj vejde celé
   a kolem zůstane tmavé pozadí z `.hi-event-card__media` — stejná barva jako
   podklad banneru v karuselu, takže to působí jako záměr, ne jako díra.

   ⚠️ `cover` sem NEPATŘÍ, i kdyby vypadalo „čistěji" — ořezalo by přesně ten
   banner, kvůli kterému se na master obrázek přecházelo.

   ⚠️ Až se změní rozměr nahrávaných bannerů, mění se hodnota TADY. Šablona
   posílá i rozměry originálu jako `width`/`height`, ale ty jsou jen záložní
   informace pro prohlížeč — o výšce boxu rozhoduje tenhle `aspect-ratio`.

   ⚠️ `height: auto` je POVINNÉ, ne kosmetika. Atributy `width`/`height` na
   `<img>` se uplatňují jako prezentační hint, takže bez tohohle řádku by měl
   prvek zadanou šířku (`100%`) i výšku (`816px` z atributu) — a `aspect-ratio`
   se u prvku s oběma rozměry IGNORUJE. Box by pak byl 644 × 816 místo
   644 × 322 a `contain` by kolem obrázku nechal široké pruhy pozadí.
   Přesně tak to 7. 9. 2026 vypadalo na produkci. */
.hi-event-card__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1633 / 816;
    object-fit: contain;
}

.hi-event-card__body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1;
    padding: 28px;
}

.hi-event-card__title {
    font-family: "Onest", sans-serif;
    font-weight: 700;
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    line-height: 1.1;
    margin: 0;
    text-wrap: balance;
}

/* Celá karta se zvedá na hover, ale klikací je jen odkaz — název proto nese
   barvu textu, ne odkazu, a podtržení naskočí až na hover. */
.hi-event-card__title a {
    color: #2d0d30;
    text-decoration: none;
}

.hi-event-card__title a:hover,
.hi-event-card__title a:focus-visible {
    color: #2d0d30;
    text-decoration: underline;
}

/* Anotace může být libovolně dlouhá — v kartě z ní jsou nejvýš dva řádky.
   `line-clamp` bez `-webkit-` prefixu zatím neprošel do všech prohlížečů,
   proto obojí; prohlížeč bez podpory vypíše odstavec celý, což kartu jen
   prodlouží. */
.hi-event-card__perex {
    margin: 0;
    font-size: 1rem;
    line-height: 1.5;
    color: rgba(45, 13, 48, 0.7);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

.hi-event-card__meta {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin: 0;
    padding: 0;
    font-size: 0.9375rem;
    color: rgba(45, 13, 48, 0.85);
}

.hi-event-card__meta li {
    display: flex;
    align-items: center;
    gap: 9px;
}

.hi-event-card__meta svg {
    flex: none;
    color: #ff0061;
}

/* `margin-top: auto` přišpendlí patičku ke dnu karty — bez toho by u kratší
   karty vylezla nahoru a tlačítka v řadě by se rozjela. */
.hi-event-card__foot {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid rgba(45, 13, 48, 0.12);
    display: flex;
    justify-content: flex-end;
}


.footer {
    border-radius: 0;
}

.hilton-footer__logo-link {
    display: inline-block;
    margin-bottom: 22px;
}

.hilton-footer__logo {
    filter: brightness(0) invert(1);
}

.hilton-footer .footer__contact-row {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

.hilton-footer .footer__contact-row svg {
    flex: none;
    margin-top: 3px;
}

.hilton-footer .footer__contact-row p {
    margin: 0;
    line-height: 1.6;
    font-size: 0.9375rem;
}

.hilton-footer .footer__contact-row a {
    color: #fdfcfb;
    text-decoration: none;
}

.hilton-footer .footer__contact-row a:hover {
    color: #ff4da0;
}

.hilton-footer .color-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-left: 4px;
}

.hilton-footer .color-dot.green {
    background: #38d17a;
}

.hilton-footer .footer__socials {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

.hilton-footer .footer__socials a {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.1);
}

.hilton-footer .footer__socials a:hover {
    background: linear-gradient(90deg, #ff0061, #ff00bd);
}

.footer .footer__columns .footer__subtitle {
    pointer-events: none;
}

.hilton-footer .footer__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.hilton-footer .footer__list-item {
    margin-bottom: 10px;
}

.hilton-footer .footer__link {
    color: #fdfcfb;
    text-decoration: none;
    font-size: 0.9375rem;
    line-height: 1.45;
}

.hilton-footer .footer__link:hover {
    color: #ff4da0;
}

.hilton-footer .footer__payment-wrapper {
    margin-top: 44px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.hilton-footer .footer__payment-content {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 0.8125rem;
    color: rgba(253, 252, 251, 0.55);
}

.hilton-footer .footer__payment-options {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.hilton-footer .footer__payment-options img {
    height: 22px;
    width: auto;
}

.hilton-footer .footer__copyright-document {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.8125rem;
    color: rgba(253, 252, 251, 0.55);
}

body>.header .header__desktop {
    display: block;
}

@media screen and (max-width: 47.99875rem) {
    body>.header {
        top: 0;

    }

    .footer {
        padding-top: 70px;
    }

    body>header .header__desktop {
        padding: 4px 0;
        background: linear-gradient(90deg, #ff0061, #ff00bd);
        position: relative;
        z-index: 1;
    }

    .hilton-header__brand {
        width: 10rem;
    }

    .footer .footer__columns .footer__subtitle {
        pointer-events: auto;
    }

    .hilton-footer .footer__copyright-document {
        border-top: 0;
        margin-bottom: 20px;
        margin-top: 20px;
    }
}

/* --- responzivita --------------------------------------------------------- */


@media screen and (max-width: 48rem) {
    :root {
        --hilton-header-h: 60px;
    }

    .hilton-site .container {
        padding: 0 20px;
    }

    .hilton-header__domain {
        display: none;
    }

    .hilton-header .header__desktop-content {
        min-height: 60px;
    }

    /* Na úzké obrazovce zůstane v tlačítku jen vlajka a šipka — název jazyka
       je i tak vidět v rozbaleném seznamu. */
    .hilton-header__actions {
        gap: 12px;
    }

    .hilton-header__nav-link {
        font-size: 0.875rem;
        padding: 6px 4px;
    }

    .hilton-lang__toggle {
        padding: 6px 10px;
    }

    .hilton-lang__code {
        display: none;
    }

    .hilton-lang__menu {
        min-width: 170px;
    }

    /* Na úzkém displeji se pruh láme pod sebe a tlačítko jde přes celou šířku —
       vedle sebe by na název akce zbylo pár znaků. */
    .hi-carousel__bar {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        padding-top: 20px;
        padding-bottom: 22px;
    }

    .hi-carousel__bar-main {
        flex-wrap: wrap;
        gap: 12px;
    }

    .hi-carousel__bar-actions .se-btn {
        width: 100%;
    }

    /* Banner má na mobilu při poměru 2,5 : 1 sotva 150 px, takže se ovládání
       musí stáhnout k jeho hraně — jinak šipky přelezou přes pruh pod ním. */
    /* Pod 48 rem se `minmax(320px, …)` z mřížky nevejde do 20px paddingu
       containeru na úzkých telefonech (320 px viewport) — jeden sloupec se
       proto vynutí natvrdo. */
    .hi-events__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .hi-event-card__body {
        padding: 20px;
        gap: 12px;
    }

    .hi-event-card__foot .se-btn {
        width: 100%;
    }

    .hi-carousel__arrows {
        bottom: 10px;
        gap: 8px;
    }

    .hi-carousel__arrow {
        width: 36px;
        height: 36px;
    }

    .hi-carousel__dots {
        bottom: 16px;
    }

    .hi-carousel__dot {
        width: 24px;
    }

}

/* ============================================================================
   Detail události — hero přes celou šířku, obsah pod ním zúžený
   ----------------------------------------------------------------------------
   ⚠️ `hilton-event-detail.css` se načítá AŽ ZA tímhle souborem (přidává ho
   `{% block stylesheets %}` v šabloně detailu), takže pravidlo se stejnou
   specificitou jako tam — `#event-detail .hero` (1-1-0) — by prohrálo pořadím.
   Všechno níž proto nese navíc `.hilton-site` z <body> (1-2-0).

   HTML se nemění, jen šířky a odsazení.
   ============================================================================ */

/* Hero jde od kraje ke kraji: pryč zaoblení i mezera pod hlavičkou. */
.hilton-site #event-detail .hero {
    border-radius: 0;
    margin: 0 0 40px;
}
#event-detail {
    padding-top: 0!important;
    padding-left: 0!important;
    padding-right: 0!important;
}
/* Obsah hera se ale zarovná na stejnou osu jako hlavička, patička a blok pod
   ním — na širokém monitoru by jinak text ležel u samého okraje okna. */
.hilton-site #event-detail .hero .hero__inner {
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    padding: 64px;
}
input {
   padding: 0; 
}
label {
    display: initial;
}
/* Popis události i celý booker (`.event-detail-description` obaluje obojí)
   drží čitelnou šířku a stojí na střed. */
.hilton-site #event-detail .event-detail-description {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 64px;
}

@media screen and (max-width: 64rem) {
    .hilton-site #event-detail .hero .hero__inner { padding: 48px 32px; }
    .hilton-site #event-detail .event-detail-description { padding: 0 32px; }
}

@media screen and (max-width: 48rem) {
    .hilton-site #event-detail .hero .hero__inner { padding: 32px 20px; }
    .hilton-site #event-detail .event-detail-description { padding: 0 20px; }
}

/* ----------------------------------------------------------------------------
   Detail události — vizuální doladění (bez zásahu do HTML)
   ---------------------------------------------------------------------------- */

/* 1) Hero: gradientový scrim místo plošného ztmavení.
      Plošných 70 % přes celou fotku ji jen zašedne. Gradient nechá plakát
      nahoře dýchat a dole vytvoří plnou plochu, na které je text čitelný —
      stejný princip, jaký měl scrim zrušeného hero na titulní straně. */
.hilton-site #event-detail .hero .hero__overlay {
    background-color: transparent;
    background-image: linear-gradient(
        180deg,
        rgba(45, 13, 48, 0.25) 0%,
        rgba(45, 13, 48, 0.72) 55%,
        rgba(45, 13, 48, 0.94) 100%
    );
}

/* 2) Plakát vpravo jako karta, ne plovoucí miniatura.
      Stejný obrázek je i na pozadí, takže tenhle musí vypadat záměrně:
      pevný strop výšky, ořez, stín a světlý lem, aby se oddělil od pozadí. */
.hilton-site #event-detail .hero .hero__right {
    width: 34%;
    max-width: 360px;
    align-self: center;
}

.hilton-site #event-detail .hero .hero__right .hero__right-image {
    max-height: 20rem;
    object-fit: cover;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 18px 40px rgba(20, 5, 22, 0.45);
}

/* Chip s místem konání — ať se neplete s popiskem nad nadpisem. */
.hilton-site #event-detail .hero .hero__meta .hero__meta-item {
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* 4) Tlačítka do firemní palety.
      Bootstrap sem tahá zelenou (potvrzení objednávky), modrou (rozbalení
      popisu) a světle modrý akordeon — tři barevné světy na jedné stránce.
      Necháváme HTML být a jen je přebarvujeme na růžový gradient značky. */
.hilton-site #event-detail .btn-success,
.hilton-site #event-detail .btn-info,
.hilton-site #event-detail .btn-primary {
    background: linear-gradient(90deg, #ff0061, #ff00bd);
    border: 0;
    color: #fff;
    font-family: "Onest", sans-serif;
    font-weight: 600;
    border-radius: 999px;
    box-shadow: none;
}

.hilton-site #event-detail .btn-success:hover,
.hilton-site #event-detail .btn-info:hover,
.hilton-site #event-detail .btn-primary:hover,
.hilton-site #event-detail .btn-success:focus,
.hilton-site #event-detail .btn-info:focus,
.hilton-site #event-detail .btn-primary:focus {
    background: linear-gradient(90deg, #e60057, #e600aa);
    color: #fff;
}

/* Hlavní CTA objednávky ať je vidět, že je hlavní. */
.hilton-site #event-detail .btn-success.float-end {
    padding: 12px 28px;
    font-size: 1rem;
}

/* Akordeon „2. Order“ — bez bootstrapovské světle modré. */
.hilton-site #event-detail .accordion-button:not(.collapsed) {
    background-color: rgba(255, 0, 189, 0.08);
    color: #2d0d30;
    box-shadow: none;
}

.hilton-site #event-detail .accordion-button:focus {
    border-color: rgba(255, 0, 97, 0.4);
    box-shadow: 0 0 0 0.2rem rgba(255, 0, 97, 0.15);
}

/* 5) Popisky u řádků vstupenek se opakují u každého řádku — ztlumit,
      ať oko jde po názvu, ceně a tlačítku, ne po čtyřech „Kategorie“. */
.hilton-site #event-detail .area-tickets__label {
    font-size: 0.6875rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.65;
}

/* 6) Plánek sálu jako karta — jinak visí v prázdné bílé ploše.
      ⚠️ `overflow-x` tu není kosmetika. Plánek je image map a `maphilight`
      z něj udělá obalový `<div>` s pevnou šířkou v PIXELECH (`width: this.width`,
      plánek jako `background-image`). Ten obal nemá žádnou třídu, takže na něj
      nedosáhne ani `.content-img-responsive img { max-width: 100% }`
      z `microsite.css`. Přepočet po změně okna běží až s 250ms debounce
      (`myEfficientFn` v šabloně detailu), takže mezitím je obal širší než karta
      a přetékal přes její pravé odsazení.
      Necháváme ho tedy rolovat uvnitř karty — cesta „ořezat" by plánek zkrátila
      a `max-width` na obalu by rozhodilo souřadnice klikacích zón, protože
      výška zůstává v pixelech.

      `position: relative` je druhá polovina opravy. Přepočet po resize běží
      (`window.addEventListener('resize', myEfficientFn)`), ale maphilight nechává
      obrázku inline `position: absolute` z `canvas_style` i po vybalení z obalu.
      Absolutně pozicovanému prvku se `max-width: 100%` počítá proti nejbližšímu
      pozicovanému předkovi — bez tohohle řádku tedy proti něčemu nad kartou,
      takže přepočtená šířka nebyla ničím svázaná se šířkou karty a přetečení
      nezmizelo ani po doběhnutí debounce. S `relative` se počítá proti kartě. */
.hilton-site #event-detail .content-img-responsive {
    position: relative;
    background: #f4f0ec;
    border-radius: 16px;
    /* Odsazení je BORDEREM, ne paddingem — schválně. Procenta se u absolutně
       pozicovaného prvku počítají proti PADDING BOXU containing blocku, takže
       s `padding: 24px` mohl obal vyjít o 48 px širší než obsahová plocha
       a naskočil scrollbar. S borderem se padding box rovná obsahové ploše. */
    border: 24px solid #f4f0ec;
    overflow-x: auto;
    overflow-y: hidden;
}

/* 7) Rytmus mezer mezi popisem, plánkem a seznamem vstupenek. */
.hilton-site #event-detail .event-detail-description-column-1 {
    margin-bottom: 40px;
}

@media screen and (max-width: 48rem) {
    .hilton-site #event-detail .hero .hero__right .hero__right-image { max-height: 14rem; }
    .hilton-site #event-detail .content-img-responsive { border-width: 12px; }
}

/* ----------------------------------------------------------------------------
   Košík — platba voucherem (`components/order-form.html.twig`)
   ----------------------------------------------------------------------------
   Blok přišel s bootstrapovskou modrou hlavičkou, modrou a zelenou ikonou
   u vstupů a modro-oranžovými rámy u variant platby. Sjednocujeme na paletu
   značky, HTML se nemění.

   ⚠️ `!important` je tu nezbytné, ne z lenosti: Bootstrap 5 dává utilitám
   `.bg-*` a `.border-*` `!important` přímo v deklaraci, takže bez toho se
   přebít nedají ani vyšší specificitou.
   ---------------------------------------------------------------------------- */

/* Hlavička „Voucher Payment“ */
.hilton-site #event-detail #voucherPaymentSection .card-header.bg-primary {
    background: linear-gradient(90deg, #ff0061, #ff00bd) !important;
}

/* Tělo bloku ať drží pohromadě jako karta */
.hilton-site #event-detail #voucherPaymentSection {
    background: #fff;
    box-shadow: 0 10px 28px rgba(45, 13, 48, 0.10);
    overflow: hidden;
}

.hilton-site #event-detail #voucherContainer.bg-light {
    background: #f4f0ec !important;
    border-radius: 16px;
}

/* Ikony u polí Voucher Code / PIN — jedna barva místo modré a zelené */
.hilton-site #event-detail #voucherContainer .input-group-text.bg-primary,
.hilton-site #event-detail #voucherContainer .input-group-text.bg-success {
    background: #2d0d30 !important;
    color: #fff !important;
}

/* Ikona vlevo byla vyšší než samo pole.
   ⚠️ Příčina je v redesignu: `style.css` má GLOBÁLNÍ `input { margin-bottom: 16px }`.
   V Bootstrapové `.input-group` je vstup flexový potomek, takže mu ten spodní
   margin sebere 16 px z výšky řádku — a sousední `.input-group-text` (span,
   bez marginu) se proti němu tváří vyšší. Není to o paddingu ani o `fs-6`.
   Sráží se to tady, ne globálně: `input { margin-bottom }` má redesign
   pro samostatná pole ve svých formulářích, kde je správný.

   Platí to pro každou Bootstrapovou `.input-group` na detailu události, ne jen
   pro voucher, proto je selektor na `#event-detail`. Minimální výška je
   pojistka, aby řádek nekolaboval, kdyby margin někdo vrátil. */
.hilton-site #event-detail .input-group {
    align-items: stretch;
}

.hilton-site #event-detail .input-group > .form-control {
    margin-bottom: 0;
    min-height: 3rem;
}

.hilton-site #event-detail .input-group > .input-group-text {
    min-height: 3rem;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

/* Ikonky v popiskách polí měly „primary“ modrou a „success“ zelenou */
.hilton-site #event-detail #voucherContainer .form-label .text-primary,
.hilton-site #event-detail #voucherContainer .form-label .text-success {
    color: #ff0061 !important;
}

/* Rámy variant platby: plná / částečná / doplňková metoda */
.hilton-site #event-detail #fullPaymentOption.border-primary,
.hilton-site #event-detail #partialPaymentOption.border-warning,
.hilton-site #event-detail #partialPaymentOptions .border-info {
    border-color: rgba(255, 0, 97, 0.35) !important;
}

.hilton-site #event-detail #partialPaymentOptions.bg-light {
    background: #f4f0ec !important;
}

/* Zbývající hodnota voucheru — oranžový badge na růžový gradient */
.hilton-site #event-detail #voucherPartialAmount.bg-warning {
    background: linear-gradient(90deg, #ff0061, #ff00bd) !important;
    color: #fff !important;
}

/* Zaškrtávátka variant platby v barvě značky */
.hilton-site #event-detail #voucherContainer .form-check-input:checked {
    background-color: #ff0061;
    border-color: #ff0061;
}

.hilton-site #event-detail #voucherContainer .form-check-input:focus {
    border-color: rgba(255, 0, 97, 0.5);
    box-shadow: 0 0 0 0.2rem rgba(255, 0, 97, 0.15);
}

/* Vstupy: viditelný stav zaměření, jinak splývají s podkladem */
.hilton-site #event-detail #voucherContainer .form-control:focus {
    border-color: rgba(255, 0, 97, 0.5) !important;
    box-shadow: 0 0 0 0.2rem rgba(255, 0, 97, 0.15);
}

/* ⚠️ KOLIZE TŘÍDY `.card` — redesign vs. Bootstrap.
   `style.css` má vlastní komponentu karty události:

       .card { height: 400px; padding: 80px 24px 24px; overflow: hidden; }

   Booker ale používá `.card` v bootstrapovském významu (obyčejný obal), takže
   každá jeho karta na detailu dostala PEVNOU výšku 400 px, 80px horní odsazení
   a `overflow: hidden`. Projevy: prázdný 400px blok u popisu platební metody
   (`#desc_1` s jedním řádkem textu) a ořezaný obsah tam, kde je karta vyšší —
   například platební varianty, které se rozbalí po ověření voucheru.

   Detail události je celý bootstrapovský svět, komponenta karty z redesignu se
   tu nepoužívá, takže ji tady vypínáme. Řeší to i budoucí bootstrapovské karty,
   ne jen ty dnešní.

   ⚠️ `:not(.collapsing)` je nutné. Rozbalovací popisy platebních metod jsou
   `collapse card card-body` a Bootstrap animuje jejich výšku přes třídu
   `.collapsing`, která má vlastní `overflow: hidden` (specificita 0-1-0).
   Bez té výjimky by ji naše pravidlo (0-3-0) přebilo, obsah by během animace
   nebyl ničím ořezaný a na okamžik by přetékal přes zbytek stránky —
   typicky celý voucher, než mu doskočí výška obalu. */
.hilton-site #event-detail .card {
    height: auto;
    /* ⚠️ `min-height` je nutné nulovat zvlášť. Pod 48rem má redesign
       `.card { padding: 72px 16px 16px; min-height: 370px; height: auto }`,
       takže samotné `height: auto` na mobilu nic neudělá a prázdná karta
       tam zůstane vysoká 370 px. */
    min-height: 0;
    padding: 0;
    will-change: auto;
    transform: none;
}

/* Ořezání se vrací jen v ustáleném stavu. Během animace ho musí řídit
   Bootstrap (`.collapsing { overflow: hidden }`) — jinak by obsah nebyl ničím
   ořezaný a na okamžik přetékal přes zbytek stránky, typicky celý voucher,
   než mu doskočí výška obalu. Výšku během animace nastavuje Bootstrap inline,
   takže `height: auto` výš jí nevadí. */
.hilton-site #event-detail .card:not(.collapsing) {
    overflow: visible;
}

/* Obal popisu platební metody sevřít — uvnitř má voucher vlastní kartu,
   dvojité odsazení dělalo z bloku zbytečně velký rám. */
.hilton-site #event-detail #desc_9.card-body {
    padding: 0.25rem !important;
    border-color: rgba(45, 13, 48, 0.10);
}

/* ⚠️ KOLIZE TŘÍDY `.modal` — redesign vs. Bootstrap (stejný případ jako `.card` výš).
   `style.css` má vlastní komponentu modálu:

       .modal { position: fixed; inset: 0; display: flex; padding: 24px;
                overflow: hidden; z-index: 20; visibility: hidden;
                transform: translateY(100%); transition: … }

   Booker ale používá `.modal` v bootstrapovském významu. Bootstrap při otevření
   nastaví jen inline `display: block` a přidá `.show` — o `visibility`, `transform`
   ani `z-index` se nestará, protože ve svém CSS je nemá. Redesign se načítá až za
   Bootstrapem a má stejnou specificitu (0-1-0), takže vyhrává pořadím a otevřený
   modál zůstane NEVIDITELNÝ:

   - `visibility: hidden` ho schová,
   - `transform: translateY(100%)` ho odsune o celou výšku okna pod fold,
   - `z-index: 20` ho schová pod `.modal-backdrop` (Bootstrap 1050).

   Projev: klik na zónu v plánku sálu ztmavil stránku (backdrop naskočil), ale výběr
   místa se nikde neobjevil. Týká se to VŠECH bootstrapovských modálů na microsite —
   výběru sedadla (`#s_zona_*_wrapper`), partnerského ověření i `#loadingModal`.

   ⚠️ `#loadingModal` je MIMO `#event-detail` (je až za ním v šabloně detailu), proto
   je v selektoru zvlášť — samotné `#event-detail .modal` by ho minulo.

   Komponenta modálu z redesignu se na téhle microsite nikde nepoužívá (base ani
   homepage ji nemají), takže tu Bootstrapu nic nebereme. Kdyby ji sem někdo přidal,
   používá modifikátory `.modal--*` a `.is-visible` — pak je potřeba selektory zúžit,
   ne tohle pravidlo rozšířit na celý web. */
.hilton-site #event-detail .modal,
.hilton-site #loadingModal {
    /* Zavřený modál musí zůstat mimo layout. `display: block` si Bootstrap při
       otevření nastaví inline, a inline styl tohle pravidlo přebije. */
    display: none;
    padding: 0;
    /* Vysoký plánek sálu se musí dát vyrolovat — redesignové `overflow: hidden`
       by ho uřízlo bez možnosti scrollu. */
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 1055;
    visibility: visible;
    transform: none;
    transition: none;
}
