/* ═══════════════════════════════════════════════════
   KULTURA – Minimalist Luxury Design System
   ═══════════════════════════════════════════════════ */

/* ── Font Face ── všechny váhy na začátku pro okamžité načtení */
@font-face { font-family: 'Lufga'; src: url('../fonts/lufga-regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Lufga'; src: url('../fonts/lufga-regular.otf') format('opentype'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Lufga'; src: url('../fonts/lufga-semibold.otf') format('opentype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Lufga'; src: url('../fonts/lufga-semibold.otf') format('opentype'); font-weight: 700; font-style: normal; font-display: swap; }

:root {
    --primary: #005FBE;
    --primary-light: #3380CE;
    --primary-hover: #004A96;
    --accent: #c9a96e;
    --accent-light: #e8d5b0;
    --bg: #faf9f7;
    --bg-card: #ffffff;
    --text-main: #1a1a2e;
    --text-secondary: #4a4a5a;
    --text-muted: #8a8a9a;
    --border-color: rgba(0,0,0,.04);
    --shadow-xs: 0 1px 2px rgba(0,0,0,.03);
    --shadow-sm: 0 1px 3px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.03);
    --shadow-md: 0 2px 8px rgba(0,0,0,.04), 0 12px 32px rgba(0,0,0,.06);
    --shadow-lg: 0 4px 12px rgba(0,0,0,.03), 0 20px 48px rgba(0,0,0,.08);
    --radius-sm: 12px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --transition-smooth: cubic-bezier(.22, 1, .36, 1);
}

/* MD+ zvětšení písma: 18px base = +12.5% na všechny rem hodnoty */
@media (min-width: 768px) {
    html { font-size: 18px !important; }
}

body {
    font-family: 'Lufga', sans-serif;
    font-weight: 400;
    background: var(--bg);
    color: var(--text-main);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -.005em;
}

.heading-font {
    font-family: 'Lufga', sans-serif;
    font-weight: 600;
    color: var(--text-main);
    letter-spacing: -.02em;
}

/* ── Navbar ── */
.navbar {
    background: rgba(255, 255, 255, .85);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom: none;
    box-shadow: 0 1px 0 rgba(0,0,0,.04);
    padding-top: .85rem;
    padding-bottom: .85rem;
    z-index: 1030;
}

.navbar-brand {
    font-weight: 600;
    font-size: 1.3rem;
    color: var(--text-main) !important;
    letter-spacing: -.02em;
}

.navbar-nav .nav-link {
    color: var(--text-secondary);
    font-weight: 500;
    padding: 0.5rem 1.1rem;
    transition: color .25s ease;
    font-size: .92rem;
    letter-spacing: -.005em;
}

.navbar-nav .nav-link:hover { color: var(--text-main); }
.navbar-nav .nav-link.active { color: var(--text-main); font-weight: 600; }

.navbar-nav .nav-link.btn {
    border-radius: 10px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.navbar-nav .nav-link.btn.btn-primary {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #fff !important;
}

.navbar-nav .nav-link.btn.btn-danger {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}

.navbar-nav .nav-link.btn.btn-primary:hover {
    background-color: var(--primary-light) !important;
    border-color: var(--primary-light) !important;
    color: #fff !important;
}

.navbar-nav .nav-link.btn.btn-danger:hover {
    background-color: #bb2d3b !important;
    border-color: #b02a37 !important;
    color: #fff !important;
}

.navbar-nav .nav-link.btn.btn-outline-primary {
    background-color: transparent !important;
    border: 1.5px solid var(--primary) !important;
    color: var(--primary) !important;
}
.navbar-nav .nav-link.btn.btn-outline-primary:hover {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #fff !important;
}
.navbar-nav .nav-link.btn.btn-outline-primary.active {
    background-color: transparent !important;
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

.navbar-nav .nav-link.btn.active { color: #fff !important; }

.dropdown-menu {
    border: none;
    box-shadow: var(--shadow-lg);
    border-radius: var(--radius-md);
    padding: 8px;
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(20px);
}

.dropdown-item {
    border-radius: 10px;
    padding: 0.6rem 1rem;
    font-weight: 500;
    transition: all 0.2s ease;
    color: var(--text-secondary);
}

.dropdown-item:hover { background: var(--bg); color: var(--text-main); }
.navbar-toggler { border: none; padding: 0.5rem; }
.navbar-toggler:focus { box-shadow: none; }

/* ── Hero (legacy) ── */
.hero-img-wrap {
    aspect-ratio: 3/2;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--transition-smooth);
    will-change: transform;
}

.hero-img-wrap:hover .hero-img { transform: scale(1.04); }

.hero-title {
    font-size: 2.6rem;
    font-weight: 600;
    line-height: 1.08;
    color: var(--text-main);
    letter-spacing: -.03em;
}

.event-meta-lg {
    font-size: .95rem;
    color: var(--text-main);
    font-weight: 400;
}
.event-meta-lg i { opacity: .6; }

/* ── Section Headers ── */
.section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: .75rem;
    border-bottom: none;
    padding-bottom: 0;
    gap: 1rem;
}

.hero-section { margin-bottom: 3.5rem; }

/* ── Unified homepage section spacing ── */
.spotlight-section,
.places-section,
.categories-section,
.events-section { margin-top: 0; padding-top: 0; }
.events-section > .row.g-4 { margin-top: 0; }
.events-section--flush { margin-top: 0 !important; }
.section-header + .events-section--flush { margin-top: -0.25rem !important; }
.events-section .section-header { margin-top: 0; }
.spotlight-section:first-child { margin-top: 0; }

/* Homepage-only section spacing */
.homepage-sections .spotlight-section,
.homepage-sections .places-section,
.homepage-sections .categories-section,
.homepage-sections .events-section { margin-top: 2.5rem; }
.homepage-sections .spotlight-section:first-child { margin-top: 0; }

.section-title {
    font-size: 1.6rem;
    font-weight: 600;
    margin: 0;
    letter-spacing: -.02em;
    color: var(--text-main);
}

/* ===== XS BREAKPOINT ===== */
@media (max-width: 575.98px) {
    .section-title { font-size: 1.15rem !important; }
    .hero-title { font-size: 1.6rem; }
    .hero-img-wrap { border-radius: var(--radius-md); }
    .event-meta-lg { font-size: 0.9rem; }

    .event-title { font-size: 0.88rem !important; margin-bottom: 3px; line-height: 1.25; }
    .tag { font-size: 0.5rem; padding: 1px 6px; border-radius: 999px; letter-spacing: .02em; }
    .event-tags { gap: 3px; margin-bottom: 2px !important; }
    .event-meta { font-size: 0.72rem !important; margin-bottom: 2px !important; }
    .event-content { padding: 12px !important; }
    .card-footer-action { padding: 8px 12px !important; }
    .arrow-link { font-size: 0.72rem; }
    .presale-footer { font-size: 0.68rem !important; }
    .group-dates-badge { font-size: 0.65rem; padding: 2px 7px; }

    .row.g-4 { --bs-gutter-x: 0.6rem; --bs-gutter-y: 0.6rem; }
    .row.g-3 { --bs-gutter-x: 0.6rem; --bs-gutter-y: 0.6rem; }

    .event-card { border-radius: var(--radius-md); }
    .event-card .event-title { margin-top: 4px; }
    .event-card .venue-link { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; }

    .section-header { margin-bottom: 1rem; padding-bottom: 0; }
    .hero-section { margin-bottom: 1.5rem; }

    .hero-section>.row {
        display: grid !important;
        grid-template-columns: 38% 1fr;
        align-items: stretch !important;
        background: var(--bg-card);
        border-radius: var(--radius-md);
        overflow: hidden;
        border: none;
        box-shadow: var(--shadow-sm);
        margin: 0 !important;
        padding: 0 !important;
    }
    .hero-section>.row>[class*="col"] { width: 100% !important; max-width: 100% !important; flex: none !important; padding: 0 !important; margin: 0 !important; }
    .hero-section>.row>[class*="col"]:first-child { grid-column: 1; grid-row: 1; display: flex !important; overflow: hidden; }
    .hero-section .hero-img-wrap { border-radius: 0 !important; aspect-ratio: unset !important; flex: 1 1 0% !important; display: flex !important; }
    .hero-section .hero-img-wrap a, .hero-section .hero-img-wrap>.card-image-placeholder { flex: 1 1 0%; display: flex; }
    .hero-section .hero-img { width: 100% !important; flex: 1 1 0% !important; object-fit: cover !important; display: block !important; }
    .hero-section>.row>[class*="col"]:last-child { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; justify-content: center; padding: 12px 14px !important; }
    .hero-title { font-size: 1.05rem; margin-bottom: 6px !important; line-height: 1.2; }
    .hero-section .event-meta-lg { font-size: 0.78rem; margin-bottom: 2px !important; }
    .hero-section .event-meta-lg i { font-size: 0.7rem; }
    .hero-section .venue-link { margin-left: 0; padding: 0; }
    .hero-section .event-tags { margin-bottom: 4px !important; gap: 2px; }
    .hero-section .tag { font-size: 0.55rem; padding: 1px 5px; border-radius: 999px; letter-spacing: 0; }
    .hero-section .hero-footer { margin-top: 8px; display: flex !important; align-items: center; justify-content: space-between; gap: 8px; }
    .hero-section .hero-footer .presale-status { font-size: 0.72rem; margin-bottom: 0; }
    .hero-footer .arrow-link { font-size: 0.78rem; }
    .hero-section .presale-status { font-size: 0.75rem; padding: 4px 8px; }
    .hero-section .btn-success.btn-lg { font-size: 0.78rem; padding: 6px 12px; margin-top: 4px !important; }
    .hero-detail .event-meta-lg.fw-bold { font-size: 0.72rem; margin-bottom: 2px !important; }

    .event-detail-clean h3.h4, .event-detail-clean .h4,
    .event-detail-ticket-mode h3.h4, .event-detail-ticket-mode .h4,
    .event-detail-ticket-mode h2.h4 { font-size: 1rem !important; margin-bottom: 0.5rem !important; }
    .event-description-clean { font-size: 0.85rem; line-height: 1.55; }
    .event-detail-clean .border-top, .event-detail-ticket-mode .border-top { padding-top: 1rem !important; margin-top: 1.5rem !important; }
    .event-detail-clean .border-bottom, .event-detail-ticket-mode .border-bottom { padding-bottom: 0.5rem !important; margin-bottom: 0.75rem !important; }
    .organizer-contacts { font-size: 0.8rem; }
    .related-events { padding-top: 1rem !important; margin-top: 1.5rem !important; }

    .event-detail-ticket-mode nav a { font-size: 0.72rem; }
    .presale-mini-title { font-size: 1rem !important; }
    .presale-mini-meta { font-size: 0.72rem !important; }
    .presale-panel__header h2 { font-size: 1rem !important; }

    .hall-card { padding: 10px !important; gap: 8px !important; border-radius: 8px !important; }
    .hall-card__icon { width: 32px !important; height: 32px !important; font-size: 14px !important; border-radius: 6px !important; }
    .hall-card__title { font-size: 0.85rem !important; }
    .hall-card__body small { font-size: 0.68rem !important; }
    .hall-detail-header .hall-card__icon { width: 36px !important; height: 36px !important; }
    .hall-detail-header h2 { font-size: 0.95rem !important; }
    .hall-type { font-size: 0.68rem !important; }
    .entry-info-box { padding: 8px 12px !important; font-size: 0.82rem; }
    .entry-info-box__price { font-size: 0.9rem !important; }
    .entry-info-box__label, .entry-info-box__note { font-size: 0.7rem !important; }
    .entry-variant { font-size: 0.78rem !important; }
    .hall-capacity { font-size: 0.75rem; }
    .ticket-purchase-row .btn-lg { font-size: 0.85rem !important; padding: 8px 14px !important; }
    .ticket-purchase-row .form-select { font-size: 0.85rem; }

    .date-card { padding: 10px !important; }
    .date-card__day { font-size: 22px !important; }
    .date-card__month { font-size: 12px !important; }
    .date-card__weekday { font-size: 10px !important; }
    .date-card__slots { font-size: 10px !important; }
    .month-title { font-size: 13px !important; }
    .slot-card { padding: 10px !important; }
    .slot-card__time { font-size: 1rem !important; }
    .selected-date-banner { padding: 10px 14px !important; font-size: 0.82rem; }
    .selected-date-banner__date { font-size: 0.85rem !important; }
    .selected-date-banner__change { font-size: 0.72rem !important; }

    .seat-legend { font-size: 0.68rem !important; gap: 6px !important; }
    .seat-legend-color { width: 12px !important; height: 12px !important; }
    .seat-selection-info { padding: 10px !important; font-size: 0.82rem; }
    #seatForm .btn-lg { font-size: 0.85rem !important; padding: 8px 14px !important; }
    .alert { font-size: 0.82rem; padding: 10px 12px; }
    .spotlight-section, .places-section, .categories-section, .events-section { margin-top: 0; }
    .homepage-sections .spotlight-section,
    .homepage-sections .places-section,
    .homepage-sections .categories-section,
    .homepage-sections .events-section { margin-top: 2rem; }
    .homepage-sections .spotlight-section:first-child { margin-top: 0; }
}

@media (max-width: 991.98px) {
    .event-card .tag { font-size: 0.55rem; padding: 1px 6px; border-radius: 999px; }
    .event-card .event-tags { gap: 3px; margin-bottom: 3px; }
    .event-card .event-title { margin-top: 4px; }
}

/* ── Filter ── */
.btn-clear-filter {
    font-size: .82rem; font-weight: 600; color: var(--primary);
    text-decoration: none; padding: 6px 14px; border-radius: 8px;
    background: rgba(0,95,190,.06); transition: .25s var(--transition-smooth);
}
.btn-clear-filter:hover { background: rgba(0,95,190,.1); transform: translateY(-1px); }

/* ═══════════════════════════════════════
   EVENT CARDS – Floating, borderless
   ═══════════════════════════════════════ */
.event-card {
    position: relative;
    background: var(--bg-card);
    border-radius: var(--radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    border: none;
    box-shadow: var(--shadow-sm);
    transition: transform .5s var(--transition-smooth), box-shadow .5s var(--transition-smooth);
}

.event-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.card-image-wrap {
    aspect-ratio: 3/2;
    overflow: hidden;
    display: block;
    border-bottom: none;
    background: var(--bg);
    position: relative;
}

.card-image-wrap img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .7s var(--transition-smooth);
    will-change: transform;
}

.event-card:hover .card-image-wrap img { transform: scale(1.04); }
.card-image-wrap.no-photo { display: flex; align-items: center; justify-content: center; }

/* Presale overlay */
.presale-overlay {
    position: absolute; top: 12px; right: 12px;
    padding: 6px 14px; border-radius: 10px;
    font-size: .72rem; font-weight: 600;
    letter-spacing: .04em; text-transform: uppercase;
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    z-index: 10; display: flex; align-items: center; gap: 6px;
    transition: all .4s var(--transition-smooth);
}
.presale-overlay--upcoming { background: rgba(255,255,255,0.85); color: var(--primary); }
.presale-overlay--active { background: rgba(255,255,255,0.85); color: #16a34a; }

/* Hero spotlight verze – stejný design, větší, staticky pozicovaný */
.presale-overlay--hero { position: static; font-size: .85rem; padding: 8px 18px; border-radius: 12px; }
.presale-overlay--hero i { font-size: .85rem; }

/* Sidebar spotlight verze – menší, staticky pozicovaný */
.spotlight-side .presale-overlay,
.spotlight__primary-top .presale-overlay:not(.presale-overlay--hero) { position: static; font-size: .6rem; padding: 3px 10px; border-radius: 6px; }
.spotlight-side .presale-overlay i { font-size: .55rem; }
.presale-overlay i { font-size: .72rem; }
.event-card:hover .presale-overlay { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.event-card.promoted .presale-overlay--active,
.event-card.promoted .presale-overlay--upcoming { background: rgba(255,255,255,.2); color: #fff; }

/* Placeholders */
.card-image-placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(145deg, #e8e6e1, #d4d0c8);
    color: rgba(0,0,0,.12); font-size: 2.5rem;
    position: relative; overflow: hidden;
}
.card-image-placeholder::before {
    content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,.2) 0%, transparent 70%);
    animation: shimmer 4s ease-in-out infinite;
}
@keyframes shimmer { 0%,100% { transform: translate(0,0); } 50% { transform: translate(8%,8%); } }
.card-image-placeholder i { position: relative; z-index: 1; opacity: .4; }
.card-image-placeholder.gradient-1 { background: linear-gradient(145deg, #e8e4df, #d1ccc5); }
.card-image-placeholder.gradient-2 { background: linear-gradient(145deg, #e4dfe8, #ccc5d1); }
.card-image-placeholder.gradient-3 { background: linear-gradient(145deg, #dfe4e8, #c5ccd1); }
.card-image-placeholder.gradient-4 { background: linear-gradient(145deg, #dfe8e2, #c5d1c8); }
.card-image-placeholder.gradient-5 { background: linear-gradient(145deg, #e8e2df, #d1c8c5); }
.card-image-placeholder.gradient-6 { background: linear-gradient(145deg, #e2dfe8, #c8c5d1); }
.card-image-placeholder--hero { font-size: 3rem; }

/* Card content */
.event-content { padding: 20px 22px; flex-grow: 1; display: flex; flex-direction: column; }
.event-tags { display: flex; flex-wrap: wrap; gap: 6px; }

.tag {
    font-size: .68rem; padding: 4px 10px; border-radius: 6px;
    font-weight: 600; letter-spacing: .03em; text-transform: uppercase;
    background: var(--bg); border: none; color: var(--text-muted);
    transition: color .25s ease, background .25s ease;
    display: inline-flex; align-items: center;
}
.tag:hover { background: rgba(0,95,190,.07); color: var(--primary); transform: none; box-shadow: none; }

.venue-link {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--text-muted); text-decoration: none;
    padding: 2px 6px; margin-left: -6px; border-radius: 8px;
    transition: color .25s ease, background .25s ease;
}
.venue-link:hover { background: rgba(0,0,0,.03); color: var(--text-main); transform: none; }
.venue-link--small { padding: 2px 6px; }

.event-title {
    font-size: 1.15rem; font-weight: 600; margin-bottom: 6px;
    line-height: 1.3; letter-spacing: -.01em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.event-title a { color: var(--text-main); text-decoration: none; }
.event-title a:hover { color: var(--primary); }

.event-meta { font-size: .85rem; color: var(--text-main); font-weight: 400; margin-bottom: 4px; }
.event-meta i { color: inherit; opacity: .6; }
.event-desc { color: var(--text-secondary, #334155); font-size: .92rem; line-height: 1.55; }
.event-card.promoted .event-desc { color: #fff; opacity: .9; }
@media (max-width: 991.98px) {
    .event-desc { display: none !important; }
}

/* Presale badges */
.presale-badge {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 12px; border-radius: 8px;
    font-size: .75rem; font-weight: 600; letter-spacing: .02em;
    margin-bottom: 8px; transition: all .2s ease;
}
.presale-badge--upcoming { background: #fef9ef; color: #a16207; border: none; }
.presale-badge--active { background: #f0fdf4; color: #15803d; border: none; }
.presale-badge i { font-size: .8rem; opacity: .7; }
.event-card.promoted .presale-badge--active { background: rgba(255,255,255,.15); border: none; color: #fff; }
.event-card.promoted .presale-badge--upcoming { background: rgba(255,255,255,.12); border: none; color: #fff; }

.presale-status { font-weight: 600; margin: 0 0 8px 0; font-size: .82rem; }
.presale-status.upcoming { color: #a16207; }
.presale-status.active { color: var(--primary); }
.event-card.promoted .presale-status { color: #fff !important; opacity: .9; }

/* Card footer */
.card-footer-action {
    padding: 14px 22px; border-top: none;
    background: transparent; margin-top: auto;
    opacity: 1; transform: translateY(0); transition: .3s;
}
.event-card:hover .card-footer-action { background: rgba(0,0,0,.015); }

.hero-footer {
    opacity: 1 !important; transform: none !important;
    background: transparent !important; border-top: none !important;
    padding: 0 !important; margin-top: 16px;
}
.hero-footer .arrow-link { justify-content: flex-start; font-size: .92rem; }

.arrow-link {
    color: var(--text-muted); font-size: .78rem; font-weight: 600;
    text-decoration: none; display: flex; align-items: center;
    justify-content: flex-end; gap: 6px; letter-spacing: .01em;
    transition: color .25s ease; margin-left: auto;
}
.arrow-link:hover { color: var(--text-main); }

/* Group dates badge */
.group-dates-badge {
    display: inline-flex; align-items: center;
    font-size: .75rem; font-weight: 600; color: var(--primary);
    text-decoration: none; padding: 3px 10px;
    border-radius: 8px; background: rgba(0,95,190,.07);
    transition: background .2s ease, color .2s ease;
    white-space: nowrap;
}
.group-dates-badge:hover { background: rgba(0,95,190,.14); color: var(--primary-hover); }
.event-card.promoted .group-dates-badge { background: rgba(255,255,255,.15); color: #fff; }
.event-card.promoted .group-dates-badge:hover { background: rgba(255,255,255,.25); }


/* Promoted */
.event-card.promoted { background: var(--primary); color: #fff; border: none; }
.event-card.promoted .card-footer-action { background: rgba(0,0,0,.06); border-top-color: rgba(255,255,255,.08); }
.event-card.promoted .event-title a,
.event-card.promoted .event-meta,
.event-card.promoted .event-meta a,
.event-card.promoted .event-meta i,
.event-card.promoted .arrow-link { color: #fff !important; opacity: 1 !important; }
.event-card.promoted .venue-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.event-card.promoted .tag { background: rgba(255,255,255,.12); border: none; color: rgba(255,255,255,.85); }
.event-card.promoted .tag:hover { background: rgba(255,255,255,.18); box-shadow: none; color: #fff; }

/* Wide cards (desktop) */
@media (min-width:992px) {
    .event-card.wide { flex-direction: row; min-height: 320px; }
    .event-card.wide .card-image-wrap { width: 50%; border-bottom: none; aspect-ratio: auto; }
    .event-card.wide .event-content { width: 50%; padding: 32px; }
    .event-card.wide .card-footer-action {
        position: absolute; bottom: 0; right: 0; width: 50%;
        border-top: none; background: transparent;
        opacity: 1; transform: none;
    }
    .event-card.wide .event-title { -webkit-line-clamp: 3; font-size: 1.4rem; }
}

/* Description */
.event-description-clean { white-space: normal; font-size: 1.02rem; line-height: 1.75; color: var(--text-secondary); }

.event-poster-wrap { max-width: 480px; }
.event-poster {
    width: 100%; height: auto; display: block;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    transition: transform .3s ease, box-shadow .3s ease;
}
.event-poster-wrap a:hover .event-poster { transform: scale(1.02); box-shadow: var(--shadow-lg, 0 8px 30px rgba(0,0,0,.15)); }
.organizer-contacts { font-size: 0.92rem; }
.organizer-contacts a { color: var(--text-main); transition: color .25s ease; }
.organizer-contacts a:hover { color: var(--primary); }

/* ═══════════════════════════════════════
   VENUE CARDS
   ═══════════════════════════════════════ */
.venue-card {
    display: flex; gap: 14px; align-items: center;
    padding: 16px 18px; background: var(--bg-card);
    border: none; border-radius: var(--radius-md);
    text-decoration: none; color: inherit;
    box-shadow: var(--shadow-xs);
    transition: transform .5s var(--transition-smooth), box-shadow .5s var(--transition-smooth);
}
.venue-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

.venue-card__icon {
    width: 44px; height: 44px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    background: var(--bg); color: var(--primary);
    flex: 0 0 auto; font-size: 1rem;
}
.venue-card__body { flex: 1 1 auto; min-width: 0; }
.venue-card__title {
    font-weight: 600; font-size: 1rem; line-height: 1.2;
    margin-bottom: 3px; white-space: nowrap; overflow: hidden;
    text-overflow: ellipsis; letter-spacing: -.01em;
}
.venue-card__meta {
    color: var(--text-muted); font-weight: 500; font-size: .85rem;
    display: flex; align-items: center; gap: 8px;
}
.venue-card__arrow {
    color: rgba(0,0,0,.15); flex: 0 0 auto;
    transition: color .25s ease, transform .25s ease;
}
.venue-card:hover .venue-card__arrow { color: var(--primary); transform: translateX(2px); }

/* Typography */
.fw-bold, strong, b { font-weight: 600 !important; }
.navbar-brand { font-weight: 600; }
h1,h2,h3,h4,h5,h6 { font-weight: 600; letter-spacing: -.02em; }

/* Social */
.social-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 12px 22px; border-radius: 12px; background: var(--bg-card);
    border: none; box-shadow: var(--shadow-sm);
    transition: all .4s var(--transition-smooth);
    text-decoration: none; color: var(--text-secondary);
    font-size: 14px; font-weight: 500; min-width: 120px;
}
.social-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); color: var(--text-main); }
.social-btn:active { transform: translateY(0); box-shadow: var(--shadow-sm); }
.social-btn i, .social-btn img { margin-right: 10px; }
@media (max-width: 575.98px) {
    .social-btn { padding: 10px 12px; font-size: 13px; }
    .social-btn i, .social-btn img { margin-right: 6px; }
}

/* ── Global buttons – unified blue, rounded ── */
.btn { border-radius: 50px !important; font-weight: 500; }
.btn-primary,
.btn-success {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-success:hover, .btn-success:focus, .btn-success:active {
    background-color: var(--primary-light) !important;
    border-color: var(--primary-light) !important;
    color: #fff !important;
}
.btn-outline-primary,
.btn-outline-success {
    color: var(--primary) !important;
    border-color: var(--primary) !important;
    background-color: transparent !important;
}
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active,
.btn-outline-success:hover, .btn-outline-success:focus, .btn-outline-success:active {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #fff !important;
}
.btn-secondary { border-radius: 12px !important; }
.btn-outline-secondary { border-radius: 12px !important; }
.btn-outline-secondary:hover { border-color: var(--primary) !important; color: var(--primary) !important; }
.text-success { color: var(--primary) !important; }
.border-success { border-color: var(--primary) !important; }

/* Inline style replacements */
details > summary { cursor: pointer; }
.basket-ticket__qr img { width: 70px; height: 70px; }


/* ═══════════════════════════════════════
   PRESALE / TICKET SYSTEM
   ═══════════════════════════════════════ */
.presale-mini-hero { background: var(--bg); border-radius: var(--radius-sm); padding: 1rem; }
.presale-mini-img-wrap { width: 80px; height: 80px; border-radius: 10px; overflow: hidden; flex-shrink: 0; }
.presale-mini-img { width: 100%; height: 100%; object-fit: cover; }
.presale-mini-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: white; font-size: 1.5rem; }
.presale-mini-title { font-size: 1.1rem; line-height: 1.3; }
.presale-mini-meta { font-size: 0.85rem; }

.presale-panel { background: var(--bg-card); border: none; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-md); }
.presale-panel__header { background: var(--bg); padding: 1rem 1.5rem; border-bottom: 1px solid rgba(0,0,0,.04); }
.presale-panel__body { padding: 1.5rem; }
.presale-placeholder { background: var(--bg); border-radius: 8px; }

/* Hall cards */
.hall-card {
    display: flex; align-items: center; gap: 1rem; padding: 1rem;
    background: var(--bg); border: none; border-radius: var(--radius-sm);
    transition: all .3s var(--transition-smooth); box-shadow: none;
}
.hall-card:hover { background: var(--bg-card); box-shadow: var(--shadow-sm); }
.hall-card__icon {
    width: 50px; height: 50px; background: var(--primary);
    border-radius: 12px; display: flex; align-items: center;
    justify-content: center; color: white; font-size: 1.25rem; flex-shrink: 0;
}
.hall-card__body { flex: 1; min-width: 0; }
.hall-card__title { font-size: 1rem; margin: 0; }
.hall-card__desc { margin: 0; line-height: 1.4; }
.hall-card__action { flex-shrink: 0; }
.hall-card--soldout { opacity: .5; }
.hall-card--soldout .hall-card__icon { background: #9ca3af; }

.hall-capacity { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.hall-capacity__item { display: inline-flex; align-items: center; font-size: .78rem; padding: .2rem .5rem; border-radius: 6px; font-weight: 500; }
.hall-capacity__item--total { background: var(--bg); color: var(--text-secondary); }
.hall-capacity__item--available { background: #f0fdf4; color: #15803d; }
.hall-capacity__item--occupied { background: #eef2ff; color: #4338ca; }
.hall-capacity__item--low { background: #fef9ef; color: #a16207; }
.hall-capacity__item--soldout { background: #fef2f2; color: #b91c1c; }
.hall-capacity__item--free { background: #f0fdf4; color: #15803d; }

.hall-type { display: inline-flex; align-items: center; font-size: .72rem; padding: .2rem .5rem; border-radius: 6px; margin-top: .25rem; font-weight: 500; letter-spacing: .02em; }
.hall-type--seats { background: #eef2ff; color: #4338ca; }
.hall-type--entry { background: #f5f3ff; color: #6d28d9; }
.hall-buy-form { margin: 0; }
.hall-buy-form .form-select { min-width: 70px; }
.hall-card--clickable { cursor: pointer; }
.hall-card--clickable:hover { background: var(--bg-card); box-shadow: var(--shadow-md); }
.hall-detail-panel { background: var(--bg-card); border: none; border-radius: var(--radius-md); padding: 1.5rem; box-shadow: var(--shadow-sm); }
.hall-detail-header { border-bottom: 1px solid rgba(0,0,0,.05); padding-bottom: 1rem; margin-bottom: 1.5rem; }
.hall-detail-form .form-select-lg { min-width: 100px; }

/* Compact entry hall (no seat map, no slots) – XL+ single row */
@media (min-width: 1200px) {
    .hall-detail-panel--entry { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
    .hall-detail-panel--entry .hall-detail-header { flex: 1; min-width: 0; margin-bottom: 0; border-bottom: none; padding-bottom: 0; }
    .hall-detail-panel--entry .hall-detail-form { flex-shrink: 0; margin: 0; }
    .hall-detail-panel--entry .ticket-purchase-row { gap: .5rem; }
    .hall-detail-panel--entry .ticket-purchase-row__quantity label { display: none; }
    .hall-detail-panel--entry .ticket-purchase-row__quantity .form-select { min-width: 70px; }
    .hall-detail-panel--entry .ticket-purchase-row__submit .btn { font-size: .9rem; padding: .5rem 1.2rem; }
    .hall-detail-panel--entry .hall-capacity { display: none; }
    .hall-detail-panel--entry .hall-detail-form > .text-muted { display: none; }
}

/* Ticket purchase */
.ticket-purchase-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.ticket-purchase-row__entries { display: flex; flex-wrap: wrap; gap: .5rem; flex: 1; }
.entry-option-inline {
    display: flex; align-items: center; background: var(--bg);
    border: 2px solid transparent; border-radius: 10px;
    padding: .6rem 1rem; cursor: pointer; transition: all .25s var(--transition-smooth);
}
.entry-option-inline:hover { border-color: var(--primary-light); background: #f0f4ff; }
.entry-option-inline:has(input:checked) { border-color: var(--primary); background: #eef2ff; }
.entry-option-inline input { margin-right: .75rem; width: 1.1rem; height: 1.1rem; }
.entry-option-inline__label { display: flex; align-items: center; gap: .75rem; }
.entry-option-inline .entry-name { font-weight: 500; }
.entry-option-inline .entry-price { font-weight: bold; color: #15803d; }
.ticket-purchase-row__quantity .form-select { min-width: 80px; }
.ticket-purchase-row__submit .btn { white-space: nowrap; }
@media (max-width: 767.98px) {
    .ticket-purchase-row { flex-direction: column; align-items: stretch; }
    .ticket-purchase-row__entries { flex-direction: column; }
    .ticket-purchase-row__quantity, .ticket-purchase-row__submit { width: 100%; }
    .ticket-purchase-row__submit .btn { width: 100%; }
}

/* ═══════════════════════════════════════
   CART & BASKET
   ═══════════════════════════════════════ */
.cart-link { position: relative; font-size: 1.1rem; display: flex; align-items: center; gap: .5rem; }
.cart-link i { position: relative; }
.cart-count-text { font-size: .82rem; font-weight: 600; color: var(--primary); }
.cart-badge {
    position: absolute; top: -8px; left: 12px;
    background: var(--primary); color: white;
    font-size: .58rem; font-weight: bold;
    padding: 2px 5px; border-radius: 10px;
    min-width: 16px; text-align: center; line-height: 1.2;
}
@media (max-width: 991.98px) { .cart-count-text { display: none; } }

.basket-tickets { display: flex; flex-direction: column; gap: .75rem; }
.basket-ticket { background: var(--bg-card); border: none; border-radius: var(--radius-sm); padding: 1rem; box-shadow: var(--shadow-xs); }
.basket-ticket__main { display: flex; align-items: center; gap: 1rem; }
.basket-ticket__number { width: 28px; height: 28px; background: var(--bg); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: .82rem; color: var(--text-muted); flex-shrink: 0; }
.basket-ticket__info { flex: 1; min-width: 0; }
.basket-ticket__event { font-weight: 600; margin-bottom: .25rem; }
.basket-ticket__event a { color: inherit; text-decoration: none; }
.basket-ticket__event a:hover { color: var(--primary); }
.basket-ticket__details { display: flex; flex-wrap: wrap; gap: .75rem; font-size: .82rem; color: var(--text-muted); }
.basket-ticket__expiry { margin-top: .5rem; font-size: .82rem; color: #15803d; }
.basket-ticket__expiry--warning { color: #d97706; }
.basket-ticket__expiry--expired { color: #dc2626; }
.basket-ticket__price { font-size: 1.1rem; font-weight: bold; color: var(--text-main); white-space: nowrap; }
.basket-ticket__qr { flex-shrink: 0; margin-right: 1rem; }
.basket-ticket__qr img { border-radius: 6px; border: 1px solid rgba(0,0,0,.06); }
.basket-ticket__action { flex-shrink: 0; }
.basket-ticket--canceled { opacity: .5; background: var(--bg); }
.basket-ticket--canceled .basket-ticket__event a { text-decoration: line-through; color: var(--text-muted); }
.basket-ticket--voucher { background: #f0fdf4; }
.basket-ticket--voucher .basket-ticket__number { background: #dcfce7; color: #15803d; }

.basket-summary { background: var(--bg-card); border: none; border-radius: var(--radius-md); padding: 1.5rem; position: sticky; top: 100px; box-shadow: var(--shadow-md); }
.basket-summary__row { display: flex; justify-content: space-between; padding: .5rem 0; border-bottom: 1px solid rgba(0,0,0,.04); }
.basket-summary__row--total { border-bottom: none; padding-top: 1rem; margin-top: .5rem; border-top: 2px solid rgba(0,0,0,.08); font-size: 1.2rem; }

@media (max-width: 767.98px) {
    .basket-ticket__main { flex-wrap: wrap; }
    .basket-ticket__qr { margin-right: 0; margin-bottom: .5rem; }
    .basket-ticket__info { width: 100%; }
    .basket-ticket__details { flex-direction: column; gap: .25rem; }
    .basket-ticket__price { flex: 1; }
}

/* Reservations */
.reservations-list { display: flex; flex-direction: column; gap: .75rem; }
.reservation-item {
    display: block; background: var(--bg-card); border: none;
    border-radius: var(--radius-sm); padding: 1.15rem 1.5rem;
    text-decoration: none; color: inherit;
    box-shadow: var(--shadow-xs);
    transition: all .4s var(--transition-smooth);
}
.reservation-item:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.reservation-item__main { display: flex; align-items: center; gap: 1.5rem; }
.reservation-item__info { flex: 1; min-width: 0; }
.reservation-item__info > div + div { margin-top: .3rem; }
.reservation-item__title { font-size: 1.15rem; font-weight: 600; color: var(--primary, #005FBE); }
.reservation-item__id { font-weight: 600; margin-bottom: .25rem; }
.reservation-item__events { font-size: .92rem; color: var(--text-secondary); margin-bottom: .25rem; }
.reservation-item__meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.reservation-item__meta span { white-space: nowrap; }
.reservation-item__right { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }
.reservation-item__status-row { display: flex; align-items: center; gap: .6rem; }
.reservation-item__price { font-size: 1.15rem; font-weight: bold; color: var(--text-main); white-space: nowrap; }
.reservation-item__pay { flex-shrink: 0; }
.reservation-item__arrow { flex-shrink: 0; margin-left: .25rem; }
@media (max-width: 767.98px) {
    .reservation-item { padding: .9rem 1rem; }
    .reservation-item__main { flex-wrap: wrap; gap: .5rem; }
    .reservation-item__title { font-size: 1.05rem; }
    .reservation-item__info { width: 100%; }
    .reservation-item__right { width: 100%; justify-content: space-between; }
    .reservation-item__meta { flex-direction: column; gap: .2rem; }
    .reservation-item__pay { flex-grow: 1; }
    .reservation-item__pay .btn { width: 100%; }
    .reservation-item__arrow { display: none; }
}

/* XS venue cards */
@media (max-width: 575.98px) {
    .venue-card { padding: 8px 10px; border-radius: 10px; gap: 8px; }
    .venue-card__icon { width: 26px; height: 26px; border-radius: 7px; font-size: .65rem; }
    .venue-card__body { display: flex; align-items: center; gap: 5px; }
    .venue-card__title { font-size: .75rem; margin-bottom: 0; }
    .venue-card__meta { font-size: .62rem; white-space: nowrap; }
    .venue-card__meta .badge { font-size: .55rem; padding: 1px 5px; }
    .venue-card__meta-text { display: none; }
    .venue-card__arrow { font-size: .6rem; }
}

/* ═══════════════════════════════════════
   SVG SEAT MAP
   ═══════════════════════════════════════ */
.smap-layout { display: flex; flex-direction: column; gap: 1.5rem; }
.smap-layout__map { order: 1; }
.smap-layout__sidebar { order: 2; }
@media (min-width: 1200px) {
    .smap-layout { flex-direction: row; gap: 2rem; }
    .smap-layout__map { flex: 1 1 50%; order: 1; min-width: 0; }
    .smap-layout__sidebar { flex: 1 1 50%; order: 2; position: sticky; top: 100px; align-self: flex-start; }
}
.seat-map-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 20px; position: relative; }
.smap { display: block; width: 100%; height: auto; min-width: 480px; user-select: none; -webkit-user-select: none; }
.smap-surface { fill: rgba(0,95,190,.8); stroke: var(--primary); stroke-width: 2; rx: 3; }
.smap-surface-label { fill: #fff; font-size: 10px; font-weight: bold; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.smap-note { fill: var(--text-secondary); font-size: 9px; font-weight: bold; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.smap-seat { cursor: pointer; }
.smap-seat rect { transition: opacity .15s ease; rx: 3; }
.smap-seat:hover:not(.occupied):not(.selected) rect { opacity: .75; }
.smap-seat.occupied { cursor: not-allowed; opacity: .5; }
.smap-seat.occupied.clickable { cursor: pointer; }
.smap-seat.selected rect { fill: #00BCD4 !important; stroke: #00838F; stroke-width: 2; }
.smap-label { fill: #fff; font-size: 10px; font-weight: bold; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.smap-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 10px; font-size: 12px; }
.smap-legend-item { display: flex; align-items: center; gap: 4px; }
.smap-legend-dot { width: 16px; height: 16px; border-radius: 4px; display: inline-block; }
.smap-selection { padding: 15px; background: #eef2ff; border-radius: 10px; margin-bottom: 15px; }
.smap-info-panel { position: fixed; width: 260px; background: var(--bg-card); border: none; border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); padding: 14px; z-index: 9999; display: none; }
.smap-info-panel.visible { display: block; }
.smap-info-panel__close { position: absolute; top: 8px; right: 8px; background: none; border: none; font-size: 20px; cursor: pointer; color: var(--text-muted); line-height: 1; padding: 0; }
.smap-info-panel__close:hover { color: var(--text-main); }
.smap-info-panel__title { font-weight: bold; font-size: 14px; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(0,0,0,.06); color: var(--text-main); }
.smap-info-row { display: flex; margin-bottom: 8px; font-size: 13px; }
.smap-info-label { color: var(--text-muted); width: 80px; flex-shrink: 0; }
.smap-info-row span:last-child { color: var(--text-main); font-weight: 500; word-break: break-word; }

/* ═══════════════════════════════════════
   EVENT DETAIL – Calendar, Slots
   ═══════════════════════════════════════ */
.date-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.date-card { background: var(--bg-card); border: 2px solid transparent; border-radius: var(--radius-sm); padding: 16px; text-align: center; transition: all .3s var(--transition-smooth); box-shadow: var(--shadow-xs); }
.date-card--available { cursor: pointer; }
.date-card--available:hover { box-shadow: var(--shadow-md); border-color: var(--primary-light); }
.date-card--soldout { opacity: .4; }
.date-card__day { font-size: 28px; font-weight: bold; color: var(--text-main); line-height: 1; }
.date-card__month { font-size: 14px; color: var(--text-muted); margin-top: 4px; }
.date-card__weekday { font-size: 11px; color: var(--text-muted); text-transform: uppercase; margin-top: 2px; letter-spacing: .06em; }
.date-card__slots { font-size: 12px; color: var(--primary); margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(0,0,0,.05); }
.date-card__slots--warning { color: #d97706; }
.date-card__slots--soldout { color: var(--text-muted); }
.month-section { margin-bottom: 24px; }
.month-title { font-size: 15px; font-weight: 600; color: var(--text-main); margin-bottom: 12px; padding-bottom: 8px; border-bottom: 2px solid var(--primary); display: inline-block; letter-spacing: -.01em; }

.slot-card { display: flex; align-items: center; padding: 16px; background: var(--bg-card); border: 2px solid transparent; border-radius: var(--radius-sm); transition: all .3s var(--transition-smooth); box-shadow: var(--shadow-xs); }
.slot-card--clickable:hover { box-shadow: var(--shadow-md); border-color: var(--primary-light); }
.slot-card--soldout { opacity: .4; }
.slot-card__body { flex: 1; }
.slot-card__time { font-weight: bold; color: var(--text-main); }
.slot-card__action { padding-left: 12px; }

.selected-date-banner { background: var(--primary); color: #fff; padding: 16px 20px; border-radius: var(--radius-sm); margin-bottom: 20px; }
.selected-date-banner__date { font-size: 18px; font-weight: bold; }
.selected-date-banner__change { color: rgba(255,255,255,.7); text-decoration: none; font-size: 14px; }
.selected-date-banner__change:hover { color: #fff; }

/* Hall detail cards (event detail) */
.hall-card { display: flex; align-items: center; padding: 16px; background: var(--bg-card); border: 2px solid transparent; border-radius: var(--radius-sm); transition: all .3s var(--transition-smooth); gap: 12px; box-shadow: var(--shadow-xs); }
.hall-card--clickable:hover { box-shadow: var(--shadow-md); border-color: var(--primary-light); }
.hall-card--soldout { opacity: .5; }
.hall-card__icon { width: 44px; height: 44px; background: var(--primary); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 18px; flex-shrink: 0; }
.hall-card__body { flex: 1; min-width: 0; }
.hall-card__title { font-size: 16px; margin: 0; }
.hall-card__meta { padding: 0 8px; }
.hall-card__action { flex-shrink: 0; }

/* Entry info */
.entry-info-box { background: #f0fdf4; border: none; border-radius: 10px; padding: 12px 16px; }
.entry-info-box__price { font-size: 18px; color: #15803d; }
.entry-info-box--multiple { background: #fef9ef; }
.entry-info-box__label { font-size: 14px; color: var(--text-muted); margin-bottom: 6px; }
.entry-variants { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 8px; }
.entry-variant { font-size: 14px; color: var(--text-secondary); }
.entry-variant strong { color: #15803d; }
.entry-info-box__note { font-size: 12px; color: #d97706; }

/* Seat sizing – XL+: force 4px per grid cell via max-width on SVG container */
@media (min-width: 1200px) {
    .smap { max-width: var(--smap-max-xl, 100%); min-width: auto !important; }
}

/* XS seat map */
@media (max-width: 575.98px) {
    .smap { min-width: 320px; }
    .smap-legend { font-size: .68rem; gap: 6px; }
    .smap-legend-dot { width: 12px; height: 12px; }
    .smap-selection { padding: 10px; font-size: .82rem; }
    .smap-info-panel { width: 220px; padding: 10px; font-size: .78rem; }
    .smap-info-panel__title { font-size: 12px; }
    .smap-info-row { font-size: 11px; }
    .smap-info-label { width: 65px; }
}

/* ── Footer ── */
.site-footer {
    background: var(--primary);
    color: rgba(255,255,255,.85);
}
.site-footer h6 { color: #fff; }
.site-footer p { color: rgba(255,255,255,.7); }
.site-footer .fw-bold { color: rgba(255,255,255,.9) !important; }
.site-footer a {
    color: rgba(255,255,255,.75);
    transition: color .2s ease, background .2s ease;
    padding: 2px 6px; margin: -2px -6px;
    border-radius: 6px; display: inline-block;
}
.site-footer a:hover {
    background: rgba(255,255,255,.1);
    color: #fff !important;
}
.footer-links {
    display: flex; flex-wrap: wrap; gap: .3rem .1rem;
    margin-top: .2rem;
}
.footer-links a {
    color: rgba(255,255,255,.65) !important;
    font-size: .82rem;
}
.footer-links a::after {
    content: '/'; margin-left: .5rem;
    opacity: .4;
}
.footer-links a:last-child::after { content: none; }

/* ── Utility bar ── */
.utility-bar {
    background: var(--primary);
    color: rgba(255,255,255,.6);
    font-size: .75rem;
    padding: 7px 0;
    letter-spacing: .01em;
}
.utility-bar__left span { opacity: .7; }
.utility-bar__left strong { color: rgba(255,255,255,.9); font-weight: 600; }
.utility-bar__right { display: flex; gap: 1.4rem; }
.utility-bar__right a {
    color: rgba(255,255,255,.55);
    text-decoration: none;
    transition: color .25s ease;
    letter-spacing: .02em;
}
.utility-bar__right a:hover { color: #fff; }
@media (max-width: 767.98px) {
    .utility-bar__left { display: none; }
    .utility-bar__right { gap: .8rem; font-size: .72rem; }
}

/* ── Search bar ── */
.search-hero {
    position: relative;
    max-width: 560px;
    margin: 0 auto 2.5rem;
}
.search-hero__wrap {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--bg-card);
    border: none;
    border-radius: 60px;
    padding: 4px 6px 4px 22px;
    box-shadow: var(--shadow-sm);
    transition: box-shadow .35s var(--transition-smooth);
}
.search-hero__wrap:focus-within { box-shadow: var(--shadow-md); }
.search-hero__icon {
    color: var(--text-muted);
    font-size: 1.05rem;
    flex-shrink: 0;
    margin-right: 10px;
    transition: color .25s;
}
.search-hero__wrap:focus-within .search-hero__icon { color: var(--primary); }
.search-hero__input {
    flex: 1;
    border: none; outline: none; background: transparent;
    font-size: .95rem; padding: 11px 0;
    color: var(--text-main); letter-spacing: -.005em;
}
.search-hero__input::placeholder { color: var(--text-muted); }
.search-hero__btn {
    flex-shrink: 0;
    background: var(--primary); color: #fff; border: none;
    border-radius: 50px; padding: 9px 22px;
    font-size: .88rem; font-weight: 600;
    cursor: pointer; transition: background .25s ease;
}
.search-hero__btn:hover { background: var(--primary-light); }
@media (max-width: 575.98px) {
    .search-hero__btn span { display: none; }
    .search-hero__btn { padding: 9px 14px; }
}

/* ── Autocomplete dropdown ── */
.search-hero__dropdown {
    position: absolute; top: calc(100% + 8px); left: 0; right: 0;
    background: var(--bg-card); border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg); border: none;
    z-index: 1050; display: none; overflow: hidden;
    max-height: 440px; overflow-y: auto;
}
.search-hero__dropdown.active { display: block; }
.search-hero__item {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 16px; text-decoration: none;
    color: var(--text-main); transition: background .15s ease;
    border-bottom: 1px solid rgba(0,0,0,.04);
}
.search-hero__item:last-child { border-bottom: none; }
.search-hero__item:hover,
.search-hero__item.active { background: var(--bg); color: var(--text-main); }
.search-hero__item-img {
    width: 48px; height: 48px; border-radius: 10px;
    object-fit: cover; flex-shrink: 0; background: var(--bg);
}
.search-hero__item-noimg {
    width: 48px; height: 48px; border-radius: 10px;
    flex-shrink: 0; background: var(--bg);
    display: flex; align-items: center; justify-content: center;
    color: var(--text-muted); font-size: 1.1rem;
}
.search-hero__item-body { flex: 1; min-width: 0; }
.search-hero__item-title {
    font-weight: 600; font-size: .9rem;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    letter-spacing: -.005em;
}
.search-hero__item-meta {
    font-size: .78rem; color: var(--text-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-hero__empty {
    padding: 24px 16px; text-align: center;
    color: var(--text-muted); font-size: .88rem;
}

/* ── Cart badge ── */
.cart-link { position: relative; }
.cart-badge-lg {
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--primary); color: #fff;
    font-size: .68rem; font-weight: 700;
    min-width: 20px; height: 20px; padding: 0 5px;
    border-radius: 10px; margin-left: 4px;
    position: relative; top: -1px; line-height: 1;
}

/* ── Hero banner ── */
/* hero-banner: removed, replaced by spotlight */

/* ═══════════════════════════════════════════════════════════════
   EVENTS ADMIN - LIST
   ═══════════════════════════════════════════════════════════════ */
.events-admin-list .cover-thumb {
    width: 80px;
    height: 54px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    display: block;
}
.events-admin-list .thumb-ph {
    width: 80px;
    height: 54px;
    border-radius: 8px;
    background: var(--bg);
    border: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    font-size: 1.2rem;
}
.events-admin-list .row-past td { opacity: .5; }
.events-admin-list .venue-custom { font-style: italic; color: var(--text-secondary); }
.events-admin-list .price-duo { white-space: nowrap; }
.events-admin-list .actions { display: flex; gap: .35rem; justify-content: flex-end; flex-wrap: nowrap; }
.events-admin-list .month-scroll {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}

/* ═══════════════════════════════════════════════════════════════
   EVENTS ADMIN - FORM
   ═══════════════════════════════════════════════════════════════ */
.events-admin-form .tag-selectable {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    background: var(--bg);
    transition: all .2s;
    user-select: none;
}
.events-admin-form .tag-selectable:hover { border-color: var(--primary-light); background: #f0f7ff; }
.events-admin-form .tag-selectable.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.events-admin-form .desc-overflow { border-color: #dc3545 !important; box-shadow: 0 0 0 .15rem rgba(220,53,69,.25) !important; }
.events-admin-form .border-dashed { border-style: dashed !important; }

/* ═══════════════════════════════════════
   POKLADNA – Admin POS
   ═══════════════════════════════════════ */
.pokladna-header { border-bottom: 2px solid var(--primary); padding-bottom: 14px; }
.pokladna-search { max-width: 700px; }
.pokladna-search .search-hero__input { font-size: 18px; padding: 14px 18px; }
.pokladna-events { display: flex; flex-direction: column; gap: 6px; }
.pokladna-event { display: flex; align-items: center; gap: 18px; background: var(--bg-card); border-radius: var(--radius-sm); box-shadow: var(--shadow-xs); padding: 16px 22px; transition: all .2s; border: 1px solid transparent; cursor: default; }
.pokladna-event:hover { background: #eef3fb; border-color: var(--primary-light); box-shadow: 0 2px 12px rgba(0,95,190,.15); }
.pokladna-event--today { border-left: 5px solid var(--primary); }
.pokladna-event__info { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0; }
.pokladna-event__text { min-width: 0; }
.pokladna-event__cover { width: 56px; height: 56px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.pokladna-event__cover-ph { width: 56px; height: 56px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 22px; flex-shrink: 0; }
.pokladna-event__title { font-size: 20px; font-weight: 600; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pokladna-event__title a { color: var(--text-main); text-decoration: none; }
.pokladna-event__title a:hover { color: var(--primary); }
.pokladna-event__meta { font-size: 15px; color: var(--text-muted); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pokladna-halls { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.pokladna-hall { display: inline-flex; flex-direction: column; gap: 5px; padding: 12px 18px; border-radius: 8px; border: 1px solid rgba(0,0,0,.08); text-decoration: none; color: var(--text-main); transition: all .15s; min-width: 160px; }
.pokladna-hall:hover { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 2px 8px rgba(0,95,190,.3); transform: translateY(-1px); }
.pokladna-hall:hover .pokladna-hall__name { color: #fff; }
.pokladna-hall:hover .pokladna-hall__nums { color: rgba(255,255,255,.85); }
.pokladna-hall:hover .pokladna-hall__total { opacity: .7; }
.pokladna-hall:hover .pokladna-hall__bar { background: rgba(255,255,255,.25); }
.pokladna-hall:hover .pokladna-hall__fill { background: #fff !important; }
.pokladna-hall__top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.pokladna-hall__name { font-size: 16px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pokladna-hall__name i { font-size: 12px; color: var(--text-muted); }
.pokladna-hall__free { font-size: 18px; font-weight: 700; flex-shrink: 0; }
.pokladna-hall__bar { display: block; width: 100%; height: 7px; background: #e9ecef; border-radius: 3px; overflow: hidden; }
.pokladna-hall__fill { display: block; height: 100%; border-radius: 3px; }
.pokladna-hall__nums { font-size: 14px; color: var(--text-muted); white-space: nowrap; }
.pokladna-hall__total { opacity: .6; }
@media (max-width: 767.98px) {
    .pokladna-event { flex-direction: column; align-items: stretch; gap: 10px; padding: 14px 16px; }
    .pokladna-event__info { width: auto; }
    .pokladna-halls { flex-wrap: wrap; }
    .pokladna-hall { flex: 1 1 calc(50% - 5px); min-width: 0; }
}

/* Place admin bar */
.place-admin-bar { background: #dc3545; color: #fff; padding: 6px 0; font-size: 13px; font-weight: 600; position: sticky; top: 0; z-index: 1020; }
.place-admin-bar__user { white-space: nowrap; }
.place-admin-bar__sep { opacity: .4; margin: 0 2px; }
.place-admin-bar__event-link { color: #fff; text-decoration: none; white-space: nowrap; opacity: .9; font-weight: 500; transition: opacity .15s; }
.place-admin-bar__event-link:hover { color: #fff; opacity: 1; }
.place-admin-bar__event-link .fa-gear { opacity: .6; font-size: 12px; }
.place-admin-bar__event-link:hover .fa-gear { opacity: 1; }
.place-admin-bar__hall { display: inline-flex; align-items: center; gap: 6px; color: #fff; text-decoration: none; padding: 3px 10px; border-radius: 6px; background: #0d6efd; transition: background .15s; white-space: nowrap; }
.place-admin-bar__hall:hover { background: #0b5ed7; color: #fff; }
.place-admin-bar__hall--red { background: #b02a37; }
.place-admin-bar__hall--red:hover { background: #842029; }
.place-admin-bar__hall-name { font-weight: 600; }
.place-admin-bar__hall-nums { font-weight: 700; font-size: 14px; }
.place-admin-bar__hall-bar { display: inline-block; width: 40px; height: 5px; background: rgba(255,255,255,.25); border-radius: 3px; overflow: hidden; vertical-align: middle; }
.place-admin-bar__hall-fill { display: block; height: 100%; background: #fff; border-radius: 3px; }
.hall-capacity-inline { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); white-space: nowrap; }
.hall-capacity-inline__item { font-weight: 600; color: var(--text-color); }
.hall-capacity-inline__free { color: #15803d; font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   PROMOTED EVENTS STRIP
   ═══════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════
   SPOTLIGHT — promoted events section
   ═══════════════════════════════════════════════════════════════ */
/* spotlight-section uses unified .section-header now */

.spotlight {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Primary card */
.spotlight__primary {
    position: relative; display: block;
    border-radius: var(--radius-lg); overflow: hidden;
    text-decoration: none; color: #fff;
    box-shadow: var(--shadow-md);
    transition: box-shadow .35s ease, transform .35s ease;
    aspect-ratio: 3/2;
}
.spotlight__primary:hover {
    box-shadow: var(--shadow-lg); color: #fff;
    transform: translateY(-2px);
}
.spotlight__primary-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .6s var(--transition-smooth);
}
.spotlight__primary:hover .spotlight__primary-img { transform: scale(1.04); }
.spotlight__primary-overlay {
    position: absolute; inset: 0;
    display: flex; flex-direction: column;
    justify-content: space-between;
    padding: 20px 24px;
    background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.02) 35%, rgba(0,0,0,.7) 100%);
    z-index: 2;
}
.spotlight__primary-top { display: flex; flex-wrap: wrap; gap: 6px; }
.spotlight__primary-bottom { margin-top: auto; }
.spotlight__primary-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.spotlight__primary-title {
    font-size: 1.6rem; font-weight: 700;
    line-height: 1.2; letter-spacing: -.02em;
    margin: 0 0 6px 0;
    text-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.spotlight__primary-meta {
    display: flex; flex-wrap: wrap; gap: 4px 16px;
    font-size: .85rem; font-weight: 500;
    color: rgba(255,255,255,.9);
    margin-bottom: 6px;
}
.spotlight__primary-meta i { opacity: .7; margin-right: 4px; font-size: .72rem; }
.spotlight__desc {
    font-size: .82rem; color: rgba(255,255,255,.8);
    margin: 4px 0 10px 0; line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.spotlight__cta {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .78rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: .04em;
    padding: 7px 18px; border-radius: 50px;
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,.25);
    transition: background .25s ease, transform .25s ease;
}
.spotlight__primary:hover .spotlight__cta {
    background: var(--primary); border-color: var(--primary);
    transform: translateX(3px);
}

/* Duo 50/50 grid */
.spotlight-duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Shared badge / tag styles */
.spotlight__badge {
    font-size: .62rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .04em;
    padding: 3px 10px; border-radius: 6px;
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    display: inline-flex; align-items: center; gap: 4px;
}
.spotlight__badge i { font-size: .58rem; }
.spotlight__badge--live { background: rgba(22,163,74,.85); color: #fff; }
.spotlight__badge--soon { background: rgba(255,255,255,.8); color: #92400e; }
.spotlight__tag {
    font-size: .58rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: .04em;
    padding: 3px 8px; border-radius: 6px;
    background: rgba(255,255,255,.2); color: rgba(255,255,255,.9);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}

/* Sidebar cards */
.spotlight__sidebar {
    display: flex; flex-direction: column;
    gap: 12px;
}
.spotlight-side {
    display: grid;
    grid-template-columns: 110px 1fr;
    grid-template-rows: 1fr auto;
    gap: 0 12px;
    background: var(--bg-card);
    border-radius: var(--radius-md);
    overflow: hidden;
    text-decoration: none; color: var(--text-main);
    box-shadow: var(--shadow-sm);
    transition: box-shadow .3s ease, transform .3s ease;
    flex: 1;
}
.spotlight-side__img-wrap { grid-row: 1 / -1; }
.spotlight-side:hover {
    box-shadow: var(--shadow-md); color: var(--text-main);
    transform: translateY(-2px);
}
.spotlight-side__img-wrap { overflow: hidden; min-height: 0; }
.spotlight-side__img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .5s ease;
}
.spotlight-side:hover .spotlight-side__img { transform: scale(1.06); }
.spotlight-side__body {
    display: flex; flex-direction: column; justify-content: center;
    padding: 10px 12px 10px 0;
    min-width: 0;
}
.spotlight-side__tags {
    display: flex; flex-wrap: wrap; gap: 4px;
    margin-bottom: 4px;
}
.spotlight-side__tags .spotlight__badge {
    font-size: .52rem; padding: 2px 7px;
    backdrop-filter: none; -webkit-backdrop-filter: none;
}
.spotlight-side__tags .spotlight__badge--live { background: #dcfce7; color: #15803d; }
.spotlight-side__tags .spotlight__badge--soon { background: #fef3c7; color: #92400e; }
.spotlight-side__tags .spotlight__tag {
    font-size: .68rem; padding: 4px 10px; border-radius: 6px;
    background: var(--bg-subtle); color: var(--text-secondary);
    backdrop-filter: none; -webkit-backdrop-filter: none;
}
.spotlight-side__title {
    font-size: 1.15rem; font-weight: 600;
    line-height: 1.3; margin: 0 0 4px 0;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.spotlight-side__meta {
    display: flex; flex-direction: column; gap: 2px;
    font-size: .85rem; color: var(--text-secondary);
}
.spotlight-side__meta i { opacity: .5; margin-right: 3px; font-size: .65rem; }
.spotlight-side__more {
    grid-column: 2; align-self: end;
    padding: 0 12px 8px 0;
    font-size: .75rem;
}

/* Responsive */
@media (min-width: 992px) {
    .spotlight-side {
        grid-template-columns: 140px 1fr;
    }
    .spotlight-side__img-wrap {
        aspect-ratio: unset;
        height: 100%;
    }
}
@media (max-width: 991.98px) {
    .spotlight {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .spotlight__primary { aspect-ratio: 3/2; min-height: 260px; }
    .spotlight-duo { grid-template-columns: 1fr; }
    .spotlight-duo .spotlight__primary:nth-child(2) { display: none; }
    .spotlight__sidebar {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }
    .spotlight-side {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr auto;
    }
    .spotlight-side__img-wrap { aspect-ratio: 3/2; grid-row: auto; }
    .spotlight-side__body { padding: 8px 10px 0; }
    .spotlight-side__tags .spotlight__tag { font-size: .55rem; padding: 2px 7px; }
    .spotlight-side__title { font-size: .92rem; }
    .spotlight-side__meta { font-size: .78rem; }
    .spotlight-side__more { grid-column: 1; padding: 0 10px 8px; }
}
@media (max-width: 575.98px) {
    .spotlight__primary { aspect-ratio: 3/2; min-height: 220px; }
    .spotlight-duo { grid-template-columns: 1fr; }
    .spotlight-duo .spotlight__primary:nth-child(2) { display: none; }
    .spotlight__primary-title { font-size: 1.2rem; }
    .spotlight__primary-meta { font-size: .75rem; }
    .spotlight__desc { display: none; }
    .spotlight__cta { font-size: .7rem; padding: 5px 14px; }
    .spotlight__sidebar { grid-template-columns: 1fr; }
    .spotlight-side {
        grid-template-columns: 90px 1fr;
        grid-template-rows: 1fr auto;
    }
    .spotlight-side__img-wrap { grid-row: 1 / -1; }
    .spotlight-side__tags .spotlight__tag { font-size: .5rem; padding: 1px 6px; }
    .spotlight-side__more { grid-column: 2; padding: 0 10px 6px 0; font-size: .68rem; }
    .spotlight-side__body { padding: 8px 10px 4px 0; }
    .spotlight-side__title { font-size: .88rem; }
    .spotlight-side__meta { font-size: .72rem; }
}


/* ═══════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATION – XS & SM (offcanvas menu, compact UI)
   ═══════════════════════════════════════════════════════════════ */

/* ── Navbar: desktop padding preserved ── */
@media (min-width: 992px) {
    .navbar { padding-top: .85rem; padding-bottom: .85rem; }
}

/* ── Navbar: compact on mobile ── */
@media (max-width: 991.98px) {
    .navbar { padding-top: .45rem; padding-bottom: .45rem; }
    .navbar-brand img { height: 32px; }
    .navbar-toggler { padding: .3rem .45rem; font-size: .85rem; }
    .navbar-toggler:focus { box-shadow: none; }

    /* Hide cart inside offcanvas (it's shown in the navbar bar) */
    .offcanvas-lg .navbar-nav > li:last-child { display: none; }

    /* Offcanvas panel styling */
    .offcanvas-lg.offcanvas-end { width: 300px; }
    .offcanvas-header { padding: .75rem 1rem; }
    .offcanvas-title { font-size: .9rem; color: var(--text-secondary); }
    .offcanvas-body { padding: .5rem .75rem; }

    /* Nav links inside offcanvas */
    .offcanvas-body .navbar-nav { gap: 0; }
    .offcanvas-body .navbar-nav .nav-item { border-bottom: 1px solid rgba(0,0,0,.04); }
    .offcanvas-body .navbar-nav .nav-item:last-child { border-bottom: none; }
    .offcanvas-body .navbar-nav .nav-link {
        font-size: .82rem;
        padding: .6rem .5rem;
        color: var(--text-secondary);
        display: flex;
        align-items: center;
        gap: .5rem;
    }
    .offcanvas-body .navbar-nav .nav-link.active {
        color: var(--primary);
        font-weight: 600;
    }
    .offcanvas-body .navbar-nav .nav-link:hover {
        background: var(--bg);
        border-radius: 8px;
    }

    /* Dropdown inside offcanvas */
    .offcanvas-body .dropdown-menu {
        box-shadow: none;
        border: none;
        background: var(--bg);
        border-radius: 8px;
        padding: 2px 0;
        margin: 0 0 4px 0;
    }
    .offcanvas-body .dropdown-item {
        font-size: .78rem;
        padding: .45rem .75rem;
        border-radius: 6px;
    }

    /* "Můj účet" & "Administrátor" buttons inside offcanvas */
    .offcanvas-body .navbar-nav .nav-link.btn {
        font-size: .78rem;
        padding: .5rem .75rem !important;
        border-radius: 8px;
        margin: .25rem 0;
        justify-content: flex-start;
    }
    .offcanvas-body .navbar-nav .nav-link.btn i {
        font-size: .72rem;
        margin-right: .4rem !important;
    }
    .offcanvas-body .navbar-nav .nav-link.btn.btn-primary,
    .offcanvas-body .navbar-nav .nav-link.btn.btn-danger {
        font-size: .78rem;
    }

    /* ms-lg-3 shouldn't apply on mobile */
    .offcanvas-body .navbar-nav .ms-lg-3 { margin-left: 0 !important; }
    .offcanvas-body .navbar-nav .ms-lg-2 { margin-left: 0 !important; }

    /* Mobile cart icon in navbar bar */
    .navbar .cart-link { font-size: .95rem; position: relative; }
    .navbar .cart-link .cart-badge {
        top: -4px;
        left: 10px;
        font-size: .5rem;
        padding: 1px 4px;
        min-width: 14px;
        height: 14px;
    }
}

/* XS: offcanvas přes celou obrazovku */
@media (max-width: 575.98px) {
    .offcanvas-lg.offcanvas-end {
        width: 100% !important;
    }
}

/* ── XS-specific: extra compact ── */
@media (max-width: 575.98px) {
    .navbar { padding-top: .35rem; padding-bottom: .35rem; }
    .navbar-brand img { height: 28px; }
    .navbar-toggler { padding: .25rem .4rem; font-size: .8rem; }
    .offcanvas-lg.offcanvas-end { width: 260px; }
    .offcanvas-header { padding: .6rem .85rem; }
    .offcanvas-title { font-size: .82rem; }
    .offcanvas-body { padding: .35rem .6rem; }
    .offcanvas-body .navbar-nav .nav-link { font-size: .78rem; padding: .5rem .4rem; }
    .offcanvas-body .dropdown-item { font-size: .72rem; padding: .4rem .6rem; }
    .offcanvas-body .navbar-nav .nav-link.btn {
        font-size: .72rem;
        padding: .4rem .6rem !important;
    }
    .offcanvas-body .navbar-nav .nav-link.btn i { font-size: .65rem; }
}

/* ── Utility bar: compact ── */
@media (max-width: 575.98px) {
    .utility-bar { padding: 4px 0; font-size: .65rem; }
    .utility-bar__right { gap: .5rem; font-size: .62rem; }
}
@media (min-width: 576px) and (max-width: 767.98px) {
    .utility-bar { padding: 5px 0; font-size: .68rem; }
    .utility-bar__right { gap: .6rem; font-size: .65rem; }
}

/* ── Search hero: compact on SM ── */
@media (max-width: 767.98px) {
    .search-hero { margin-bottom: 1.5rem; }
    .search-hero__wrap { padding: 3px 4px 3px 14px; }
    .search-hero__icon { font-size: .85rem; margin-right: 6px; }
    .search-hero__input { font-size: .82rem; padding: 8px 0; }
    .search-hero__btn { padding: 7px 14px; font-size: .78rem; border-radius: 40px; }
}

/* ── SM breakpoint additions ── */
@media (min-width: 576px) and (max-width: 767.98px) {
    .section-title { font-size: 1.25rem !important; }
    .hero-title { font-size: 1.8rem; }

    .event-title { font-size: .92rem !important; line-height: 1.25; }
    .tag { font-size: .55rem; padding: 2px 7px; border-radius: 999px; }
    .event-tags { gap: 4px; margin-bottom: 3px !important; }
    .event-meta { font-size: .78rem !important; margin-bottom: 3px !important; }
    .event-content { padding: 14px !important; }
    .card-footer-action { padding: 10px 14px !important; }
    .arrow-link { font-size: .75rem; }
    .presale-footer { font-size: .72rem !important; }
    .group-dates-badge { font-size: .68rem; padding: 2px 8px; }
    .event-card { border-radius: var(--radius-md); }

    .row.g-4 { --bs-gutter-x: 0.75rem; --bs-gutter-y: 0.75rem; }
    .row.g-3 { --bs-gutter-x: 0.75rem; --bs-gutter-y: 0.75rem; }

    .venue-card { padding: 10px 12px; border-radius: 10px; gap: 10px; }
    .venue-card__icon { width: 30px; height: 30px; border-radius: 8px; font-size: .72rem; }
    .venue-card__title { font-size: .82rem; }
    .venue-card__meta { font-size: .68rem; }
    .venue-card__arrow { font-size: .65rem; }

    .spotlight-section, .places-section, .categories-section, .events-section { margin-top: 0; }
    .homepage-sections .spotlight-section,
    .homepage-sections .places-section,
    .homepage-sections .categories-section,
    .homepage-sections .events-section { margin-top: 2.5rem; }
    .homepage-sections .spotlight-section:first-child { margin-top: 0; }
    .section-header { margin-bottom: 1.2rem; }
    .hero-section { margin-bottom: 1.8rem; }
}

/* ── Presale overlay: smaller on XS/SM ── */
@media (max-width: 767.98px) {
    .presale-overlay { top: 6px; right: 6px; padding: 3px 8px; font-size: .58rem; gap: 3px; border-radius: 6px; }
    .presale-overlay i { font-size: .58rem; }
}

/* ── Buttons global: compact on XS/SM ── */
@media (max-width: 767.98px) {
    .btn { border-radius: 8px !important; font-size: .82rem; }
    .btn-lg { font-size: .82rem !important; padding: .45rem .9rem !important; }
    .btn-sm { font-size: .72rem; padding: .25rem .55rem; }
}

/* ── Hero banner: compact on SM ── */
@media (min-width: 576px) and (max-width: 767.98px) {
    .hero-banner { border-radius: var(--radius-md); }
    .hero-banner__grid { grid-template-columns: 38% 1fr; max-height: 220px; }
    .hero-banner__body { padding: 1rem 1.2rem; }
    .hero-banner__title { font-size: 1.1rem; }
    .hero-banner__meta { font-size: .75rem; gap: .2rem .7rem; }
    .hero-banner__cta { padding: 5px 14px; font-size: .75rem; }
}

/* ── Footer: compact on XS ── */
@media (max-width: 575.98px) {
    .site-footer { font-size: .78rem; }
    .site-footer h6 { font-size: .82rem; }
    .site-footer p { font-size: .72rem; }
    .footer-links a { font-size: .72rem; }
}
@media (min-width: 576px) and (max-width: 767.98px) {
    .site-footer { font-size: .82rem; }
    .site-footer h6 { font-size: .85rem; }
    .footer-links a { font-size: .75rem; }
}

/* ── Basket: compact on XS/SM ── */
@media (max-width: 767.98px) {
    .basket-ticket { padding: .65rem; }
    .basket-ticket__event { font-size: .85rem; }
    .basket-ticket__details { font-size: .72rem; }
    .basket-ticket__price { font-size: .92rem; }
    .basket-ticket__number { width: 24px; height: 24px; font-size: .72rem; }
    .basket-summary { padding: 1rem; }
    .basket-summary__row { font-size: .82rem; padding: .35rem 0; }
    .basket-summary__row--total { font-size: 1rem; }
}

/* ── Reservation items: compact ── */
@media (max-width: 767.98px) {
    .reservation-item__id { font-size: .85rem; }
    .reservation-item__events { font-size: .78rem; }
    .reservation-item__meta { font-size: .75rem; }
    .reservation-item__price { font-size: 1rem; }
}

/* ── Pokladna: compact on XS/SM ── */
@media (max-width: 767.98px) {
    .pokladna-event__title { font-size: 15px; }
    .pokladna-event__meta { font-size: 12px; }
    .pokladna-event__cover, .pokladna-event__cover-ph { width: 42px; height: 42px; border-radius: 6px; }
    .pokladna-hall { padding: 8px 12px; min-width: 0; }
    .pokladna-hall__name { font-size: 13px; }
    .pokladna-hall__free { font-size: 15px; }
    .pokladna-hall__nums { font-size: 11px; }
}

/* ── Alert: compact ── */
@media (max-width: 575.98px) {
    .alert { font-size: .78rem; padding: 8px 10px; border-radius: 8px; }
    .alert .btn { font-size: .72rem; }
}

/* ═══════════════════════════════════════════════════════════════
   ORGANIZER CHECKBOXES (event admin)
   ═══════════════════════════════════════════════════════════════ */
.organizer-checkboxes {
    max-height: 180px;
    overflow-y: auto;
    border: 1px solid #e2e8f0;
    padding: 8px 12px;
    transition: opacity .25s ease;
}
.organizer-checkboxes .form-check {
    padding-top: 3px;
    padding-bottom: 3px;
}
.organizer-checkboxes .form-check-label {
    font-size: .85rem;
}

/* ═══════════════════════════════════════════════════════════════
   HORIZONTAL EVENT CARDS (XS – MD, below lg)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
    .events-section .event-card,
    .events-section .event-card.wide {
        display: grid !important;
        grid-template-columns: 160px 1fr !important;
        grid-template-rows: 1fr auto !important;
        flex-direction: unset !important;
        min-height: 0 !important;
        max-height: 108px !important;
        overflow: hidden !important;
    }
    .events-section .event-card .card-image-wrap {
        grid-row: 1 / -1 !important;
        grid-column: 1 !important;
        aspect-ratio: 3/2 !important;
        width: 100% !important;
        overflow: hidden !important;
    }
    .events-section .event-card .card-image-wrap img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
    }
    .events-section .event-card .card-image-wrap.no-photo,
    .events-section .event-card .card-image-placeholder {
        width: 100% !important;
        height: 100% !important;
    }
    .events-section .event-card .event-content {
        grid-column: 2 !important;
        grid-row: 1 !important;
        padding: 10px 14px 4px !important;
        width: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    .events-section .event-card .card-footer-action {
        grid-column: 2 !important;
        grid-row: 2 !important;
        padding: 4px 14px 6px !important;
        border-top: none !important;
    }
    .events-section .event-card .event-title {
        font-size: .92rem !important;
        margin-top: 2px !important;
        -webkit-line-clamp: 2;
    }
    .events-section .event-card .event-meta {
        font-size: .78rem !important;
        margin-bottom: 2px !important;
    }
    .events-section .event-card .venue-link {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        display: inline-block;
    }
}

/* SM (576px – 991.98px): mírně větší obrázek */
@media (min-width: 576px) and (max-width: 991.98px) {
    .events-section .event-card,
    .events-section .event-card.wide {
        grid-template-columns: 200px 1fr !important;
        max-height: 134px !important;
        grid-template-rows: 1fr auto !important;
    }
}

/* XS (pod 575.98px): vyšší karta, oříznutá fotka */
@media (max-width: 575.98px) {
    .events-section .event-card,
    .events-section .event-card.wide {
        grid-template-columns: 120px 1fr !important;
        max-height: none !important;
        min-height: 120px !important;
        overflow: hidden !important;
        grid-template-rows: 1fr auto !important;
    }
    .events-section .event-card .card-image-wrap {
        aspect-ratio: unset !important;
        height: 100% !important;
    }
    .events-section .event-card .card-image-wrap img {
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
    }
    .events-section .event-card .event-content {
        padding: 10px 12px 4px !important;
    }
    .events-section .event-card .card-footer-action {
        padding: 6px 12px !important;
    }
    .events-section .event-card .event-title {
        font-size: .85rem !important;
    }
    .events-section .event-card .event-meta {
        font-size: .72rem !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   CARD VIEW TOGGLE + HORIZONTAL VIEW (LG – XXXL)
   ═══════════════════════════════════════════════════════════════ */

/* Toggle buttons */
.card-view-toggle {
    display: flex;
    align-items: center;
    gap: 2px;
    background: var(--bg);
    border-radius: 8px;
    padding: 2px;
}
.card-view-btn {
    border: none;
    background: transparent;
    color: var(--text-muted);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: .85rem;
    transition: all .2s ease;
}
.card-view-btn:hover {
    color: var(--text-main);
    background: rgba(0,0,0,.04);
}
.card-view-btn.active {
    background: var(--bg-card);
    color: var(--primary);
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}

/* Horizontal card layout on LG+ */
@media (min-width: 992px) {
    .card-view-horizontal > [class*="col-"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
    .card-view-horizontal .event-card,
    .card-view-horizontal .event-card.wide {
        display: grid !important;
        grid-template-columns: 280px 1fr !important;
        grid-template-rows: 1fr auto !important;
        flex-direction: unset !important;
        min-height: 0 !important;
        max-height: 188px !important;
        overflow: hidden !important;
    }
    .card-view-horizontal .event-card .card-image-wrap {
        grid-row: 1 / -1 !important;
        grid-column: 1 !important;
        aspect-ratio: 3/2 !important;
        width: 100% !important;
        overflow: hidden !important;
    }
    .card-view-horizontal .event-card .card-image-wrap img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
    }
    .card-view-horizontal .event-card .card-image-wrap.no-photo,
    .card-view-horizontal .event-card .card-image-placeholder {
        width: 100% !important;
        height: 100% !important;
    }
    .card-view-horizontal .event-card .event-content {
        grid-column: 2 !important;
        grid-row: 1 !important;
        padding: 14px 20px 4px !important;
        width: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    .card-view-horizontal .event-card .card-footer-action {
        grid-column: 2 !important;
        grid-row: 2 !important;
        padding: 4px 20px 10px !important;
        position: static !important;
        width: 100% !important;
        opacity: 1 !important;
        transform: none !important;
        border-top: none !important;
        background: transparent !important;
    }
    .card-view-horizontal .event-card .event-title {
        font-size: 1.05rem !important;
        -webkit-line-clamp: 2;
    }
    .card-view-horizontal .event-card .event-desc {
        display: none !important;
    }
}