/* ==========================================================================
   TERMINARZ — hero, filtry, karty terminow (2026-09-20)
   ========================================================================== */

/* --- Hero --- */
.schedule-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(140deg, #0F1219 0%, #1a1240 55%, #0b1b3d 100%);
    color: #fff;
    padding: 150px 0 80px;
}
.schedule-hero-bg { position: absolute; inset: 0; pointer-events: none; }
.schedule-hero-orb {
    position: absolute; border-radius: 50%; filter: blur(80px); opacity: .5;
    animation: heroOrbFloat 14s ease-in-out infinite alternate;
}
.schedule-hero-orb-1 { width: min(520px, 70vw); height: min(520px, 70vw); background: rgba(106, 13, 173, .55); top: -16%; right: -6%; }
.schedule-hero-orb-2 { width: min(420px, 55vw); height: min(420px, 55vw); background: rgba(0, 71, 171, .5); bottom: -12%; left: -8%; animation-delay: -4s; }
.schedule-hero-orb-3 { width: min(300px, 40vw); height: min(300px, 40vw); background: rgba(253, 197, 0, .22); top: 28%; left: 44%; animation-delay: -8s; }
.schedule-hero-inner { position: relative; z-index: 2; text-align: center; }
.schedule-hero h1 { color: #fff; font-size: clamp(2.3rem, 4.6vw, 3.6rem); line-height: 1.08; margin-bottom: 20px; }
.schedule-hero-tag {
    display: inline-block; background: rgba(253, 197, 0, .16); color: var(--color-gold);
    border: 1px solid rgba(253, 197, 0, .4); padding: 8px 18px; font-family: var(--font-head);
    font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 22px;
}
.schedule-hero-lead { color: rgba(255, 255, 255, .8); max-width: 640px; margin: 0 auto; }

/* --- Belka najblizszego terminu --- */
.next-up {
    display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 38px;
    padding: 22px 26px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16);
    text-align: left;
}
.next-up-flag {
    font-family: var(--font-head); font-size: .66rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--color-gold); background: rgba(253, 197, 0, .14); padding: 6px 12px;
}
.next-up-title { font-family: var(--font-head); font-weight: 600; color: #fff; flex: 1; min-width: 220px; text-decoration: none; }
.next-up-title:hover { color: var(--color-gold); }
.next-up-when { color: rgba(255, 255, 255, .7); font-size: .9rem; }
.next-up-cta {
    text-decoration: none; background: var(--color-gold); color: var(--color-dark);
    font-family: var(--font-head); font-weight: 700; font-size: .74rem; letter-spacing: .09em;
    text-transform: uppercase; padding: 13px 22px; transition: .22s;
}
.next-up-cta:hover { filter: brightness(1.1); transform: translateY(-2px); }

/* --- Pasek wyszukiwania i filtry --- */
.sched-tools { padding-top: 46px; }
.sched-search { position: relative; margin-bottom: 26px; }
.sched-search input {
    width: 100%; padding: 18px 20px 18px 54px; border: 1px solid rgba(15, 18, 25, .14);
    background: #fff; font-family: var(--font-body); font-size: 1rem;
}
.sched-search input:focus { outline: none; border-color: var(--color-accent-1); }
.sched-search > i { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); color: #9aa2b1; }
.sched-count { font-size: .85rem; color: #8b93a3; margin-left: auto; font-family: var(--font-head); font-weight: 600; }
.sched-groups { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; }
.sched-group { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.sched-group-label {
    font-family: var(--font-head); font-size: .66rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: #8b93a3; margin-right: 2px;
}
.sched-pill {
    display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px;
    border: 1px solid rgba(15, 18, 25, .14); background: #fff; color: var(--color-dark);
    font-family: var(--font-head); font-size: .74rem; font-weight: 600; letter-spacing: .05em;
    cursor: pointer; transition: .22s;
}
.sched-pill::before { content: ''; width: 8px; height: 8px; background: var(--dot, #c3c9d4); flex: none; }
.sched-pill:hover { transform: translateY(-2px); border-color: var(--dot, var(--color-dark)); }
.sched-pill.active { background: var(--dot, var(--color-dark)); border-color: var(--dot, var(--color-dark)); color: #fff; }
.sched-pill.active::before { background: #fff; }

/* --- Naglowek miesiaca --- */
.sched-month { display: flex; align-items: center; gap: 18px; margin: 46px 0 22px; }
.sched-month h2 { font-size: 1.15rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.sched-month .sched-month-rule { flex: 1; height: 1px; background: rgba(15, 18, 25, .12); }
.sched-month .sched-month-count { font-size: .8rem; color: #8b93a3; font-family: var(--font-head); font-weight: 600; }

/* --- Karta terminu --- */
.ev {
    display: grid; grid-template-columns: 132px 190px 1fr 232px; background: #fff;
    border: 1px solid rgba(15, 18, 25, .1); border-left: 5px solid var(--acc);
    margin-bottom: 18px; transition: transform .28s, box-shadow .28s, border-color .28s;
}
.ev:hover { transform: translateY(-5px); box-shadow: 0 26px 60px -28px var(--glow); border-left-color: var(--acc); }
.ev-date {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    padding: 26px 10px; background: linear-gradient(170deg, var(--soft), transparent);
}
.ev-day { font-family: var(--font-head); font-size: 3rem; font-weight: 700; line-height: .9; color: var(--acc); }
.ev-mon { font-family: var(--font-head); font-size: .74rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--acc); }
.ev-dow { font-size: .74rem; color: #8b93a3; margin-top: 2px; }
.ev-time { margin-top: 12px; font-size: .74rem; color: #5b6474; border-top: 1px solid rgba(15, 18, 25, .1); padding-top: 10px; text-align: center; }
.ev-thumb { position: relative; overflow: hidden; background: #eef2f9; }
.ev-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.ev:hover .ev-thumb img { transform: scale(1.06); }
.ev-thumb-fallback {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(150deg, var(--soft), #eef2f9); color: var(--acc); font-size: 2.2rem;
}
.ev-thumb-fallback i { color: inherit; }
.ev-body { padding: 26px 28px; }
.ev-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 13px; }
.ev-tag {
    font-family: var(--font-head); font-size: .62rem; font-weight: 700; letter-spacing: .09em;
    text-transform: uppercase; padding: 5px 10px;
}
.ev-tag-acc { background: var(--soft); color: var(--acc); }
.ev-tag-neutral { background: #eef1f6; color: #5b6474; }
.ev-tag-cert { background: rgba(253, 197, 0, .2); color: #8a6d00; }
.ev-body h3 { font-size: 1.28rem; margin-bottom: 9px; }
.ev-body h3 a { color: inherit; text-decoration: none; }
.ev-body h3 a:hover { color: var(--acc); }
.ev-subtitle { font-size: .92rem; color: #5b6474; margin-bottom: 12px; }
.ev-subtitle a { color: inherit; text-decoration: none; }
.ev-meta { display: flex; flex-wrap: wrap; gap: 18px; font-size: .87rem; color: #5b6474; margin-bottom: 16px; }
.ev-meta i { color: var(--acc); margin-right: 6px; }
.ev-seats { max-width: 330px; }
.ev-seats-bar { height: 7px; background: #eef1f6; overflow: hidden; }
.ev-seats-bar span { display: block; height: 100%; background: var(--acc); }
.ev-seats.is-tight .ev-seats-bar span { background: #d14343; }
.ev-seats-txt { font-size: .78rem; color: #7a8394; margin-top: 7px; }
.ev-cta {
    display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 26px 24px;
    border-left: 1px solid rgba(15, 18, 25, .08); background: #fcfdff;
}
.ev-price { font-family: var(--font-head); font-size: 1.75rem; font-weight: 700; color: var(--acc); text-align: center; }
.ev-price small {
    display: block; font-size: .68rem; font-weight: 600; letter-spacing: .08em;
    text-transform: uppercase; color: #8b93a3; margin-top: 3px;
}
.ev-btn {
    display: block; text-align: center; text-decoration: none; padding: 13px 16px;
    font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .09em;
    text-transform: uppercase; transition: .22s; border: 2px solid transparent; cursor: pointer;
}
.ev-btn-solid { background: var(--acc); color: #fff; }
.ev-btn-solid:hover { filter: brightness(1.14); }
.ev-btn-line { border-color: var(--acc); color: var(--acc); }
.ev-btn-line:hover { background: var(--acc); color: #fff; }
.ev-btn-off { background: #eef1f6; color: #9aa2b1; cursor: not-allowed; }

/* --- Stany puste --- */
.sched-no-results, .sched-empty { text-align: center; padding: 70px 20px; color: #7a8394; }
.sched-no-results h3, .sched-empty h3 { margin-bottom: 10px; }

@media (max-width: 1080px) {
    .ev { grid-template-columns: 110px 1fr; }
    .ev-thumb { display: none; }
    .ev-cta { grid-column: 1 / -1; border-left: 0; border-top: 1px solid rgba(15, 18, 25, .08); }
    .schedule-hero { padding: 120px 0 60px; }
    .sched-groups { gap: 12px 20px; }
}
@media (max-width: 560px) {
    .ev { grid-template-columns: 1fr; }
    .ev-date { flex-direction: row; gap: 12px; padding: 16px; justify-content: flex-start; }
    .ev-day { font-size: 2rem; }
    .ev-time { margin-top: 0; border-top: 0; padding-top: 0; }
}
.ev-tag-alert { background: rgba(209, 67, 67, .12); color: #b02e2e; }
