/* =====================================================================
   PražskéMuzikály.cz — design 2026
   Samostatná vrstva s prefixem .p2-. Nezávislá na předkompilovaném
   Tailwind buildu (ten nemá arbitrary values, viz assets/css/tw-missing.css).
   ===================================================================== */

.p2 {
    --p2-brand: #6c5ce7;
    --p2-brand-dark: #5a4bd4;
    --p2-brand-soft: #efedfd;
    --p2-brand-softer: #f8f7fe;

    --p2-ink: #191933;
    --p2-body: #4a4a6a;
    --p2-muted: #8a8aa3;

    --p2-line: #ebe9f7;
    --p2-surface: #ffffff;

    --p2-ok: #16a34a;
    --p2-warn: #ea8f0b;
    --p2-danger: #dc2626;

    --p2-r-card: 14px;
    --p2-r-img: 10px;
    --p2-r-btn: 9px;

    --p2-shadow: 0 1px 3px rgba(30, 25, 90, .05);
    --p2-shadow-lg: 0 10px 26px rgba(30, 25, 90, .10);

    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
    color: var(--p2-body);
    background: var(--p2-surface);
    font-size: 15px;
}

.p2 *, .p2 *::before, .p2 *::after { box-sizing: border-box; }
/* `:where()` má nulovou specificitu, takže je celý reset jen 0-1-0 (za `.p2`).
   Bez toho `margin: 0` přebíjelo `.p2-lp-block__title { margin-bottom: 18px }`
   a nadpisy jako „O představení" seděly nalepené na obsahu pod sebou. */
.p2 :where(h1, h2, h3, h4) {
    font-family: 'Poppins', 'Inter', sans-serif;
    color: var(--p2-ink);
    margin: 0;
    letter-spacing: -.02em;
    line-height: 1.2;
}
/* Zase `:where()` kvůli nulové specificitě — `.p2 p` (0-1-1) přebíjelo
   `.p2-cta-hero__lead { margin: 16px auto 0 }` (0-1-0), takže `auto` nezabralo
   a odstavce v hero seděly vlevo, i když text uvnitř byl na střed. */
.p2 :where(p, ul) { margin: 0; }
.p2 a { color: inherit; text-decoration: none; }
.p2 img { display: block; max-width: 100%; }
.p2 button { font-family: inherit; }

/* Obrázkové plochy jsou <a> — bez display:block se neuplatní aspect-ratio. */
.p2-card__media, .p2-venue__media, .p2-post__media { display: block; }

.p2-clamp-2, .p2-card__body h3, .p2-post h3, .p2-post p {
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}

.p2-wrap { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.p2-section { padding: 48px 0; }
.p2-section--soft { background: var(--p2-brand-softer); }

/* ================= HLAVIČKA ================= */
.p2-nav {
    background: #fff;
    border-bottom: 1px solid var(--p2-line);
    position: sticky; top: 0; z-index: 50;
}
/* Megamenu panel se kotví k liště, ne k položce — proto relative. */
.p2-nav__in { position: relative; }
.p2-nav__in { display: flex; align-items: center; gap: 26px; height: 66px; }
/* Logo zůstává původní — jen se zmenší do výšky lišty. */
.p2-logo { display: flex; align-items: center; flex: 0 0 auto; }
.p2-logo img { height: 42px; width: auto; }
.p2-foot .p2-logo img { height: 38px; }
.p2-nav__menu { display: flex; align-items: center; gap: 22px; font-size: 14px; font-weight: 500; }
.p2-nav__menu > a:hover { color: var(--p2-brand); }

/* ---------- MEGAMENU ---------- */
.p2-mm { position: static; }
.p2-mm__trigger { display: inline-flex; align-items: center; gap: 6px; }
.p2-mm__trigger i { font-size: 9px; color: var(--p2-muted); transition: transform .2s; }
.p2-mm:hover .p2-mm__trigger { color: var(--p2-brand); }
.p2-mm:hover .p2-mm__trigger i { transform: rotate(180deg); color: var(--p2-brand); }

/* Panel je široký přes celou lištu, proto se kotví k .p2-nav (position:relative). */
.p2-mm__panel {
    position: absolute; left: 0; right: 0; top: 100%;
    background: #fff; border-top: 1px solid var(--p2-line);
    box-shadow: 0 18px 40px rgba(30, 25, 90, .13);
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity .18s, transform .18s, visibility .18s;
    z-index: 60;
}
.p2-mm:hover .p2-mm__panel,
.p2-mm:focus-within .p2-mm__panel { opacity: 1; visibility: visible; transform: translateY(0); }

.p2-mm__grid {
    max-width: 1120px; margin: 0 auto; padding: 24px;
    display: grid; grid-template-columns: 250px 1fr; gap: 34px;
}
.p2-mm__label {
    display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--p2-muted); margin-bottom: 12px;
}
.p2-mm__side { border-right: 1px solid var(--p2-line); padding-right: 30px; }
.p2-mm__link {
    display: flex; align-items: center; gap: 11px;
    padding: 9px 11px; border-radius: 9px; font-size: 14px; font-weight: 500;
    transition: background .15s, color .15s;
}
.p2-mm__link i {
    width: 28px; height: 28px; flex: 0 0 28px; border-radius: 8px;
    background: var(--p2-brand-soft); color: var(--p2-brand);
    display: inline-flex; align-items: center; justify-content: center; font-size: 12px;
    transition: background .15s, color .15s;
}
.p2-mm__link:hover { background: var(--p2-brand-softer); color: var(--p2-brand-dark); }
.p2-mm__link:hover i { background: var(--p2-brand); color: #fff; }
.p2-mm__all { display: inline-block; margin: 12px 0 0 11px; font-size: 13px; font-weight: 600; color: var(--p2-brand); }

.p2-mm__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.p2-mm__card {
    display: flex; flex-direction: column; gap: 9px;
    border-radius: 11px; padding: 9px; transition: background .15s;
}
.p2-mm__card:hover { background: var(--p2-brand-softer); }
.p2-mm__thumb {
    display: block; aspect-ratio: 3 / 2; border-radius: 8px;
    overflow: hidden; background: #ded9f6;
}
.p2-mm__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.p2-mm__info { display: block; min-width: 0; }
.p2-mm__info strong {
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; font-size: 13px; font-weight: 600; color: var(--p2-ink); line-height: 1.3;
}
.p2-mm__info em {
    display: block; font-style: normal; font-size: 11.5px; color: var(--p2-muted);
    margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.p2-mm__info b { display: block; font-size: 11.5px; font-weight: 600; color: var(--p2-brand); margin-top: 3px; }
.p2-nav__right { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.p2-nav__search {
    display: flex; align-items: center; gap: 8px;
    background: #f6f5fc; border: 1px solid var(--p2-line);
    border-radius: 8px; padding: 7px 12px; width: 210px;
}
.p2-nav__search i { color: var(--p2-muted); font-size: 13px; }
.p2-nav__search input { border: 0; outline: 0; background: transparent; font-size: 13px; font-family: inherit; width: 100%; min-width: 0; color: var(--p2-ink); }
.p2-nav__login { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.p2-nav__burger { display: none; background: none; border: 0; font-size: 19px; color: var(--p2-ink); cursor: pointer; }

/* ---------- MOBILNÍ MENU ---------- */
.p2-mobmenu {
    display: none;
    border-top: 1px solid var(--p2-line);
    background: #fff;
    padding: 14px 24px 20px;
    max-height: calc(100vh - 66px);
    overflow-y: auto;
}
.p2-mobmenu.is-open { display: block; }
.p2-mobmenu__search {
    display: flex; align-items: center; gap: 9px;
    background: #f6f5fc; border: 1px solid var(--p2-line);
    border-radius: 9px; padding: 10px 13px; margin-bottom: 16px;
}
.p2-mobmenu__search i { color: var(--p2-muted); font-size: 13px; }
.p2-mobmenu__search input { border: 0; outline: 0; background: transparent; font-family: inherit; font-size: 16px; width: 100%; min-width: 0; }
.p2-mobmenu__grp { margin-bottom: 16px; }
.p2-mobmenu__grp > span {
    display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--p2-muted); margin-bottom: 6px;
}
.p2-mobmenu__grp a {
    display: flex; align-items: center; gap: 11px;
    padding: 10px 4px; font-size: 15px; font-weight: 500;
    border-bottom: 1px solid var(--p2-line);
}
.p2-mobmenu__grp a:last-child { border-bottom: 0; }
.p2-mobmenu__grp a i {
    width: 26px; height: 26px; flex: 0 0 26px; border-radius: 7px;
    background: var(--p2-brand-soft); color: var(--p2-brand);
    display: inline-flex; align-items: center; justify-content: center; font-size: 11px;
}

/* ================= TLAČÍTKA ================= */
.p2-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 10px 18px; border-radius: var(--p2-r-btn);
    font-weight: 600; font-size: 14px; border: 1px solid transparent;
    cursor: pointer; white-space: nowrap;
    transition: background .15s, box-shadow .15s, transform .15s, border-color .15s;
}
/* Selektor `.p2 a` má vyšší specificitu než `.p2-btn--primary`, takže by
   `color: inherit` přebilo bílý text a tlačítko by mělo fialový nápis
   na fialovém pozadí. Proto barvy tlačítek zapisujeme přes `.p2 .p2-btn…`. */
.p2 .p2-btn--primary { background: var(--p2-brand); color: #fff; }
.p2 .p2-btn--primary:hover { background: var(--p2-brand-dark); color: #fff; transform: translateY(-1px); }
.p2 .p2-btn--ghost { background: #fff; color: var(--p2-body); border-color: var(--p2-line); }
.p2 .p2-btn--ghost:hover { border-color: #cfc9f2; color: var(--p2-ink); }
.p2-btn--sm { padding: 7px 15px; font-size: 13px; }

/* ================= HERO ================= */
.p2-hero { position: relative; overflow: hidden; background: linear-gradient(120deg, #f5f3fe 0%, #efedfd 55%, #eae7fc 100%); }
.p2-hero__photo { position: absolute; inset: 0 0 0 42%; background-size: cover; background-position: center; }
.p2-hero__photo::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(90deg, #f1effd 0%, rgba(241,239,253,.9) 16%, rgba(241,239,253,.5) 34%, rgba(241,239,253,0) 62%);
}
/* Dekorativní kruhy vlevo jako v návrhu */
.p2-hero::before, .p2-hero::after {
    content: ''; position: absolute; border-radius: 50%; background: rgba(255,255,255,.5); pointer-events: none;
}
.p2-hero::before { width: 230px; height: 230px; left: -70px; top: -60px; }
.p2-hero::after { width: 150px; height: 150px; left: 90px; bottom: -60px; background: rgba(255,255,255,.35); }

/* padding-block, ne zkrácený zápis — ten by přebil boční odsazení
   z .p2-wrap a text hera by na mobilu lepil na kraj obrazovky. */
.p2-hero__inner { position: relative; padding-block: 52px 46px; z-index: 1; }
.p2-hero__col { max-width: 560px; }
/* Celá věta — verzálky a široké prostrkání by ji roztáhly přes půl hera,
   takže jen tučně a s jemným prostrkáním. */
.p2-hero__eyebrow {
    display: inline-block; font-size: 13.5px; font-weight: 600; letter-spacing: .01em;
    color: var(--p2-brand); margin-bottom: 12px;
}
.p2-hero h1 { font-size: 42px; font-weight: 700; }
.p2-hero__lead { margin-top: 12px; font-size: 15px; line-height: 1.6; max-width: 470px; }

.p2-search {
    display: flex; gap: 8px; align-items: center; margin-top: 24px;
    background: #fff; border: 1px solid var(--p2-line); border-radius: 11px;
    padding: 7px 7px 7px 16px; box-shadow: var(--p2-shadow); max-width: 500px;
}
.p2-search i { color: var(--p2-muted); font-size: 14px; }
.p2-search input { flex: 1; border: 0; outline: 0; font-size: 14px; font-family: inherit; color: var(--p2-ink); background: transparent; min-width: 0; }

.p2-chips { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.p2-chip {
    padding: 7px 17px; border-radius: 999px; background: #fff;
    border: 1px solid var(--p2-line); font-size: 13.5px; font-weight: 500; transition: all .15s;
}
.p2-chip:hover { border-color: var(--p2-brand); color: var(--p2-brand); }
.p2-chip--active { background: var(--p2-brand-soft); border-color: #cdc5f7; color: var(--p2-brand-dark); font-weight: 600; }

.p2-script {
    position: absolute; right: 7%; top: 34px; z-index: 1;
    font-family: 'Caveat', cursive; font-size: 34px; line-height: 1.15;
    color: #2a2450; transform: rotate(-6deg); text-align: center;
    /* Text leží na fotce, bez světelné aury by se ztrácel v detailech oblohy. */
    text-shadow: 0 2px 10px rgba(255,255,255,.95), 0 0 26px rgba(255,255,255,.85);
}
.p2-quote {
    position: absolute; right: 24px; bottom: 30px; z-index: 1;
    background: rgba(255,255,255,.92); backdrop-filter: blur(6px);
    border-radius: 11px; padding: 13px 17px; max-width: 240px; box-shadow: var(--p2-shadow-lg);
}
.p2-quote p { font-size: 12.5px; font-style: italic; color: var(--p2-ink); }
.p2-quote span { font-size: 10.5px; color: var(--p2-muted); }

/* ================= ROZCESTNÍK ================= */
.p2-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 34px 0 0; }
.p2-tile {
    display: flex; gap: 15px; align-items: flex-start;
    background: var(--p2-brand-softer); border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 20px; transition: border-color .18s, background .18s;
}
.p2-tile:hover { border-color: #d6d0f5; background: #f4f2fd; }
.p2-tile__icon {
    flex: 0 0 42px; height: 42px; border-radius: 11px; background: #fff;
    color: var(--p2-brand); display: flex; align-items: center; justify-content: center; font-size: 17px;
}
.p2-tile h3, .p2-tile__name { display: block; font-family: 'Poppins', sans-serif; font-size: 16px; font-weight: 600; color: var(--p2-ink); }
.p2-tile p { margin-top: 5px; font-size: 13.5px; line-height: 1.5; color: var(--p2-muted); }
.p2-tile__link { display: inline-block; margin-top: 11px; color: var(--p2-brand); font-weight: 600; font-size: 13.5px; }

/* ================= HLAVIČKY SEKCÍ ================= */
.p2-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.p2-head h2 { font-size: 27px; font-weight: 700; }
.p2-head p { margin-top: 5px; color: var(--p2-muted); font-size: 14px; }
.p2-head__more { color: var(--p2-brand); font-weight: 600; font-size: 13.5px; white-space: nowrap; }
.p2-head__more:hover { color: var(--p2-brand-dark); }

/* ================= KARTY PŘEDSTAVENÍ ================= */
/* minmax(0, 1fr) — jinak dlouhý název roztáhne sloupec a karty nejsou stejné. */
.p2-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
/* Čtyřsloupcová varianta — volitelná v adminu u sekce Akce a slevy. */
.p2-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.p2-card {
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    overflow: hidden; box-shadow: var(--p2-shadow); display: flex; flex-direction: column;
    transition: box-shadow .18s, transform .18s;
}
.p2-card:hover { box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }
.p2-card__media { position: relative; aspect-ratio: 16 / 10; background: #ded9f6; overflow: hidden; }
/* Fotky ze scény i plakáty — ořez na střed. `top` fungoval jen u plakátů,
   u fotek uřízl tanečníkům hlavu. */
/* `top center`: plakáty mají název i tvář nahoře, ořez zprostředka je usekne. */
.p2-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s; }
.p2-card:hover .p2-card__media img { transform: scale(1.04); }
.p2-badge {
    position: absolute; top: 12px; left: 12px; background: var(--p2-brand); color: #fff;
    font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
    padding: 5px 11px; border-radius: 999px;
}
.p2-card__body { padding: 15px 16px 16px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.p2-card__body h3 { font-size: 16.5px; font-weight: 600; line-height: 1.32; }
.p2-card__body h3 a:hover { color: var(--p2-brand); }
.p2-card__note {
    font-size: 13px; line-height: 1.5; color: var(--p2-muted);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.p2-meta { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--p2-muted); }
.p2-meta i { color: var(--p2-brand); font-size: 11px; }
/* Datum nad tlačítkem, ne vedle — v úzkém sloupci se jinak obojí mačká
   a delší datum („do 10. 12. 2026") se lámalo na dva řádky. */
.p2-card__foot {
    display: flex; flex-direction: column; align-items: stretch; gap: 10px;
    margin-top: auto; padding-top: 12px;
}
.p2-card__when {
    display: flex; align-items: center; gap: 7px;
    font-size: 13px; color: var(--p2-body);
    background: var(--p2-brand-softer); border-radius: var(--p2-r-btn); padding: 7px 11px;
}
.p2-card__when i { color: var(--p2-brand); font-size: 11px; }
.p2-card__when strong { color: var(--p2-ink); font-weight: 600; }
.p2-card__when span { color: var(--p2-muted); }
.p2-card__foot .p2-btn { width: 100%; justify-content: center; }

/* ================= KATEGORIE ================= */
.p2-cats { display: flex; flex-wrap: wrap; gap: 10px; }
.p2-cat {
    display: inline-flex; align-items: center; gap: 9px;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: 999px; padding: 9px 18px;
    font-size: 14px; font-weight: 500; color: var(--p2-body);
    transition: border-color .15s, color .15s, background .15s;
}
.p2-cat:hover { border-color: var(--p2-brand); color: var(--p2-brand-dark); background: var(--p2-brand-soft); }
.p2-cat__name { font-weight: inherit; }
.p2-cat__count {
    font-size: 11.5px; font-weight: 700; color: var(--p2-brand);
    background: var(--p2-brand-soft); border-radius: 999px; padding: 2px 8px;
}
.p2-cat:hover .p2-cat__count { background: #fff; }

/* Akční štítek má odlišnou barvu, ať se neplete s kategorií. */
.p2-badge--promo { background: #e11d48; }

/* ================= SEZNAM TERMÍNŮ (jeden panel) ================= */
.p2-split { display: grid; grid-template-columns: 1.06fr 1fr; gap: 36px; align-items: start; }
.p2-panel-list {
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); box-shadow: var(--p2-shadow); overflow: hidden;
}
/* padding 11px — sedm řádků tak výškově sedne na mřížku divadel vedle. */
.p2-row { display: flex; align-items: center; gap: 14px; padding: 11px 16px; border-top: 1px solid var(--p2-line); }
.p2-row:first-child { border-top: 0; }
.p2-row:hover { background: #faf9fe; }
.p2-date {
    flex: 0 0 46px; text-align: center; line-height: 1.15;
    background: #f6f5fc; border-radius: 8px; padding: 6px 2px;
}
.p2-date small { display: block; font-size: 9.5px; font-weight: 700; text-transform: uppercase; color: var(--p2-muted); letter-spacing: .05em; }
.p2-date b { display: block; font-size: 15px; font-weight: 700; color: var(--p2-ink); }
.p2-row__time { flex: 0 0 42px; font-size: 12.5px; font-weight: 600; color: var(--p2-body); }
.p2-row__main { flex: 1; min-width: 0; }
.p2-row__main strong { display: block; font-size: 14.5px; font-weight: 600; color: var(--p2-ink); }
.p2-row__main span { display: block; font-size: 12.5px; color: var(--p2-muted); margin-top: 1px; }
.p2-row__end { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.p2-seats { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 500; white-space: nowrap; }
.p2-seats::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.p2-seats--ok { color: var(--p2-ok); }
.p2-seats--low { color: var(--p2-warn); }
.p2-seats--out { color: var(--p2-danger); }

/* ================= DIVADLA ================= */
.p2-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.p2-venue { background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); overflow: hidden; box-shadow: var(--p2-shadow); transition: box-shadow .18s, transform .18s; }
.p2-venue:hover { box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }
.p2-venue__media { aspect-ratio: 16 / 10; background: #ded9f6; overflow: hidden; }
.p2-venue__media img { width: 100%; height: 100%; object-fit: cover; }
.p2-venue__body { padding: 12px 14px 14px; }
.p2-venue__body h3 { font-size: 14.5px; font-weight: 600; }
.p2-venue__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 7px; }
.p2-venue__row a { color: var(--p2-brand); font-weight: 600; font-size: 12.5px; }

/* ================= AKTUALITY ================= */
.p2-post { display: flex; gap: 14px; background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); padding: 13px; box-shadow: var(--p2-shadow); transition: box-shadow .18s, transform .18s; }
.p2-post:hover { box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }
.p2-post__media { flex: 0 0 104px; height: 104px; border-radius: var(--p2-r-img); overflow: hidden; background: #ded9f6; }
.p2-post__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
/* `> *` místo `> div`: v detailu představení je tělo karty <span>, tam by
   selektor na div nezabral a dlouhý název by kartu roztáhl. */
.p2-post > * { min-width: 0; }
.p2-post__body { display: block; }
.p2-post__body strong { display: block; font-size: 14.5px; font-weight: 600; color: var(--p2-ink); }
.p2-post:hover .p2-post__body strong { color: var(--p2-brand); }
.p2-post__body em { display: block; font-style: normal; font-size: 11.5px; color: var(--p2-muted); margin-top: 4px; }
.p2-post time { font-size: 11.5px; color: var(--p2-muted); }
.p2-post h3 { font-size: 14.5px; font-weight: 600; margin-top: 3px; }
.p2-post p { font-size: 12.5px; line-height: 1.5; color: var(--p2-muted); margin-top: 5px; }
.p2-post__link { display: inline-block; margin-top: 7px; color: var(--p2-brand); font-weight: 600; font-size: 12.5px; }

/* ================= NEWSLETTER + KOMUNITA ================= */
.p2-strip { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; }
.p2-panel { background: var(--p2-brand-softer); border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); padding: 22px 24px; display: flex; align-items: center; gap: 18px; }
.p2-panel__icon { flex: 0 0 46px; height: 46px; border-radius: 12px; background: #fff; color: var(--p2-brand); display: flex; align-items: center; justify-content: center; font-size: 19px; }
.p2-panel__txt { flex: 1; min-width: 0; }
.p2-panel h3, .p2-panel__name { display: block; font-family: 'Poppins', sans-serif; font-size: 16px; font-weight: 600; color: var(--p2-ink); }
.p2-panel p { font-size: 12.5px; line-height: 1.5; color: var(--p2-muted); margin-top: 4px; }
.p2-form { display: flex; gap: 8px; flex: 0 0 auto; }
.p2-form input { border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn); padding: 9px 13px; font-size: 13.5px; font-family: inherit; outline: 0; background: #fff; width: 165px; }
.p2-form input:focus { border-color: var(--p2-brand); }
.p2-note { font-size: 11.5px; color: var(--p2-muted); text-align: center; margin-top: 9px; }

/* ================= PATIČKA ================= */
.p2-foot { border-top: 1px solid var(--p2-line); background: #fff; padding: 24px 0; }
.p2-foot__in { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.p2-foot__links { display: flex; gap: 22px; font-size: 13px; color: var(--p2-muted); flex-wrap: wrap; }
.p2-foot__links a:hover { color: var(--p2-brand); }
.p2-foot__right { margin-left: auto; display: flex; align-items: center; gap: 16px; font-size: 13px; color: var(--p2-muted); }
.p2-foot__social { display: flex; gap: 13px; font-size: 15px; color: var(--p2-muted); }
.p2-foot__social a:hover { color: var(--p2-brand); }

/* ================= RESPONZIVITA ================= */
@media (max-width: 1040px) {
    .p2-grid-4 { grid-template-columns: repeat(2, 1fr); }
    .p2-nav__menu, .p2-nav__search { display: none; }
    .p2-nav__burger { display: block; }
    .p2-grid-3 { grid-template-columns: repeat(2, 1fr); }
    .p2-tiles { grid-template-columns: 1fr; }
    .p2-split { grid-template-columns: 1fr; gap: 40px; }
    .p2-strip { grid-template-columns: 1fr; }
    .p2-hero__photo { inset: 0 0 0 54%; }
    .p2-hero h1 { font-size: 35px; }
    .p2-script { display: none; }
}

@media (max-width: 680px) {
    .p2-section { padding: 34px 0; }
    .p2-grid-3, .p2-grid-2, .p2-grid-4 { grid-template-columns: 1fr; }
    .p2-hero__photo { inset: auto 0 0 0; height: 40%; opacity: .3; }
    .p2-hero__photo::after { background: linear-gradient(180deg, #f1effd 0%, rgba(241,239,253,.25) 60%); }
    .p2-hero h1 { font-size: 28px; }
    .p2-hero__inner { padding-block: 32px 130px; }
    .p2-quote { display: none; }
    .p2-head { flex-direction: column; align-items: flex-start; gap: 8px; }
    .p2-head h2 { font-size: 22px; }
    /* Bez min-width:0 roztáhne formulář panel přes šířku obrazovky. */
    .p2-panel { flex-direction: column; align-items: flex-start; min-width: 0; }
    /* Ve sloupci určuje flex-basis výšku — ikona by se bez tohohle splácla. */
    .p2-panel__icon { flex: 0 0 auto; width: 46px; height: 46px; }
    .p2-panel__txt { width: 100%; }
    .p2-form { width: 100%; min-width: 0; }
    .p2-form input { flex: 1 1 auto; width: auto; min-width: 0; }
    /* Přihlášení se do lišty nevejde vedle tlačítka Kalendář a burgeru. */
    .p2-nav__login { display: none; }
    .p2-nav__right .p2-btn { padding: 8px 13px; font-size: 13px; }
    .p2-nav__in { gap: 12px; }
    .p2-row { flex-wrap: wrap; }
    .p2-row__main { flex: 1 0 55%; }
    .p2-row__end { width: 100%; justify-content: space-between; }
    .p2-foot__in { flex-direction: column; align-items: flex-start; gap: 16px; }
    .p2-foot__right { margin-left: 0; }
    /* 16px zabrání iOS zoomu při psaní */
    .p2-search input, .p2-form input, .p2-nav__search input { font-size: 16px; }
}

/* =====================================================================
   PROGRAM — výpis termínů po dnech
   ===================================================================== */

.p2-prog-head { background: linear-gradient(120deg, #f5f3fe 0%, #efedfd 100%); padding: 26px 0 28px; }
.p2-crumbs { font-size: 12.5px; color: var(--p2-muted); margin-bottom: 10px; }
.p2-crumbs a:hover { color: var(--p2-brand); }
.p2-crumbs span { margin: 0 6px; }
.p2-prog-head h1 { font-size: 32px; font-weight: 700; }
.p2-prog-head p { margin-top: 7px; font-size: 14.5px; color: var(--p2-body); }

/* ---------- Lišta filtrů ---------- */
/* Lišta filtrů se lepí POD hlavičku webu, ne k hornímu okraji okna —
   `--pm-header-h` nastavuje skript v templates/header.php podle skutečné
   výšky hlavičky (liší se dle šířky okna a podle běžící info lišty). */
.p2-filters {
    background: #fff;
    border-bottom: 1px solid var(--p2-line);
    padding: 16px 0;
    position: sticky; top: var(--pm-header-h, 0px); z-index: 20;
}
.p2-filters .p2-chips { margin-top: 0; margin-bottom: 12px; }
.p2-filterbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ---------- Vlastní rozbalovací filtr ----------
   Nativní `<select>` kreslí operační systém, takže na každém počítači vypadá
   jinak a nejde sladit se zbytkem webu. Tohle je tlačítko + panel z odkazů. */
.p2-dd { position: relative; }
.p2-dd__btn {
    display: inline-flex; align-items: center; gap: 10px;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-btn); padding: 9px 14px;
    font: inherit; font-size: 13.5px; font-weight: 500;
    color: var(--p2-ink); cursor: pointer; white-space: nowrap;
    transition: border-color .15s, box-shadow .15s;
}
.p2-dd__btn i { font-size: 10px; color: var(--p2-muted); transition: transform .18s; }
.p2-dd__btn:hover { border-color: #c9c3ee; }
.p2-dd.is-open .p2-dd__btn {
    border-color: var(--p2-brand);
    box-shadow: 0 0 0 3px rgba(109, 82, 232, .13);
}
.p2-dd.is-open .p2-dd__btn i { transform: rotate(180deg); }
/* Vybraný filtr je vidět na první pohled i se zavřeným panelem. */
.p2-dd.is-set .p2-dd__btn {
    background: var(--p2-brand-soft); border-color: #cfc6f5;
    color: var(--p2-brand-dark);
}
.p2-dd.is-set .p2-dd__btn i { color: var(--p2-brand); }

.p2-dd__menu {
    display: none; position: absolute; top: calc(100% + 7px); left: 0; z-index: 40;
    min-width: 100%; max-width: 280px; max-height: 320px; overflow-y: auto;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: 13px; padding: 6px;
    box-shadow: 0 14px 34px rgba(30, 24, 60, .14);
}
.p2-dd.is-open .p2-dd__menu { display: block; }
.p2-dd__opt {
    display: block; padding: 8px 12px; border-radius: 8px;
    font-size: 13.5px; color: var(--p2-body); white-space: nowrap;
    transition: background .13s, color .13s;
}
.p2-dd__opt:hover { background: #f6f4fe; color: var(--p2-ink); }
.p2-dd__opt.is-active {
    background: var(--p2-brand); color: #fff; font-weight: 500;
}
.p2 .p2-dd__opt.is-active:hover { background: var(--p2-brand); color: #fff; }
.p2-filterbar__search {
    display: flex; align-items: center; gap: 8px; flex: 1 1 190px; min-width: 0;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-btn); padding: 8px 13px;
}
.p2-filterbar__search i { color: var(--p2-muted); font-size: 13px; }
.p2-filterbar__search input {
    border: 0; outline: 0; background: transparent; font-family: inherit;
    font-size: 13.5px; width: 100%; min-width: 0; color: var(--p2-ink);
}
.p2-filterbar__reset {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 13px; color: var(--p2-muted); white-space: nowrap;
}
.p2-filterbar__reset i { font-size: 11px; }
.p2-filterbar__reset:hover { color: var(--p2-danger); }

/* ---------- Den ---------- */
.p2-daygroup { margin-bottom: 46px; }
/* Sticky lišta filtrů zajíždí těsně nad nadpis dne, proto scroll-margin —
   po prokliku kotvy zůstane nadpis vidět, ne schovaný pod lištou. */
/* `.p2 .p2-dayhead`, ne jen `.p2-dayhead`: reset `.p2 h1,.p2 h2,… {margin:0}`
   výš v souboru má vyšší specificitu a mezeru pod nadpisem by přebil. */
.p2 .p2-dayhead {
    display: flex; align-items: baseline; gap: 12px;
    font-size: 17px; font-weight: 600;
    margin: 0 0 18px; padding: 0 2px;
    scroll-margin-top: calc(var(--pm-header-h, 0px) + 96px);
}
.p2-dayhead__dow {
    align-self: center;
    background: var(--p2-brand); color: #fff; border-radius: 7px;
    font-size: 11px; font-weight: 700; letter-spacing: .04em;
    padding: 4px 8px;
}
.p2-dayhead__date { color: var(--p2-ink); }
.p2-dayhead__dowlong { font-size: 13.5px; font-weight: 400; color: var(--p2-muted); }
.p2-dayhead__tag {
    align-self: center;
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
    background: #ecfdf3; color: var(--p2-ok); border-radius: 999px; padding: 3px 9px;
}
.p2-dayhead__count { margin-left: auto; font-size: 12.5px; font-weight: 500; color: var(--p2-muted); }

/* ---------- Seznam termínů ---------- */
.p2-prog-list {
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); overflow: hidden;
}

/* Řádek termínu
   -------------
   Grid, ne flex: sloupce mají pevnou šířku, takže časy, dostupnost i tlačítka
   sedí přes všechny dny přesně pod sebou. Flex je nechával „plavat" podle
   délky názvu a výpis pak působil rozsypaně.
   `minmax(0, 1fr)` u hlavního sloupce — bez toho by dlouhý název sloupec
   roztáhl a rozbil zarovnání zbytku. */
.p2-prog-row {
    display: grid;
    grid-template-columns: 56px 56px minmax(0, 1fr) 132px 112px;
    align-items: center;
    column-gap: 16px;
    padding: 12px 18px;
    border-top: 1px solid var(--p2-line);
    transition: background .15s;
}
.p2-prog-row:first-child { border-top: 0; }
.p2-prog-row:hover { background: #faf9fe; }
.p2-prog-row.is-out { background: #fcfcfd; }
.p2-prog-row.is-out .p2-prog-row__thumb img,
.p2-prog-row.is-out .p2-prog-row__title { opacity: .62; }

.p2-prog-row__time {
    font-size: 16px; font-weight: 700; color: var(--p2-ink);
    font-variant-numeric: tabular-nums; letter-spacing: -.01em;
}
.p2-prog-row__thumb {
    display: block; width: 56px; height: 56px;
    border-radius: 10px; overflow: hidden; background: #ede9fb;
}
.p2-prog-row__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }

.p2-prog-row__main { min-width: 0; }
.p2-prog-row__title {
    display: block; font-size: 15.5px; font-weight: 600; line-height: 1.3;
    color: var(--p2-ink);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.p2-prog-row__title:hover { color: var(--p2-brand); }
.p2-prog-row__meta {
    font-size: 12.5px; color: var(--p2-muted); margin-top: 3px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Zarovnání doleva, ne doprava: tečky u dostupnosti pak stojí v jedné svislici
   a výpis se přestane vlnit podle délky čísla („4 volná místa" × „377 volných míst"). */
.p2-prog-row__seats { text-align: left; font-size: 12.5px; }
.p2-prog-row__cta { display: flex; justify-content: flex-end; }
.p2-prog-row__cta .p2-btn { width: 100%; justify-content: center; }

/* ---------- Prázdný stav ---------- */
.p2-empty { text-align: center; padding: 60px 20px; }
.p2-empty i { font-size: 40px; color: #cfc9f2; }
.p2-empty h2 { font-size: 20px; font-weight: 600; margin-top: 14px; }
.p2-empty p { font-size: 14px; color: var(--p2-muted); margin: 7px 0 18px; }

/* ---------- Stránkování ---------- */
.p2-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 7px; margin-top: 30px; }
.p2-pager__btn, .p2-pager__num {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 38px; height: 38px; padding: 0 13px;
    border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn);
    background: #fff; font-size: 13.5px; font-weight: 500; color: var(--p2-body);
    transition: border-color .15s, color .15s, background .15s;
}
.p2-pager__btn:hover, .p2-pager__num:hover { border-color: var(--p2-brand); color: var(--p2-brand); }
.p2-pager__num.is-active { background: var(--p2-brand); border-color: var(--p2-brand); color: #fff; }
.p2-pager__dots { color: var(--p2-muted); padding: 0 4px; }

@media (max-width: 680px) {
    .p2-prog-head { padding: 20px 0 22px; }
    .p2-prog-head h1 { font-size: 24px; }
    .p2-filters { position: static; }
    /* Dva filtry vedle sebe, hledání přes celou šířku. */
    .p2-dd { flex: 1 1 45%; }
    .p2-dd__btn { width: 100%; justify-content: space-between; }
    .p2-dd__menu { max-width: none; right: 0; }
    .p2-filterbar__search { flex: 1 1 100%; }
    /* Mobil: náhled vlevo přes obě patra, vpravo čas + název + místo,
       spodní patro nese dostupnost a tlačítko. Grid drží náhled a text
       zarovnané i u dvouřádkových názvů. */
    .p2-prog-row {
        grid-template-columns: 52px minmax(0, 1fr);
        grid-template-areas:
            "thumb time"
            "thumb main"
            "foot  foot";
        align-items: start;
        column-gap: 12px; row-gap: 0;
        padding: 14px;
    }
    .p2-prog-row__thumb { grid-area: thumb; width: 52px; height: 52px; }
    .p2-prog-row__main  { grid-area: main; }
    /* Dostupnost a tlačítko sdílejí jednu buňku přes celou šířku — jeden se
       zarovná doleva, druhý doprava. Ve sloupci 52 px pod náhledem by se
       „377 volných míst" lámalo na tři řádky. */
    .p2-prog-row__seats,
    .p2-prog-row__cta {
        grid-column: 1 / -1; grid-row: 3;
        align-self: center; margin-top: 12px;
    }
    .p2-prog-row__seats { justify-self: start; text-align: left; }
    .p2-prog-row__cta   { justify-self: end; }
    .p2-prog-row__cta .p2-btn { width: auto; }
    /* Čas patří nad název, ne do vlastního sloupce — na 375 px by ukrojil
       56 px z místa pro název. */
    .p2-prog-row__time {
        grid-area: time; font-size: 13px; font-weight: 700;
        color: var(--p2-brand); line-height: 1.2;
    }
    /* Dlouhé názvy zkrátit na dva řádky, jinak jeden koncert nafoukne
       kartu o 60 px a výpis ztratí rytmus. */
    .p2-prog-row__title {
        white-space: normal; font-size: 15px;
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .p2-prog-row__meta { white-space: normal; line-height: 1.45; }
    .p2-dayhead__count { display: none; }
    .p2-dayhead { font-size: 16px; gap: 9px; }
    .p2-daygroup { margin-bottom: 34px; }
    /* 16px zabrání iOS zoomu při psaní */
    .p2-filterbar__search input { font-size: 16px; }
}

/* =====================================================================
   ŽÁNROVÉ LANDING PAGE (/muzikaly, /cinohra, /opera…)
   Sdílí výpis termínů s /program, přidává hlavičku s počtem, dvousloupcový
   layout se sidebarem, mřížky plakátů a galerii.
   ===================================================================== */

.p2-lp-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }
.p2-lp-head h1 { font-size: 32px; font-weight: 700; }
.p2-lp-head__city {
    display: flex; align-items: center; gap: 7px;
    margin-top: 8px; font-size: 14.5px; color: var(--p2-body);
}
.p2-lp-head__city i { color: var(--p2-brand); font-size: 13px; }
.p2-lp-head__count { text-align: right; line-height: 1.1; flex: 0 0 auto; }
.p2-lp-head__count strong {
    display: block; font-size: 32px; font-weight: 700; color: var(--p2-brand-dark);
    font-variant-numeric: tabular-nums;
}
.p2-lp-head__count span { font-size: 12.5px; color: var(--p2-muted); }

/* Dvousloupcový layout. `minmax(0, 1fr)` u hlavního sloupce, jinak by
   široký obrázek ve widgetu roztáhl mřížku přes obrazovku. */
.p2-lp { display: block; }
.p2-lp--sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 324px; gap: 34px; align-items: start; }
.p2-lp__main { min-width: 0; }
.p2-lp__side { min-width: 0; display: flex; flex-direction: column; gap: 22px; }

.p2-lp-block { margin: 40px 0; }
.p2-lp-block__title { font-size: 22px; font-weight: 700; margin-bottom: 18px; }
.p2-lp-block__title--muted { color: var(--p2-muted); font-size: 19px; }

/* Redakční text z administrace — čistě typografická obálka. */
.p2-prose {
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 24px 26px; margin-bottom: 34px;
    font-size: 15px; line-height: 1.7; color: var(--p2-body);
}
.p2-prose > *:first-child { margin-top: 0; }
.p2-prose > *:last-child { margin-bottom: 0; }
.p2-prose p { margin: 0 0 14px; }
.p2 .p2-prose h2 { font-size: 20px; margin: 26px 0 10px; }
.p2 .p2-prose h3 { font-size: 17px; margin: 22px 0 8px; }
.p2-prose ul, .p2-prose ol { margin: 0 0 14px; padding-left: 22px; }
.p2-prose li { margin-bottom: 6px; }
.p2-prose a { color: var(--p2-brand-dark); text-decoration: underline; }
.p2-prose a:hover { color: var(--p2-brand); }
.p2-prose img { max-width: 100%; height: auto; border-radius: var(--p2-r-img); }

/* Odznak doporučeného termínu — místo žlutého rámečku kolem celé karty. */
.p2-tip {
    display: inline-block; margin-right: 7px;
    background: #fff7e6; color: #b45309; border-radius: 999px;
    padding: 1px 8px; font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em;
}
.p2-prog-row.is-featured { background: #fffdf7; }
.p2-prog-row.is-featured:hover { background: #fffaef; }

/* Mřížka plakátů (poměr 2:3 jako divadelní plakát). */
.p2-poster-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.p2-poster-grid--dense { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.p2-lp--sidebar .p2-poster-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.p2-lp--sidebar .p2-poster-grid--dense { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.p2-poster {
    display: block; background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); overflow: hidden;
    transition: border-color .16s, box-shadow .16s, transform .16s;
}
.p2-poster:hover {
    border-color: #d8d2f7; box-shadow: var(--p2-shadow-lg); transform: translateY(-2px);
}
/* Plocha obrázku je `<span>` — bez display:block se neuplatní aspect-ratio. */
.p2-poster__media {
    display: block; aspect-ratio: 2 / 3; background: #ede9fb; overflow: hidden;
}
.p2-poster__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.p2-poster__body { display: block; padding: 11px 13px 14px; }
.p2-poster__body strong {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    font-size: 13.5px; font-weight: 600; line-height: 1.35; color: var(--p2-ink);
}
.p2-poster:hover .p2-poster__body strong { color: var(--p2-brand); }
.p2-poster__body em {
    display: block; margin-top: 4px; font-style: normal;
    font-size: 12px; color: var(--p2-muted);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.p2-poster__date {
    display: inline-block; margin-top: 7px;
    font-size: 11.5px; font-weight: 600; color: var(--p2-brand-dark);
    background: var(--p2-brand-soft); border-radius: 999px; padding: 2px 9px;
}
.p2-poster--archive .p2-poster__media img { filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.p2-poster--archive:hover .p2-poster__media img { filter: none; opacity: 1; }

/* Galerie */
.p2-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.p2-gallery a { display: block; aspect-ratio: 1; border-radius: var(--p2-r-img); overflow: hidden; background: #ede9fb; }
.p2-gallery img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .25s; }
.p2-gallery a:hover img { transform: scale(1.05); }

.p2-section--soft { background: var(--p2-brand-softer); }

/* Kalendář rozsahu dat visí na skrytém inputu, otevírá ho naše tlačítko —
   input musí zůstat v layoutu (ne display:none), jinak flatpickr nezná pozici. */
.p2-dd__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p2-dd__hidden {
    position: absolute; left: 0; bottom: 0; width: 1px; height: 1px;
    opacity: 0; pointer-events: none; border: 0; padding: 0;
}

@media (max-width: 1024px) {
    .p2-lp--sidebar { grid-template-columns: minmax(0, 1fr); }
    .p2-lp--sidebar .p2-poster-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .p2-lp--sidebar .p2-poster-grid--dense { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .p2-lp-head { align-items: flex-start; gap: 14px; }
    .p2-lp-head h1 { font-size: 24px; }
    .p2-lp-head__count strong { font-size: 24px; }
    .p2-poster-grid,
    .p2-lp--sidebar .p2-poster-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
    .p2-poster-grid--dense,
    .p2-lp--sidebar .p2-poster-grid--dense { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    .p2-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .p2-prose { padding: 18px 18px; margin-bottom: 26px; }
    .p2-lp-block { margin: 30px 0; }
    .p2-lp-block__title { font-size: 19px; }
}

/* =====================================================================
   UMĚLCI — seznam a profil
   ===================================================================== */

/* Abecední filtr */
.p2-abc { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.p2-abc__l {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 34px; height: 34px; padding: 0 9px;
    background: #fff; border: 1px solid var(--p2-line); border-radius: 9px;
    font-size: 13px; font-weight: 600; color: var(--p2-body);
    transition: border-color .14s, background .14s, color .14s;
}
.p2-abc__l:hover { border-color: var(--p2-brand); color: var(--p2-brand); }
.p2 .p2-abc__l.is-active {
    background: var(--p2-brand); border-color: var(--p2-brand); color: #fff;
}

/* Mřížka umělců
   ---------------
   Kulatý avatar, ne plakát 3:4. Fotku má jen zlomek z bezmála čtyř tisíc
   profilů, takže velká prázdná plocha by tvořila většinu stránky. */
.p2-artist-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.p2-artist {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 18px 12px 16px;
    transition: border-color .16s, box-shadow .16s, transform .16s;
}
.p2-artist:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }
.p2-artist__media {
    display: flex; align-items: center; justify-content: center;
    width: 78px; height: 78px; border-radius: 50%;
    background: linear-gradient(140deg, #f3f1fd 0%, #e4dffa 100%);
    overflow: hidden; flex: 0 0 auto;
}
.p2-artist__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
/* Iniciály místo generické siluety — profily bez fotky jdou aspoň rozlišit. */
.p2-artist__initials {
    font-family: 'Poppins', 'Inter', sans-serif;
    font-size: 24px; font-weight: 700; letter-spacing: .02em;
    color: #b0a5e8; user-select: none;
}
.p2-artist__body { display: block; margin-top: 11px; }
.p2-artist__body strong {
    display: block; font-size: 13.5px; font-weight: 600; line-height: 1.35; color: var(--p2-ink);
}
.p2-artist:hover .p2-artist__body strong { color: var(--p2-brand); }
.p2-artist__roles {
    display: inline-block; margin-top: 6px; font-style: normal;
    font-size: 11px; font-weight: 600; color: var(--p2-brand-dark);
    background: var(--p2-brand-soft); border-radius: 999px; padding: 2px 9px;
}

/* ---------- Profil umělce ---------- */
.p2-artist-head {
    position: relative; overflow: hidden;
    background: linear-gradient(120deg, #f5f3fe 0%, #efedfd 100%);
    padding: 26px 0 32px;
}
/* Rozostřená fotka na pozadí — jen náznak, aby text zůstal čitelný. */
.p2-artist-head__bg {
    position: absolute; inset: -30px;
    background-size: cover; background-position: center 22%;
    filter: blur(26px); opacity: .22;
}
.p2-artist-head__in { position: relative; z-index: 1; }
.p2-artist-head__row { display: flex; gap: 26px; align-items: flex-start; }
.p2-artist-head__photo {
    flex: 0 0 168px; width: 168px; aspect-ratio: 3 / 4;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(140deg, #f3f1fd 0%, #e4dffa 100%);
    border-radius: var(--p2-r-card); overflow: hidden;
    box-shadow: 0 12px 30px rgba(30, 25, 90, .16);
}
.p2-artist-head__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
/* Bez fotky se z dlaždice 3:4 stane kulatý avatar — prázdný obdélník
   přes třetinu hlavičky jen odsouval text a nic neříkal. */
.p2-artist-head__photo.is-empty {
    flex: 0 0 112px; width: 112px; height: 112px; aspect-ratio: auto;
    border-radius: 50%; box-shadow: none;
}
.p2-artist-head__photo.is-empty .p2-artist__initials { font-size: 34px; }
.p2-artist-head__txt { min-width: 0; flex: 1; }
.p2 .p2-artist-head__txt h1 { font-size: 34px; font-weight: 700; }
.p2-artist-head__born { margin-top: 6px; font-size: 14px; color: var(--p2-muted); }
.p2-artist-head__lead { margin-top: 12px; font-size: 15px; line-height: 1.65; max-width: 62ch; }
.p2-artist-head__stats { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 16px; font-size: 13px; color: var(--p2-muted); }
.p2-artist-head__stats strong { color: var(--p2-ink); font-weight: 600; }
.p2-artist-head__actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.p2-artist-head__credit { margin-top: 14px; font-size: 11.5px; color: var(--p2-muted); }
.p2-artist-head__credit i { margin-right: 5px; }
.p2-artist-head__credit a { text-decoration: underline; }

/* Blok „teď hraje" — jediné místo na profilu, odkud teče provize,
   proto má vlastní rámeček a stojí nad vším ostatním. */
.p2-tickets {
    border: 1px solid #d8d2f7; border-radius: var(--p2-r-card);
    background: var(--p2-brand-softer); padding: 22px 22px 18px; margin-bottom: 34px;
}
.p2 .p2-tickets__title { font-size: 20px; font-weight: 700; }
.p2-tickets__sub { margin: 5px 0 15px; font-size: 13.5px; color: var(--p2-muted); }
.p2-tickets .p2-prog-list { border-color: var(--p2-line); }
/* Bez sloupce s časem — na profilu je klíčový titul a role, ne hodina. */
.p2-tickets .p2-prog-row { grid-template-columns: 56px minmax(0, 1fr) 112px; }
.p2-prog-row__role { font-weight: 400; color: var(--p2-muted); }
.p2-tickets__note { margin-top: 14px; font-size: 11.5px; line-height: 1.6; color: var(--p2-muted); }

.p2-lp-block__note { margin: -10px 0 16px; font-size: 13px; color: var(--p2-muted); }

/* Dlaždice role */
.p2-role-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.p2-role-grid--dense { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.p2-role {
    display: flex; align-items: center; gap: 13px;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 11px 14px 11px 11px;
    transition: border-color .15s, box-shadow .15s;
}
.p2-role:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow); }
/* Pevný poměr 2:3 — plakáty se dřív deformovaly podle vlastní velikosti. */
.p2-role__media {
    flex: 0 0 46px; width: 46px; aspect-ratio: 2 / 3;
    background: #ede9fb; border-radius: 7px; overflow: hidden;
}
.p2-role__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.p2-role__body { min-width: 0; }
.p2-role__body strong {
    display: block; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--p2-ink);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.p2-role:hover .p2-role__body strong { color: var(--p2-brand); }
.p2-role__body em {
    display: block; margin-top: 2px; font-style: normal;
    font-size: 12.5px; color: var(--p2-muted);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.p2-role__lead {
    display: inline-block; margin-top: 6px;
    background: #fff7e6; color: #b45309; border-radius: 999px;
    padding: 1px 8px; font-size: 11px; font-weight: 700;
}
.p2-role__year { display: block; margin-top: 4px; font-size: 11.5px; color: var(--p2-muted); }
.p2-role--plain { cursor: default; }
.p2-role--plain:hover { border-color: var(--p2-line); box-shadow: none; }
.p2-role--archive .p2-role__media img { filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.p2-role--archive:hover .p2-role__media img { filter: none; opacity: 1; }
.p2-role--archive .p2-role__body strong { font-size: 13px; }

.p2-archive { background: #faf9fd; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); padding: 22px; }
.p2 .p2-archive__sub { font-size: 15px; font-weight: 600; color: var(--p2-body); margin: 20px 0 12px; }
.p2 .p2-archive__sub:first-of-type { margin-top: 0; }

@media (max-width: 1024px) {
    .p2-artist-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .p2-role-grid--dense { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .p2-artist-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    .p2-artist { padding: 14px 8px 13px; }
    .p2-artist__media { width: 62px; height: 62px; }
    .p2-artist__body strong { font-size: 12.5px; }
    .p2-artist__initials { font-size: 19px; }

    .p2-artist-head__row { flex-direction: column; gap: 18px; }
    /* Ve sloupci určuje flex-basis výšku — fotka by se bez tohohle splácla. */
    .p2-artist-head__photo { flex: 0 0 auto; width: 126px; }
    .p2-artist-head__photo.is-empty { width: 88px; height: 88px; }
    .p2-artist-head__photo.is-empty .p2-artist__initials { font-size: 27px; }
    .p2 .p2-artist-head__txt h1 { font-size: 25px; }
    .p2-artist-head__stats { gap: 14px; }

    .p2-tickets { padding: 16px 14px 14px; }
    /* Řádek s vstupenkami se na mobilu skládá stejně jako v programu. */
    .p2-tickets .p2-prog-row {
        grid-template-columns: 52px minmax(0, 1fr);
        grid-template-areas: "thumb main" "foot foot";
    }
    .p2-role-grid, .p2-role-grid--dense { grid-template-columns: minmax(0, 1fr); }
    .p2-archive { padding: 16px 14px; }
}

/* =====================================================================
   DIVADLA — seznam a detail scény
   ===================================================================== */

/* Karta divadla v přehledu */
.p2-venue {
    display: flex; flex-direction: column;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); overflow: hidden;
    transition: border-color .16s, box-shadow .16s, transform .16s;
}
.p2-venue:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }
/* Plocha je `<span>` — bez display:block se aspect-ratio neuplatní. */
.p2-venue__media {
    display: block; position: relative;
    aspect-ratio: 16 / 10; background: #ede9fb; overflow: hidden;
}
.p2-venue__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.p2-venue:hover .p2-venue__media img { transform: scale(1.04); }
.p2-venue__badge {
    position: absolute; top: 11px; right: 11px;
    background: var(--p2-brand); color: #fff;
    border-radius: 999px; padding: 3px 11px;
    font-size: 11.5px; font-weight: 700;
    box-shadow: 0 3px 10px rgba(30, 25, 90, .2);
}
.p2-venue__badge--off { background: rgba(25, 25, 51, .6); font-weight: 600; }
.p2-venue__body { display: flex; flex-direction: column; flex: 1; padding: 13px 15px 14px; }
.p2-venue__body strong { font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--p2-ink); }
.p2-venue:hover .p2-venue__body strong { color: var(--p2-brand); }
.p2-venue__where {
    display: block; margin-top: 5px; font-size: 12.5px; color: var(--p2-muted);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* margin-top:auto přišpendlí patičku dolů, takže „Detail" sedí u všech
   karet v řadě ve stejné výšce i při různě dlouhých adresách. */
.p2-venue__foot {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    margin-top: auto; padding-top: 12px; border-top: 1px solid var(--p2-line);
    font-size: 12.5px;
}
.p2-venue__foot em { font-style: normal; color: var(--p2-muted); }
.p2-venue__more { color: var(--p2-brand-dark); font-weight: 600; white-space: nowrap; }
.p2-venue__more i { font-size: 10px; margin-left: 4px; }
.p2-venue.is-sleeping .p2-venue__media img { filter: grayscale(1); opacity: .8; }
.p2-venue.is-sleeping .p2-venue__body strong { color: var(--p2-body); }

/* ---------- Detail divadla ---------- */
/* Fotka scény je na šířku (16:10), ne portrét jako u umělců. */
/* Hlavička divadla je varianta hlavičky umělce — modifikátor sám o sobě
   nic nemění, ale bez definice by v CSS vypadal jako překlep. */
.p2-venue-head { /* varianta .p2-artist-head */ }
.p2-venue-head__photo {
    flex: 0 0 300px; width: 300px; aspect-ratio: 16 / 10;
    border-radius: var(--p2-r-card); overflow: hidden; background: #ede9fb;
    box-shadow: 0 12px 30px rgba(30, 25, 90, .16);
}
.p2-venue-head__photo img { width: 100%; height: 100%; object-fit: cover; }
.p2-venue-head__contact { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.p2-venue-head__contact > * {
    display: inline-flex; align-items: center; gap: 7px;
    background: rgba(255, 255, 255, .75); border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-btn); padding: 6px 12px;
    font-size: 13px; color: var(--p2-body);
}
.p2-venue-head__contact i { color: var(--p2-brand); font-size: 12px; }
.p2-venue-head__contact a:hover { border-color: var(--p2-brand); color: var(--p2-brand-dark); }

/* Kotvová lišta. Lepí se pod hlavičku webu, proto stejný z-index řád. */
.p2-anchors {
    position: sticky; top: var(--pm-header-h, 0px); z-index: 25;
    background: #fff; border-bottom: 1px solid var(--p2-line);
}
.p2-anchors__in { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.p2-anchors__in::-webkit-scrollbar { display: none; }
.p2-anchors a {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 14px 14px; font-size: 14px; font-weight: 500;
    color: var(--p2-body); white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color .14s, border-color .14s;
}
.p2-anchors a:hover { color: var(--p2-brand); border-bottom-color: var(--p2-brand); }
.p2-anchors em {
    font-style: normal; font-size: 11px; font-weight: 700;
    background: var(--p2-brand-soft); color: var(--p2-brand-dark);
    border-radius: 999px; padding: 1px 8px;
}
/* Sticky lišta by jinak zakryla nadpis sekce, na kterou kotva skočí. */
.p2-anchor { scroll-margin-top: calc(var(--pm-header-h, 0px) + 70px); }

.p2-count {
    display: inline-block; margin-left: 8px; vertical-align: middle;
    font-size: 12.5px; font-weight: 600; color: var(--p2-muted);
    background: #f3f2fb; border-radius: 999px; padding: 2px 10px;
}

/* Vysvětlující poznámka místo prázdné sekce */
.p2-note {
    background: var(--p2-brand-softer); border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 20px 22px; margin-bottom: 24px;
}
.p2 .p2-note h3 { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.p2-note p { font-size: 14px; line-height: 1.6; color: var(--p2-body); }

.p2-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }

/* Mapa */
.p2-map {
    border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    overflow: hidden; background: #f3f2fb;
}
.p2-map iframe, .p2-map #map { display: block; width: 100%; height: 420px; border: 0; }
.p2-map__ph {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 7px; height: 420px; cursor: pointer; user-select: none;
    background: linear-gradient(140deg, #f5f3fe 0%, #ece8fc 100%);
}
.p2-map__ph i { font-size: 30px; color: var(--p2-brand); }
.p2-map__ph strong { font-size: 15px; color: var(--p2-ink); }
.p2-map__ph span { font-size: 13px; color: var(--p2-muted); }
.p2-map__links { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }

@media (max-width: 1024px) {
    .p2-venue-head__photo { flex: 0 0 240px; width: 240px; }
}

@media (max-width: 680px) {
    /* Ve sloupci určuje flex-basis výšku — fotka by se bez tohohle splácla. */
    .p2-venue-head__photo { flex: 0 0 auto; width: 100%; }
    .p2-venue-head__contact > * { font-size: 12.5px; padding: 5px 10px; }
    .p2-anchors a { padding: 12px 10px; font-size: 13.5px; }
    .p2-grid-2 { grid-template-columns: minmax(0, 1fr); }
    .p2-map iframe, .p2-map #map, .p2-map__ph { height: 300px; }
    .p2-map__links .p2-btn { flex: 1 1 100%; justify-content: center; }
}

/* V úzkém sloupci vedle sidebaru ubereme dostupnosti a tlačítku šířku,
   ať zbyde na název — jinak se „SATURNIN - VEŘEJNÁ GENERÁLKA" ořízne. */
@media (min-width: 1025px) {
    .p2-lp--sidebar .p2-prog-row {
        grid-template-columns: 50px 48px minmax(0, 1fr) 108px 104px;
        column-gap: 13px; padding: 11px 14px;
    }
    .p2-lp--sidebar .p2-prog-row__thumb { width: 48px; height: 48px; }
    .p2-lp--sidebar .p2-prog-row__time { font-size: 15px; }
    .p2-lp--sidebar .p2-prog-row__seats { font-size: 12px; }
}

/* =====================================================================
   FORMULÁŘE, KONTAKTY A PŘIHLAŠOVACÍ STRÁNKY
   ===================================================================== */

.p2-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; align-items: start; }
.p2-col { display: flex; flex-direction: column; gap: 22px; min-width: 0; }

/* Prostý bílý panel (kontakty, komunitní portál). Jmenuje se `p2-box`, ne
   `p2-card` — ten je odjakživa karta představení a druhá definice ho přebíjela. */
.p2-box {
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 24px 26px;
}
.p2 .p2-box__title { font-size: 19px; font-weight: 700; margin-bottom: 16px; }

/* Kontaktní řádek */
.p2-contact {
    display: flex; gap: 14px; align-items: flex-start;
    padding: 13px; border-radius: var(--p2-r-card);
    transition: background .14s;
}
.p2-contact + .p2-contact { margin-top: 4px; }
.p2-contact:hover { background: var(--p2-brand-softer); }
.p2-contact__icon {
    flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--p2-brand-soft); color: var(--p2-brand-dark); font-size: 16px;
}
.p2-contact__icon--warm { background: #fff4e3; color: #b45309; }
.p2-contact strong { display: block; font-size: 14.5px; font-weight: 600; color: var(--p2-ink); }
.p2-contact em {
    display: block; margin-top: 2px; font-style: normal;
    font-size: 15px; color: var(--p2-brand-dark); word-break: break-all;
}
.p2-contact__note { display: block; margin-top: 3px; font-size: 12.5px; color: var(--p2-muted); }

.p2-founder { display: flex; gap: 18px; align-items: center; }
.p2-founder__avatar {
    flex: 0 0 76px; width: 76px; height: 76px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(140deg, #7d6bea 0%, #5a4bd4 100%);
    color: #fff; font-family: 'Poppins', 'Inter', sans-serif;
    font-size: 26px; font-weight: 700; letter-spacing: .02em;
}
.p2-founder strong { display: block; font-size: 17px; font-weight: 700; color: var(--p2-ink); }
.p2-founder span { display: block; font-size: 13.5px; color: var(--p2-muted); margin-top: 2px; }
.p2-founder__ico { font-size: 12.5px !important; }
.p2-founder a { display: inline-block; margin-top: 8px; font-size: 13.5px; color: var(--p2-brand-dark); }
.p2-founder a:hover { text-decoration: underline; }

.p2-social { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.p2-social a {
    display: flex; flex-direction: column; align-items: center; gap: 9px;
    padding: 18px 8px; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    font-size: 12.5px; font-weight: 500; color: var(--p2-body);
    transition: border-color .15s, transform .15s;
}
.p2-social a i { font-size: 21px; transition: transform .18s; }
.p2-social a:hover { transform: translateY(-2px); }
.p2-social__fb i { color: #1877f2; } .p2-social__fb:hover { border-color: #1877f2; }
.p2-social__ig i { color: #d6249f; } .p2-social__ig:hover { border-color: #d6249f; }
.p2-social__yt i { color: #ff0000; } .p2-social__yt:hover { border-color: #ff0000; }

/* ---------- Pole formuláře ---------- */
.p2-field { margin-bottom: 16px; }
.p2-field label { display: block; margin-bottom: 6px; font-size: 13.5px; font-weight: 500; color: var(--p2-ink); }
.p2 .p2-field input,
.p2 .p2-field select,
.p2 .p2-field textarea {
    width: 100%; box-sizing: border-box;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn);
    padding: 11px 13px; font: inherit; font-size: 14.5px; color: var(--p2-ink);
    transition: border-color .15s, box-shadow .15s;
}
.p2 .p2-field textarea { resize: vertical; min-height: 120px; }
.p2 .p2-field select { appearance: none; cursor: pointer;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 8l3-3.5' stroke='%238a8aa3' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center; background-size: 12px;
    padding-right: 34px;
}
.p2 .p2-field input:focus,
.p2 .p2-field select:focus,
.p2 .p2-field textarea:focus {
    outline: 0; border-color: var(--p2-brand); box-shadow: 0 0 0 3px rgba(109, 82, 232, .13);
}
/* Pole s ikonou vlevo (přihlášení) */
.p2-field--icon { position: relative; }
.p2-field--icon > i {
    position: absolute; left: 13px; bottom: 13px;
    color: var(--p2-muted); font-size: 13px; pointer-events: none;
}
.p2 .p2-field--icon input { padding-left: 36px; }
.p2-field__eye {
    position: absolute; right: 10px; bottom: 8px;
    background: none; border: 0; padding: 5px 7px; cursor: pointer;
    color: var(--p2-muted); font-size: 14px;
}
.p2-field__eye:hover { color: var(--p2-ink); }

.p2-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--p2-body); }
.p2-check input { margin-top: 2px; accent-color: var(--p2-brand); width: 15px; height: 15px; }
.p2-check a { color: var(--p2-brand-dark); text-decoration: underline; }

.p2-msg { border-radius: var(--p2-r-card); padding: 14px 16px; margin-bottom: 16px; font-size: 14px; }
.p2-msg--ok { background: #f0fdf4; border: 1px solid #bbf7d0; color: #15803d; }
.p2-msg--ok strong { display: block; margin-bottom: 3px; }
.p2-msg--err { background: #fef2f2; border: 1px solid #fecaca; color: var(--p2-danger); }
.p2-msg--info { background: var(--p2-brand-softer); border: 1px solid var(--p2-line); color: var(--p2-body); }

.p2-btn--block { width: 100%; justify-content: center; padding: 12px 20px; font-size: 15px; }

/* ---------- Přihlášení / registrace ---------- */
/* Samostatné stránky bez hlavičky webu — proto vlastní centrované plátno. */
.p2-auth {
    min-height: 100vh; display: flex; align-items: center; justify-content: center;
    padding: 32px 18px;
    background: linear-gradient(150deg, #f6f4fe 0%, #efedfd 45%, #eae5fc 100%);
}
.p2-auth__box { width: 100%; max-width: 424px; }
.p2-auth__logo { display: block; text-align: center; margin-bottom: 22px; }
.p2-auth__logo img { height: 52px; width: auto; margin: 0 auto; }
.p2-auth__card {
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: 18px; padding: 30px 28px;
    box-shadow: 0 18px 44px rgba(30, 25, 90, .10);
}
.p2 .p2-auth__card h1 { font-size: 23px; font-weight: 700; text-align: center; margin-bottom: 6px; }
.p2-auth__lead { text-align: center; font-size: 13.5px; color: var(--p2-muted); margin-bottom: 22px; }
.p2-auth__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.p2-auth__row a { font-size: 13px; color: var(--p2-brand-dark); }
.p2-auth__row a:hover { text-decoration: underline; }
/* Oddělovač „nebo" — čára je pseudoprvek, aby text seděl přesně uprostřed. */
.p2-auth__or {
    display: flex; align-items: center; gap: 12px;
    margin: 22px 0 16px; font-size: 12.5px; color: var(--p2-muted);
}
.p2-auth__or::before, .p2-auth__or::after {
    content: ''; flex: 1; height: 1px; background: var(--p2-line);
}
.p2-auth__social { display: flex; flex-direction: column; gap: 10px; }
.p2-auth__social a {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn);
    padding: 11px 16px; font-size: 14px; font-weight: 500; color: var(--p2-ink);
    background: #fff; transition: border-color .15s, background .15s;
}
.p2-auth__social a:hover { border-color: #c9c3ee; background: var(--p2-brand-softer); }
.p2-auth__social svg { width: 18px; height: 18px; }
.p2-auth__social .p2-auth__fb { background: #1877f2; border-color: #1877f2; color: #fff; }
.p2-auth__social .p2-auth__fb:hover { background: #166fe5; border-color: #166fe5; }
.p2-auth__foot { margin-top: 20px; text-align: center; font-size: 13.5px; color: var(--p2-muted); }
.p2-auth__foot a { color: var(--p2-brand-dark); font-weight: 600; }
.p2-auth__foot a:hover { text-decoration: underline; }
.p2-auth__back { display: block; text-align: center; margin-top: 20px; font-size: 13px; color: var(--p2-muted); }
.p2-auth__back:hover { color: var(--p2-brand-dark); }
/* Kód z autentikátoru — čitelný po dvojicích číslic. */
.p2 .p2-auth__code {
    text-align: center; font-size: 24px; letter-spacing: .35em;
    font-family: 'SFMono-Regular', Consolas, monospace; padding: 13px;
}

@media (max-width: 860px) {
    .p2-cols { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 680px) {
    .p2-box { padding: 18px 16px; }
    .p2-founder { gap: 14px; }
    .p2-founder__avatar { flex: 0 0 60px; width: 60px; height: 60px; font-size: 21px; }
    .p2-social a { padding: 14px 6px; }
    .p2-auth__card { padding: 24px 18px; }
    .p2-auth { padding: 20px 14px; }
    /* 16px zabrání iOS zoomu při psaní */
    .p2 .p2-field input, .p2 .p2-field select, .p2 .p2-field textarea { font-size: 16px; }
}

/* Ukazatel síly hesla (registrace) */
.p2-pw { margin-bottom: 16px; }
.p2-pw__bars { display: flex; gap: 5px; }
.p2-pw__bars span {
    flex: 1; height: 4px; border-radius: 999px; background: #e9e7f6;
    transition: background .2s;
}
.p2-pw__bars .is-slaboucke { background: #dc2626; }
.p2-pw__bars .is-slabe     { background: #ea8f0b; }
.p2-pw__bars .is-stredni   { background: #eab308; }
.p2-pw__bars .is-silne     { background: var(--p2-ok); }
.p2-pw__text { margin-top: 7px; font-size: 12px; color: var(--p2-muted); }
.p2-pw__text.is-slaboucke { color: #dc2626; }
.p2-pw__text.is-slabe     { color: #ea8f0b; }
.p2-pw__text.is-stredni   { color: #a16207; }
.p2-pw__text.is-silne     { color: var(--p2-ok); }
.p2-pw__req { list-style: none; margin: 9px 0 0; padding: 0; }
.p2-pw__req li {
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; color: var(--p2-muted); margin-bottom: 3px;
}
.p2-pw__req li i { font-size: 7px; width: 10px; text-align: center; }
.p2-pw__req li.is-ok { color: var(--p2-ok); }
.p2-pw__req li.is-ok i { font-size: 10px; }
.p2-pw__match { margin-top: 6px; font-size: 12px; }
.p2-pw__match.is-ok { color: var(--p2-ok); }
.p2-pw__match.is-bad { color: var(--p2-danger); }

/* =====================================================================
   DOPORUČENÁ PŘEDSTAVENÍ A AKCE
   ===================================================================== */

/* Tip karta — svislá, obrázek 16:10 nahoře. */
.p2-tips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.p2-tip-card {
    display: flex; flex-direction: column;
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); overflow: hidden;
    transition: border-color .16s, box-shadow .16s, transform .16s;
}
.p2-tip-card:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }
.p2-tip-card__media { display: block; aspect-ratio: 16 / 10; background: #ede9fb; overflow: hidden; }
.p2-tip-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
/* flex:1 + margin-top:auto v patičce srovná tlačítka všech karet v řadě. */
.p2-tip-card__body { display: flex; flex-direction: column; flex: 1; padding: 16px 17px 17px; }
.p2-tip-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
.p2-tip-card__tags span {
    font-size: 11px; font-weight: 600; color: var(--p2-brand-dark);
    background: var(--p2-brand-soft); border-radius: 999px; padding: 2px 9px;
}
.p2 .p2-tip-card h2 { font-size: 17px; font-weight: 700; line-height: 1.3; }
.p2-tip-card h2 a:hover { color: var(--p2-brand); }
.p2-tip-card__perex {
    margin-top: 8px; font-size: 13.5px; line-height: 1.55; color: var(--p2-muted);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.p2-tip-card__next {
    margin-top: 12px; padding: 10px 12px;
    background: var(--p2-brand-softer); border-radius: var(--p2-r-btn);
    font-size: 13px; line-height: 1.5;
}
.p2-tip-card__next strong { display: block; color: var(--p2-ink); font-weight: 600; }
.p2-tip-card__next span { display: block; margin-top: 2px; color: var(--p2-muted); font-size: 12.5px; }
.p2-tip-card__foot {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    margin-top: auto; padding-top: 14px; font-size: 12.5px;
}

/* Akce a slevy — vodorovná karta, obrázek vlevo. */
.p2-promos { display: flex; flex-direction: column; gap: 18px; }
.p2-promo {
    display: grid; grid-template-columns: 280px minmax(0, 1fr);
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); overflow: hidden;
    transition: border-color .16s, box-shadow .16s;
}
.p2-promo:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow-lg); }
/* Nabídka končící do týdne má teplý rámeček — jinak si jí nikdo nevšimne. */
.p2-promo.is-ending { border-color: #f5c98a; background: #fffdf8; }
.p2-promo__media { display: block; position: relative; background: #ede9fb; overflow: hidden; }
.p2-promo__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.p2-promo__badge {
    position: absolute; top: 12px; left: 12px;
    background: var(--p2-danger); color: #fff;
    border-radius: 999px; padding: 4px 12px;
    font-size: 11.5px; font-weight: 700; letter-spacing: .02em;
    box-shadow: 0 3px 10px rgba(30, 25, 90, .2);
}
.p2-promo__body { display: flex; flex-direction: column; padding: 20px 22px; }
.p2 .p2-promo h2 { font-size: 20px; font-weight: 700; line-height: 1.28; }
.p2-promo h2 a:hover { color: var(--p2-brand); }
.p2-promo__where { margin-top: 4px; font-size: 13.5px; color: var(--p2-muted); }
.p2-promo__where a { color: var(--p2-brand-dark); }
.p2-promo__where a:hover { text-decoration: underline; }
.p2-promo__lead { margin-top: 11px; font-size: 14.5px; line-height: 1.6; color: var(--p2-body); }
.p2-promo__how {
    margin-top: 12px; padding: 10px 13px;
    background: var(--p2-brand-softer); border-radius: var(--p2-r-btn);
    font-size: 13px; line-height: 1.55; color: var(--p2-body);
}
.p2-promo__how strong { color: var(--p2-ink); }
.p2-promo__foot {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    margin-top: auto; padding-top: 16px; flex-wrap: wrap;
}
.p2-promo__until { font-size: 12.5px; color: var(--p2-muted); }
.p2-promo__until.is-soon { color: #b45309; font-weight: 600; }
.p2-promo__actions { display: flex; gap: 8px; }

@media (max-width: 1024px) {
    .p2-tips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .p2-promo { grid-template-columns: 220px minmax(0, 1fr); }
}

@media (max-width: 680px) {
    .p2-tips { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    /* Ve sloupci určuje výšku řádek gridu — bez aspect-ratio by se obrázek splácl. */
    .p2-promo { grid-template-columns: minmax(0, 1fr); }
    .p2-promo__media { aspect-ratio: 16 / 10; }
    .p2-promo__body { padding: 16px 15px; }
    .p2 .p2-promo h2 { font-size: 18px; }
    .p2-promo__actions { flex: 1 1 100%; }
    .p2-promo__actions .p2-btn { flex: 1; justify-content: center; }
}

/* =====================================================================
   KOMUNITNÍ PORTÁL
   ===================================================================== */

.p2-cta-hero {
    background: linear-gradient(125deg, #f5f3fe 0%, #ece8fc 55%, #e6dffb 100%);
    padding: 30px 0 56px; text-align: center;
}
/* `26ch`, ne 20: kratší řádek lámal titulek na tři řádky a hero působilo stísněně. */
.p2 .p2-cta-hero h1 { font-size: 36px; font-weight: 700; line-height: 1.18; max-width: 26ch; margin: 18px auto 0; }
.p2-cta-hero .p2-crumbs { text-align: left; }
/* `balance` láme řádky na stejně dlouhé — bez toho zbyla pod perexem osamělá slova. */
.p2 .p2-cta-hero h1, .p2-cta-hero__lead, .p2-cta-hero__note { text-wrap: balance; }
.p2-cta-hero__lead { margin: 16px auto 0; font-size: 17px; color: var(--p2-body); max-width: 56ch; }
.p2-cta-hero__note { margin: 10px auto 0; font-size: 14px; color: var(--p2-muted); max-width: 64ch; }
.p2-cta-hero__btns { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 22px; }

/* Výhody členství */
.p2-perks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.p2-perk {
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 20px 21px;
    transition: border-color .16s, box-shadow .16s;
}
.p2-perk:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow); }
.p2-perk__icon {
    display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; border-radius: 12px; margin-bottom: 13px;
    background: var(--p2-brand-soft); color: var(--p2-brand-dark); font-size: 17px;
}
.p2-perk strong { display: block; font-size: 15.5px; font-weight: 600; color: var(--p2-ink); }
.p2-perk p { margin-top: 5px; font-size: 13.5px; line-height: 1.55; color: var(--p2-muted); }

/* Tři kroky */
.p2-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.p2-step { text-align: center; }
.p2-step__n {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%; margin-bottom: 12px;
    background: var(--p2-brand); color: #fff;
    font-family: 'Poppins', 'Inter', sans-serif; font-size: 18px; font-weight: 700;
}
.p2-step strong { display: block; font-size: 15.5px; font-weight: 600; color: var(--p2-ink); }
.p2-step p { margin-top: 5px; font-size: 13.5px; color: var(--p2-muted); }

/* Body za aktivitu */
.p2-points { list-style: none; margin: 0; padding: 0; }
.p2-points li {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 9px 0; border-top: 1px solid var(--p2-line); font-size: 14px;
}
.p2-points li:first-child { border-top: 0; }
.p2-points em { font-style: normal; font-weight: 700; color: var(--p2-brand-dark); white-space: nowrap; }

/* Úrovně */
.p2-levels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.p2-level {
    background: var(--p2-brand-softer); border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-btn); padding: 10px 12px;
}
.p2-level strong { display: block; font-size: 13.5px; font-weight: 600; color: var(--p2-ink); }
.p2-level span { font-size: 11.5px; color: var(--p2-muted); }
/* Nejvyšší úrovně zvýrazněné — je to cíl, kvůli kterému lidé sbírají body. */
.p2-level.is-top { background: #fff8ec; border-color: #f3d9a8; }
.p2-level.is-top strong { color: #b45309; }

.p2-bonus {
    margin-top: 18px; padding: 18px 20px;
    background: linear-gradient(120deg, #fff6e6 0%, #ffeed4 100%);
    border: 1px solid #f3d9a8; border-radius: var(--p2-r-card);
}
.p2-bonus strong { display: block; font-size: 15px; font-weight: 700; color: #92400e; }
.p2-bonus p { margin-top: 5px; font-size: 13.5px; line-height: 1.55; color: #a16207; }

.p2-panel__btns { display: flex; flex-wrap: wrap; gap: 9px; }

@media (max-width: 1024px) {
    .p2-perks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .p2 .p2-cta-hero h1 { font-size: 25px; }
    .p2-cta-hero__lead { font-size: 15px; }
    .p2-cta-hero__btns .p2-btn { flex: 1 1 100%; justify-content: center; }
    .p2-perks, .p2-steps { grid-template-columns: minmax(0, 1fr); }
    .p2-levels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .p2-panel__btns { width: 100%; }
    .p2-panel__btns .p2-btn { flex: 1; justify-content: center; }
}

/* Dlouhý text (podmínky, cookies, ochrana údajů) — užší sloupec.
   Přes celou šířku obrazovky se dlouhé řádky čtou špatně. */
.p2-doc { max-width: 78ch; margin: 0 auto; }
.p2-doc__date { margin-top: 8px; font-size: 13px; color: var(--p2-muted); }

/* =====================================================================
   DETAIL PŘEDSTAVENÍ
   ===================================================================== */

.p2-show-head {
    position: relative; overflow: hidden;
    background: linear-gradient(120deg, #f5f3fe 0%, #efedfd 100%);
    padding: 26px 0 34px;
}
.p2-show-head__row { display: flex; gap: 30px; align-items: flex-start; }
/* Plakát 2:3 — divadelní plakáty mají tenhle poměr, jinak by se deformovaly. */
.p2-show-head__poster {
    position: relative; flex: 0 0 210px; width: 210px; aspect-ratio: 2 / 3;
    border-radius: var(--p2-r-card); overflow: hidden; background: #ede9fb;
    box-shadow: 0 14px 34px rgba(30, 25, 90, .18);
}
.p2-show-head__poster img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.p2-show-head__archiv {
    position: absolute; top: 12px; left: 12px;
    background: rgba(25, 25, 51, .78); color: #fff;
    border-radius: 999px; padding: 3px 11px; font-size: 11.5px; font-weight: 700;
}
.p2-show-head__txt { min-width: 0; flex: 1; }
.p2-show-head__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.p2-show-head__tags span {
    font-size: 11.5px; font-weight: 600; color: var(--p2-brand-dark);
    background: var(--p2-brand-soft); border-radius: 999px; padding: 3px 11px;
}
.p2 .p2-show-head__txt h1 { font-size: 36px; font-weight: 700; line-height: 1.12; }
.p2-show-head__venue { display: flex; align-items: center; gap: 7px; margin-top: 10px; font-size: 14.5px; color: var(--p2-body); }
.p2-show-head__venue i { color: var(--p2-brand); font-size: 13px; }
.p2-show-head__venue a { color: var(--p2-brand-dark); font-weight: 500; }
.p2-show-head__venue a:hover { text-decoration: underline; }
.p2-show-head__lead { margin-top: 13px; font-size: 15.5px; line-height: 1.65; max-width: 62ch; }
.p2-show-head__meta { margin-top: 11px; font-size: 13px; color: var(--p2-muted); }
.p2-show-head__rating { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 14px; font-size: 13px; color: var(--p2-muted); }
.p2-show-head__rating strong { color: var(--p2-ink); font-size: 17px; font-weight: 700; margin-right: 4px; }
.p2-show-head__rating em { font-style: normal; }
.p2-show-head__rating a:hover strong { color: var(--p2-brand); }
.p2-show-head__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }

/* Akce a slevy v hlavičce titulu */
.p2-show-promo {
    margin-top: 18px; padding: 16px 18px;
    background: #fff8ec; border: 1px solid #f3d9a8; border-radius: var(--p2-r-card);
}
.p2-show-promo__badge {
    display: inline-block; margin-bottom: 8px;
    background: var(--p2-danger); color: #fff; border-radius: 999px;
    padding: 3px 12px; font-size: 11.5px; font-weight: 700;
}
.p2-show-promo p { font-size: 14px; line-height: 1.6; color: #92400e; }
.p2-show-promo__how { margin-top: 6px; font-size: 13px; }
.p2-show-promo .p2-btn { margin-top: 12px; }

.p2-show-all { margin-top: 18px; text-align: center; }

/* Rozcestník místo termínů */
.p2-tileset { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin-bottom: 22px; }
.p2-tileset a {
    display: flex; align-items: center; justify-content: center; text-align: center;
    min-height: 58px; padding: 12px 14px;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    font-size: 14px; font-weight: 500; color: var(--p2-ink);
    transition: border-color .15s, color .15s, transform .15s;
}
.p2-tileset a:hover { border-color: var(--p2-brand); color: var(--p2-brand); transform: translateY(-2px); }

/* Obsazení a tvůrci — role vlevo, jména vpravo */
.p2-cast {
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    overflow: hidden;
}
.p2-cast__row {
    display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 18px;
    padding: 12px 18px; border-top: 1px solid var(--p2-line);
}
.p2-cast__row:first-child { border-top: 0; }
.p2-cast__row:hover { background: #faf9fe; }
.p2-cast__role { font-size: 13.5px; color: var(--p2-muted); }
.p2-cast__names { font-size: 14.5px; color: var(--p2-ink); line-height: 1.55; }
.p2-cast__names a { color: var(--p2-brand-dark); }
.p2-cast__names a:hover { text-decoration: underline; }

.p2-details {
    margin-top: 14px; background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); padding: 14px 18px;
}
.p2-details summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--p2-body); }
.p2-details summary::marker { color: var(--p2-brand); }
.p2-details[open] summary { color: var(--p2-ink); }

.p2-gallery__credits { margin-top: 10px; font-size: 12px; color: var(--p2-muted); }

/* Časté dotazy */
.p2-faq {
    background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); overflow: hidden;
}
.p2-faq details { border-top: 1px solid var(--p2-line); }
.p2-faq details:first-child { border-top: 0; }
.p2-faq summary {
    cursor: pointer; padding: 14px 18px;
    font-size: 15px; font-weight: 600; color: var(--p2-ink);
    list-style: none;
}
.p2-faq summary::-webkit-details-marker { display: none; }
/* Vlastní šipka — nativní trojúhelník se v každém prohlížeči kreslí jinak. */
.p2-faq summary::after {
    content: '+'; float: right; font-size: 19px; font-weight: 400;
    color: var(--p2-muted); line-height: 1; transition: transform .18s;
}
.p2-faq details[open] summary::after { content: '−'; }
.p2-faq summary:hover { color: var(--p2-brand); }
.p2-faq details > div { padding: 0 18px 16px; font-size: 14px; line-height: 1.65; color: var(--p2-body); }
.p2-faq details > div .p2-btn { margin-top: 12px; }

@media (max-width: 1024px) {
    .p2-show-head__poster { flex: 0 0 170px; width: 170px; }
    .p2 .p2-show-head__txt h1 { font-size: 29px; }
    .p2-tileset { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .p2-show-head__row { flex-direction: column; gap: 18px; }
    /* Ve sloupci určuje flex-basis výšku — plakát by se bez tohohle splácl. */
    .p2-show-head__poster { flex: 0 0 auto; width: 156px; }
    .p2 .p2-show-head__txt h1 { font-size: 25px; }
    .p2-show-head__actions .p2-btn { flex: 1 1 100%; justify-content: center; }
    .p2-cast__row { grid-template-columns: minmax(0, 1fr); gap: 3px; padding: 12px 14px; }
    .p2-tileset { grid-template-columns: minmax(0, 1fr); }
}

/* Výpis termínů bez náhledu (detail představení, textové stránky) — o jeden
   sloupec míň, jinak by dostupnost přetekla přes tlačítko. */
.p2-prog-list--noimg .p2-prog-row { grid-template-columns: 56px minmax(0, 1fr) 132px 112px; }
@media (min-width: 1025px) {
    .p2-lp--sidebar .p2-prog-list--noimg .p2-prog-row {
        grid-template-columns: 50px minmax(0, 1fr) 116px 104px;
    }
}
@media (max-width: 680px) {
    .p2-prog-list--noimg .p2-prog-row {
        grid-template-columns: 52px minmax(0, 1fr);
        grid-template-areas: "time main" "foot foot";
    }
    .p2-prog-list--noimg .p2-prog-row__time { grid-area: time; align-self: center; font-size: 14px; }
    .p2-prog-list--noimg .p2-prog-row__main { grid-area: main; }
}

/* Odznak „V prodeji" na plakátu v seznamu představení */
.p2-poster__badge {
    position: absolute; top: 10px; right: 10px;
    background: var(--p2-ok); color: #fff;
    border-radius: 999px; padding: 2px 10px;
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    box-shadow: 0 3px 10px rgba(30, 25, 90, .2);
}
.p2-poster__media { position: relative; }
/* Počet v chipu (Vše / S termíny / Bez termínů) */
.p2-chip em { font-style: normal; opacity: .65; margin-left: 3px; }

/* ============================================================
   Můj účet
   ============================================================ */
.p2-acc-head { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.p2-acc-head__avatar {
    width: 88px; height: 88px; border-radius: 50%; overflow: hidden; flex: 0 0 auto;
    background: var(--p2-brand-soft); display: flex; align-items: center; justify-content: center;
    border: 3px solid #fff; box-shadow: 0 6px 20px rgba(20, 12, 60, .12);
}
.p2-acc-head__avatar img { width: 100%; height: 100%; object-fit: cover; }
.p2-acc-head__avatar span { font-family: 'Poppins', sans-serif; font-size: 34px; font-weight: 700; color: var(--p2-brand-dark); }
.p2-acc-head__main { flex: 1 1 260px; min-width: 0; }
.p2 .p2-acc-head__main h1 { font-size: 30px; margin-bottom: 4px; }
.p2-acc-head__tagline { color: var(--p2-muted); margin: 0 0 8px; }
.p2-acc-head__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; color: var(--p2-body); }
.p2-acc-head__meta i { color: var(--p2-brand); margin-right: 6px; }
.p2-acc-head__actions { display: flex; gap: 8px; flex-wrap: wrap; }

.p2-acc-level { margin-top: 22px; background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); padding: 16px 18px; }
.p2-acc-level__row { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--p2-muted); margin-bottom: 9px; }
.p2-acc-level__bar { height: 9px; border-radius: 99px; background: var(--p2-brand-softer); overflow: hidden; }
.p2-acc-level__bar i { display: block; height: 100%; border-radius: 99px; background: var(--p2-brand); transition: width .5s; }
.p2-acc-level__note { margin: 9px 0 0; font-size: 13px; color: var(--p2-muted); text-align: center; }

.p2-lp__main > .p2-box + .p2-box,
.p2-lp__side > .p2-box + .p2-box { margin-top: 18px; }

.p2-box__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.p2-box__head .p2-box__title { margin-bottom: 16px; }
.p2-box__more { font-size: 13px; color: var(--p2-brand-dark); font-weight: 600; margin-bottom: 16px; }
.p2-box__more i { font-size: 10px; margin-left: 4px; }

.p2-acc-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.p2-acc-stats > div {
    background: var(--p2-brand-softer); border-radius: var(--p2-r-btn); padding: 14px 10px; text-align: center;
}
.p2-acc-stats strong { display: block; font-family: 'Poppins', sans-serif; font-size: 22px; color: var(--p2-brand-dark); }
.p2-acc-stats span { font-size: 12.5px; color: var(--p2-muted); }

.p2-acc-none { color: var(--p2-muted); font-size: 14px; margin: 0; }

.p2-acc-list { list-style: none; margin: 0; padding: 0; }
.p2-acc-list li { display: flex; align-items: center; gap: 13px; padding: 11px 0; border-top: 1px solid var(--p2-line); }
.p2-acc-list li:first-child { border-top: 0; padding-top: 0; }
.p2-acc-list__ico {
    width: 40px; height: 40px; flex: 0 0 auto; border-radius: 12px;
    background: var(--p2-brand-softer); color: var(--p2-brand-dark);
    display: flex; align-items: center; justify-content: center;
}
.p2-acc-list__body { flex: 1 1 auto; min-width: 0; }
.p2-acc-list__body a { display: block; font-weight: 600; color: var(--p2-ink); }
.p2-acc-list__body a:hover { color: var(--p2-brand); }
.p2-acc-list__body em, .p2-acc-list__score em { display: block; font-style: normal; font-size: 12.5px; color: var(--p2-muted); }
.p2-acc-list__score { text-align: right; flex: 0 0 auto; }
.p2-acc-list__score strong { font-family: 'Poppins', sans-serif; font-size: 16px; }
.p2-acc-list__score.is-good strong { color: #17864a; }
.p2-acc-list__score.is-mid strong { color: #a3690b; }
.p2-acc-list__score.is-low strong { color: #b3261e; }

.p2-acc-suggest { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--p2-line); }
.p2 .p2-acc-suggest h3 { font-size: 14px; margin-bottom: 10px; }
.p2-acc-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.p2-acc-tags a {
    font-size: 13px; padding: 6px 12px; border-radius: 99px;
    background: var(--p2-brand-soft); color: var(--p2-brand-dark); font-weight: 600;
}
.p2-acc-tags a:hover { background: var(--p2-brand); color: #fff; }

.p2-acc-reviews { list-style: none; margin: 0; padding: 0; }
.p2-acc-reviews li { padding: 13px 0; border-top: 1px solid var(--p2-line); }
.p2-acc-reviews li:first-child { border-top: 0; padding-top: 0; }
.p2-acc-reviews__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.p2-acc-reviews__top a { font-weight: 600; color: var(--p2-ink); }
.p2-acc-reviews__top a:hover { color: var(--p2-brand); }
.p2-acc-reviews p { margin: 7px 0 0; font-size: 14px; color: var(--p2-body); }
.p2-acc-reviews em { display: block; margin-top: 6px; font-style: normal; font-size: 12.5px; color: var(--p2-muted); }
.p2-acc-stars i { font-size: 12px; color: #dcd8ea; }
.p2-acc-stars i.is-on { color: #f2b705; }

.p2-acc-mini { list-style: none; margin: 0; padding: 0; }
.p2-acc-mini li { padding: 10px 0; border-top: 1px solid var(--p2-line); }
.p2-acc-mini li:first-child { border-top: 0; padding-top: 0; }
.p2-acc-mini li a { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; color: var(--p2-ink); }
.p2-acc-mini li a:hover strong { color: var(--p2-brand); }
.p2-acc-mini em { display: block; margin-top: 3px; font-style: normal; font-size: 12.5px; color: var(--p2-muted); }
.p2-acc-mini li.is-highlight { background: var(--p2-brand-softer); border-radius: var(--p2-r-btn); padding: 10px 12px; border-top: 0; margin-bottom: 7px; }

.p2-acc-badge {
    display: inline-block; min-width: 20px; padding: 1px 6px; margin-left: 6px;
    background: var(--p2-brand); color: #fff; border-radius: 99px; font-size: 11.5px; text-align: center;
}

.p2-acc-tabs__nav { display: flex; gap: 4px; border-bottom: 1px solid var(--p2-line); margin-bottom: 14px; }
.p2-acc-tabs__nav button {
    background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px;
    padding: 8px 10px; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--p2-muted); cursor: pointer;
}
.p2-acc-tabs__nav button.is-active { color: var(--p2-brand-dark); border-bottom-color: var(--p2-brand); }
.p2-acc-tabs__panel { display: none; }
.p2-acc-tabs__panel.is-active { display: block; }

.p2-acc-fav { list-style: none; margin: 0; padding: 0; }
.p2-acc-fav li + li { margin-top: 6px; }
.p2-acc-fav a { display: flex; align-items: center; gap: 11px; padding: 6px; border-radius: var(--p2-r-btn); }
.p2-acc-fav a:hover { background: var(--p2-brand-softer); }
.p2-acc-fav img { width: 40px; height: 40px; border-radius: 9px; object-fit: cover; flex: 0 0 auto; }
.p2-acc-fav img.is-round { border-radius: 50%; }
.p2-acc-fav i {
    width: 40px; height: 40px; flex: 0 0 auto; border-radius: 9px; background: var(--p2-brand-soft);
    color: var(--p2-brand-dark); display: flex; align-items: center; justify-content: center;
}
.p2-acc-fav span { font-size: 14px; font-weight: 600; color: var(--p2-ink); }

.p2-acc-feed { list-style: none; margin: 0; padding: 0; }
.p2-acc-feed li { display: flex; align-items: flex-start; gap: 11px; padding: 10px 0; border-top: 1px solid var(--p2-line); }
.p2-acc-feed li:first-child { border-top: 0; padding-top: 0; }
.p2-acc-feed__ico {
    width: 30px; height: 30px; flex: 0 0 auto; border-radius: 50%;
    background: var(--p2-brand-softer); color: var(--p2-brand-dark);
    display: flex; align-items: center; justify-content: center; font-size: 11px;
}
.p2-acc-feed__body { flex: 1 1 auto; min-width: 0; font-size: 13.5px; color: var(--p2-body); }
.p2-acc-feed__body em { display: block; font-style: normal; font-size: 12px; color: var(--p2-muted); margin-top: 2px; }
.p2-acc-feed__pts { color: #17864a; font-size: 12.5px; }

@media (max-width: 680px) {
    .p2-acc-head { gap: 16px; }
    .p2-acc-head__avatar { width: 66px; height: 66px; }
    .p2-acc-head__avatar span { font-size: 26px; }
    .p2 .p2-acc-head__main h1 { font-size: 24px; }
    .p2-acc-head__actions { width: 100%; }
    .p2-acc-head__actions .p2-btn { flex: 1 1 auto; justify-content: center; }
    .p2-acc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* Dvě úrovně vedle sebe se na mobil nevejdou a pod sebou matou —
       stačí věta pod proužkem, která říká, kolik bodů zbývá a kam. */
    .p2-acc-level__row { display: none; }
}

/* ============================================================
   Zprávy a konverzace
   ============================================================ */
.p2-wrap--narrow { max-width: 860px; }

.p2-msg-list { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); overflow: hidden; }
.p2-msg + .p2-msg { border-top: 1px solid var(--p2-line); }
.p2-msg > a { display: flex; align-items: center; gap: 14px; padding: 14px 18px; }
.p2-msg > a:hover { background: var(--p2-brand-softer); }
.p2-msg.is-unread { background: var(--p2-brand-softer); box-shadow: inset 3px 0 0 var(--p2-brand); }
.p2-msg__avatar { position: relative; flex: 0 0 auto; }
.p2-msg__avatar img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; display: block; }
.p2-msg__avatar b {
    position: absolute; top: -3px; right: -3px; min-width: 19px; height: 19px; padding: 0 5px;
    border-radius: 99px; background: var(--p2-brand); color: #fff; font-size: 11px;
    display: flex; align-items: center; justify-content: center; border: 2px solid #fff;
}
.p2-msg__body { flex: 1 1 auto; min-width: 0; }
.p2-msg__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.p2-msg__top strong { color: var(--p2-ink); font-size: 15px; }
.p2-msg.is-unread .p2-msg__top strong { color: var(--p2-brand-dark); }
.p2-msg__top em { font-style: normal; font-size: 12px; color: var(--p2-muted); white-space: nowrap; }
.p2-msg__preview {
    display: block; margin-top: 3px; font-size: 13.5px; color: var(--p2-muted);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.p2-msg__preview i { color: var(--p2-brand); margin-right: 3px; }
.p2-msg__arrow { color: #c9c3dd; font-size: 12px; flex: 0 0 auto; }

.p2-conv { background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); overflow: hidden; }
.p2-conv__head { display: flex; align-items: center; gap: 13px; padding: 14px 18px; border-bottom: 1px solid var(--p2-line); }
.p2-conv__back { color: var(--p2-muted); font-size: 16px; }
.p2-conv__back:hover { color: var(--p2-brand); }
.p2-conv__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.p2-conv__head strong { display: block; font-size: 15px; color: var(--p2-ink); }
.p2-conv__head a[href*="/profil/"] { font-size: 12.5px; color: var(--p2-brand-dark); }
.p2-conv__error { margin: 14px 18px 0; padding: 10px 14px; border-radius: var(--p2-r-btn); background: #fdecea; color: #b3261e; font-size: 14px; }

.p2-conv__thread { padding: 18px; max-height: 62vh; min-height: 280px; overflow-y: auto; background: var(--p2-bg); }
.p2-conv__empty { text-align: center; color: var(--p2-muted); padding: 46px 10px; }
.p2-conv__empty i { font-size: 34px; color: #cfc9e0; display: block; margin-bottom: 10px; }
.p2-conv__empty p { margin: 0; }
.p2-conv__day { text-align: center; margin: 14px 0 10px; }
.p2-conv__day span { display: inline-block; padding: 3px 12px; border-radius: 99px; background: #fff; border: 1px solid var(--p2-line); font-size: 11.5px; color: var(--p2-muted); }
.p2-conv__row { display: flex; align-items: flex-end; gap: 8px; margin-bottom: 10px; }
.p2-conv__row.is-mine { justify-content: flex-end; }
.p2-conv__pic { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.p2-conv__bubble {
    max-width: 74%; padding: 9px 14px; background: #fff; border: 1px solid var(--p2-line);
    border-radius: 16px 16px 16px 5px; font-size: 14.5px; color: var(--p2-body);
}
.p2-conv__row.is-mine .p2-conv__bubble {
    background: var(--p2-brand); border-color: var(--p2-brand); color: #fff; border-radius: 16px 16px 5px 16px;
}
.p2-conv__text { white-space: pre-wrap; }
.p2-conv__time { display: block; margin-top: 4px; text-align: right; font-size: 11px; color: var(--p2-muted); }
.p2-conv__row.is-mine .p2-conv__time { color: rgba(255, 255, 255, .75); }
.p2-conv__promo { width: 100%; min-width: 280px; min-height: 200px; border: 0; border-radius: 8px; background: #fff; }

.p2-conv__form { display: flex; align-items: flex-end; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--p2-line); }
.p2-conv__form textarea {
    flex: 1 1 auto; resize: none; font: inherit; font-size: 14.5px; color: var(--p2-ink);
    border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn); padding: 11px 14px; background: #fff;
}
.p2-conv__form textarea:focus { outline: none; border-color: var(--p2-brand); box-shadow: 0 0 0 3px var(--p2-brand-softer); }
.p2-conv__form .p2-btn { flex: 0 0 auto; }

@media (max-width: 680px) {
    .p2-msg > a { padding: 12px 14px; gap: 11px; }
    .p2-msg__avatar img { width: 40px; height: 40px; }
    .p2-conv__bubble { max-width: 82%; }
    .p2-conv__form { flex-direction: column; align-items: stretch; }
    .p2-conv__form .p2-btn { justify-content: center; }
}

/* ============================================================
   Výpis článků (blog, kategorie, štítek)
   ============================================================ */
.p2-art-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }

.p2-art {
    display: flex; flex-direction: column;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    overflow: hidden; transition: border-color .16s, box-shadow .16s, transform .16s;
}
.p2-art:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }

.p2-art__media { position: relative; display: block; aspect-ratio: 16 / 10; background: #ede9fb; overflow: hidden; }
.p2-art__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s; }
.p2-art:hover .p2-art__media img { transform: scale(1.04); }
.p2-art__ph {
    display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
    color: #bdb3e6; font-size: 34px;
}
.p2-art__cats { position: absolute; top: 10px; left: 10px; display: flex; flex-wrap: wrap; gap: 5px; }
.p2-art__cats span {
    background: rgba(255, 255, 255, .94); color: var(--p2-brand-dark);
    font-size: 11.5px; font-weight: 600; padding: 4px 9px; border-radius: 99px;
}

.p2-art__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 16px 18px 18px; }
.p2-art__meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--p2-muted); }
.p2-art__meta span::before { content: "·"; margin-right: 12px; }
.p2 .p2-art h2 { font-size: 17px; font-weight: 700; line-height: 1.32; margin: 7px 0 0; }
.p2-art h2 a:hover { color: var(--p2-brand); }
.p2-art__body p {
    margin: 8px 0 0; font-size: 13.5px; line-height: 1.6; color: var(--p2-muted);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.p2-art__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.p2-art__tags a, .p2-art__tags span {
    font-size: 11.5px; padding: 3px 9px; border-radius: 99px;
    background: var(--p2-brand-softer); color: var(--p2-body);
}
.p2-art__tags a:hover { background: var(--p2-brand-soft); color: var(--p2-brand-dark); }
.p2-art__more { margin-top: auto; padding-top: 13px; font-size: 13.5px; font-weight: 600; color: var(--p2-brand-dark); }
.p2-art__more i { font-size: 11px; margin-left: 5px; transition: transform .16s; }
.p2-art:hover .p2-art__more i { transform: translateX(3px); }

@media (max-width: 900px) {
    .p2-art-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================================
   Detail článku
   ============================================================ */
.p2-draft {
    display: flex; align-items: flex-start; gap: 9px;
    background: #fff8e6; border: 1px solid #f2d98c; color: #7a5a12;
    border-radius: var(--p2-r-btn); padding: 11px 14px; font-size: 13.5px; margin-bottom: 16px;
}

.p2-art-head__cats { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.p2-art-head__cats a, .p2-art-head__cats .is-user {
    font-size: 12.5px; font-weight: 600; padding: 5px 12px; border-radius: 99px;
    background: var(--p2-brand-soft); color: var(--p2-brand-dark);
}
.p2-art-head__cats a:hover { background: var(--p2-brand); color: #fff; }
.p2-art-head__cats .is-user { background: var(--p2-brand); color: #fff; }

.p2 .p2-art-head__title { font-size: 34px; font-weight: 700; line-height: 1.18; max-width: 24ch; text-wrap: balance; }
.p2-art-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 14px; font-size: 13.5px; color: var(--p2-muted); }
.p2-art-head__author { display: inline-flex; align-items: center; gap: 8px; }
.p2-art-head__author img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.p2-art-head__author a { color: var(--p2-brand-dark); font-weight: 600; }
.p2-art-head__author a:hover { text-decoration: underline; }

.p2-art-hero { margin: 0 0 22px; border-radius: var(--p2-r-card); overflow: hidden; background: #ede9fb; }
.p2-art-hero img { width: 100%; height: auto; display: block; }

.p2-art-perex {
    font-size: 17px; line-height: 1.65; color: var(--p2-ink); font-weight: 500;
    border-left: 3px solid var(--p2-brand); padding-left: 16px; margin: 0 0 22px;
}

/* Text článku nemá rámeček — je to hlavní obsah stránky, ne vložený panel. */
.p2-prose--article { background: none; border: 0; padding: 0; font-size: 16px; }

.p2-art-foot {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 16px; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--p2-line);
}
.p2-art-foot__tags, .p2-art-foot__share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.p2-art-foot strong { font-size: 13px; color: var(--p2-muted); font-weight: 600; margin-right: 3px; }
.p2-art-foot__tags a {
    font-size: 12.5px; padding: 5px 11px; border-radius: 99px;
    background: var(--p2-brand-softer); color: var(--p2-body);
}
.p2-art-foot__tags a:hover { background: var(--p2-brand-soft); color: var(--p2-brand-dark); }

.p2-share {
    width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--p2-line);
    background: #fff; color: var(--p2-body); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; font-size: 14px;
    transition: background .16s, color .16s, border-color .16s;
}
.p2-share:hover { background: var(--p2-brand); border-color: var(--p2-brand); color: #fff; }
.p2-share.is-done { background: #17864a; border-color: #17864a; color: #fff; }
.p2-share.is-fb:hover { background: #1877f2; border-color: #1877f2; }
.p2-share.is-x:hover { background: #14171a; border-color: #14171a; }

.p2-lightbox {
    display: none; position: fixed; inset: 0; z-index: 999;
    background: rgba(12, 8, 30, .93); align-items: center; justify-content: center;
}
.p2-lightbox.is-open { display: flex; }
.p2-lightbox img { max-width: 92vw; max-height: 88vh; object-fit: contain; border-radius: var(--p2-r-img); }
.p2-lightbox__x, .p2-lightbox__nav {
    position: absolute; background: rgba(255, 255, 255, .12); border: 0; color: #fff;
    width: 44px; height: 44px; border-radius: 50%; cursor: pointer; font-size: 17px;
}
.p2-lightbox__x:hover, .p2-lightbox__nav:hover { background: rgba(255, 255, 255, .26); }
.p2-lightbox__x { top: 18px; right: 18px; }
.p2-lightbox__nav { top: 50%; transform: translateY(-50%); }
.p2-lightbox__nav.is-prev { left: 18px; }
.p2-lightbox__nav.is-next { right: 18px; }
.p2-lightbox__count { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .75); font-size: 13px; }

@media (max-width: 680px) {
    .p2 .p2-art-head__title { font-size: 25px; }
    .p2-art-perex { font-size: 15.5px; }
    .p2-prose--article { font-size: 15.5px; }
    .p2-art-foot { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   Kalendář termínů vkládaný shortcodem
   ============================================================ */
.p2-cal {
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    overflow: hidden; margin: 22px 0;
}
.p2-cal__head { padding: 14px 20px; background: var(--p2-brand-softer); border-bottom: 1px solid var(--p2-line); }
.p2-cal__head strong { display: block; font-family: 'Poppins', sans-serif; font-size: 17px; color: var(--p2-ink); }
.p2-cal__head span { font-size: 13px; color: var(--p2-muted); }

.p2-cal__row {
    display: grid; grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center; gap: 14px; padding: 12px 20px;
    border-top: 1px solid var(--p2-line);
}
.p2-cal__body > .p2-cal__row:first-child { border-top: 0; }
.p2-cal__row:hover { background: var(--p2-brand-softer); }
.p2-cal__row.is-sold { opacity: .62; }

.p2-cal__date {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 52px; height: 52px; border-radius: 13px;
    background: var(--p2-brand); color: #fff; line-height: 1.05;
}
.p2-cal__date strong { font-family: 'Poppins', sans-serif; font-size: 19px; }
.p2-cal__date em { font-style: normal; font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; }

.p2-cal__main { min-width: 0; }
.p2-cal__when { display: block; font-weight: 600; color: var(--p2-ink); font-size: 14.5px; }
.p2-cal__when b { color: var(--p2-brand-dark); margin-left: 6px; }
.p2-cal__where { display: block; font-size: 13px; color: var(--p2-muted); margin-top: 2px; }
.p2-cal__where i { margin-right: 5px; }
.p2-cal__seats { display: inline-block; margin-top: 5px; font-size: 12.5px; font-weight: 600; }
.p2-cal__seats.is-ok { color: #17864a; }
.p2-cal__seats.is-low { color: #a3690b; }
.p2-cal__seats.is-sold { color: #b3261e; }

.p2-cal__cta .p2-btn.is-off { pointer-events: none; opacity: .7; }
.p2-cal__more { padding: 16px 20px; border-top: 1px solid var(--p2-line); text-align: center; }

@media (max-width: 620px) {
    .p2-cal__row {
        grid-template-columns: 46px minmax(0, 1fr);
        grid-template-areas: "date main" "cta cta";
        row-gap: 0; padding: 13px 15px;
    }
    .p2-cal__date { grid-area: date; width: 46px; height: 46px; }
    .p2-cal__main { grid-area: main; }
    .p2-cal__cta { grid-area: cta; margin-top: 11px; }
    .p2-cal__cta .p2-btn { width: 100%; justify-content: center; }
}

/* Autor pod komunitním článkem */
.p2-art__by {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--p2-line);
}
.p2-art__author { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.p2-art__author img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.p2-art__author i {
    width: 28px; height: 28px; border-radius: 50%; background: var(--p2-brand-softer);
    color: var(--p2-brand-dark); display: flex; align-items: center; justify-content: center; font-size: 12px; flex: 0 0 auto;
}
.p2-art__author span { font-size: 13px; font-weight: 600; color: var(--p2-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p2-art__author:hover span { color: var(--p2-brand); }
.p2-art__stats { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--p2-muted); white-space: nowrap; }
.p2-art__stats em { font-style: normal; margin-left: 7px; }

/* Žebříček autorů */
.p2-authors { list-style: none; margin: 0; padding: 0; }
.p2-authors li + li { margin-top: 4px; }
.p2-authors a { display: flex; align-items: center; gap: 11px; padding: 6px; border-radius: var(--p2-r-btn); }
.p2-authors a:hover { background: var(--p2-brand-softer); }
.p2-authors__pic { position: relative; flex: 0 0 auto; }
.p2-authors__pic img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; display: block; }
.p2-authors__pic i {
    width: 38px; height: 38px; border-radius: 50%; background: var(--p2-brand-soft);
    color: var(--p2-brand-dark); display: flex; align-items: center; justify-content: center;
}
.p2-authors__pic b {
    position: absolute; top: -3px; right: -3px; width: 18px; height: 18px; border-radius: 50%;
    background: var(--p2-brand); color: #fff; font-size: 10.5px; border: 2px solid #fff;
    display: flex; align-items: center; justify-content: center;
}
.p2-authors__txt { min-width: 0; }
.p2-authors__txt strong { display: block; font-size: 14px; color: var(--p2-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p2-authors__txt em { font-style: normal; font-size: 12px; color: var(--p2-muted); }

/* Odkaz uvnitř seznamu bodů (postranní panely) */
.p2-points li a { flex: 1 1 auto; color: var(--p2-body); }
.p2-points li a:hover { color: var(--p2-brand); }

/* Odznak úrovně a box autora pod komunitním článkem */
.p2-lvl {
    font-style: normal; font-size: 11.5px; font-weight: 600; padding: 2px 8px;
    border-radius: 99px; background: var(--p2-brand-soft); color: var(--p2-brand-dark); margin-left: 6px;
}
.p2-relpage {
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
    background: var(--p2-brand-softer); border-radius: var(--p2-r-btn);
    padding: 11px 15px; margin: 0 0 20px; font-size: 14px; color: var(--p2-muted);
}
.p2-relpage i { color: var(--p2-brand); }
.p2-relpage a { font-weight: 600; color: var(--p2-brand-dark); }
.p2-relpage a:hover { text-decoration: underline; }

.p2-authorbox {
    display: flex; gap: 16px; align-items: flex-start; margin-top: 26px;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); padding: 20px 22px;
}
.p2-authorbox__pic { flex: 0 0 auto; }
.p2-authorbox__pic img { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; display: block; }
.p2-authorbox__pic i {
    width: 62px; height: 62px; border-radius: 50%; background: var(--p2-brand-soft);
    color: var(--p2-brand-dark); font-size: 22px;
    display: flex; align-items: center; justify-content: center;
}
.p2-authorbox strong { display: block; font-size: 17px; color: var(--p2-ink); }
.p2-authorbox strong a:hover { color: var(--p2-brand); }
.p2-authorbox p { margin: 4px 0 8px; font-size: 13.5px; color: var(--p2-muted); }
.p2-authorbox .p2-art__more { padding-top: 0; }

/* Notifikace — sdílí seznam se zprávami, liší se jen ikonou a tečkou */
.p2-notif__ico {
    width: 40px; height: 40px; flex: 0 0 auto; border-radius: 50%;
    background: var(--p2-brand-softer); color: var(--p2-brand-dark);
    display: flex; align-items: center; justify-content: center; font-size: 14px;
}
.p2-msg.is-unread .p2-notif__ico { background: var(--p2-brand); color: #fff; }
.p2-notif__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--p2-brand); flex: 0 0 auto; }

/* ============================================================
   Kvízy
   ============================================================ */
.p2-quiz {
    display: flex; flex-direction: column;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    overflow: hidden; transition: border-color .16s, box-shadow .16s, transform .16s;
}
.p2-quiz:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow-lg); transform: translateY(-2px); }

.p2-quiz__media {
    position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden;
    background: linear-gradient(135deg, #6d5ae0 0%, #4b32b8 100%);
}
.p2-quiz__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s; }
.p2-quiz:hover .p2-quiz__media img { transform: scale(1.04); }
.p2-quiz__media > i {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    font-size: 40px; color: rgba(255, 255, 255, .55);
}
.p2-quiz__star {
    position: absolute; top: 10px; left: 10px; font-size: 11.5px; font-weight: 600;
    background: #fff3d1; color: #7a5a12; padding: 4px 10px; border-radius: 99px;
}

.p2-quiz__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 15px 17px 17px; }
.p2-quiz__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.p2-quiz__tags span {
    font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 99px;
    background: var(--p2-brand-softer); color: var(--p2-body);
}
.p2-quiz__tags .is-easy { background: #e2f5ea; color: #17864a; }
.p2-quiz__tags .is-mid  { background: #fdf0d8; color: #a3690b; }
.p2-quiz__tags .is-hard { background: #fdeaea; color: #b3261e; }

.p2-quiz__body strong { display: block; font-family: 'Poppins', sans-serif; font-size: 16.5px; color: var(--p2-ink); margin-top: 10px; }
.p2-quiz:hover .p2-quiz__body strong { color: var(--p2-brand); }
.p2-quiz__desc {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    margin-top: 6px; font-size: 13.5px; line-height: 1.55; color: var(--p2-muted);
}
.p2-quiz__nums { display: flex; gap: 16px; margin-top: 12px; font-size: 13px; color: var(--p2-body); }
.p2-quiz__nums em { font-style: normal; }
.p2-quiz__nums i { color: var(--p2-brand); margin-right: 5px; }
.p2-quiz__foot {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    margin-top: auto; padding-top: 13px; border-top: 1px solid var(--p2-line);
}
.p2-quiz__foot em { font-style: normal; font-size: 12px; color: var(--p2-muted); }

/* ============================================================
   Veřejný profil uživatele
   ============================================================ */
.p2-profil-cover {
    height: 200px; background: linear-gradient(125deg, #6d5ae0 0%, #4b32b8 60%, #3a2596 100%);
    overflow: hidden;
}
.p2-profil-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

.p2-profil {
    position: relative; margin-top: -64px;
    display: grid; grid-template-columns: 128px minmax(0, 1fr) auto;
    grid-template-areas: "avatar main actions" "stats stats stats";
    gap: 20px 22px; align-items: start;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    padding: 22px 26px 24px; box-shadow: var(--p2-shadow-lg);
}
.p2-profil__avatar {
    grid-area: avatar; width: 128px; height: 128px; margin-top: -62px;
    border-radius: 22px; overflow: hidden; background: var(--p2-brand-soft);
    border: 4px solid #fff; box-shadow: var(--p2-shadow-lg);
    display: flex; align-items: center; justify-content: center;
}
.p2-profil__avatar img { width: 100%; height: 100%; object-fit: cover; }
.p2-profil__avatar span { font-family: 'Poppins', sans-serif; font-size: 46px; font-weight: 700; color: var(--p2-brand-dark); }

.p2-profil__main { grid-area: main; min-width: 0; }
.p2 .p2-profil__main h1 { font-size: 27px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.p2-profil__slogan { margin-top: 6px; color: var(--p2-muted); }
.p2-profil__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; font-size: 13px; color: var(--p2-muted); }
.p2-profil__meta i { color: var(--p2-brand); margin-right: 6px; }
.p2-profil__meta a { color: var(--p2-brand-dark); font-weight: 600; }

.p2-profil__actions { grid-area: actions; display: flex; gap: 8px; flex-wrap: wrap; }
.p2-profil__actions .is-following:hover { border-color: #e7b4b0; color: #b3261e; }

.p2-profil__stats {
    grid-area: stats; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px;
    padding-top: 18px; border-top: 1px solid var(--p2-line);
}
.p2-profil__stats > div { text-align: center; }
.p2-profil__stats strong { display: block; font-family: 'Poppins', sans-serif; font-size: 21px; color: var(--p2-ink); }
.p2-profil__stats > div:last-child strong { color: var(--p2-brand); }
.p2-profil__stats span { font-size: 12.5px; color: var(--p2-muted); }

/* Výsledky kvízů na profilu */
.p2-quizres { list-style: none; margin: 0; padding: 0; }
.p2-quizres li + li { margin-top: 13px; }
.p2-quizres__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.p2-quizres__top a { font-size: 14px; font-weight: 600; color: var(--p2-ink); }
.p2-quizres__top a:hover { color: var(--p2-brand); }
.p2-quizres__top em { font-style: normal; font-weight: 700; font-size: 13px; }
.p2-quizres__bar { height: 7px; margin-top: 6px; border-radius: 99px; background: var(--p2-brand-softer); overflow: hidden; }
.p2-quizres__bar i { display: block; height: 100%; border-radius: 99px; background: var(--p2-brand); }
.p2-quizres .is-good, .p2-quizres__bar i.is-good { color: #17864a; background: #17864a; }
.p2-quizres .is-mid,  .p2-quizres__bar i.is-mid  { color: #a3690b; background: #d9a12b; }
.p2-quizres .is-low,  .p2-quizres__bar i.is-low  { color: #b3261e; background: #d5493f; }
.p2-quizres__top em.is-good, .p2-quizres__top em.is-mid, .p2-quizres__top em.is-low { background: none; }

@media (max-width: 760px) {
    .p2-profil-cover { height: 140px; }
    .p2-profil {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "avatar" "main" "actions" "stats";
        text-align: center; padding: 18px 16px 20px;
    }
    .p2-profil__avatar { margin: -70px auto 0; width: 104px; height: 104px; }
    .p2 .p2-profil__main h1 { justify-content: center; font-size: 23px; }
    .p2-profil__meta { justify-content: center; }
    .p2-profil__actions { justify-content: center; }
    .p2-profil__actions .p2-btn { flex: 1 1 auto; justify-content: center; }
    .p2-profil__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 14px; }
}

/* ============================================================
   Formulář nastavení profilu
   ============================================================ */
.p2 .p2-form-h {
    font-size: 16px; font-weight: 700; margin: 26px 0 14px;
    padding-top: 20px; border-top: 1px solid var(--p2-line);
}
.p2 .p2-box > form > .p2-form-h:first-of-type { padding-top: 0; border-top: 0; margin-top: 22px; }
.p2-field small { display: block; margin-top: 5px; font-size: 12px; color: var(--p2-muted); }
.p2-field label b { color: #b3261e; font-weight: 400; }

.p2-check {
    display: flex; align-items: flex-start; gap: 12px; cursor: pointer;
    background: var(--p2-brand-softer); border-radius: var(--p2-r-btn); padding: 14px 16px;
}
.p2-check:hover { background: var(--p2-brand-soft); }
.p2-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--p2-brand); flex: 0 0 auto; }
.p2-check strong { display: block; font-size: 14.5px; color: var(--p2-ink); }
.p2-check em { font-style: normal; font-size: 13px; color: var(--p2-muted); }

.p2-form-foot {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--p2-line);
}
.p2-form-foot > a { font-size: 14px; color: var(--p2-muted); }
.p2-form-foot > a:hover { color: var(--p2-ink); }

/* Výběr avataru a úvodního obrázku */
.p2-imgpick { border: 1px solid var(--p2-line); border-radius: var(--p2-r-card); overflow: hidden; }
.p2-imgpick__cover {
    position: relative; height: 150px;
    background: linear-gradient(125deg, #6d5ae0 0%, #4b32b8 100%);
}
.p2-imgpick__cover img { width: 100%; height: 100%; object-fit: cover; }
.p2-imgpick__cover label, .p2-imgpick__avatar label { cursor: pointer; }
.p2-imgpick__cover label {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    background: rgba(16, 10, 40, .38); color: #fff; font-size: 14px; font-weight: 600;
    opacity: 0; transition: opacity .16s;
}
.p2-imgpick__cover:hover label, .p2-imgpick__cover label:focus-within { opacity: 1; }
.p2-imgpick input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; }

.p2-imgpick__avatar { position: relative; width: 92px; margin: -46px 0 0 22px; }
.p2-imgpick__pic {
    display: flex; align-items: center; justify-content: center;
    width: 92px; height: 92px; border-radius: 50%; overflow: hidden;
    background: var(--p2-brand-soft); border: 4px solid #fff; box-shadow: var(--p2-shadow);
}
.p2-imgpick__pic img { width: 100%; height: 100%; object-fit: cover; }
.p2-imgpick__pic b { font-family: 'Poppins', sans-serif; font-size: 32px; color: var(--p2-brand-dark); }
.p2-imgpick__avatar > label {
    position: absolute; right: 0; bottom: 2px; width: 30px; height: 30px; border-radius: 50%;
    background: var(--p2-brand); color: #fff; font-size: 12px;
    display: flex; align-items: center; justify-content: center; border: 2px solid #fff;
}
.p2-imgpick__hint { padding: 14px 22px 16px; font-size: 12px; color: var(--p2-muted); }

/* Záložky jako odkazy (nastavení profilu) */
.p2-acc-tabs__nav a {
    border-bottom: 2px solid transparent; margin-bottom: -1px;
    padding: 8px 12px; font-size: 13.5px; font-weight: 600; color: var(--p2-muted);
}
.p2-acc-tabs__nav a.is-active { color: var(--p2-brand-dark); border-bottom-color: var(--p2-brand); }

/* ============================================================
   Moje články (správa)
   ============================================================ */
.p2-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.p2-mine { display: flex; flex-direction: column; gap: 14px; }
.p2-mine__row {
    display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 0;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-card);
    overflow: hidden; transition: border-color .16s, box-shadow .16s;
}
.p2-mine__row:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow); }
.p2-mine__media {
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #6d5ae0 0%, #4b32b8 100%); color: rgba(255, 255, 255, .55); font-size: 28px;
}
.p2-mine__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.p2-mine__body { padding: 16px 18px; min-width: 0; }
.p2 .p2-mine__body h2 { font-size: 17px; font-weight: 700; margin: 10px 0 0; }
.p2-mine__body > p {
    margin: 7px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--p2-muted);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.p2-mine__reason {
    background: #fdeaea; border: 1px solid #f3c9c6; color: #8e2018;
    border-radius: var(--p2-r-btn); padding: 9px 12px; font-size: 13px; margin-top: 10px;
}
.p2-mine__foot {
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
    margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--p2-line);
}
.p2-mine__btns { display: flex; gap: 8px; }
.p2-quiz__tags .is-ok    { background: #e2f5ea; color: #17864a; }
.p2-quiz__tags .is-wait  { background: #fdf0d8; color: #a3690b; }
.p2-quiz__tags .is-bad   { background: #fdeaea; color: #b3261e; }
.p2-quiz__tags .is-draft { background: #eeecf6; color: var(--p2-muted); }

@media (max-width: 700px) {
    .p2-mine__row { grid-template-columns: minmax(0, 1fr); }
    .p2-mine__media { height: 150px; }
    .p2-mine__foot { flex-direction: column; align-items: flex-start; }
    .p2-mine__btns { width: 100%; }
    .p2-mine__btns .p2-btn { flex: 1; justify-content: center; }
}

/* Výběr rubriky dlaždicemi a seznam tipů */
.p2-pick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.p2-pick label { cursor: pointer; }
.p2-pick input { position: absolute; opacity: 0; pointer-events: none; }
.p2-pick span {
    display: flex; flex-direction: column; align-items: center; gap: 7px;
    padding: 15px 10px; border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn);
    font-size: 13.5px; font-weight: 600; color: var(--p2-body); text-align: center;
    transition: border-color .16s, background .16s, color .16s;
}
.p2-pick span i { font-size: 19px; color: var(--p2-brand); }
.p2-pick label:hover span { border-color: #cfc6f5; }
.p2-pick input:checked + span { border-color: var(--p2-brand); background: var(--p2-brand-softer); color: var(--p2-brand-dark); }
.p2-pick input:focus-visible + span { outline: 2px solid var(--p2-brand); outline-offset: 2px; }

.p2-tips-list { list-style: none; margin: 0; padding: 0; }
.p2-tips-list li { position: relative; padding-left: 26px; margin-bottom: 9px; font-size: 14px; color: var(--p2-body); }
.p2-tips-list li::before { position: absolute; left: 0; top: 1px; font-family: 'Font Awesome 6 Free'; font-weight: 900; }
.p2-tips-list li.is-yes::before { content: "\f00c"; color: #17864a; }
.p2-tips-list li.is-no::before { content: "\f00d"; color: #b3261e; }

@media (max-width: 620px) {
    .p2-pick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Nebezpečná akce (mazání) */
.p2-btn--danger { background: #fdeaea; color: #b3261e; border: 1px solid #f3c9c6; }
.p2-btn--danger:hover { background: #f7d7d5; }

/* ============================================================
   Vyhledávání
   ============================================================ */
.p2-bigsearch {
    display: flex; gap: 8px; align-items: center; position: relative;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn);
    padding: 7px 7px 7px 44px; margin-top: 18px; box-shadow: var(--p2-shadow);
}
.p2-bigsearch > i { position: absolute; left: 16px; color: var(--p2-muted); }
.p2 .p2-bigsearch input {
    flex: 1 1 auto; border: 0; background: none; font: inherit; font-size: 16px;
    color: var(--p2-ink); padding: 9px 0; min-width: 0;
}
.p2 .p2-bigsearch input:focus { outline: none; }
.p2-bigsearch:focus-within { border-color: var(--p2-brand); box-shadow: 0 0 0 3px var(--p2-brand-softer); }
.p2-bigsearch__note { margin-top: 10px; font-size: 13.5px; color: #a3690b; }
.p2-bigsearch__note.is-err { color: #b3261e; }

.p2-found { margin-bottom: 22px; font-size: 14.5px; color: var(--p2-muted); }
.p2-found__n {
    font-size: 12.5px; font-weight: 600; color: var(--p2-muted);
    background: var(--p2-brand-softer); border-radius: 99px; padding: 2px 10px; margin-left: 8px;
}

.p2-hits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.p2-hit {
    display: flex; gap: 12px; background: #fff; border: 1px solid var(--p2-line);
    border-radius: var(--p2-r-card); overflow: hidden;
    transition: border-color .16s, box-shadow .16s;
}
.p2-hit:hover { border-color: #d8d2f7; box-shadow: var(--p2-shadow); }
.p2-hit__media {
    flex: 0 0 84px; width: 84px; align-self: stretch;
    background: var(--p2-brand-softer); color: #b8aee4;
    display: flex; align-items: center; justify-content: center; font-size: 20px;
}
.p2-hit__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.p2-hit__body { min-width: 0; padding: 11px 13px 12px; }
.p2-hit__body strong {
    display: block; font-size: 14.5px; color: var(--p2-ink); line-height: 1.35;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.p2-hit:hover .p2-hit__body strong { color: var(--p2-brand); }
.p2-hit em { display: block; font-style: normal; font-size: 12px; color: var(--p2-muted); margin-top: 3px; }
.p2-hit__where i { margin-right: 5px; color: var(--p2-brand); }
.p2-hit__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.p2-hit mark { background: #fdf0b8; color: inherit; border-radius: 3px; padding: 0 2px; }

.search-hidden { display: none !important; }
.p2-empty__btns { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; margin-top: 18px; }

@media (max-width: 980px) { .p2-hits { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
    .p2-hits { grid-template-columns: minmax(0, 1fr); }
    .p2-bigsearch { flex-wrap: wrap; }
    .p2-bigsearch .p2-btn { width: 100%; justify-content: center; }
}

/* Čtyři rozcestníkové dlaždice vedle sebe (vyhledávání bez dotazu) */
.p2-tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); padding-top: 0; }
@media (max-width: 900px) { .p2-tiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .p2-tiles--4 { grid-template-columns: minmax(0, 1fr); } }

/* ============================================================
   Kulturní kalendář
   ============================================================ */
.p2-months { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--p2-line); }
.p2-months a {
    flex: 0 0 auto; padding: 7px 14px; border-radius: var(--p2-r-btn);
    background: var(--p2-brand-softer); color: var(--p2-body);
    font-size: 13.5px; font-weight: 600; white-space: nowrap;
}
.p2-months a:hover { background: var(--p2-brand-soft); color: var(--p2-brand-dark); }
.p2-months a.is-active { background: var(--p2-brand); color: #fff; }

/* Vybírátko přímo ve filtrační liště — bez odsazení a popisku nad ním. */
.p2-field--inline { margin-bottom: 0; }
.p2 .p2-field--inline select { padding: 9px 34px 9px 14px; font-size: 14px; }

.p2-prog-row.is-sold { opacity: .6; }
.p2-prog-row__tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.p2-prog-row__tags em {
    font-style: normal; font-size: 11.5px; padding: 2px 8px; border-radius: 99px;
    background: var(--p2-brand-softer); color: var(--p2-brand-dark);
}
.p2-dayhead em { font-style: normal; font-size: 13px; color: var(--p2-muted); font-weight: 400; }

/* ============================================================
   Chybové stránky (404, 500)
   ============================================================ */
.p2-err {
    min-height: 100vh; display: flex; align-items: center; justify-content: center;
    padding: 30px 18px; background: linear-gradient(125deg, #f5f3fe 0%, #ece8fc 55%, #e6dffb 100%);
}
.p2-err__box { width: 100%; max-width: 560px; text-align: center; }
.p2-err__logo img { height: 40px; margin: 0 auto 26px; }
.p2 .p2-err__code {
    font-family: 'Poppins', sans-serif; font-size: 84px; font-weight: 700; line-height: 1;
    color: var(--p2-brand); margin: 0 0 6px; letter-spacing: -.04em;
}
.p2 .p2-err__box h1 { font-size: 27px; margin-bottom: 8px; }
.p2-err__lead { color: var(--p2-muted); font-size: 15.5px; }
.p2-err__btns { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 22px; }
.p2-err__links {
    display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
    margin-top: 26px; padding-top: 22px; border-top: 1px solid #ddd6f5;
}
.p2-err__links a {
    font-size: 13.5px; font-weight: 600; color: var(--p2-brand-dark);
    background: rgba(255, 255, 255, .7); border-radius: 99px; padding: 6px 14px;
}
.p2-err__links a:hover { background: #fff; }
.p2-err__search {
    display: flex; align-items: center; gap: 10px; position: relative;
    background: #fff; border: 1px solid var(--p2-line); border-radius: var(--p2-r-btn);
    padding: 4px 14px 4px 40px; margin-top: 20px;
}
.p2-err__search i { position: absolute; left: 15px; color: var(--p2-muted); font-size: 13px; }
.p2 .p2-err__search input { flex: 1 1 auto; border: 0; background: none; font: inherit; font-size: 15px; padding: 11px 0; min-width: 0; }
.p2 .p2-err__search input:focus { outline: none; }
.p2-err__search:focus-within { border-color: var(--p2-brand); box-shadow: 0 0 0 3px var(--p2-brand-softer); }

@media (max-width: 560px) {
    .p2 .p2-err__code { font-size: 62px; }
    .p2-err__btns .p2-btn { flex: 1 1 100%; justify-content: center; }
}
