/* Strefa 360 — Romantyczny Chopin. Tokeny 1:1 z pliku Figmy (kolekcja Motyw). */
:root {
  --roz-50: #f8f6f7; --roz-100: #f2ecef; --roz-200: #e2d6dc; --roz-300: #cdb8c3;
  --roz-500: #90627a; --roz-700: #624353; --roz-900: #37252e;
  --ble-50: #f6f9fb; --ble-100: #eef3f6; --ble-200: #dae4ec; --ble-500: #7099b5; --ble-700: #4c687b;
  --atr-900: #2e2e35; --atr-700: #52525f; --atr-600: #62636f;
  --bursztyn-300: #f0c877;

  /* motyw: Chopin jasny (pastel) */
  --tlo: var(--roz-50);
  --tlo-2: var(--roz-100);
  --tlo-3: var(--ble-100);
  --tekst: var(--atr-900);
  --tekst-2: var(--atr-700);
  --tekst-3: var(--atr-600);
  --tekst-mocny: var(--roz-900);
  --linia: var(--roz-200);
  --linia-jasna: rgba(55, 37, 46, .30);
  --akcent: var(--roz-700);
  --akcent-ciemny: var(--roz-900);
  --akcent-tekst: var(--roz-700);
  --na-akcencie: var(--roz-50);
  --blad: #b4233c;

  --gr-panel: linear-gradient(135deg, var(--roz-100), var(--roz-50) 45%, var(--ble-100));
  --gr-sekcja: linear-gradient(135deg, var(--roz-100), var(--roz-50) 50%, var(--ble-100));
  --gr-wybrany: linear-gradient(135deg, var(--roz-500), var(--ble-500));
  --gr-aktywny: linear-gradient(135deg, var(--roz-200), var(--ble-200));
  --gr-karta: linear-gradient(135deg, var(--roz-900), var(--roz-700) 55%, var(--ble-700));

  --pismo: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --margines: clamp(20px, 4.45vw, 64px);
  --szer: 1312px;
  --szybko: 160ms;
  --wyjscie: cubic-bezier(.16, 1, .3, 1);
  color-scheme: light;
}

/* motyw na grafice / ciemnej karcie (biały tekst) */
.na-grafice {
  --tlo: var(--roz-900); --tlo-2: var(--roz-900); --tlo-3: var(--roz-700);
  --tekst: var(--roz-100); --tekst-2: var(--roz-200); --tekst-3: var(--roz-300);
  --tekst-mocny: #fff; --linia: var(--roz-700); --linia-jasna: rgba(255, 255, 255, .32);
  --akcent: var(--roz-50); --akcent-ciemny: var(--roz-100); --akcent-tekst: var(--roz-300); --na-akcencie: var(--roz-900);
}

/* motyw Afisz (złoto) — Strefa: Renesans */
body[data-motyw="afisz"] {
  --tlo: #0b0a08; --tlo-2: #141311; --tlo-3: #1b1917;
  --tekst: #f5f2ee; --tekst-2: #a8a29a; --tekst-3: #8f8a82; --tekst-mocny: #fff;
  --linia: #2b2823; --linia-jasna: rgba(238, 240, 242, .18);
  --akcent: #f2c14e; --akcent-ciemny: #d9a441; --akcent-tekst: #f2c14e; --na-akcencie: #0b0a08;
  --gr-panel: var(--tlo-2); --gr-sekcja: var(--tlo-2);
  --gr-wybrany: #f2c14e; --gr-aktywny: var(--tlo-3); --gr-karta: #1b1917;
  color-scheme: dark;
}
body[data-motyw="afisz"] .na-grafice {
  --tlo: #0b0a08; --tlo-2: #141311; --tlo-3: #1b1917; --tekst: #f5f2ee; --tekst-2: #cfc9c1; --tekst-3: #a8a29a;
  --akcent: #f2c14e; --akcent-tekst: #f2c14e; --na-akcencie: #0b0a08; --linia: #2b2823; --linia-jasna: rgba(238, 240, 242, .22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--tlo); color: var(--tekst);
  font: 400 17px/1.65 var(--pismo); -webkit-font-smoothing: antialiased;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--akcent); outline-offset: 3px; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { text-wrap: balance; color: var(--tekst-mocny); }
[hidden] { display: none !important; }
.wizualnie-ukryte { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ——— typografia ——— */
.nadtytul { font-size: 12.8px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--akcent-tekst); line-height: 1.2; }
.h1 { font-size: clamp(40px, 5.8vw, 83px); font-weight: 900; text-transform: uppercase; letter-spacing: .02em; line-height: .98; }
.h2 { font-size: clamp(24px, 2.7vw, 38.4px); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; line-height: 1.08; }
.h-rozdzial { font-size: clamp(28px, 2.8vw, 40px); font-weight: 700; letter-spacing: -.01em; line-height: 1.15; }
.obietnica { font-size: clamp(19.5px, 1.9vw, 27.5px); line-height: 1.45; color: var(--tekst); }
.lead { font-size: clamp(17px, 1.5vw, 21.6px); line-height: 1.5; color: var(--tekst-2); max-width: 62ch; }
.tekst-r { font-size: clamp(16px, 1.32vw, 19px); line-height: 1.65; color: var(--tekst-2); }
.male { font-size: 15.2px; line-height: 1.6; color: var(--tekst-2); }
.drobne { font-size: 13px; line-height: 1.55; color: var(--tekst-3); }

/* ——— układ ——— */
.szpalta { width: 100%; max-width: calc(var(--szer) + 2 * var(--margines)); margin: 0 auto; padding: 0 var(--margines); }
.sekcja { padding: clamp(72px, 7.8vw, 112px) 0; }
.naglowek-sekcji { display: grid; gap: 16px; margin-bottom: clamp(28px, 3.3vw, 48px); }
.naglowek-sekcji.obok { grid-template-columns: 1fr auto; align-items: end; gap: 16px 64px; }
.naglowek-sekcji.obok .lead { max-width: 480px; }
@media (max-width: 900px) { .naglowek-sekcji.obok { grid-template-columns: 1fr; } }

/* ——— przyciski ——— */
.przycisk {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 17px 32px; border: 1px solid transparent; border-radius: 0;
  background: var(--akcent); color: var(--na-akcencie);
  font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background var(--szybko), color var(--szybko), transform var(--szybko), box-shadow var(--szybko);
}
.przycisk:hover { background: var(--akcent-ciemny); }
.przycisk:active { transform: translateY(1px); }
.przycisk.obrys { background: transparent; color: var(--tekst-mocny); border-color: var(--linia-jasna); }
.przycisk.obrys:hover { border-color: var(--tekst-mocny); }
.przycisk.wielki { padding: 26px 56px; font-size: 16px; letter-spacing: .12em; }
.przycisk.maly { padding: 11px 18px; font-size: 11.5px; }
.przycisk.pelna { width: 100%; }
.przycisk[disabled] { opacity: .5; cursor: not-allowed; }
.akcje { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
@media (max-width: 640px) {
  .akcje.na-telefonie-kolumna { flex-direction: column; align-items: stretch; }
  .akcje.na-telefonie-kolumna .przycisk { width: 100%; }
  .przycisk.wielki { padding: 22px 32px; }
}

.znacznik { display: inline-flex; padding: 3px 8px; border: 1px solid var(--linia-jasna); color: var(--akcent-tekst); font-size: 10.75px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.2; white-space: nowrap; }

/* ——— logo (maski SVG, kolor = currentColor) ——— */
.logo-360 { display: block; aspect-ratio: 1067 / 265; background: currentColor; -webkit-mask: url(img/poziome.min.svg) center / contain no-repeat; mask: url(img/poziome.min.svg) center / contain no-repeat; }
.logo-abe { display: block; aspect-ratio: 1000.78 / 275.53; background: currentColor; -webkit-mask: url(img/abe-reda.svg) center / contain no-repeat; mask: url(img/abe-reda.svg) center / contain no-repeat; }

/* ——— nagłówek ——— */
.naglowek {
  position: fixed; inset: 0 0 auto; z-index: 50; height: 104px; color: #fff;
  transition: height 160ms var(--wyjscie), background 160ms, color 160ms, box-shadow 160ms;
}
.naglowek::before { content: ""; position: absolute; inset: 0 0 -60px; background: linear-gradient(rgba(55, 37, 46, .5), rgba(55, 37, 46, 0)); pointer-events: none; transition: opacity 160ms; }
.naglowek-w { position: relative; height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.naglowek .logo-link { color: inherit; display: block; }
.naglowek .logo-360 { height: 54px; transition: height 160ms var(--wyjscie); }
.menu-glowne { display: flex; align-items: center; gap: 36px; }
.menu-glowne a { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: inherit; opacity: .78; padding: 8px 0; border-bottom: 1px solid transparent; }
.menu-glowne a:hover, .menu-glowne a[aria-current="page"] { opacity: 1; border-bottom-color: currentColor; }
.menu-glowne .znacznik { color: inherit; border-color: currentColor; opacity: .8; }
.menu-przycisk { display: none; }
body.przewinieto .naglowek, body.bez-hero .naglowek {
  height: 72px; color: var(--tekst-mocny);
  background: color-mix(in srgb, var(--tlo) 94%, transparent);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 var(--linia);
}
body.przewinieto .naglowek::before, body.bez-hero .naglowek::before { opacity: 0; }
body.przewinieto .naglowek .logo-360, body.bez-hero .naglowek .logo-360 { height: 36px; }
@media (max-width: 1080px) {
  .menu-glowne { display: none; }
  .menu-przycisk { display: inline-flex; }
  .naglowek { height: 80px; }
  .naglowek .logo-360 { height: 43px; }
  body.przewinieto .naglowek, body.bez-hero .naglowek { height: 60px; }
  body.przewinieto .naglowek .logo-360, body.bez-hero .naglowek .logo-360 { height: 31px; }
}
.menu-przycisk { border-color: currentColor !important; color: inherit !important; }

/* menu mobilne */
.menu-mobilne {
  position: fixed; inset: 0; z-index: 80; display: flex; flex-direction: column;
  background: var(--gr-sekcja); background-color: var(--tlo); color: var(--tekst);
  padding: 0 20px 28px; overflow-y: auto;
}
.menu-mobilne-gora { height: 72px; display: flex; align-items: center; justify-content: space-between; color: var(--tekst-mocny); }
.menu-mobilne-gora .logo-360 { height: 36px; }
.zamknij { width: 48px; height: 48px; border-radius: 24px; border: 0; background: var(--tlo); display: grid; place-items: center; cursor: pointer; color: var(--tekst-mocny); }
.menu-mobilne nav { display: grid; padding-top: 16px; }
.menu-mobilne nav a { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; padding: 18px 0; border-bottom: 1px solid var(--linia); text-decoration: none; }
.menu-mobilne nav b { font-size: 26px; line-height: 1.15; color: var(--tekst-mocny); display: flex; gap: 10px; align-items: center; }
.menu-mobilne nav small { font-size: 14px; color: var(--tekst-2); grid-column: 1; }
.menu-mobilne nav svg { grid-row: 1 / span 2; grid-column: 2; color: var(--tekst-3); }
.menu-mobilne .dokumenty { display: flex; gap: 20px; padding: 20px 0; font-size: 14px; color: var(--tekst-2); }
.menu-mobilne .dol { margin-top: auto; display: grid; gap: 12px; text-align: center; }

/* ——— hero ——— */
.hero { position: relative; overflow: hidden; color: var(--tekst); isolation: isolate; }
.hero-tlo { position: absolute; inset: 0; z-index: -2; }
.hero-tlo img, .hero-tlo video { width: 100%; height: 100%; object-fit: cover; }
.hero-tlo::after { content: ""; position: absolute; inset: 0; }
.okruszki { display: flex; gap: 10px; font-size: 14px; color: var(--tekst-2); }
.okruszki a { text-decoration: none; }
.okruszki a:hover { color: var(--tekst-mocny); }
.okruszki span:last-child { color: var(--tekst-mocny); }
.meta { font-size: 16.8px; letter-spacing: .04em; color: var(--tekst-2); }
.bilet-kreska { display: grid; gap: 6px; padding-left: 20px; border-left: 1px solid var(--linia); }

/* strona główna — KV */
/* ekran główny na całą wysokość okna; grafika i logo Art Box skalują się razem */
.hero-kv { height: 100vh; height: 100svh; min-height: 640px; display: flex; align-items: center; }
.hero-kv .hero-tlo img { object-position: left bottom; }
.kv-scena { container-type: size; transform-origin: 30% 50%; animation: przyblizenie 20s ease-in-out infinite alternate; }
/* pozycja w pikselach grafiki 1920×1080 przeliczona tak jak object-fit: cover + object-position: left bottom;
   środek logo na wysokości środka logotypu Aquaparku (y 982 w grafice) */
[data-logo-kv] {
  --s: max(100cqw / 1920, 100cqh / 1080);
  position: absolute; left: calc(342 * var(--s)); bottom: calc(70 * var(--s)); top: auto;
  width: calc(203 * var(--s)); color: #fff;
}
.hero-kv .hero-tlo::after { background: linear-gradient(90deg, rgba(55, 37, 46, 0) 50%, rgba(55, 37, 46, .78) 62%, rgba(55, 37, 46, .9)); }
@keyframes przyblizenie { from { transform: scale(1); } to { transform: scale(1.06); } }
.hero-kv .szpalta { display: flex; justify-content: flex-end; padding-top: 128px; padding-bottom: 56px; }
.hero-kv-tresc { width: min(580px, 100%); display: grid; gap: 22px; }
.hero-kv picture { display: contents; }
.logo-partner-mobilne { display: none; }
@media (max-width: 900px) {
  [data-logo-kv] { display: none; }
  .logo-partner-mobilne { display: block; position: static; width: 134px; color: #fff; }
}
@media (max-width: 900px) {
  .hero-kv { height: auto; min-height: 100svh; align-items: flex-end; }
  .hero-kv .hero-tlo img { object-position: 55% 18%; }
  .kv-scena { transform-origin: 55% 25%; }
  .hero-kv .hero-tlo::after { background: linear-gradient(180deg, rgba(55, 37, 46, .42), rgba(55, 37, 46, 0) 14%, rgba(55, 37, 46, 0) 38%, rgba(55, 37, 46, .9) 52%, rgba(55, 37, 46, .96)); }
  .hero-kv .szpalta { padding-top: 112px; padding-bottom: 40px; }
  .hero-kv .hero-kv-tresc { gap: 16px; }
  .hero-kv .obietnica-kv { display: none; }
}

/* podstrony — hero ze zdjęciem/wideo */
.hero-strona { min-height: 720px; display: flex; align-items: flex-end; }
.hero-strona .szpalta { padding-top: 150px; padding-bottom: 72px; }
.hero-strona-tresc { display: grid; gap: 20px; max-width: 900px; }
.hero-strona .hero-tlo::after { background: linear-gradient(90deg, rgba(55, 37, 46, .92), rgba(55, 37, 46, .72) 42%, rgba(55, 37, 46, .12) 70%, rgba(55, 37, 46, 0)); }
body[data-motyw="afisz"] .hero-strona .hero-tlo::after { background: linear-gradient(180deg, rgba(11, 10, 8, .55), rgba(11, 10, 8, .35) 45%, rgba(11, 10, 8, .97)); }
.oznaczenie-wideo { position: absolute; right: var(--margines); bottom: 48px; display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 12px; border-radius: 20px; background: rgba(0, 0, 0, .45); border: 1px solid rgba(255, 255, 255, .22); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.oznaczenie-wideo::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #ff5a5a; box-shadow: 0 0 0 0 rgba(255, 90, 90, .6); animation: puls 1.8s infinite; }
@keyframes puls { 70% { box-shadow: 0 0 0 8px rgba(255, 90, 90, 0); } }
@media (max-width: 900px) {
  .hero-strona { min-height: 700px; }
  .hero-strona .szpalta { padding-top: 100px; padding-bottom: 40px; }
  .hero-strona .hero-tlo::after { background: linear-gradient(180deg, rgba(55, 37, 46, .45), rgba(55, 37, 46, .15) 30%, rgba(55, 37, 46, .88) 58%, rgba(55, 37, 46, .96)); }
  .oznaczenie-wideo { top: 96px; bottom: auto; left: var(--margines); right: auto; }
  .hero-strona .akcje .przycisk { width: 100%; }
}

/* hero jasne (kontakt, regulamin, dziękujemy) */
.hero-jasne { position: relative; overflow: hidden; background: var(--gr-sekcja); padding: 184px 0 80px; }
.hero-jasne .plama { position: absolute; border-radius: 50%; filter: blur(110px); opacity: .8; pointer-events: none; }
.hero-jasne .szpalta { position: relative; display: grid; gap: 18px; }
@media (max-width: 900px) { .hero-jasne { padding: 116px 0 40px; } }

/* ——— bilety ——— */
.bilety { position: relative; overflow: hidden; background: var(--tlo); }
.bilety .plama { position: absolute; border-radius: 50%; filter: blur(120px); pointer-events: none; }
body[data-motyw="afisz"] .bilety { background: var(--tlo-2); }
body[data-motyw="afisz"] .bilety .plama { display: none; }
.bilety .szpalta { position: relative; }
.bilety-uklad { display: grid; grid-template-columns: minmax(0, 1fr) 332px; gap: 24px; align-items: stretch; }
.wybor-terminu { display: grid; grid-template-columns: 392px minmax(0, 1fr); gap: 24px; padding: 24px; border-radius: 20px; background: var(--gr-sekcja); border: 1px solid var(--roz-200); }
body[data-motyw="afisz"] .wybor-terminu { background: var(--tlo); border-color: var(--linia); }
.lista-terminow { max-height: 560px; overflow-y: auto; border-radius: 14px; background: color-mix(in srgb, var(--tlo) 90%, transparent); border: 1px solid var(--linia); scrollbar-width: thin; scrollbar-color: var(--roz-500) var(--roz-200); }
body[data-motyw="afisz"] .lista-terminow { background: var(--tlo-2); scrollbar-color: var(--akcent) var(--linia); }
.termin { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--linia); }
.termin:last-child { border-bottom: 0; }
.termin.najblizszy { background: var(--gr-aktywny); }
.termin-data { font-size: 10.75px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--akcent-tekst); }
.termin-godzina { font-size: 25.6px; font-weight: 700; color: var(--tekst-mocny); line-height: 1.2; font-variant-numeric: tabular-nums; }
.termin-akcja { display: grid; justify-items: end; gap: 8px; }
.termin-cena { font-size: 12px; font-weight: 700; color: var(--tekst-mocny); }
.kalendarz { padding: 28px; border-radius: 14px; background: var(--gr-panel); border: 1px solid var(--linia); display: flex; flex-direction: column; gap: 20px; }
.kal-glowa { display: flex; align-items: center; justify-content: space-between; }
.kal-miesiac { font-size: 28px; font-weight: 900; text-transform: uppercase; letter-spacing: .03em; color: var(--tekst-mocny); }
.kal-strzalki { display: flex; gap: 8px; }
.kal-strzalka { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--roz-300); background: color-mix(in srgb, var(--tlo) 80%, transparent); cursor: pointer; color: var(--tekst-mocny); }
body[data-motyw="afisz"] .kal-strzalka { border-color: var(--linia); background: var(--tlo-3); }
.kal-strzalka:disabled { opacity: .35; cursor: default; }
.kal-siatka { display: grid; grid-template-columns: repeat(7, 1fr); gap: 9px; }
.kal-dt { text-align: center; font-size: 12px; font-weight: 700; color: var(--tekst-3); letter-spacing: .05em; }
.kal-dzien { aspect-ratio: 1; display: grid; place-items: center; border-radius: 8px; border: 0; font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.kal-dzien.pusty { background: none; }
.kal-dzien.niedostepny { background: color-mix(in srgb, var(--roz-100) 50%, transparent); color: color-mix(in srgb, var(--tekst-3) 55%, transparent); font-weight: 400; }
body[data-motyw="afisz"] .kal-dzien.niedostepny { background: color-mix(in srgb, var(--tlo) 60%, transparent); color: #5a5650; }
.kal-dzien.dostepny { background: var(--gr-panel); outline: 1px solid var(--roz-300); outline-offset: -1px; color: var(--tekst-mocny); cursor: pointer; transition: transform var(--szybko); }
body[data-motyw="afisz"] .kal-dzien.dostepny { background: var(--tlo-3); outline-color: var(--linia-jasna); }
.kal-dzien.dostepny:hover { transform: translateY(-2px); }
.kal-dzien.wybrany { background: var(--gr-wybrany); color: var(--na-akcencie); box-shadow: 0 8px 20px rgba(144, 98, 122, .38); outline: 0; }
body[data-motyw="afisz"] .kal-dzien.wybrany { box-shadow: 0 8px 20px rgba(242, 193, 78, .35); }
.kal-legenda { margin-top: auto; display: flex; gap: 20px; flex-wrap: wrap; font-size: 13px; color: var(--tekst-2); }
.kal-legenda span { display: inline-flex; align-items: center; gap: 8px; }
.kal-legenda i { width: 16px; height: 16px; border-radius: 4px; display: inline-block; }
.karta-cen { border-radius: 20px; padding: 36px 32px 32px; background: var(--gr-karta); display: flex; flex-direction: column; gap: 18px; box-shadow: 0 24px 48px -8px rgba(55, 37, 46, .28); color: var(--tekst); }
body[data-motyw="afisz"] .karta-cen { border: 1px solid var(--linia); box-shadow: none; }
.karta-cen-termin { font-size: 25.6px; font-weight: 700; color: var(--tekst-mocny); line-height: 1.2; }
.karta-cen-kwota { display: flex; align-items: baseline; gap: 8px; color: var(--tekst-2); }
.karta-cen-kwota b { font-size: 44px; font-weight: 900; color: var(--tekst-mocny); line-height: 1; font-variant-numeric: tabular-nums; }
.cennik { display: grid; }
.cennik div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--linia-jasna); font-size: 15.2px; line-height: 1.45; }
.cennik dt, .cennik dd { margin: 0; }
.cennik dd { font-weight: 700; color: var(--tekst-mocny); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cennik dd s { color: var(--tekst-3); font-weight: 400; }
.karta-cen .drobne { color: var(--tekst-3); }
.karta-cen .akcje { flex-direction: column; align-items: stretch; margin-top: auto; }
.pokaz-wiecej { display: none; }
@media (max-width: 1180px) {
  .bilety-uklad { grid-template-columns: 1fr; }
  .wybor-terminu { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .wybor-terminu { grid-template-columns: 1fr; padding: 0; background: none; border: 0; gap: 16px; }
  .kalendarz { order: -1; padding: 18px 16px; }
  .kal-miesiac { font-size: 22px; }
  .kal-siatka { gap: 6px; }
  .kal-dzien { font-size: 14px; }
  .lista-terminow { max-height: none; overflow: visible; }
  .lista-terminow.zwiniete .termin:nth-child(n+5) { display: none; }
  .pokaz-wiecej { display: flex; }
  .termin { display: grid; gap: 14px; }
  .termin-akcja { grid-auto-flow: column; justify-content: space-between; align-items: center; }
  .karta-cen { padding: 28px 24px 24px; }
}

/* ——— O wystawie (tło akwarelowe) ——— */
.tlo-akwarele { background: var(--tlo) url(img/tlo-historia.jpg) top center / 100% auto repeat-y; }
@media (max-width: 760px) { .tlo-akwarele { background-image: url(img/tlo-historia-m.jpg); } }
.wstep { display: grid; grid-template-columns: minmax(0, 1fr) 540px; gap: 88px; align-items: center; }
.wstep-tekst { display: grid; gap: 32px; }
.panel-liczb { position: relative; overflow: hidden; border-radius: 28px; padding: 40px 44px 32px; color: var(--tekst); box-shadow: 0 30px 60px -12px rgba(55, 37, 46, .28); isolation: isolate; }
.panel-liczb video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.panel-liczb::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(135deg, rgba(55, 37, 46, .9), rgba(98, 67, 83, .72) 55%, rgba(76, 104, 123, .6)); }
.liczba-w { display: grid; grid-template-columns: 200px 1fr; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--linia-jasna); }
.liczba-w:last-of-type { border-bottom: 0; }
.liczba { font-size: 56px; font-weight: 900; line-height: .95; letter-spacing: -.02em; background: linear-gradient(135deg, var(--roz-50), var(--bursztyn-300)); -webkit-background-clip: text; background-clip: text; color: transparent; font-variant-numeric: tabular-nums; white-space: nowrap; }
.liczba-w b { display: block; font-size: 18px; color: #fff; line-height: 1.3; }
.liczba-w span:not(.liczba) { font-size: 15.2px; color: var(--tekst); line-height: 1.5; }
.podpis-na-zywo { display: flex; align-items: center; gap: 10px; padding-top: 18px; font-size: 13px; color: var(--tekst-2); }
.podpis-na-zywo::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--bursztyn-300); box-shadow: 0 0 8px var(--bursztyn-300); }
@media (max-width: 1080px) {
  .wstep { grid-template-columns: 1fr; gap: 40px; }
  .panel-liczb { padding: 12px 22px; }
  .liczba-w { grid-template-columns: 1fr; gap: 10px; padding: 22px 0; }
  .liczba { font-size: 64px; justify-self: start; }
  .liczba-w b { font-size: 20px; }
  .podpis-na-zywo { padding: 8px 0 12px; }
}

.historia { display: grid; gap: clamp(72px, 8.3vw, 120px); }
.rozdzial { display: grid; grid-template-columns: 480px minmax(0, 1fr); gap: 72px; align-items: center; }
.rozdzial.odwrocony { grid-template-columns: minmax(0, 1fr) 480px; }
.rozdzial.odwrocony .rozdzial-tekst { order: 2; }
.rozdzial-tekst { display: grid; gap: 20px; align-content: start; }
.rozdzial-tekst .numer { font-size: 12.8px; font-weight: 700; letter-spacing: .28em; color: var(--akcent-tekst); }
.foto { border-radius: 16px; overflow: hidden; background: var(--tlo-3); }
.foto img { width: 100%; height: 100%; object-fit: cover; }
.mozaika-a { display: grid; grid-template-columns: 1fr 372px; gap: 16px; height: 560px; }
.mozaika-a .kolumna { display: grid; gap: 16px; }
.mozaika-b { display: grid; grid-template-columns: 1fr 253px; gap: 16px; height: 450px; }
.mozaika-b .kolumna, .mozaika-c .kolumna { display: grid; gap: 16px; }
.mozaika-c { display: grid; grid-template-columns: 253px 1fr; gap: 16px; height: 450px; }
/* mozaiki mają stałą wysokość — wiersze nie mogą rosnąć do naturalnej wysokości zdjęć (inaczej nachodzą na następny rozdział) */
.mozaika-a, .mozaika-b, .mozaika-c { grid-template-rows: minmax(0, 1fr); }
.mozaika-a .kolumna, .mozaika-b .kolumna, .mozaika-c .kolumna { grid-auto-rows: minmax(0, 1fr); min-height: 0; }
.mozaika-a .foto, .mozaika-b .foto, .mozaika-c .foto, .mozaika-b .wideo, .mozaika-c .wideo { min-height: 0; }
.mozaika-vr { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 420px 250px; gap: 16px; }
.mozaika-vr .foto:first-child { grid-column: 1 / -1; }
.mozaika-4 { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 260px 260px; gap: 16px; }
.szeroki-kadr { height: 540px; }
.rozdzial-pelny { display: grid; gap: 40px; }
.dziedzictwo { position: relative; overflow: hidden; border-radius: 24px; min-height: 600px; display: flex; align-items: center; padding: 64px; isolation: isolate; }
.dziedzictwo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.dziedzictwo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(55, 37, 46, .92), rgba(55, 37, 46, .72) 45%, rgba(55, 37, 46, .1) 80%); }
.dziedzictwo .rozdzial-tekst { max-width: 480px; }
.dziedzictwo .wstawka { position: absolute; right: 48px; bottom: 48px; width: 380px; aspect-ratio: 380 / 246; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .3); box-shadow: 0 20px 40px rgba(55, 37, 46, .45); }
.dziedzictwo .wstawka img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1080px) {
  .rozdzial, .rozdzial.odwrocony { grid-template-columns: 1fr; gap: 24px; }
  .rozdzial.odwrocony .rozdzial-tekst { order: 0; }
  .mozaika-a { grid-template-columns: 1fr; grid-template-rows: auto; height: auto; }
  .mozaika-a > .foto { height: 260px; }
  .mozaika-a .kolumna { grid-template-columns: repeat(3, 1fr); height: 108px; }
  .mozaika-b, .mozaika-c { grid-template-columns: 1fr 140px; height: 249px; }
  .mozaika-c { grid-template-columns: 140px 1fr; }
  .mozaika-b .kolumna .foto:nth-child(2), .mozaika-c .kolumna .foto:nth-child(2) { display: none; }
  .mozaika-vr { grid-template-rows: 220px 140px; gap: 12px; }
  .mozaika-4 { grid-template-rows: 140px 140px; gap: 12px; }
  .szeroki-kadr { height: 220px; }
  .dziedzictwo { min-height: 560px; align-items: flex-end; padding: 24px 24px 28px; border-radius: 20px; }
  .dziedzictwo::before { background: linear-gradient(180deg, rgba(55, 37, 46, .05) 15%, rgba(55, 37, 46, .75) 50%, rgba(55, 37, 46, .95)); }
  .dziedzictwo .wstawka { display: none; }
}

/* wideo */
.wideo { position: relative; overflow: hidden; border-radius: 20px; background: #000; cursor: pointer; border: 0; padding: 0; width: 100%; display: block; color: #fff; text-align: left; }
.wideo img, .wideo video { width: 100%; height: 100%; object-fit: cover; }
.wideo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(55, 37, 46, 0) 45%, rgba(55, 37, 46, .85)); z-index: 1; pointer-events: none; transition: opacity var(--szybko); }
.wideo .odtworz { position: absolute; z-index: 2; left: 50%; top: 50%; translate: -50% -50%; width: 96px; height: 96px; border-radius: 50%; background: rgba(248, 246, 247, .92); display: grid; place-items: center; box-shadow: 0 12px 32px rgba(55, 37, 46, .35); transition: transform var(--szybko) var(--wyjscie); }
.wideo:hover .odtworz { transform: scale(1.06); }
.wideo .odtworz svg { width: 30px; height: 34px; margin-left: 6px; color: var(--roz-900); }
.wideo .opis-wideo { position: absolute; z-index: 2; left: 28px; bottom: 28px; right: 28px; display: grid; gap: 2px; }
.wideo .opis-wideo b { font-size: 22px; line-height: 1.3; }
.wideo .opis-wideo span { font-size: 14px; letter-spacing: .06em; color: var(--roz-200); }
.wideo.gra::before, .wideo.gra .odtworz, .wideo.gra .opis-wideo { opacity: 0; pointer-events: none; }
.wideo.maly .odtworz { width: 52px; height: 52px; }
.wideo.maly .odtworz svg { width: 17px; height: 19px; margin-left: 3px; }
.wideo.maly .opis-wideo { left: 14px; bottom: 14px; right: 14px; }
.wideo.maly .opis-wideo b { font-size: 14px; }
.wideo.maly .opis-wideo span { font-size: 11px; }
.zwiastun { aspect-ratio: 16 / 9; }
@media (max-width: 760px) { .zwiastun .odtworz { width: 56px; height: 56px; } .zwiastun .odtworz svg { width: 18px; height: 20px; margin-left: 3px; } .zwiastun .opis-wideo { left: 14px; bottom: 12px; } .zwiastun .opis-wideo b { font-size: 16px; } }

/* galeria */
.galeria { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 300px; gap: 16px; }
.galeria .duzy { grid-column: span 2; }
.galeria .wysoki { grid-row: span 1; }
.galeria .foto { height: 100%; }
.galeria button.foto { border: 0; padding: 0; cursor: zoom-in; }
@media (max-width: 760px) { .galeria { grid-template-columns: 1fr 1fr; grid-auto-rows: 169px; gap: 12px; } .galeria .duzy { grid-column: span 2; grid-row: span 1; } }

.realizacja { display: grid; grid-template-columns: 220px repeat(4, minmax(0, 1fr)); gap: 56px; padding: 44px 48px; border-radius: 20px; background: color-mix(in srgb, var(--roz-50) 62%, transparent); border: 1px solid var(--roz-200); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); color: var(--tekst-mocny); }
.realizacja .logo-abe { width: 220px; }
.realizacja dt { margin-bottom: 8px; }
.realizacja dd { margin: 0; font-size: 15.2px; color: var(--tekst); line-height: 1.55; }
@media (max-width: 1080px) { .realizacja { grid-template-columns: 1fr; gap: 22px; padding: 28px 24px; } .realizacja .logo-abe { width: 180px; } }

/* pas CTA */
.pas-cta { display: flex; align-items: center; justify-content: space-between; gap: 48px; padding: 64px; border-radius: 28px; background: var(--gr-karta); box-shadow: 0 30px 60px -10px rgba(55, 37, 46, .3); color: var(--tekst); position: relative; overflow: hidden; isolation: isolate; }
.pas-cta h2 { font-size: clamp(34px, 3.6vw, 52px); font-weight: 900; line-height: 1.05; margin: 14px 0; }
.pas-cta .akcje { flex-direction: column; align-items: stretch; width: 300px; flex: none; }
.pas-cta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.pas-cta.z-tlem::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11, 10, 8, .95), rgba(11, 10, 8, .75) 60%, rgba(11, 10, 8, .35)); }
@media (max-width: 900px) { .pas-cta { flex-direction: column; align-items: stretch; padding: 36px 24px 28px; border-radius: 24px; gap: 16px; } .pas-cta .akcje { width: 100%; } .pas-cta.z-tlem::before { background: rgba(11, 10, 8, .8); } }

/* ——— karty ——— */
.karta-info { display: grid; gap: 14px; align-content: start; padding: 28px; border-radius: 20px; background: color-mix(in srgb, var(--tlo) 72%, transparent); border: 1px solid var(--linia); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.karta-info .ikona { width: 48px; height: 48px; border-radius: 14px; background: var(--gr-wybrany); display: grid; place-items: center; color: var(--na-akcencie); }
.karta-info h3 { font-size: 22px; line-height: 1.3; }
.karta-info p { font-size: 16px; color: var(--tekst-2); line-height: 1.55; }
.siatka-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.siatka-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.siatka-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1080px) { .siatka-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .siatka-3 { grid-template-columns: 1fr; gap: 12px; } }
@media (max-width: 760px) { .siatka-4, .siatka-2 { grid-template-columns: 1fr; gap: 12px; } }

.karta-foto { display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: var(--tlo); border: 1px solid var(--linia); box-shadow: 0 12px 32px rgba(55, 37, 46, .08); }
.karta-foto .foto { border-radius: 0; height: 220px; }
.karta-foto > div:last-child { display: grid; gap: 10px; padding: 22px 24px 28px; align-content: start; }
.karta-foto h3 { font-size: 24px; line-height: 1.25; }
body[data-motyw="afisz"] .karta-foto { background: var(--tlo-2); box-shadow: none; }
@media (max-width: 760px) {
  .karuzela { display: grid; grid-auto-flow: column; grid-auto-columns: 270px; grid-template-columns: none; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: calc(-1 * var(--margines)); padding-right: var(--margines); scrollbar-width: none; }
  .karuzela > * { scroll-snap-align: start; }
  .karuzela::-webkit-scrollbar { display: none; }
}

.panel-ciemny { display: grid; grid-template-columns: 1fr 560px; gap: 64px; align-items: center; padding: 40px 40px 40px 64px; border-radius: 28px; background: var(--gr-karta); color: var(--tekst); }
.panel-ciemny .foto { height: 380px; border-radius: 20px; }
.chipy { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { padding: 9px 16px; border-radius: 20px; border: 1px solid var(--linia-jasna); background: rgba(55, 37, 46, .25); font-size: 15px; color: var(--tekst-mocny); }
@media (max-width: 1080px) { .panel-ciemny { grid-template-columns: 1fr; padding: 28px 22px 22px; gap: 20px; } .panel-ciemny .foto { height: 200px; } }

.tworcy { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--linia); border-bottom: 1px solid var(--linia); }
.tworcy > div { display: grid; gap: 10px; align-content: start; padding: 32px 28px 36px; border-left: 1px solid var(--linia); }
.tworcy > div:first-child { border-left: 0; padding-left: 0; }
.tworcy b { font-size: 22px; line-height: 1.25; color: var(--tekst-mocny); }
@media (max-width: 1080px) { .tworcy { grid-template-columns: 1fr; border-bottom: 0; } .tworcy > div { border-left: 0; border-top: 1px solid var(--linia); padding: 18px 0; } .tworcy > div:first-child { border-top: 0; } }

/* FAQ */
.faq { display: grid; grid-template-columns: 352px 1fr; gap: 96px; align-items: start; }
.faq-lista { border-top: 1px solid var(--linia); }
.faq details { border-bottom: 1px solid var(--linia); }
.faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; cursor: pointer; font-size: 20px; font-weight: 700; color: var(--tekst-mocny); line-height: 1.35; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--tlo-2); font-size: 22px; font-weight: 400; transition: background var(--szybko), color var(--szybko); }
.faq details[open] summary::after { content: "–"; background: var(--akcent); color: var(--na-akcencie); }
.faq details p { padding: 0 60px 24px 0; font-size: 17px; color: var(--tekst-2); }
@media (max-width: 900px) { .faq { grid-template-columns: 1fr; gap: 24px; } .faq summary { font-size: 17px; padding: 20px 0; } .faq details p { padding-right: 0; font-size: 15.5px; } }

/* formularze */
.formularz { display: grid; gap: 20px; }
.formularz .rzad { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 760px) { .formularz .rzad { grid-template-columns: 1fr; gap: 16px; } }
.pole { display: grid; gap: 8px; }
.pole label { font-size: 13px; font-weight: 700; color: var(--tekst-mocny); }
.pole input, .pole select, .pole textarea { width: 100%; font: inherit; font-size: 16px; color: var(--tekst-mocny); background: var(--tlo); border: 1px solid var(--linia); border-radius: 12px; padding: 13px 16px; min-height: 52px; appearance: none; transition: border-color var(--szybko), box-shadow var(--szybko); }
.pole select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2337252e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 44px; }
.pole textarea { min-height: 140px; resize: vertical; }
.pole input::placeholder, .pole textarea::placeholder { color: var(--tekst-3); }
.pole input:focus, .pole select:focus, .pole textarea:focus { outline: 0; border: 2px solid var(--akcent); padding: 12px 15px; box-shadow: 0 0 0 4px rgba(98, 67, 83, .16); }
.pole small { font-size: 12px; color: var(--tekst-3); }
.pole.blad input, .pole.blad select, .pole.blad textarea { border: 2px solid var(--blad); padding: 12px 15px; }
.pole.blad small { color: var(--blad); }
.zgoda { display: grid; grid-template-columns: 22px 1fr; gap: 12px; font-size: 13px; color: var(--tekst-2); align-items: start; cursor: pointer; }
.zgoda input { width: 22px; height: 22px; margin: 0; accent-color: var(--akcent); }
.zgoda.blad span { color: var(--blad); }
.karta-formularza { padding: 40px 44px 44px; border-radius: 28px; background: var(--tlo-2); border: 1px solid var(--linia); }
@media (max-width: 760px) { .karta-formularza { padding: 0; background: none; border: 0; } }
.sukces { display: grid; gap: 18px; justify-items: center; text-align: center; padding: 56px 32px; border-radius: 28px; background: var(--tlo-2); border: 1px solid var(--linia); }
.sukces .kolko { width: 80px; height: 80px; border-radius: 50%; background: var(--gr-wybrany); display: grid; place-items: center; color: var(--na-akcencie); }
.do-uzupelnienia { display: inline-flex; padding: 3px 8px; border-radius: 6px; border: 1px dashed var(--blad); color: var(--blad); font-size: 12px; font-weight: 700; }

/* ——— stopka ——— */
.stopka { background: var(--tlo); border-top: 1px solid var(--linia); padding: 64px 0 40px; color: var(--tekst); }
.stopka-gora { display: flex; justify-content: space-between; gap: 64px; }
.stopka-marka { display: grid; gap: 16px; align-content: start; color: var(--tekst-mocny); }
.stopka-marka .logo-360 { height: 38px; }
.stopka-kolumny { display: flex; gap: 72px; }
.stopka-kolumny div { display: grid; gap: 12px; align-content: start; }
.stopka-kolumny h3 { font-size: 12.8px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--tekst-3); }
.stopka-kolumny a { font-size: 15.2px; color: var(--tekst-mocny); text-decoration: none; display: inline-flex; gap: 8px; align-items: center; }
.stopka-kolumny a:hover { text-decoration: underline; }
.stopka-dol { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--linia); font-size: 13px; color: var(--tekst-3); }
.stopka-dol .partner { display: flex; align-items: center; gap: 12px; color: var(--tekst-mocny); }
.stopka-dol .logo-abe { height: 22px; }
@media (max-width: 900px) {
  .stopka { padding: 48px 0 32px; }
  .stopka-gora { flex-direction: column; gap: 32px; }
  .stopka-kolumny { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 24px; }
  .stopka-dol { flex-direction: column; align-items: flex-start; gap: 16px; }
  body.ma-pasek .stopka { padding-bottom: 132px; }
}

/* ——— pływający pasek (mobile) ——— */
.pasek-zakupu {
  position: fixed; z-index: 60; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom));
  display: none; align-items: center; justify-content: space-between; gap: 12px; height: 72px; padding: 0;
  border-radius: 16px; background: none; border: 0;
  box-shadow: 0 14px 32px -4px rgba(55, 37, 46, .35); color: var(--tekst);
  transform: translateY(24px); opacity: 0; pointer-events: none;
  transition: transform 240ms var(--wyjscie), opacity 240ms var(--wyjscie);
}
body[data-motyw="afisz"] .pasek-zakupu .przycisk { background: var(--akcent); color: var(--na-akcencie); }
.pasek-zakupu.widoczny { transform: none; opacity: 1; pointer-events: auto; }
/* jeden duży przycisk: etykieta + cena mniejszym fontem pod spodem */
.pasek-zakupu .przycisk { flex: 1; height: 100%; flex-direction: column; gap: 3px; border-radius: 16px; padding: 0 20px; background: var(--gr-karta); color: #fff; }
.pasek-zakupu .przycisk:hover { filter: brightness(1.06); }
.pasek-zakupu .pasek-etykieta { display: flex; align-items: center; gap: 10px; font-size: 18px; letter-spacing: .1em; line-height: 1.1; }
.pasek-zakupu .pasek-cena { font-size: 13px; font-weight: 600; letter-spacing: .02em; text-transform: none; opacity: .88; line-height: 1.2; }
@media (max-width: 900px) { .pasek-zakupu { display: flex; } }

/* ——— modal (podgląd Biletomatu) ——— */
.modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(46, 46, 53, .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.modal-okno { width: min(560px, 100%); max-height: calc(100vh - 40px); overflow: auto; border-radius: 24px; background: #f8f6f7; color: #2e2e35; padding: 32px; display: grid; gap: 18px; box-shadow: 0 40px 80px rgba(0, 0, 0, .3); }
.modal-okno h2 { color: #37252e; font-size: 26px; line-height: 1.2; }
.modal-okno .znak-biletomat { display: flex; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #62636f; }
.modal-okno .uwaga { padding: 14px 16px; border-radius: 12px; border: 1px dashed #b4233c; color: #b4233c; font-size: 14px; line-height: 1.5; }
.modal-okno .przycisk { --akcent: #624353; --akcent-ciemny: #37252e; --na-akcencie: #f8f6f7; --tekst-mocny: #37252e; --linia-jasna: rgba(55, 37, 46, .3); }
.lightbox { position: fixed; inset: 0; z-index: 110; background: rgba(20, 16, 18, .92); display: grid; place-items: center; padding: 24px; cursor: zoom-out; }
.lightbox img, .lightbox video { max-width: min(1400px, 100%); max-height: calc(100vh - 48px); border-radius: 12px; }

/* ——— Renesans ——— */
.manifest { display: grid; grid-template-columns: 620px 1fr; gap: 96px; }
.manifest-haslo { font-size: clamp(38px, 4.45vw, 64px); font-weight: 900; line-height: 1.04; letter-spacing: -.01em; color: var(--tekst-mocny); }
@media (max-width: 1080px) { .manifest { grid-template-columns: 1fr; gap: 24px; } }
.obrazy-epoki { columns: 4; column-gap: 24px; }
.obrazy-epoki figure { break-inside: avoid; margin: 0 0 32px; display: grid; gap: 10px; }
.obrazy-epoki img { width: 100%; border-radius: 10px; }
.obrazy-epoki figcaption { display: grid; gap: 2px; }
.obrazy-epoki b { font-size: 19px; color: var(--tekst-mocny); line-height: 1.3; }
.nota-epoki { break-inside: avoid; padding: 24px; border-radius: 16px; background: var(--tlo-3); border: 1px solid var(--linia); display: grid; gap: 12px; }
@media (max-width: 1080px) { .obrazy-epoki { columns: 2; } }
@media (max-width: 760px) {
  .obrazy-epoki { columns: auto; display: grid; grid-auto-flow: column; grid-auto-columns: 240px; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: calc(-1 * var(--margines)); padding-right: var(--margines); }
  .obrazy-epoki figure { margin: 0; scroll-snap-align: start; }
  .obrazy-epoki img { height: 300px; object-fit: cover; }
  .nota-epoki { display: none; }
}
.skala { display: grid; grid-template-columns: 760px 1fr; gap: 64px; align-items: center; }
.skala .foto { aspect-ratio: 760 / 428; border-radius: 24px; }
@media (max-width: 1080px) { .skala { grid-template-columns: 1fr; gap: 20px; } }
.karta-strefy { display: grid; grid-template-columns: 260px 1fr; border-radius: 22px; overflow: hidden; background: var(--tlo-2); border: 1px solid var(--linia); }
.karta-strefy img { width: 100%; height: 100%; object-fit: cover; min-height: 300px; }
.karta-strefy > div { padding: 28px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.karta-strefy h3 { font-size: 28px; }
.karta-strefy .przycisk { margin-top: auto; }
@media (max-width: 760px) { .karta-strefy { grid-template-columns: 1fr; } .karta-strefy img { min-height: 0; height: 180px; } }

/* ——— szkoły ——— */
.oferta-karta { display: grid; grid-template-columns: 600px 1fr; border-radius: 28px; overflow: hidden; background: var(--tlo-2); border: 1px solid var(--linia); }
.oferta-karta > img { width: 100%; height: 100%; object-fit: cover; min-height: 520px; }
.oferta-karta > div { padding: 52px 56px; display: grid; gap: 18px; align-content: center; justify-items: start; }
.punkty { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.punkty li { display: grid; grid-template-columns: 8px 1fr; gap: 12px; align-items: baseline; font-size: 16px; color: var(--tekst); }
.punkty li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--akcent); translate: 0 -2px; }
@media (max-width: 1080px) { .oferta-karta { grid-template-columns: 1fr; border-radius: 22px; } .oferta-karta > img { min-height: 0; height: 220px; } .oferta-karta > div { padding: 22px 22px 24px; } .oferta-karta .akcje { width: 100%; flex-direction: column; align-items: stretch; } }
.seans-grupa { position: relative; min-height: 380px; border-radius: 24px; overflow: hidden; display: flex; align-items: flex-end; padding: 32px; isolation: isolate; color: #f5f2ee; }
.seans-grupa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.seans-grupa::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11, 10, 8, 0) 30%, rgba(11, 10, 8, .92)); }
.seans-grupa > div { display: grid; gap: 10px; justify-items: start; --akcent-tekst: #f2c14e; --linia-jasna: rgba(238, 240, 242, .3); }
.seans-grupa h3 { font-size: 34px; color: #fff; }
@media (max-width: 760px) { .seans-grupa { min-height: 220px; padding: 20px; border-radius: 18px; } .seans-grupa h3 { font-size: 24px; } }
.wkrotce-kafle { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.wkrotce-kafle div { display: grid; gap: 10px; justify-items: start; padding: 24px 22px; border-radius: 18px; background: var(--gr-panel); border: 1px solid var(--linia); }
.wkrotce-kafle b { font-size: 22px; color: var(--tekst-mocny); line-height: 1.25; }
@media (max-width: 1080px) { .wkrotce-kafle { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .wkrotce-kafle { display: flex; flex-wrap: wrap; gap: 8px; } .wkrotce-kafle div { padding: 9px 14px; border-radius: 20px; } .wkrotce-kafle .znacznik { display: none; } .wkrotce-kafle b { font-size: 14px; } }
.pas-pdf { display: flex; align-items: center; gap: 32px; padding: 40px 48px; border-radius: 28px; background: var(--gr-karta); color: var(--tekst); }
.pas-pdf .ikona-pdf { width: 72px; height: 72px; border-radius: 20px; background: rgba(248, 246, 247, .14); display: grid; place-items: center; color: #fff; flex: none; }
.pas-pdf h3 { font-size: 28px; color: #fff; }
.pas-pdf > div { flex: 1; display: grid; gap: 6px; }
@media (max-width: 900px) { .pas-pdf { flex-direction: column; align-items: stretch; padding: 28px 24px 24px; gap: 14px; border-radius: 22px; } .pas-pdf .ikona-pdf { display: none; } .pas-pdf h3 { font-size: 24px; } }
.panel-faktow { border-radius: 28px; padding: 32px 40px; background: var(--gr-karta); box-shadow: 0 30px 60px -12px rgba(55, 37, 46, .26); color: var(--tekst); }
.panel-faktow .liczba-w { grid-template-columns: 170px 1fr; padding: 20px 0; }
.panel-faktow .liczba { font-size: 48px; }
.panel-faktow .liczba-w span:not(.liczba) { font-size: 17px; color: #fff; }
@media (max-width: 1080px) { .panel-faktow { padding: 12px 22px; } .panel-faktow .liczba-w { grid-template-columns: 110px 1fr; padding: 14px 0; } .panel-faktow .liczba { font-size: 34px; } .panel-faktow .liczba-w span:not(.liczba) { font-size: 15px; } }

/* ——— kontakt ——— */
.kontakt-uklad { display: grid; grid-template-columns: 480px 1fr; gap: 64px; align-items: start; }
.mapa { position: relative; height: 260px; border-radius: 20px; overflow: hidden; background: var(--ble-100); border: 1px solid var(--linia); display: grid; place-items: center; }
.mapa svg.podklad { position: absolute; inset: 0; width: 100%; height: 100%; }
.mapa .pinezka { position: relative; display: grid; justify-items: center; gap: 8px; }
.mapa .pinezka i { width: 52px; height: 52px; border-radius: 50%; background: var(--akcent); color: var(--na-akcencie); display: grid; place-items: center; box-shadow: 0 8px 18px rgba(55, 37, 46, .3); }
.mapa .pinezka span { padding: 6px 12px; border-radius: 10px; background: var(--tlo); font-size: 13px; font-weight: 700; color: var(--tekst-mocny); }
@media (max-width: 1080px) { .kontakt-uklad { grid-template-columns: 1fr; gap: 40px; } .kontakt-uklad .dane { order: 2; } }

/* ——— regulamin ——— */
.dokument { display: grid; grid-template-columns: 300px 760px; gap: 96px; align-items: start; }
.spis { position: sticky; top: 96px; padding: 24px; border-radius: 18px; background: var(--tlo-2); border: 1px solid var(--linia); display: grid; gap: 4px; }
.spis a { display: flex; gap: 10px; padding: 8px 10px; border-radius: 8px; font-size: 15px; color: var(--tekst-2); text-decoration: none; line-height: 1.3; }
.spis a::before { content: ""; width: 3px; flex: none; border-radius: 2px; background: var(--linia); }
.spis a.aktywny { background: var(--tlo); color: var(--tekst-mocny); font-weight: 700; }
.spis a.aktywny::before { background: var(--akcent); }
.paragrafy { display: grid; gap: 48px; }
.paragrafy section { display: grid; gap: 14px; scroll-margin-top: 96px; }
.paragrafy h2 { font-size: 30px; line-height: 1.2; }
.paragrafy p { font-size: 18px; color: var(--tekst); line-height: 1.65; }
.uzupelnij { padding: 12px 16px; border-radius: 10px; border: 1px dashed var(--blad); color: var(--blad); font-weight: 700; font-size: 15px; line-height: 1.5; }
@media (max-width: 1180px) { .dokument { grid-template-columns: 1fr; gap: 32px; } .spis { display: none; } .paragrafy p { font-size: 16px; } .paragrafy h2 { font-size: 24px; } }

/* dziękujemy */
.dziekujemy-karta { position: relative; width: min(760px, 100%); margin: 0 auto; display: grid; gap: 20px; justify-items: center; text-align: center; padding: 64px; border-radius: 32px; background: color-mix(in srgb, var(--tlo) 85%, transparent); border: 1px solid var(--linia); box-shadow: 0 30px 60px -10px rgba(55, 37, 46, .12); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); }
.dziekujemy-karta hr { width: 100%; border: 0; border-top: 1px solid var(--linia); margin: 4px 0; }
@media (max-width: 760px) { .dziekujemy-karta { padding: 40px 24px 32px; border-radius: 24px; } .dziekujemy-karta .akcje { width: 100%; flex-direction: column; } .dziekujemy-karta .akcje .przycisk { width: 100%; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* podstrona Szkoły i grupy — szerokości kolumn tylko na PC */
@media (min-width: 1081px) {
  .wstep-szkoly { grid-template-columns: minmax(0, 1fr) 500px; }
  .kontakt-szkoly { grid-template-columns: 400px 1fr; }
}

/* ═════════════════════════════════════════════════════════════
   LEJKI SPRZEDAŻOWE (13.09.2026) — strony z reklam, test reklam,
   elementy konwersyjne na stronie głównej i „Dziękujemy”.
   Cofnięcie: usuń ten blok (kopia sprzed zmian: wersje/site-przed-lejkami-2026-09-13).
   ═════════════════════════════════════════════════════════════ */

/* tokeny jasne i ciemne do użycia wewnątrz dowolnego tła */
.lp-karta, .motyw-jasny {
  --tlo: var(--roz-50); --tlo-2: var(--roz-100); --tlo-3: var(--ble-100);
  --tekst: var(--atr-900); --tekst-2: var(--atr-700); --tekst-3: var(--atr-600); --tekst-mocny: var(--roz-900);
  --linia: var(--roz-200); --linia-jasna: rgba(55, 37, 46, .30);
  --akcent: var(--roz-700); --akcent-ciemny: var(--roz-900); --akcent-tekst: var(--roz-700); --na-akcencie: var(--roz-50);
  color: var(--tekst);
}
.tr-hero, .tr-ciemna, .lp-noc-sekcja, .lp-karta.lp-karta-ciemna {
  --tlo: var(--roz-900); --tlo-2: #2b1d24; --tlo-3: var(--roz-700);
  --tekst: var(--roz-100); --tekst-2: var(--roz-200); --tekst-3: var(--roz-300); --tekst-mocny: #fff;
  --linia: rgba(255, 255, 255, .14); --linia-jasna: rgba(255, 255, 255, .32);
  --akcent: var(--roz-50); --akcent-ciemny: var(--roz-100); --akcent-tekst: var(--bursztyn-300); --na-akcencie: var(--roz-900);
  color: var(--tekst);
}

/* ——— nagłówek: stały „Kup bilet” + test reklam ——— */
.naglowek-akcje { display: flex; align-items: center; gap: 12px; }
.naglowek-kup { padding: 12px 22px; }
.menu-glowne .link-test { border: 1px dashed currentColor; padding: 6px 10px; opacity: .85; }
.menu-glowne .link-test:hover, .menu-glowne .link-test[aria-current="page"] { border-bottom: 1px dashed currentColor; opacity: 1; }
@media (max-width: 1400px) { .menu-glowne { gap: 24px; } .menu-glowne a { letter-spacing: .08em; } }
@media (max-width: 1080px) { .naglowek-kup { padding: 10px 14px; } }
.menu-mobilne nav .link-test-mobilny b { font-size: 20px; }

/* pasek podglądu strony z reklamy (tylko na tymczasowym hostingu) */
.pasek-podgladu {
  position: fixed; inset: 0 0 auto; z-index: 70; height: 34px; display: flex; align-items: center; justify-content: center; gap: 16px;
  padding: 0 16px; background: #2e2e35; color: #f2ecef; font-size: 12px; line-height: 1; white-space: nowrap;
}
.pasek-podgladu .pp-znak { font-weight: 900; letter-spacing: .16em; text-transform: uppercase; color: var(--bursztyn-300); }
.pasek-podgladu .pp-zrodlo { color: #cdb8c3; overflow: hidden; text-overflow: ellipsis; }
.pasek-podgladu a { color: #fff; font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .4); }
body.tryb-lp .naglowek { top: 34px; }
body.tryb-lp .menu-glowne, body.tryb-lp .menu-przycisk { display: none !important; }
body.tryb-lp .logo-link { pointer-events: none; }
body.tryb-lp .stopka-kolumny { display: none; }
@media (max-width: 700px) { .pasek-podgladu .pp-zrodlo { display: none; } }

/* ——— najbliższe wejścia (jedno kliknięcie) ——— */
.szybkie-terminy { display: flex; flex-wrap: wrap; gap: 10px; }
.chip-termin {
  display: grid; justify-items: start; gap: 1px; min-width: 104px; padding: 10px 14px 11px; border-radius: 14px; cursor: pointer; text-align: left;
  background: color-mix(in srgb, var(--tlo) 22%, transparent); border: 1px solid var(--linia-jasna); color: var(--tekst-mocny);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: transform var(--szybko), background var(--szybko), border-color var(--szybko);
}
.chip-termin:hover { transform: translateY(-2px); border-color: var(--tekst-mocny); background: color-mix(in srgb, var(--tlo) 40%, transparent); }
.chip-termin small { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--tekst-2); }
.chip-termin b { font-size: 22px; font-weight: 900; line-height: 1.1; font-variant-numeric: tabular-nums; }
.chip-termin i { font-style: normal; font-size: 11px; font-weight: 700; color: var(--bursztyn-300); }
.motyw-jasny .chip-termin i, .lp-karta .chip-termin i { color: #a2560f; }
.najblizsze-hero { display: grid; gap: 10px; padding-top: 6px; }
.najblizsze-hero .drobne { color: var(--tekst-2); }
@media (max-width: 900px) {
  .szybkie-terminy { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--margines)); padding-right: var(--margines); }
  .chip-termin { flex: none; }
}

/* ——— pas zaufania pod główną grafiką ——— */
.pas-zaufania { background: var(--roz-900); color: var(--roz-100); }
.pas-zaufania .szpalta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-top: 22px; padding-bottom: 22px; }
.pas-zaufania .szpalta > div { display: flex; align-items: center; gap: 14px; font-size: 13px; line-height: 1.35; color: var(--roz-200); }
.pas-zaufania svg { flex: none; color: var(--bursztyn-300); }
.pas-zaufania b { display: block; font-size: 14.5px; color: #fff; }
@media (max-width: 1080px) { .pas-zaufania .szpalta { grid-template-columns: 1fr 1fr; gap: 16px 18px; padding-top: 18px; padding-bottom: 18px; } .pas-zaufania b { font-size: 13.5px; } .pas-zaufania .szpalta > div { font-size: 12px; align-items: flex-start; } }

/* ——— kroki zakupu i statusy terminów ——— */
.kroki-zakupu { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 28px; }
.kroki-zakupu li { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: var(--tekst-3); }
.kroki-zakupu li span { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; border: 1px solid var(--linia-jasna); }
.kroki-zakupu li.aktywny { color: var(--tekst-mocny); }
.kroki-zakupu li.aktywny span { background: var(--gr-wybrany); border-color: transparent; color: #fff; }
.status-znak { display: inline-block; margin-left: 8px; padding: 2px 7px; border-radius: 6px; font-size: 9.5px; letter-spacing: .12em; vertical-align: 1px; }
.status-ostatnie .status-znak { background: #fbe3c0; color: #8a4a0c; }
.status-popularne .status-znak { background: var(--roz-200); color: var(--roz-900); }
.status-brak .status-znak { background: var(--roz-100); color: var(--atr-600); }
.termin.status-brak { opacity: .55; }
body[data-motyw="afisz"] .status-ostatnie .status-znak { background: #3a2c12; color: var(--akcent); }

/* ——— „Zanim kupisz” ——— */
.zanim-kupisz { padding: 0 0 clamp(56px, 5.6vw, 80px); }
.zanim-uklad { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 64px; align-items: start; }
.zanim-siatka { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.zanim-siatka > div { padding: 24px 26px; border-radius: 18px; background: color-mix(in srgb, var(--tlo) 70%, transparent); border: 1px solid var(--linia); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.zanim-siatka b { display: block; font-size: 18px; color: var(--tekst-mocny); margin-bottom: 6px; }
.zanim-siatka p { font-size: 15.5px; color: var(--tekst-2); line-height: 1.55; }
@media (max-width: 1080px) { .zanim-uklad { grid-template-columns: 1fr; gap: 24px; } .zanim-siatka { grid-template-columns: 1fr; gap: 10px; } .zanim-siatka > div { padding: 18px 20px; } }

/* ——— „Dziękujemy”: sprzedaż dalej ——— */
.po-zakupie { display: grid; gap: 24px; }
.po-zakupie-renesans { position: relative; overflow: hidden; isolation: isolate; border-radius: 28px; padding: 48px 56px; display: flex; align-items: center; justify-content: space-between; gap: 40px; color: var(--tekst); }
.po-zakupie-renesans > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.po-zakupie-renesans::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11, 10, 8, .95), rgba(11, 10, 8, .7) 55%, rgba(11, 10, 8, .25)); }
.po-zakupie-renesans > div { display: grid; gap: 10px; max-width: 560px; }
.po-zakupie-renesans .nadtytul { color: #f2c14e; }
.po-zakupie-renesans h2 { font-size: clamp(30px, 3.2vw, 46px); font-weight: 900; line-height: 1.05; }
.po-zakupie-renesans .przycisk { --akcent: #f2c14e; --akcent-ciemny: #d9a441; --na-akcencie: #0b0a08; flex: none; }
.po-zakupie-cena { font-size: 16px; color: var(--tekst-2); }
.po-zakupie-cena b { font-size: 30px; font-weight: 900; color: #fff; margin-left: 6px; }
.po-zakupie-male { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 900px) { .po-zakupie-renesans { flex-direction: column; align-items: stretch; padding: 32px 24px 24px; border-radius: 22px; } .po-zakupie-male { grid-template-columns: 1fr; gap: 12px; } }

/* ═══════════ STRONY Z REKLAM ═══════════ */
.lp-hero { position: relative; overflow: hidden; isolation: isolate; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; padding: 132px 0 48px; color: var(--tekst); }
.lp-hero .plama { position: absolute; border-radius: 50%; filter: blur(110px); opacity: .85; pointer-events: none; z-index: -1; }
.lp-jasny { background: var(--gr-sekcja); }
.lp-hero-uklad { display: grid; grid-template-columns: minmax(0, 1fr) 500px; gap: clamp(40px, 5vw, 88px); align-items: center; }
.lp-kopia { display: grid; gap: 22px; align-content: center; }
.lp-h1 { font-size: clamp(42px, 5.2vw, 82px); font-weight: 900; line-height: .98; letter-spacing: -.025em; text-wrap: balance; }
.lp-h1 em { font-style: italic; font-weight: 400; background: linear-gradient(100deg, var(--bursztyn-300), #f5b8cf); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .06em; }
.lp-h2 { font-size: clamp(30px, 3.4vw, 52px); font-weight: 900; line-height: 1.02; letter-spacing: -.02em; }
.lp-lead { font-size: clamp(18px, 1.55vw, 23px); line-height: 1.5; color: var(--tekst); max-width: 44ch; }
.lp-naklejka { justify-self: start; display: inline-block; padding: 9px 16px 8px; border-radius: 999px; background: var(--bursztyn-300); color: var(--roz-900); font-size: 12.5px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; transform: rotate(-2.5deg); box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .35); }
.lp-plusy { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lp-plusy li { position: relative; padding-left: 34px; font-size: 17px; color: var(--tekst-2); line-height: 1.45; }
.lp-plusy li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; background: var(--gr-wybrany); }
.lp-plusy li::after { content: ""; position: absolute; left: 7px; top: 6px; width: 6px; height: 10px; border: solid #fff; border-width: 0 2.4px 2.4px 0; transform: rotate(45deg); }
.lp-plusy b { color: var(--tekst-mocny); }
.lp-mini-foto { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: 520px; }
.lp-mini-foto img { width: 100%; height: 104px; object-fit: cover; border-radius: 14px; }
.lp-mini-foto img:first-child { object-position: left center; }

/* karta z widżetem */
.lp-karta { position: relative; border-radius: 28px; padding: 24px 28px; background: var(--tlo); box-shadow: 0 40px 80px -24px rgba(55, 37, 46, .45), 0 0 0 1px rgba(55, 37, 46, .06); }
.lp-karta.lp-karta-ciemna { background: rgba(43, 29, 36, .78); border: 1px solid rgba(255, 255, 255, .14); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); box-shadow: 0 40px 80px -24px rgba(0, 0, 0, .6); }
.lp-karta-tytul { font-size: 26px; font-weight: 900; line-height: 1.15; letter-spacing: -.01em; }

/* szybki zakup */
.szybki { display: grid; gap: 14px; }
.szybki-kroki { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; }
.szybki-kroki li { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: var(--tekst-3); }
.szybki-kroki span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; border: 1px solid var(--linia-jasna); }
.szybki-kroki .zrobione { color: var(--tekst-mocny); }
.szybki-kroki .zrobione span { background: var(--gr-wybrany); border-color: transparent; color: #fff; }
.szybki-blok { display: grid; gap: 10px; }
.szybki-etykieta { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--tekst-3); }
.szybki-dni { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; margin: 0; padding: 2px 0; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
.szybki-dni.koniec { -webkit-mask-image: none; mask-image: none; }
.chip-dzien { flex: none; scroll-snap-align: start; display: grid; justify-items: center; gap: 0; min-width: 74px; padding: 9px 8px 10px; border-radius: 14px; border: 1px solid var(--linia); background: var(--tlo); color: var(--tekst-mocny); cursor: pointer; transition: border-color var(--szybko), transform var(--szybko); }
.chip-dzien:hover { border-color: var(--tekst-mocny); }
.chip-dzien small { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tekst-2); }
.chip-dzien b { font-size: 19px; font-weight: 900; line-height: 1.2; font-variant-numeric: tabular-nums; }
.chip-dzien i { font-style: normal; font-size: 10.5px; color: var(--tekst-3); }
.chip-dzien[aria-pressed="true"] { background: var(--gr-wybrany); border-color: transparent; color: #fff; box-shadow: 0 10px 20px -8px rgba(98, 67, 83, .6); }
.chip-dzien[aria-pressed="true"] small, .chip-dzien[aria-pressed="true"] i { color: rgba(255, 255, 255, .85); }
.szybki-godziny { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 8px; max-height: 176px; overflow-y: auto; padding: 2px; scrollbar-width: thin; }
.chip-godz { display: grid; justify-items: center; align-content: center; min-height: 52px; padding: 6px 4px; border-radius: 12px; border: 1px solid var(--linia); background: var(--tlo); color: var(--tekst-mocny); cursor: pointer; }
.chip-godz b { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; }
.chip-godz small { font-size: 9.5px; font-weight: 700; line-height: 1.2; color: var(--tekst-2); text-align: center; }
.chip-godz.status-ostatnie small { color: #a2560f; }
.lp-karta-ciemna .chip-godz.status-ostatnie small { color: var(--bursztyn-300); }
.chip-godz:hover:not([disabled]) { border-color: var(--tekst-mocny); }
.chip-godz[aria-pressed="true"] { background: var(--gr-wybrany); border-color: transparent; color: #fff; }
.chip-godz[aria-pressed="true"] small { color: rgba(255, 255, 255, .9); }
.chip-godz[disabled] { cursor: not-allowed; opacity: .45; }
.chip-godz[disabled] b { text-decoration: line-through; }

/* podsumowanie jako bilet z perforacją */
.bilet-podsumowanie {
  --wyciecie: 132px;
  display: grid; grid-template-columns: minmax(0, 1fr) var(--wyciecie); border-radius: 16px; color: #fff; background: var(--gr-karta);
  -webkit-mask: radial-gradient(circle 11px at calc(100% - var(--wyciecie)) 0, #0000 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 11px at calc(100% - var(--wyciecie)) 100%, #0000 97%, #000) bottom / 100% 51% no-repeat;
  mask: radial-gradient(circle 11px at calc(100% - var(--wyciecie)) 0, #0000 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 11px at calc(100% - var(--wyciecie)) 100%, #0000 97%, #000) bottom / 100% 51% no-repeat;
}
.lp-karta-ciemna .bilet-podsumowanie { background: linear-gradient(135deg, #f5d9e4, var(--roz-50) 60%, #fbe8c8); color: var(--roz-900); }
.bp-lewa { padding: 16px 20px; display: grid; gap: 2px; min-width: 0; }
.bp-lewa .szybki-etykieta { color: rgba(255, 255, 255, .7); }
.bp-dzien { font-size: 13px; font-weight: 700; letter-spacing: .04em; opacity: .9; }
.bp-godz { font-size: 34px; font-weight: 900; line-height: 1.05; font-variant-numeric: tabular-nums; }
.bp-prawa { padding: 16px 16px 16px 20px; border-left: 2px dashed rgba(255, 255, 255, .35); display: grid; align-content: center; gap: 2px; }
.bp-cena { font-size: 13px; }
.bp-cena b { font-size: 28px; font-weight: 900; line-height: 1; }
.bp-za { font-size: 10.5px; line-height: 1.3; opacity: .8; }
.lp-karta-ciemna .bp-lewa .szybki-etykieta { color: var(--roz-700); }
.lp-karta-ciemna .bp-prawa { border-left-color: rgba(55, 37, 46, .3); }
.szybki-kup { font-size: 16px; }
.szybki-kup svg { margin-left: 6px; }
.szybki-zaufanie { list-style: none; margin: -4px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; font-size: 12.5px; color: var(--tekst-2); }
.szybki-zaufanie li::before { content: "✓"; margin-right: 6px; font-weight: 900; color: var(--akcent-tekst); }
.szybki-uwaga { font-size: 11px; text-align: center; color: var(--tekst-3); border-top: 1px dashed var(--linia); padding-top: 10px; }

/* pas zaufania na stronach z reklam */
.lp-pas-zaufania { background: var(--roz-900); color: var(--roz-200); }
.lp-pas-zaufania .szpalta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 32px; padding-top: 18px; padding-bottom: 18px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

/* cennik */
.lp-cennik { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.lp-cena-karta { display: grid; gap: 6px; align-content: start; padding: 26px 24px; border-radius: 20px; background: var(--tlo); border: 1px solid var(--linia); }
.lp-cena-karta b { font-size: 17px; line-height: 1.3; color: var(--tekst-mocny); min-height: 2.6em; }
.lp-kwota { font-size: 44px; font-weight: 900; line-height: 1; color: var(--tekst-mocny); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.lp-cena-karta.wyrozniona { background: var(--gr-karta); border-color: transparent; box-shadow: 0 24px 48px -16px rgba(55, 37, 46, .5); }
.lp-cena-karta.wyrozniona, .lp-cena-karta.wyrozniona b, .lp-cena-karta.wyrozniona .lp-kwota { color: #fff; }
.lp-cena-karta.wyrozniona .nadtytul { color: var(--bursztyn-300); }
.lp-cena-karta.wyrozniona .drobne { color: var(--roz-200); }

/* końcowy pas */
.lp-final { padding: clamp(56px, 6vw, 96px) 0 clamp(88px, 8.3vw, 120px); }
.lp-final-karta { position: relative; overflow: hidden; isolation: isolate; border-radius: 28px; padding: 56px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; color: var(--tekst); }
.lp-final-karta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.lp-final-karta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(55, 37, 46, .95), rgba(55, 37, 46, .8) 55%, rgba(55, 37, 46, .45)); }
.lp-final-karta > div { display: grid; gap: 14px; }
.lp-final-karta h2 { font-size: clamp(30px, 3.4vw, 50px); font-weight: 900; line-height: 1.04; letter-spacing: -.02em; max-width: 18ch; }
.lp-final-karta .szybkie-terminy { margin-top: 6px; }

/* LP rodzina */
.lp-film .hero-tlo::after { background: linear-gradient(90deg, rgba(55, 37, 46, .9), rgba(55, 37, 46, .62) 48%, rgba(55, 37, 46, .2)); }
.lp-momenty { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.lp-moment { position: relative; margin: 0; overflow: hidden; border-radius: 24px; aspect-ratio: 9 / 13; background: var(--roz-900); }
.lp-moment video, .lp-moment img { width: 100%; height: 100%; object-fit: cover; }
.lp-moment figcaption { position: absolute; inset: auto 0 0; padding: 80px 24px 24px; display: grid; gap: 4px; color: #fff; background: linear-gradient(180deg, rgba(55, 37, 46, 0), rgba(55, 37, 46, .92)); }
.lp-moment figcaption b { font-size: 24px; line-height: 1.15; }
.lp-moment figcaption span { font-size: 15px; color: var(--roz-200); }
.lp-rodzina-cena { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.lp-bilet-duzy {
  --wyciecie: 220px;
  display: grid; grid-template-columns: minmax(0, 1fr) var(--wyciecie); border-radius: 24px; background: linear-gradient(120deg, #fbe8c8, var(--roz-100) 55%, var(--ble-100));
  -webkit-mask: radial-gradient(circle 16px at calc(100% - var(--wyciecie)) 0, #0000 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 16px at calc(100% - var(--wyciecie)) 100%, #0000 97%, #000) bottom / 100% 51% no-repeat;
  mask: radial-gradient(circle 16px at calc(100% - var(--wyciecie)) 0, #0000 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 16px at calc(100% - var(--wyciecie)) 100%, #0000 97%, #000) bottom / 100% 51% no-repeat;
}
.lp-bilet-lewa { padding: 36px 36px 32px; display: grid; gap: 8px; }
.lp-bilet-tytul { font-size: 24px; font-weight: 700; line-height: 1.25; color: var(--roz-900); }
.lp-bilet-prawa { padding: 36px 28px; border-left: 2px dashed rgba(55, 37, 46, .25); display: grid; align-content: center; gap: 4px; }
.lp-bilet-prawa .lp-kwota { font-size: 54px; }
.lp-cytat-rodzina { display: grid; gap: 12px; padding-left: 28px; border-left: 1px solid var(--linia); }

/* LP para — noc */
.lp-noc { background: #1d1318; }
.lp-noc .hero-tlo img { opacity: .6; }
.lp-noc .hero-tlo::after { background: radial-gradient(60% 70% at 78% 40%, rgba(245, 184, 207, .28), transparent 70%), linear-gradient(90deg, rgba(29, 19, 24, .97), rgba(29, 19, 24, .78) 50%, rgba(29, 19, 24, .45)); }
.lp-para-cena { display: flex; align-items: center; gap: 18px; font-size: 15px; color: var(--tekst-2); line-height: 1.4; }
.lp-para-cena .lp-kwota { font-size: 64px; background: linear-gradient(100deg, var(--bursztyn-300), #f5b8cf); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lp-para-cena small { font-size: 12px; color: var(--tekst-3); }
.lp-noc-sekcja { background: #1d1318; }
.lp-noc-sekcja.lp-final { padding-top: 0; }
.lp-os { list-style: none; margin: 0 0 40px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; position: relative; }
.lp-os::before { content: ""; position: absolute; left: 0; right: 0; top: 18px; height: 1px; background: linear-gradient(90deg, var(--bursztyn-300), rgba(245, 184, 207, .6), transparent); }
.lp-os li { position: relative; display: grid; gap: 8px; padding-right: 28px; }
.lp-os-czas { justify-self: start; position: relative; padding: 8px 14px; border-radius: 999px; background: #1d1318; border: 1px solid var(--bursztyn-300); color: var(--bursztyn-300); font-size: 13px; font-weight: 900; letter-spacing: .08em; font-variant-numeric: tabular-nums; }
.lp-os b { font-size: 22px; color: #fff; margin-top: 8px; }
.lp-os p { font-size: 15.5px; color: var(--tekst-2); }
.lp-galeria-noc { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 16px; }
.lp-galeria-noc img { width: 100%; height: 320px; object-fit: cover; border-radius: 20px; }

/* LP aquapark */
.lp-woda .hero-tlo::after { background: linear-gradient(90deg, rgba(31, 52, 66, .95), rgba(76, 104, 123, .72) 50%, rgba(55, 37, 46, .25)); }
.lp-trzy { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }

/* LP remarketing */
.lp-licznik { display: flex; align-items: center; gap: 16px; font-size: 16px; color: var(--tekst-2); line-height: 1.35; }
.lp-licznik b { font-size: 72px; font-weight: 900; line-height: 1; color: var(--roz-700); font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.lp-licznik small { font-size: 11.5px; color: var(--tekst-3); }
.lp-watpliwosci { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); grid-template-rows: repeat(3, auto); gap: 0 56px; align-items: start; }
.lp-watpliwosci > div { padding: 22px 0; border-bottom: 1px solid var(--linia); display: grid; gap: 6px; }
.lp-watpliwosci > div:first-child { border-top: 1px solid var(--linia); }
.lp-watpliwosci b { font-size: 21px; color: var(--tekst-mocny); }
.lp-watpliwosci p { font-size: 16px; color: var(--tekst-2); }
.lp-watpliwosci .wideo { grid-column: 2; grid-row: 1 / span 3; align-self: stretch; min-height: 340px; }
.lp-opinie { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.lp-opinia-miejsce { display: grid; gap: 12px; align-content: start; padding: 26px; min-height: 180px; border-radius: 20px; border: 1.5px dashed var(--roz-300); color: var(--tekst-3); font-size: 15px; }
.lp-opinia-miejsce .znacznik { justify-self: start; }

/* LP szkoły */
.lp-fakty-szkoly { display: flex; flex-wrap: wrap; gap: 12px 36px; }
.lp-fakty-szkoly div { display: grid; }
.lp-fakty-szkoly b { font-size: 48px; font-weight: 900; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.lp-fakty-szkoly span { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--roz-200); }
.lp-szkoly .przycisk.obrys { justify-self: start; }
.lp-formularz { gap: 14px; }
.lp-formularz .pole input { padding: 12px 14px; }
.lp-karta .sukces { padding: 32px 12px; background: none; border: 0; }

@media (max-width: 1080px) {
  .lp-hero { min-height: 0; padding: 112px 0 36px; align-items: flex-start; }
  body.tryb-lp .lp-hero { padding-top: 132px; }
  .lp-hero-uklad { grid-template-columns: 1fr; gap: 28px; }
  .lp-kopia { gap: 16px; }
  .lp-karta { padding: 20px; border-radius: 22px; margin: 0 calc(-1 * var(--margines) + 8px); }
  .lp-plusy li { font-size: 15.5px; }
  .lp-mini-foto img { height: 80px; }
  .lp-cennik { grid-template-columns: 1fr 1fr; gap: 10px; }
  .lp-cena-karta { padding: 18px 16px; }
  .lp-cena-karta b { font-size: 15px; }
  .lp-kwota { font-size: 34px; }
  .lp-final-karta { grid-template-columns: 1fr; padding: 32px 22px 24px; gap: 22px; border-radius: 22px; }
  .lp-final-karta .przycisk { width: 100%; }
  .lp-momenty { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin-right: calc(-1 * var(--margines)); padding-right: var(--margines); scrollbar-width: none; }
  .lp-moment { flex: none; width: 74%; scroll-snap-align: start; }
  .lp-moment figcaption b { font-size: 20px; }
  .lp-rodzina-cena { grid-template-columns: 1fr; gap: 28px; }
  .lp-bilet-duzy { --wyciecie: 120px; }
  .lp-bilet-lewa { padding: 22px 20px; }
  .lp-bilet-tytul { font-size: 18px; }
  .lp-bilet-prawa { padding: 22px 14px; }
  .lp-bilet-prawa .lp-kwota { font-size: 34px; }
  .lp-os { grid-template-columns: 1fr; gap: 22px; }
  .lp-os::before { left: 18px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; background: linear-gradient(180deg, var(--bursztyn-300), transparent); }
  .lp-os li { padding: 0 0 0 0; }
  .lp-galeria-noc { grid-template-columns: repeat(3, 70%); overflow-x: auto; scrollbar-width: none; }
  .lp-galeria-noc img { height: 200px; }
  .lp-para-cena .lp-kwota { font-size: 48px; }
  .lp-trzy { grid-template-columns: 1fr; gap: 12px; }
  .lp-licznik b { font-size: 52px; }
  .lp-watpliwosci { grid-template-columns: 1fr; grid-template-rows: none; }
  .lp-watpliwosci .wideo { grid-column: auto; grid-row: auto; min-height: 220px; margin-top: 20px; }
  .lp-opinie { grid-template-columns: 1fr; gap: 10px; }
  .lp-opinia-miejsce { min-height: 0; }
  .lp-fakty-szkoly b { font-size: 36px; }
  .lp-pas-zaufania .szpalta { justify-content: flex-start; font-size: 10.5px; gap: 8px 20px; }
}

/* ═══════════ TEST REKLAM ═══════════ */
.tr-hero, .tr-ciemna { background-color: #2e2e35; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 32px 32px; }
.tr-hero { padding: 172px 0 64px; }
.tr-hero .szpalta { display: grid; gap: 18px; }
.tr-etykieta { justify-self: start; padding: 6px 12px; border: 1px dashed var(--bursztyn-300); color: var(--bursztyn-300); font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.tr-tytul { font-size: clamp(64px, 9vw, 136px); font-weight: 900; line-height: .9; letter-spacing: -.04em; color: #fff; }
.tr-lead { font-size: clamp(17px, 1.5vw, 21px); line-height: 1.55; color: var(--roz-200); max-width: 62ch; }
.tr-sekcja { padding: clamp(64px, 6.7vw, 96px) 0; }
.tr-naglowek { display: grid; gap: 14px; margin-bottom: 36px; }

.lejek { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.lejek li { position: relative; display: grid; gap: 10px; align-content: start; padding: 22px 20px 20px; border-radius: 18px; background: var(--tlo); border: 1px solid var(--linia); }
.lejek li:not(:last-child)::after { content: ""; position: absolute; z-index: 1; right: -12px; top: 34px; width: 10px; height: 10px; border: solid var(--roz-500); border-width: 2px 2px 0 0; transform: rotate(45deg); }
.lejek-nr { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 900; background: var(--roz-100); color: var(--roz-900); }
.lejek b { font-size: 18px; color: var(--tekst-mocny); }
.lejek p { font-size: 14px; color: var(--tekst-2); line-height: 1.5; }
.lejek-pomiar { justify-self: start; margin-top: 4px; padding: 5px 9px; border-radius: 8px; border: 1px dashed var(--roz-300); font-size: 11.5px; font-weight: 700; color: var(--roz-700); }
.lejek .lejek-cel { background: var(--gr-karta); border-color: transparent; }
.lejek .lejek-cel b { color: #fff; }
.lejek .lejek-cel p { color: var(--roz-200); }
.lejek .lejek-cel .lejek-nr { background: var(--bursztyn-300); }
.lejek .lejek-cel .lejek-pomiar { border-color: var(--bursztyn-300); color: var(--bursztyn-300); }

.kampanie { display: grid; gap: 24px; }
.kampania { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 48px; align-items: center; padding: 32px; border-radius: 26px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); }
.kampania-opis { display: grid; gap: 14px; align-content: center; }
.kampania-opis h3 { font-size: clamp(24px, 2.2vw, 32px); line-height: 1.15; }
.kampania-opis dl { margin: 4px 0 8px; display: grid; gap: 10px; }
.kampania-opis dl div { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; padding-top: 10px; border-top: 1px solid var(--linia); }
.kampania-opis dt { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tekst-3); padding-top: 3px; }
.kampania-opis dd { margin: 0; font-size: 15.5px; color: var(--tekst); line-height: 1.5; }
.kampania-opis .przycisk { justify-self: start; }
.kanal { justify-self: start; display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tekst-2); }
.kanal::before { content: ""; width: 8px; height: 8px; border-radius: 50%; }
.kanal-google::before { background: #8fd18a; }
.kanal-meta::before { background: #8ab4f8; }

.reklama { border-radius: 16px; overflow: hidden; background: #fff; color: #1c1e21; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6); }
.reklama-google { padding: 20px 22px 18px; display: grid; gap: 6px; }
.rg-sponsor { font-size: 12.5px; font-weight: 700; color: #202124; }
.rg-adres { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #4d5156; }
.rg-fav { width: 22px; height: 22px; border-radius: 50%; background: var(--roz-900); flex: none; }
.rg-tytul { font-size: 19px; line-height: 1.3; color: #1a0dab; }
.rg-opis { font-size: 14px; line-height: 1.55; color: #4d5156; }
.rg-linki { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 4px; font-size: 13.5px; color: #1a0dab; }
.rm-glowa { display: flex; align-items: center; gap: 10px; padding: 12px 12px 8px; }
.rm-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--roz-900); color: #fff; display: grid; place-items: center; flex: none; }
.rm-avatar .logo-360 { width: 30px; }
.rm-glowa b { display: block; font-size: 14px; line-height: 1.25; }
.rm-glowa small { font-size: 12px; color: #65676b; }
.rm-tekst { padding: 0 12px 10px; font-size: 14px; line-height: 1.45; }
.rm-media { position: relative; aspect-ratio: 1 / 1; background: #000; }
.rm-media img { width: 100%; height: 100%; object-fit: cover; }
.rm-wideo { position: absolute; left: 10px; bottom: 10px; padding: 3px 8px; border-radius: 6px; background: rgba(0, 0, 0, .6); color: #fff; font-size: 12px; }
.rm-stopka { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; background: #f0f2f5; }
.rm-stopka small { display: block; font-size: 11px; color: #65676b; }
.rm-stopka b { font-size: 14.5px; }
.rm-cta { flex: none; padding: 8px 12px; border-radius: 6px; background: #e4e6eb; font-size: 14px; font-weight: 700; }

.warunki { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.warunek { display: grid; gap: 8px; padding: 28px 30px; border-radius: 20px; background: var(--tlo); border: 1px solid var(--linia); }
.warunek b { font-size: 19px; line-height: 1.3; color: var(--tekst-mocny); }
.warunek p { font-size: 15.5px; color: var(--tekst-2); }
.zmiany { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 28px; }
.zmiany > div { display: grid; gap: 8px; align-content: start; padding-top: 18px; border-top: 2px solid var(--roz-300); }
.zmiany b { font-size: 18px; line-height: 1.3; color: var(--tekst-mocny); }
.zmiany p { font-size: 15px; color: var(--tekst-2); }

@media (max-width: 1080px) {
  .tr-hero { padding: 116px 0 40px; }
  .lejek { grid-template-columns: 1fr; gap: 12px; }
  .lejek li:not(:last-child)::after { right: auto; left: 34px; top: auto; bottom: -11px; transform: rotate(135deg); }
  .kampania { grid-template-columns: 1fr; gap: 24px; padding: 16px 16px 24px; border-radius: 22px; }
  .warunki, .zmiany { grid-template-columns: 1fr; gap: 12px; }
  .zmiany { gap: 20px; }
}
body.bez-kup .naglowek-kup { display: none; }
body:not(.przewinieto):not(.bez-hero):not([data-motyw="afisz"]) .naglowek-kup { --akcent: #f8f6f7; --akcent-ciemny: #fff; --na-akcencie: #37252e; }
/* telefon: widżet zakupu zaraz pod obietnicą, argumenty pod nim */
@media (max-width: 1080px) {
  .lp-kopia { display: contents; }
  .lp-hero-uklad { gap: 16px; }
  .lp-hero-uklad > .lp-karta { order: 1; margin-top: 8px; margin-bottom: 8px; }
  .lp-plusy, .lp-mini-foto, .lp-fakty-szkoly, .lp-szkoly .przycisk.obrys, .lp-licznik, .lp-para-cena { order: 2; }
  .lp-naklejka { justify-self: start; }
}
@media (max-width: 600px) { .lp-h1 { font-size: clamp(34px, 10.4vw, 44px); } .lp-lead { font-size: 17px; } }

/* ═══════════ STREFA: RENESANS — prawdziwe nagrania i zdjęcia z seansów (13.09.2026) ═══════════
   Cofnięcie: kopia sprzed zmian w wersje/site-przed-renesansem-2026-09-13 */
.ren-hero { min-height: 100vh; min-height: 100svh; display: flex; align-items: flex-end; }
.ren-hero .hero-tlo video { object-position: center 60%; }
.ren-hero .hero-tlo::after { background: linear-gradient(90deg, rgba(11, 10, 8, .92), rgba(11, 10, 8, .6) 45%, rgba(11, 10, 8, .1) 75%), linear-gradient(0deg, rgba(11, 10, 8, .9), rgba(11, 10, 8, 0) 45%); }
.ren-hero .szpalta { padding-top: 150px; padding-bottom: 64px; }
.ren-hero-tresc { display: grid; gap: 20px; max-width: 760px; }
.ren-na-zywo { display: inline-flex; align-items: center; gap: 10px; justify-self: start; padding: 7px 14px; border-radius: 999px; background: rgba(11, 10, 8, .55); border: 1px solid rgba(255, 255, 255, .18); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #f5f2ee; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ren-kropka { width: 8px; height: 8px; border-radius: 50%; background: #e5484d; box-shadow: 0 0 0 0 rgba(229, 72, 77, .6); flex: none; }
@media (prefers-reduced-motion: no-preference) { .ren-kropka { animation: ren-puls 1.8s ease-out infinite; } }
@keyframes ren-puls { 0% { box-shadow: 0 0 0 0 rgba(229, 72, 77, .6); } 70% { box-shadow: 0 0 0 10px rgba(229, 72, 77, 0); } 100% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0); } }
.ren-h1 { font-size: clamp(56px, 8.4vw, 132px); font-weight: 900; line-height: .9; letter-spacing: -.035em; color: #fff; text-transform: none; }
.ren-h1 em { font-style: italic; font-weight: 400; color: var(--akcent); letter-spacing: -.02em; }
.ren-obietnica { max-width: 40ch; }
.ren-cena { display: flex; align-items: center; gap: 16px; padding: 6px 0; color: var(--tekst-2); font-size: 14px; line-height: 1.35; }
.ren-cena s { font-size: 20px; color: var(--tekst-3); }
.ren-cena b { font-size: 44px; font-weight: 900; line-height: 1; color: var(--akcent); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.ren-cena span { padding-left: 16px; border-left: 1px solid var(--linia-jasna); }
.ren-h2 { font-size: clamp(32px, 3.6vw, 56px); font-weight: 900; line-height: 1; letter-spacing: -.025em; }

.ren-manifest-sekcja { padding: clamp(72px, 8vw, 120px) 0 clamp(40px, 5vw, 72px); }
.ren-manifest { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 72px; align-items: end; margin-bottom: 44px; }
.ren-manifest-tekst { display: grid; gap: 18px; }
.ren-panorama { margin: 0; display: grid; gap: 12px; }
.ren-panorama img { width: 100%; height: clamp(280px, 44vw, 640px); object-fit: cover; border-radius: 24px; }
.ren-panorama figcaption, .ren-film-szeroki figcaption { font-size: 14px; color: var(--tekst-3); display: flex; align-items: center; gap: 10px; }

.ren-reels-sekcja { background: radial-gradient(60% 80% at 80% 50%, rgba(242, 193, 78, .08), transparent 70%), var(--tlo); }
.ren-reels-uklad { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 56px; align-items: center; }
.ren-reels-opis { display: grid; gap: 18px; align-content: center; }
.ren-reels-opis .przycisk { justify-self: start; margin-top: 6px; }
.ren-reels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ren-reel { position: relative; margin: 0; overflow: hidden; border-radius: 22px; aspect-ratio: 9 / 16; background: #000; border: 1px solid var(--linia); }
.ren-reel:nth-child(2) { transform: translateY(32px); }
.ren-reel video { width: 100%; height: 100%; object-fit: cover; }
.ren-reel figcaption { position: absolute; inset: auto 0 0; padding: 72px 18px 18px; display: grid; gap: 2px; background: linear-gradient(180deg, rgba(11, 10, 8, 0), rgba(11, 10, 8, .88)); }
.ren-reel figcaption b { font-size: 18px; color: #fff; line-height: 1.2; }
.ren-reel figcaption span { font-size: 13px; color: var(--tekst-2); }

.ren-galeria { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 220px; grid-auto-flow: dense; gap: 14px; }
.ren-galeria .foto { border: 0; padding: 0; cursor: zoom-in; border-radius: 16px; min-height: 0; }
.ren-galeria .foto img { transition: transform 600ms var(--wyjscie); }
.ren-galeria .foto:hover img { transform: scale(1.04); }
.ren-g-wysoki { grid-row: span 2; }
.ren-g-szeroki { grid-column: span 2; }

.ren-skala-sekcja { padding: 0 0 clamp(72px, 7.8vw, 112px); display: grid; gap: 40px; }
.ren-skala { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.ren-skala-foto { aspect-ratio: 4 / 5; max-height: 640px; border-radius: 24px; }
.ren-skala-tekst { display: grid; gap: 18px; max-width: 520px; }
.ren-film-szeroki { margin: 0; display: grid; gap: 12px; }
.ren-film-szeroki video { width: 100%; height: clamp(240px, 40vw, 600px); object-fit: cover; border-radius: 24px; background: #000; }

@media (max-width: 1080px) {
  .ren-hero .szpalta { padding-top: 110px; padding-bottom: 36px; }
  .ren-hero .hero-tlo::after { background: linear-gradient(180deg, rgba(11, 10, 8, .5), rgba(11, 10, 8, .1) 25%, rgba(11, 10, 8, .75) 52%, rgba(11, 10, 8, .97)); }
  .ren-hero-tresc { gap: 14px; }
  .ren-na-zywo { font-size: 10.5px; padding: 6px 11px; }
  .ren-cena b { font-size: 34px; }
  .ren-manifest { grid-template-columns: 1fr; gap: 20px; margin-bottom: 28px; }
  .ren-reels-uklad { grid-template-columns: 1fr; gap: 24px; }
  .ren-reels { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin-right: calc(-1 * var(--margines)); padding-right: var(--margines); scrollbar-width: none; }
  .ren-reel { flex: none; width: 62%; scroll-snap-align: start; }
  .ren-reel:nth-child(2) { transform: none; }
  .ren-galeria { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 8px; }
  .ren-skala { grid-template-columns: 1fr; gap: 24px; }
  .ren-skala-foto { aspect-ratio: 4 / 3; }
}

.ren-cena s, .ren-cena b { white-space: nowrap; }
@media (max-width: 600px) {
  .naglowek-kup { display: none; }
  .ren-na-zywo-dalej { display: none; }
  .ren-cena { gap: 12px; }
  .ren-cena s { font-size: 16px; }
  .ren-cena b { font-size: 32px; }
  .ren-cena span { font-size: 12.5px; padding-left: 12px; }
}
@media (max-width: 600px) { body.tryb-lp:not(.bez-kup) .naglowek-kup { display: inline-flex; } }

/* Kontakt — mocniejszy gradient w nagłówku (13.09.2026) */
.hero-kontakt { background: linear-gradient(120deg, #ecdde5 0%, var(--roz-100) 38%, #e3ebf2 72%, #f6ead3 100%); }
.hero-kontakt .plama { opacity: 1; filter: blur(80px); }
.hero-kontakt .kp-1 { width: 620px; height: 620px; left: 58%; top: -220px; background: #c79ab2; }
.hero-kontakt .kp-2 { width: 460px; height: 460px; left: 34%; top: 140px; background: #a9c3d8; }
.hero-kontakt .kp-3 { width: 320px; height: 320px; left: 84%; top: 170px; background: #f0c877; }
.hero-kontakt .kp-4 { width: 420px; height: 420px; left: -8%; top: -120px; background: #dcc2cf; }
@media (max-width: 900px) {
  .hero-kontakt .plama { filter: blur(60px); }
  .hero-kontakt .kp-1 { width: 320px; height: 320px; left: 40%; top: -120px; }
  .hero-kontakt .kp-2 { width: 260px; height: 260px; left: -20%; top: 150px; }
  .hero-kontakt .kp-3 { width: 200px; height: 200px; left: 70%; top: 220px; }
  .hero-kontakt .kp-4 { width: 220px; height: 220px; left: -30%; top: -60px; }
}

/* Kontakt — prawdziwa mapa: Google Maps (produkcja), OpenStreetMap jako zapas, gdy ramka jest zablokowana */
.mapa.mapa-prawdziwa { height: 340px; display: block; background: #f2efe9; }
.mapa-prawdziwa .mapa-zapasowa, .mapa-prawdziwa .mapa-google { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapa-prawdziwa .mapa-zapasowa { object-fit: cover; }
@media (max-width: 900px) { .mapa.mapa-prawdziwa { height: 280px; } }

/* Kontakt — nagłówek z wideo jak na pozostałych podstronach */
.hero-kontakt-wideo { min-height: 620px; }
@media (max-width: 900px) { .hero-kontakt-wideo { min-height: 560px; } }

/* Strona główna — mocniejsze przyciemnienie po prawej pod białym tekstem na PC */
@media (min-width: 901px) {
  .hero-kv .hero-tlo::after { background: linear-gradient(90deg, rgba(37, 24, 31, 0) 38%, rgba(37, 24, 31, .55) 50%, rgba(37, 24, 31, .88) 60%, rgba(30, 19, 25, .96) 100%); }
  .hero-kv .hero-kv-tresc { text-shadow: 0 2px 18px rgba(20, 12, 16, .55); }
}

/* Test reklamy — rozwijane menu w pasku i przełącznik w pasku podglądu */
.menu-rozwijane { position: relative; }
.menu-glowne .link-test { display: inline-flex; align-items: center; gap: 8px; font: inherit; font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: inherit; background: none; border: 1px dashed currentColor; padding: 6px 10px; cursor: pointer; opacity: .9; }
.menu-glowne .link-test svg { transform: rotate(90deg); transition: transform var(--szybko); }
.menu-rozwijane.otwarte .link-test svg { transform: rotate(-90deg); }
.rozwijane-panel {
  position: absolute; right: 0; top: calc(100% + 14px); z-index: 90; width: 340px; padding: 10px; border-radius: 18px; display: none;
  background: #f8f6f7; color: #2e2e35; box-shadow: 0 30px 60px -12px rgba(30, 20, 26, .45), 0 0 0 1px rgba(55, 37, 46, .08);
}
.rozwijane-panel::before { content: ""; position: absolute; inset: -14px 0 auto; height: 14px; }
.menu-rozwijane.otwarte .rozwijane-panel, .menu-rozwijane:hover .rozwijane-panel, .menu-rozwijane:focus-within .rozwijane-panel { display: grid; gap: 2px; }
.menu-glowne .rozwijane-panel a { display: grid; grid-template-columns: 14px 1fr; column-gap: 10px; align-items: center; padding: 10px 12px; border: 0; border-radius: 12px; opacity: 1; text-transform: none; letter-spacing: 0; font-size: 15px; color: #37252e; }
.menu-glowne .rozwijane-panel a:hover, .menu-glowne .rozwijane-panel a[aria-current="page"] { background: #f2ecef; border: 0; }
.rozwijane-panel a b { grid-column: 2; font-weight: 700; line-height: 1.25; }
.rozwijane-panel a small { grid-column: 2; font-size: 12.5px; font-weight: 400; color: #62636f; line-height: 1.35; }
.rozwijane-panel .rozwijane-przeglad { grid-template-columns: 1fr !important; background: #37252e; margin-bottom: 4px; }
.rozwijane-panel .rozwijane-przeglad b, .rozwijane-panel .rozwijane-przeglad small { grid-column: 1; }
.menu-glowne .rozwijane-panel .rozwijane-przeglad, .menu-glowne .rozwijane-panel .rozwijane-przeglad:hover { background: linear-gradient(135deg, #37252e, #624353 60%, #4c687b); }
.rozwijane-panel .rozwijane-przeglad b { color: #fff; }
.rozwijane-panel .rozwijane-przeglad small { color: #e2d6dc; }
.rozwijane-sekcja { padding: 8px 12px 4px; font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #62636f; }
.kanal-kropka { grid-row: 1 / span 2; width: 10px; height: 10px; border-radius: 50%; }
.kanal-kropka.google { background: #4caf6e; }
.kanal-kropka.meta { background: #4f7fe0; }
.podmenu-reklam { display: grid; padding: 4px 0 10px 14px; border-bottom: 1px solid var(--linia); }
.menu-mobilne nav .podmenu-reklam a { display: grid; grid-template-columns: 14px 1fr; column-gap: 10px; align-items: center; padding: 9px 0; border: 0; }
.menu-mobilne nav .podmenu-reklam b { font-size: 16px; }
.menu-mobilne nav .podmenu-reklam small { grid-column: 2; font-size: 12.5px; }
.menu-mobilne nav .link-test-mobilny { border-bottom: 0; }
.pp-wybor select { max-width: 360px; font: inherit; font-size: 12px; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .3); border-radius: 6px; padding: 3px 8px; }
.pp-wybor select option { color: #2e2e35; }
@media (max-width: 700px) { .pasek-podgladu .pp-znak { display: none; } .pp-wybor select { max-width: 210px; } }

/* Strefa: Renesans — nagłówek v2: tytuł jak na innych podstronach, karta biletu z seansami (13.09.2026) */
.ren-hero-uklad { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: clamp(40px, 5vw, 96px); align-items: end; }
.ren-hero .ren-h1 { font-size: clamp(48px, 6.2vw, 96px); font-style: normal; color: #fff; letter-spacing: .01em; line-height: .96; }
.ren-nadtytul { color: #f5f2ee; opacity: .85; }
.ren-fakty { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 15px; color: var(--tekst-2); }
.ren-fakty b { font-size: 22px; font-weight: 900; color: #fff; margin-right: 4px; font-variant-numeric: tabular-nums; }
.ren-link-nagrania { justify-self: start; display: inline-flex; align-items: center; gap: 10px; padding: 0; border: 0; background: none; color: #fff; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; border-bottom: 1px solid rgba(255, 255, 255, .4); padding-bottom: 4px; }
.ren-link-nagrania svg { width: 14px; height: 14px; }
.ren-link-nagrania:hover { border-bottom-color: #fff; }

.ren-bilet { display: grid; gap: 14px; padding: 26px; border-radius: 22px; background: rgba(16, 14, 12, .72); border: 1px solid rgba(255, 255, 255, .14); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8); }
.ren-bilet-glowa { display: grid; gap: 6px; padding-bottom: 14px; border-bottom: 1px dashed rgba(255, 255, 255, .2); }
.ren-bilet-etykieta { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--tekst-3); }
.ren-bilet-cena { display: flex; align-items: baseline; gap: 12px; }
.ren-bilet-cena b { font-size: 46px; font-weight: 900; line-height: 1; color: #fff; letter-spacing: -.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ren-bilet-cena s { font-size: 17px; color: var(--tekst-3); white-space: nowrap; }
.ren-rabat { align-self: center; padding: 4px 9px; border-radius: 999px; background: var(--akcent); color: #0b0a08; font-size: 13px; font-weight: 900; }
.ren-seanse { display: grid; gap: 8px; }
.ren-seans { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; width: 100%; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .04); color: #fff; font: inherit; text-align: left; cursor: pointer; transition: border-color var(--szybko), background var(--szybko); }
.ren-seans:hover { border-color: var(--akcent); background: rgba(242, 193, 78, .08); }
.ren-seans-dzien { font-size: 12.5px; color: var(--tekst-2); }
.ren-seans-godz { grid-row: 2; font-size: 24px; font-weight: 900; line-height: 1.1; font-variant-numeric: tabular-nums; }
.ren-seans-status { font-size: 11px; font-weight: 700; color: var(--akcent); margin-left: 6px; }
.ren-seans-kup { grid-column: 2; grid-row: 1 / span 2; padding: 10px 14px; border-radius: 10px; background: var(--akcent); color: #0b0a08; font-size: 12.5px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.ren-bilet .przycisk.pelna { --akcent: transparent; --akcent-ciemny: rgba(255, 255, 255, .08); --na-akcencie: #fff; border-color: rgba(255, 255, 255, .35); }
.ren-bilet-stopka { font-size: 12px; color: var(--tekst-3); text-align: center; }
@media (max-width: 1080px) {
  .ren-hero-uklad { grid-template-columns: 1fr; gap: 24px; align-items: stretch; }
  .ren-hero .ren-h1 { font-size: clamp(44px, 12vw, 64px); }
  .ren-fakty { gap: 6px 18px; font-size: 13.5px; }
  .ren-fakty b { font-size: 18px; }
  .ren-bilet { padding: 20px; }
  .ren-bilet-cena b { font-size: 38px; }
}

/* LP „Wieczór we dwoje” — kursywa w tytule nie jest ucinana */
.lp-h1 em { display: inline-block; padding: .04em .16em .12em .04em; margin: -.04em -.12em -.12em -.04em; }

/* LP remarketing — stonowane wideo w tle */
.lp-stonowane .hero-tlo video { filter: saturate(.55) brightness(.85); }
.lp-stonowane .hero-tlo::after { background: linear-gradient(90deg, rgba(40, 27, 34, .92), rgba(40, 27, 34, .78) 45%, rgba(40, 27, 34, .55)), radial-gradient(70% 60% at 75% 40%, rgba(205, 184, 195, .18), transparent 70%); }
.lp-stonowane .lp-licznik b { color: #fff; }
@media (max-width: 1080px) { .lp-stonowane .hero-tlo::after { background: linear-gradient(180deg, rgba(40, 27, 34, .7), rgba(40, 27, 34, .9) 45%, rgba(40, 27, 34, .96)); } }

/* Pasek: pozycje menu nie łamią się w dwóch liniach */
.menu-glowne a, .menu-glowne .link-test { white-space: nowrap; }
@media (max-width: 1540px) { .menu-glowne { gap: 20px; } .menu-glowne a, .menu-glowne .link-test { letter-spacing: .06em; font-size: 12px; } .naglowek-w { gap: 20px; } }
@media (max-width: 1280px) { .menu-glowne { gap: 16px; } .menu-glowne .znacznik { display: none; } }

/* Szkielet ładowania zdjęć: pulsujący gradient na miejscu zdjęcia, róż Chopina / ciemne złoto Renesansu, krycie 10% (szczyt pulsu wyżej, żeby było go widać) */
:root { --szkielet-1: rgba(144, 98, 122, .10); --szkielet-2: rgba(144, 98, 122, .24); }
body[data-motyw="afisz"] { --szkielet-1: rgba(201, 150, 46, .10); --szkielet-2: rgba(201, 150, 46, .26); }
main img:not(.zaladowane), .pas-cta img:not(.zaladowane) {
  background-color: var(--szkielet-1);
  background-image: linear-gradient(100deg, transparent 20%, var(--szkielet-2) 45%, transparent 70%);
  background-size: 300% 100%; background-repeat: no-repeat;
}
@media (prefers-reduced-motion: no-preference) {
  main img:not(.zaladowane) { animation: szkielet-fala 1.5s ease-in-out infinite; }
  main img.zaladowane { animation: zdjecie-pojawia 450ms var(--wyjscie); }
}
@keyframes szkielet-fala { 0% { background-position: 120% 0; } 100% { background-position: -20% 0; } }
@keyframes zdjecie-pojawia { from { opacity: 0; } to { opacity: 1; } }

/* Strefa: Renesans v3 — 4 rolki, plansze z opisami dzieł */
.ren-reels.ren-reels-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ren-reels-4 .ren-reel:nth-child(2) { transform: translateY(28px); }
.ren-reels-4 .ren-reel:nth-child(4) { transform: translateY(28px); }
.ren-reels-4 .ren-reel figcaption { padding: 60px 14px 14px; }
.ren-reels-4 .ren-reel figcaption b { font-size: 16px; }
.ren-reels-4 .ren-reel figcaption span { font-size: 12px; }
.ren-plansze-sekcja { padding: clamp(72px, 7.8vw, 112px) 0; background: linear-gradient(180deg, var(--tlo), var(--tlo-2)); }
.ren-plansze { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 64px; align-items: center; }
.ren-plansze-tekst { display: grid; gap: 18px; max-width: 520px; }
.ren-plansze-tekst .przycisk { justify-self: start; margin-top: 6px; }
.ren-plansze-foto { display: grid; grid-template-columns: 1.15fr 1fr; gap: 14px; align-items: end; }
.ren-plansze-foto .foto { border: 0; padding: 0; cursor: zoom-in; border-radius: 20px; aspect-ratio: 3 / 4; }
.ren-plansze-foto .foto:last-child { aspect-ratio: 9 / 14; transform: translateY(-40px); }
@media (max-width: 1080px) {
  .ren-reels-4 .ren-reel { width: 58%; }
  .ren-reels-4 .ren-reel:nth-child(2), .ren-reels-4 .ren-reel:nth-child(4) { transform: none; }
  .ren-plansze { grid-template-columns: 1fr; gap: 28px; }
  .ren-plansze-foto .foto:last-child { transform: none; }
}
@media (max-width: 1080px) { .ren-galeria { grid-auto-rows: 190px; } .ren-galeria .ren-g-wysoki { grid-row: auto; } }

/* Renesans: 3 karty „Jak wygląda seans” — 3 kolumny na PC, 1 kolumna na telefonie */
.siatka-3.ren-seans-karty { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .siatka-3.ren-seans-karty { grid-template-columns: 1fr; } }

/* Menu mobilne — ciemne, różowo-popielate tło (Chopin), jasny tekst */
.menu-mobilne {
  background: linear-gradient(160deg, #4a3441 0%, #3b2b35 45%, #33303a 100%); background-color: #3b2b35;
  --tlo: #3b2b35; --tekst: #efe6ea; --tekst-2: #d6c6ce; --tekst-3: #b9a8b1; --tekst-mocny: #fff; --linia: rgba(255, 255, 255, .14); --linia-jasna: rgba(255, 255, 255, .3);
  --akcent: #f8f6f7; --akcent-ciemny: #fff; --na-akcencie: #37252e; --akcent-tekst: #e2c9d5;
  color: var(--tekst);
}
.menu-mobilne .zamknij { background: rgba(255, 255, 255, .1); color: #fff; }
.menu-mobilne .menu-mobilne-gora { color: #fff; }
.menu-mobilne nav .znacznik { color: #e2c9d5; border-color: rgba(255, 255, 255, .35); }

/* Voucher prezentowy (strona główna) */
.voucher-sekcja { padding: 0 0 clamp(48px, 5vw, 72px); }
.voucher { position: relative; overflow: hidden; isolation: isolate; border-radius: 28px; padding: clamp(32px, 4.4vw, 64px); display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; align-items: center; color: var(--tekst); }
.voucher > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.voucher::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(55, 37, 46, .94), rgba(55, 37, 46, .8) 55%, rgba(76, 104, 123, .55)); }
.voucher-tresc { display: grid; gap: 14px; max-width: 560px; }
.voucher-tresc h2 { font-size: clamp(30px, 3.4vw, 48px); font-weight: 900; line-height: 1.05; letter-spacing: -.01em; }
.voucher-tresc .akcje { padding-top: 8px; }
.voucher-bilet {
  --wyciecie: 14px; display: grid; gap: 6px; padding: 28px 26px; border-radius: 18px; transform: rotate(-4deg);
  background: linear-gradient(135deg, #fbe8c8, var(--roz-100) 55%, var(--ble-100)); color: var(--roz-900); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55);
  -webkit-mask: radial-gradient(circle var(--wyciecie) at 0 50%, #0000 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--wyciecie) at 100% 50%, #0000 97%, #000) right / 51% 100% no-repeat;
  mask: radial-gradient(circle var(--wyciecie) at 0 50%, #0000 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--wyciecie) at 100% 50%, #0000 97%, #000) right / 51% 100% no-repeat;
}
.voucher-bilet span { font-size: 11px; font-weight: 900; letter-spacing: .24em; text-transform: uppercase; color: var(--roz-700); }
.voucher-bilet b { font-size: 26px; line-height: 1.1; }
.voucher-bilet i { font-style: normal; font-size: 12.5px; color: var(--atr-700); padding-top: 10px; border-top: 2px dashed rgba(55, 37, 46, .2); }
@media (max-width: 900px) { .voucher { grid-template-columns: 1fr; gap: 24px; border-radius: 22px; } .voucher-bilet { justify-self: start; width: min(280px, 100%); } .voucher .akcje .przycisk { width: 100%; } }
/* „Zanim kupisz”: 6 odpowiedzi — 3 kolumny na PC, 2 na tablecie, 1 na telefonie */
.zanim-siatka.zanim-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zanim-uklad:has(.zanim-6) { grid-template-columns: 1fr; gap: 28px; }
@media (max-width: 1080px) { .zanim-siatka.zanim-6 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .zanim-siatka.zanim-6 { grid-template-columns: 1fr; } }

/* ——— poprawki z kontroli jakości (13.09.2026) ——— */
/* długie adresy e-mail i tytuły nie rozpychają kart na wąskich ekranach */
.karta-info h3, .karta-info p, .rg-tytul, .rg-opis, .rm-tekst, .kampania-opis dd, .stopka .male { overflow-wrap: anywhere; }
.kontakt-uklad > *, .kampania > *, .lp-cennik > * { min-width: 0; }
/* statusy godzin czytelne na telefonie */
.status-znak, .chip-godz small { font-size: 10.5px; }
/* wygodne cele dotyku */
@media (max-width: 900px) {
  .kal-dzien { min-height: 40px; }
  .ren-link-nagrania { min-height: 40px; }
}
/* cennik na stronie z reklamy: jedna kolumna na bardzo wąskich telefonach */
@media (max-width: 420px) { .lp-cennik { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .przycisk { white-space: normal; text-align: center; } }
/* rząd najbliższych wejść wewnątrz kart nie wychodzi poza ich krawędź */
@media (max-width: 900px) { .pas-cta .szybkie-terminy, .lp-final-karta .szybkie-terminy, .voucher .szybkie-terminy, .ren-bilet .szybkie-terminy { margin-right: 0; padding-right: 0; } }

/* ═══ Kalendarz biletów — czytelność (13.09.2026). Chopin: róż; Renesans (afisz): złoto ═══ */
:root {
  --gr-wybrany: linear-gradient(135deg, #a86f8c, var(--roz-700));
  --gr-aktywny: linear-gradient(135deg, var(--roz-200), var(--roz-100));
  --gr-karta: linear-gradient(135deg, var(--roz-900), var(--roz-700) 60%, #7a5568);
  --kal-dostepny-tlo: #fff; --kal-dostepny-ramka: var(--roz-300); --kal-dostepny-tekst: var(--roz-900); --kal-kropka: #a86f8c;
  --kal-brak-tekst: rgba(82, 82, 95, .38); --kal-wybrany-cien: rgba(98, 67, 83, .38);
}
body[data-motyw="afisz"] {
  --kal-dostepny-tlo: #211e1a; --kal-dostepny-ramka: rgba(242, 193, 78, .45); --kal-dostepny-tekst: #fff; --kal-kropka: #f2c14e;
  --kal-brak-tekst: rgba(168, 162, 154, .35); --kal-wybrany-cien: rgba(242, 193, 78, .3);
}
.kalendarz { background: var(--tlo); }
body[data-motyw="afisz"] .kalendarz { background: var(--tlo-2); }
.kal-dt { color: var(--tekst-2); font-size: 12.5px; }
.kal-dzien { position: relative; border-radius: 10px; }
.kal-dzien.niedostepny, body[data-motyw="afisz"] .kal-dzien.niedostepny { background: transparent; color: var(--kal-brak-tekst); font-weight: 400; }
.kal-dzien.dostepny, body[data-motyw="afisz"] .kal-dzien.dostepny { background: var(--kal-dostepny-tlo); outline: 1.5px solid var(--kal-dostepny-ramka); outline-offset: -1.5px; color: var(--kal-dostepny-tekst); font-weight: 900; box-shadow: 0 2px 6px rgba(55, 37, 46, .06); }
.kal-dzien.dostepny::after { content: ""; position: absolute; left: 50%; bottom: 14%; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--kal-kropka); }
.kal-dzien.dostepny:hover { outline-color: var(--kal-kropka); }
.kal-dzien.wybrany, body[data-motyw="afisz"] .kal-dzien.wybrany { background: var(--gr-wybrany); color: var(--na-akcencie); outline: 0; box-shadow: 0 8px 20px var(--kal-wybrany-cien); }
body[data-motyw="afisz"] .kal-dzien.wybrany { color: #0b0a08; }
.kal-dzien.wybrany::after { background: currentColor; opacity: .7; }
body[data-motyw="afisz"] { --gr-wybrany: #f2c14e; }
/* legenda — takie same kafelki jak w kalendarzu */
.kal-legenda { gap: 10px 22px; font-size: 13.5px; color: var(--tekst-2); padding-top: 14px; border-top: 1px solid var(--linia); }
.kal-legenda .leg { position: relative; width: 26px; height: 26px; border-radius: 7px; display: inline-grid; place-items: center; font-style: normal; font-size: 11px; }
.leg-wybrany { background: var(--gr-wybrany); box-shadow: 0 4px 10px var(--kal-wybrany-cien); }
.leg-dostepny { background: var(--kal-dostepny-tlo); outline: 1.5px solid var(--kal-dostepny-ramka); outline-offset: -1.5px; }
.leg-dostepny::after { content: ""; position: absolute; left: 50%; bottom: 4px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--kal-kropka); }
.leg-brak { color: var(--kal-brak-tekst); border: 1px dashed var(--linia); }
/* najbliższy termin na liście godzin — wyraźny, bez niebieskiego */
.termin.najblizszy { background: var(--gr-aktywny); box-shadow: inset 3px 0 0 var(--kal-kropka); }
body[data-motyw="afisz"] .termin.najblizszy { background: rgba(242, 193, 78, .08); }
@media (max-width: 900px) { .kal-legenda { font-size: 12.5px; gap: 8px 16px; } .kal-legenda .leg { width: 22px; height: 22px; } }
body[data-motyw="afisz"] .status-popularne .status-znak { background: rgba(242, 193, 78, .16); color: #f2c14e; }
body[data-motyw="afisz"] .status-brak .status-znak { background: rgba(255, 255, 255, .08); color: #a8a29a; }

/* ═══ Strona główna: centrum wydarzeń (13.09.2026) ═══ */
.hero-wyd { min-height: 100vh; min-height: 100svh; display: flex; align-items: flex-end; }
.wyd-slajd { position: absolute; inset: 0; z-index: -2; opacity: 0; transition: opacity 900ms ease; }
.wyd-slajd.aktywny { opacity: 1; }
.wyd-slajd .hero-tlo { z-index: 0; }
.wyd-slajd .hero-tlo::after { background: linear-gradient(90deg, rgba(37, 24, 31, .92), rgba(37, 24, 31, .7) 42%, rgba(37, 24, 31, .15) 75%), linear-gradient(0deg, rgba(37, 24, 31, .85), rgba(37, 24, 31, 0) 40%); }
.wyd-slajd-renesans .hero-tlo::after { background: linear-gradient(90deg, rgba(11, 10, 8, .94), rgba(11, 10, 8, .7) 42%, rgba(11, 10, 8, .15) 75%), linear-gradient(0deg, rgba(11, 10, 8, .88), rgba(11, 10, 8, 0) 40%); }
.wyd-uklad { position: relative; padding-top: 140px; padding-bottom: 36px; display: grid; gap: 36px; }
.wyd-tresc { display: grid; gap: 18px; max-width: 700px; animation: wyd-wejscie 700ms var(--wyjscie); }
@keyframes wyd-wejscie { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.wyd-logo { width: 150px; color: #fff; opacity: .95; }
.wyd-tresc .h1 { text-shadow: 0 2px 22px rgba(0, 0, 0, .35); }
.wyd-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; color: var(--tekst-2); font-size: 15px; }
.wyd-meta b { font-size: 34px; font-weight: 900; color: #fff; line-height: 1; letter-spacing: -.01em; }
.wyd-meta s { color: var(--tekst-3); font-size: 17px; }
.wyd-tresc-renesans { --akcent: #f2c14e; --akcent-ciemny: #d9a441; --na-akcencie: #0b0a08; --akcent-tekst: #f2c14e; }
.wyd-tresc-renesans .wyd-meta b { color: #f2c14e; }
.wyd-zakladki { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 12px; }
.wyd-zakladki button { position: relative; display: grid; gap: 2px; padding: 16px 16px 12px; border: 0; border-radius: 14px; background: rgba(255, 255, 255, .08); color: #fff; text-align: left; font: inherit; cursor: pointer; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background var(--szybko); }
.wyd-zakladki button:hover { background: rgba(255, 255, 255, .14); }
.wyd-zakladki button[aria-selected="true"] { background: rgba(255, 255, 255, .18); }
.wyd-zakladki b { font-size: 15px; }
.wyd-zakladki small { font-size: 12.5px; color: rgba(255, 255, 255, .75); }
.wyd-postep { position: absolute; left: 16px; right: 16px; top: 8px; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .22); overflow: hidden; }
.wyd-postep i { position: absolute; inset: 0; transform-origin: left; transform: scaleX(0); background: #fff; }
.wyd-zakladki [data-zakladka="renesans"] .wyd-postep i { background: #f2c14e; }
.wyd-zakladki button[aria-selected="true"] .wyd-postep i { transform: scaleX(1); }
.wyd-zakladki button.biegnie .wyd-postep i { animation: wyd-postep 9000ms linear forwards; }
.hero-wyd.pauza .wyd-zakladki button.biegnie .wyd-postep i { animation-play-state: paused; }
@keyframes wyd-postep { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 900px) {
  .wyd-uklad { padding-top: 100px; padding-bottom: 24px; gap: 22px; }
  .wyd-tresc { gap: 14px; }
  .wyd-logo { width: 120px; }
  .wyd-meta b { font-size: 28px; }
  .wyd-zakladki { grid-template-columns: 1fr 1fr; gap: 8px; }
  .wyd-zakladki button { padding: 14px 12px 10px; }
  .wyd-zakladki b { font-size: 13.5px; }
  .wyd-zakladki small { font-size: 11.5px; }
  .wyd-slajd .hero-tlo::after { background: linear-gradient(180deg, rgba(37, 24, 31, .55), rgba(37, 24, 31, .2) 22%, rgba(37, 24, 31, .82) 48%, rgba(37, 24, 31, .97)); }
  .wyd-slajd-renesans .hero-tlo::after { background: linear-gradient(180deg, rgba(11, 10, 8, .55), rgba(11, 10, 8, .2) 22%, rgba(11, 10, 8, .85) 48%, rgba(11, 10, 8, .97)); }
}
@media (prefers-reduced-motion: reduce) { .wyd-slajd { transition: none; } .wyd-tresc { animation: none; } }

/* kafelki „Teraz w Strefie 360” */
.hub { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.hub-karta { position: relative; overflow: hidden; isolation: isolate; border-radius: 24px; display: flex; min-height: 300px; }
.hub-karta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 800ms var(--wyjscie); }
.hub-karta:hover > img { transform: scale(1.04); }
.hub-karta::before { content: ""; position: absolute; inset: 0; z-index: -1; }
.hub-tresc { position: relative; display: grid; gap: 12px; align-content: end; padding: 30px; width: 100%; }
.hub-tresc h3 { font-size: clamp(26px, 2.4vw, 36px); font-weight: 900; line-height: 1.05; letter-spacing: -.01em; }
.hub-tresc p { font-size: 15.5px; line-height: 1.55; }
.hub-znaczniki { display: flex; flex-wrap: wrap; gap: 8px; }
.hub-cena { font-size: 15px; }
.hub-cena b { font-size: 26px; font-weight: 900; }
.hub-tresc .akcje { padding-top: 4px; gap: 10px; }
.hub-chopin { grid-column: span 7; min-height: 440px; color: var(--tekst); }
.hub-chopin::before { background: linear-gradient(0deg, rgba(37, 24, 31, .94), rgba(37, 24, 31, .55) 55%, rgba(37, 24, 31, .15)); }
.hub-renesans { grid-column: span 5; min-height: 440px; color: #f5f2ee;
  --tlo: #0b0a08; --tekst: #f5f2ee; --tekst-2: #cfc9c1; --tekst-3: #a8a29a; --tekst-mocny: #fff; --linia-jasna: rgba(242, 193, 78, .45);
  --akcent: #f2c14e; --akcent-ciemny: #d9a441; --na-akcencie: #0b0a08; --akcent-tekst: #f2c14e; }
.hub-renesans::before { background: linear-gradient(0deg, rgba(11, 10, 8, .96), rgba(11, 10, 8, .6) 55%, rgba(11, 10, 8, .15)); }
.hub-renesans h3, .hub-barok h3 { color: #fff; }
.hub-renesans .hub-cena s { color: #a8a29a; }
.hub-renesans .hub-cena b { color: #f2c14e; }
.hub-barok { grid-column: span 4; color: #f5f2ee; --tekst-mocny: #fff; --linia-jasna: rgba(255, 255, 255, .4); --akcent-tekst: #f2c14e; }
.hub-barok::before { background: linear-gradient(0deg, rgba(11, 10, 8, .94), rgba(11, 10, 8, .5) 60%, rgba(11, 10, 8, .2)); }
.hub-barok .przycisk.obrys { justify-self: start; color: #fff; border-color: rgba(255, 255, 255, .5); }
.hub-jasna { grid-column: span 4; background: color-mix(in srgb, var(--tlo) 80%, transparent); border: 1px solid var(--linia); }
.hub-jasna .hub-tresc { align-content: start; }
.hub-jasna .ikona { width: 48px; height: 48px; border-radius: 14px; background: var(--gr-wybrany); display: grid; place-items: center; color: #fff; }
.hub-jasna p { color: var(--tekst-2); }
.hub-jasna h3 { font-size: 26px; }
.hub-jasna .akcje { margin-top: auto; }
@media (max-width: 1080px) {
  .hub { grid-template-columns: 1fr 1fr; gap: 12px; }
  .hub-chopin, .hub-renesans { grid-column: span 2; min-height: 380px; }
  .hub-barok { grid-column: span 2; min-height: 260px; }
  .hub-jasna { grid-column: span 1; }
}
@media (max-width: 640px) { .hub-jasna { grid-column: span 2; } .hub-tresc { padding: 22px; } .hub-tresc .akcje .przycisk { flex: 1 1 auto; } }

/* bilety: zakładki wydarzeń */
.bilety-zakladki { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.bilety-zakladki button { display: grid; gap: 2px; padding: 14px 20px; border-radius: 14px; border: 1.5px solid var(--linia); background: var(--tlo); color: var(--tekst-mocny); font: inherit; text-align: left; cursor: pointer; min-width: 220px; transition: border-color var(--szybko), box-shadow var(--szybko); }
.bilety-zakladki button b { font-size: 16px; }
.bilety-zakladki button small { font-size: 12.5px; color: var(--tekst-2); }
.bilety-zakladki button:hover { border-color: var(--roz-500); }
.bilety-zakladki button[aria-selected="true"] { background: var(--gr-karta); border-color: transparent; color: #fff; box-shadow: 0 12px 26px -12px rgba(55, 37, 46, .6); }
.bilety-zakladki button[aria-selected="true"] small { color: var(--roz-200); }
.bilety-zakladki [data-bilety-zakladka="renesans"][aria-selected="true"] { background: #141311; box-shadow: inset 0 0 0 1.5px #f2c14e, 0 12px 26px -12px rgba(0, 0, 0, .5); }
.bilety-zakladki [data-bilety-zakladka="renesans"][aria-selected="true"] small { color: #f2c14e; }
@media (max-width: 640px) { .bilety-zakladki { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .bilety-zakladki button { min-width: 0; padding: 12px 12px; } .bilety-zakladki button b { font-size: 14px; } .bilety-zakladki button small { font-size: 11.5px; } }

/* zapowiedzi */
.zapowiedzi { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.zapowiedzi-glowna { position: relative; overflow: hidden; isolation: isolate; border-radius: 26px; padding: clamp(28px, 3.6vw, 52px); display: flex; align-items: flex-end; min-height: 420px; color: var(--tekst); }
.zapowiedzi-glowna > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.zapowiedzi-glowna::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(11, 10, 8, .95), rgba(11, 10, 8, .55) 60%, rgba(11, 10, 8, .2)); }
.zapowiedzi-glowna > div { display: grid; gap: 14px; max-width: 520px; }
.zapowiedzi-glowna .nadtytul { color: #f2c14e; }
.zapowiedzi-glowna h2 { font-size: clamp(34px, 3.8vw, 54px); font-weight: 900; line-height: 1; color: #fff; }
.zapis { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding-top: 6px; }
.zapis input { font: inherit; font-size: 16px; padding: 14px 16px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .1); color: #fff; min-width: 0; }
.zapis input::placeholder { color: rgba(255, 255, 255, .6); }
.zapis .przycisk { --akcent: #f2c14e; --akcent-ciemny: #d9a441; --na-akcencie: #0b0a08; }
.zapis .drobne { grid-column: 1 / -1; color: rgba(255, 255, 255, .7); }
.zapis.blad input { border-color: #ff8a9a; }
.zapis.blad .drobne { color: #ffb3bd; }
.zapis.wyslany .drobne { color: #f2c14e; }
.zapowiedzi-lista { display: grid; gap: 16px; align-content: start; padding: clamp(24px, 3vw, 40px); border-radius: 26px; background: color-mix(in srgb, var(--tlo) 82%, transparent); border: 1px solid var(--linia); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.zapowiedzi-lista ul { list-style: none; margin: 0; padding: 0; display: grid; }
.zapowiedzi-lista li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--linia); }
.zapowiedzi-lista li b { font-size: 20px; color: var(--tekst-mocny); }
.zapowiedzi-lista li span { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--roz-700); padding: 4px 9px; border: 1px solid var(--roz-300); border-radius: 999px; }
@media (max-width: 900px) { .zapowiedzi { grid-template-columns: 1fr; } .zapowiedzi-glowna { min-height: 380px; } .zapis { grid-template-columns: 1fr; } .zapis .przycisk { width: 100%; } }
/* hub: zakładki obok treści na PC, nad treścią na telefonie */
@media (min-width: 901px) {
  .wyd-uklad { grid-template-columns: minmax(0, 720px) minmax(240px, 300px); justify-content: space-between; align-items: end; padding-bottom: 56px; }
  .wyd-zakladki { grid-template-columns: 1fr; align-self: end; }
  .hero-wyd .h1 { font-size: clamp(44px, 5.4vw, 84px); }
}
@media (max-width: 900px) {
  .wyd-zakladki { order: -1; }
}
@media (max-width: 1080px) {
  .hub-chopin::before { background: linear-gradient(0deg, rgba(37, 24, 31, .96), rgba(37, 24, 31, .82) 60%, rgba(37, 24, 31, .55)); }
  .hub-renesans::before, .hub-barok::before { background: linear-gradient(0deg, rgba(11, 10, 8, .96), rgba(11, 10, 8, .82) 60%, rgba(11, 10, 8, .55)); }
}

/* ═══ Bilety: prosty wybór (13.09.2026) ═══ */
.tlo-akwarele .bilety, .tlo-akwarele .sekcja { background: transparent; }
.bp-tytul { margin-bottom: clamp(20px, 2.4vw, 32px); }
.bp { --bp-akcent: var(--roz-700); --bp-wybrany: var(--gr-wybrany); --bp-na-wybranym: #fff;
  display: grid; gap: clamp(18px, 2vw, 26px); padding: clamp(18px, 2.6vw, 36px); border-radius: 28px;
  background: color-mix(in srgb, var(--tlo) 90%, transparent); border: 1px solid var(--linia); box-shadow: 0 30px 60px -40px rgba(55, 37, 46, .45);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.bp-renesans { --bp-akcent: #8a6a1f; --bp-wybrany: #f2c14e; --bp-na-wybranym: #0b0a08; }
.bp button { font: inherit; cursor: pointer; transition: background var(--szybko), border-color var(--szybko), color var(--szybko), transform var(--szybko); }
.bp button:focus-visible { outline: 2px solid var(--bp-akcent); outline-offset: 2px; }
.bp-wyd { display: inline-grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 999px; background: var(--roz-100); justify-self: start; }
.bp-wyd button { border: 0; border-radius: 999px; padding: 12px 22px; background: transparent; color: var(--tekst-2); font-weight: 700; font-size: 15px; white-space: nowrap; }
.bp-wyd button[aria-pressed="true"] { background: var(--tlo); color: var(--tekst-mocny); box-shadow: 0 4px 14px -6px rgba(55, 37, 46, .35); }
.bp-dni { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.bp-dni button { display: grid; gap: 2px; justify-items: center; padding: 10px 4px; border-radius: 14px; border: 1.5px solid var(--linia); background: var(--tlo); color: var(--tekst-mocny); }
.bp-dni small { font-size: 12px; color: var(--tekst-2); }
.bp-dni b { font-size: 17px; font-weight: 900; }
.bp-godziny { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.bp-godziny button { padding: 11px 4px; border-radius: 12px; border: 1.5px solid var(--linia); background: var(--tlo); color: var(--tekst-mocny); font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; }
.bp-dni button:hover:not([aria-pressed="true"]), .bp-godziny button:hover:not(:disabled):not([aria-pressed="true"]) { border-color: var(--bp-akcent); }
.bp-dni button[aria-pressed="true"], .bp-godziny button[aria-pressed="true"] { background: var(--bp-wybrany); border-color: transparent; color: var(--bp-na-wybranym); }
.bp-dni button[aria-pressed="true"] small { color: inherit; opacity: .85; }
.bp-godziny button:disabled { cursor: default; color: var(--kal-brak-tekst, rgba(82, 82, 95, .38)); text-decoration: line-through; background: transparent; border-style: dashed; }
.bp-dol { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid var(--linia); }
.bp-termin { font-size: 18px; font-weight: 700; color: var(--tekst-mocny); }
.bp-termin::first-letter { text-transform: uppercase; }
.bp-cena { font-size: 15px; color: var(--tekst-2); }
.bp-cena b { font-size: 24px; font-weight: 900; color: var(--tekst-mocny); }
.bp-cena s { color: var(--tekst-3); }
.bp-cena small { font-size: 13px; }
.bp-kup { gap: 10px; min-width: 240px; }
.bp-renesans .bp-kup { --akcent: #f2c14e; --akcent-ciemny: #d9a441; --na-akcencie: #0b0a08; }
@media (max-width: 760px) {
  .bp { border-radius: 22px; }
  .bp-wyd { display: grid; justify-self: stretch; }
  .bp-wyd button { padding: 11px 8px; font-size: 14px; white-space: normal; }
  .bp-dni { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .bp-godziny { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .bp-dol { flex-direction: column; align-items: stretch; }
  .bp-kup { min-width: 0; width: 100%; }
}
@media (max-width: 760px) {
  .bp-godziny { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .bp-godziny button { font-size: 14px; padding: 11px 0; }
  .bp-dni { gap: 6px; }
}

/* ═══ Animacje (GSAP + sprężyny, animacje.js) ═══ */
.z-animacjami .wyd-tresc { animation: none; }
.z-animacjami .hub, .z-animacjami .zapowiedzi, .z-animacjami .siatka-4, .z-animacjami .voucher-sekcja .szpalta { perspective: 1400px; }
.z-animacjami .hub-karta, .z-animacjami .zapowiedzi-glowna, .z-animacjami .karta-foto, .z-animacjami .voucher { transform-style: flat; will-change: auto; }
.z-animacjami .hero-tlo { will-change: transform; }
.z-animacjami :is(.hub-karta > img, .zapowiedzi-glowna > img, .pas-cta > img, .voucher img, .karta-foto .foto img, .ren-plansza img, .lp-moment img) { translate: var(--tx, 0px) calc(var(--ty, 0px) + var(--py, 0%)); scale: var(--ps, 1); }

/* ═══ Hero: tylko tytuł i przyciski sprzedażowe; prosty zakup na telefonie (13.09.2026) ═══ */
.hero-akcje { padding-top: 8px; }
.hero-kup { gap: 0; }
.hero-kup-cena { margin-left: 14px; padding-left: 14px; border-left: 1px solid currentColor; border-left-color: color-mix(in srgb, currentColor 35%, transparent); font-weight: 900; letter-spacing: .02em; text-transform: none; font-size: 15px; }
.hero-kup-cena s { font-weight: 400; opacity: .6; margin-left: 4px; font-size: 13px; }
.wyd-tresc { gap: 22px; }
.ren-hero-uklad.ren-hero-min { grid-template-columns: 1fr; }
.ren-hero-min .ren-hero-tresc { display: grid; gap: 22px; }
.ren-hero-min .hero-kup { --akcent: #f2c14e; --akcent-ciemny: #d9a441; --na-akcencie: #0b0a08; }
.wyd-tresc-renesans .hero-kup { --akcent: #f2c14e; --akcent-ciemny: #d9a441; --na-akcencie: #0b0a08; }
.wyd-zakladki button { padding-bottom: 14px; }
@media (max-width: 760px) {
  .hero-akcje { flex-direction: column; align-items: stretch; gap: 10px; }
  .hero-akcje .przycisk { width: 100%; }
  .wyd-zakladki button { padding: 13px 12px 11px; }
}
/* prosty zakup w kartach stron z reklam */
.lp-karta .bp { padding: 0; border: 0; background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.lp-karta-ciemna .bp { --tlo: rgba(255, 255, 255, .06); --linia: rgba(255, 255, 255, .2); --tekst-mocny: #fff; --tekst-2: rgba(255, 255, 255, .75); --tekst-3: rgba(255, 255, 255, .5); color: #fff; }
/* telefon: dni i godziny w jednym przewijanym pasku każde, bez wyprzedanych godzin */
@media (max-width: 760px) {
  .bp { gap: 14px; padding: 16px; }
  .lp-karta .bp { padding: 0; }
  .bp-dni, .bp-godziny { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; margin: 0 -16px; padding: 2px 16px; scroll-padding-inline: 16px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 28px), transparent); }
  .lp-karta .bp-dni, .lp-karta .bp-godziny { margin: 0 -20px; padding: 2px 20px; }
  .bp-dni::-webkit-scrollbar, .bp-godziny::-webkit-scrollbar { display: none; }
  .bp-dni button { flex: 0 0 64px; scroll-snap-align: start; padding: 9px 2px; }
  .bp-godziny button { flex: 0 0 auto; min-width: 66px; scroll-snap-align: start; padding: 12px 10px; font-size: 15px; }
  .bp-godziny button:disabled { display: none; }
  .bp-dol { flex-direction: row; align-items: center; gap: 12px; padding-top: 14px; }
  .bp-wybor { min-width: 0; }
  .bp-termin { font-size: 14px; }
  .bp-cena { font-size: 12.5px; }
  .bp-cena b { font-size: 19px; }
  .bp-cena small { display: block; font-size: 11.5px; }
  .bp-kup { width: auto; flex: none; padding-inline: 20px; }
  .bp-kup svg { display: none; }
  .bp-wyd button { padding: 10px 6px; }
}
/* pasek „Kup bilet” na telefonie: spokojny, jednolity kolor bez „tęczowego” gradientu */
.pasek-zakupu { height: 64px; border-radius: 18px; box-shadow: 0 16px 30px -12px rgba(38, 24, 32, .55); }
.pasek-zakupu .przycisk { flex-direction: row; justify-content: space-between; gap: 12px; padding: 0 10px 0 22px; border-radius: 18px; text-transform: none; letter-spacing: 0;
  background: linear-gradient(180deg, #4b3240, #3a2631); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12); color: #fff; }
.pasek-zakupu .pasek-tekst { display: grid; gap: 1px; text-align: left; }
.pasek-zakupu .pasek-etykieta { font-size: 17px; font-weight: 800; letter-spacing: .01em; line-height: 1.15; }
.pasek-zakupu .pasek-cena { font-size: 13px; font-weight: 600; letter-spacing: 0; color: #e9cfdb; opacity: 1; }
.pasek-zakupu .pasek-strzalka { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: #f8f6f7; color: #3a2631; }
body[data-motyw="afisz"] .pasek-zakupu .przycisk { background: linear-gradient(180deg, #f5ca5f, #e9b43f); color: #0b0a08; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35); }
body[data-motyw="afisz"] .pasek-zakupu .pasek-cena { color: rgba(11, 10, 8, .7); }
body[data-motyw="afisz"] .pasek-zakupu .pasek-strzalka { background: #0b0a08; color: #f2c14e; }
.bp-data-kr { display: none; }
@media (max-width: 760px) { .bp-data-dl { display: none; } .bp-data-kr { display: inline; } .bp-termin { font-size: 16px; white-space: nowrap; } }
.lp-karta .bp-data-dl { display: none; }
.lp-karta .bp-data-kr { display: inline; }
.lp-karta .bp-cena small { display: block; }

/* baner zgody z consent.js (przeniesiony ze starego styles.css) */
.zgoda-cookie {
  position: fixed; z-index: 10001; right: clamp(1rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 2rem);
  width: min(34rem, calc(100% - 2rem)); padding: 1.2rem; border: 1px solid var(--linia, rgb(0 0 0 / .12)); border-radius: 16px;
  background: var(--tlo-2, #fff); color: var(--tekst, #141413); box-shadow: 0 1.25rem 3rem rgb(0 0 0 / .24);
}
.zgoda-cookie h2 { margin: 0 0 .45rem; font-size: 1.15rem; }
.zgoda-cookie p { margin: .35rem 0; font-size: .9rem; color: var(--tekst-2, inherit); }
.zgoda-cookie-akcje { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .9rem; }
@media (max-width: 540px) { .zgoda-cookie-akcje .przycisk { flex: 1 1 100%; } }

/* karta biletów w wersji informacyjnej (Renesans: telefon do BOK, Chopin bez terminów): na telefonie cena i przycisk pod sobą */
.bp-kup { max-width: 100%; }
@media (max-width: 767px) {
  .bp-info .bp-dol { flex-direction: column; align-items: stretch; gap: 12px; }
  .bp-info .bp-kup { width: 100%; flex: 1 1 auto; white-space: normal; text-align: center; }
}

/* okno Biletomatu (iframe#kicket-iframe) zawsze w jasnym schemacie: ciemny motyw strony (Renesans, color-scheme: dark)
   przechodzi do ramki i formularz rysuje się inaczej niż przy Chopinie. Wysokość jak na starej podstronie Chopina:
   tylko po otwarciu (manager ustawia position: fixed), z marginesem na dole; ramka ładowania 0×0 zostaje nietknięta. */
#kicket-iframe { color-scheme: light; }
#kicket-iframe[style*="position: fixed"] { height: calc(100% - 40px) !important; }
@media (max-width: 767px) {
  #kicket-iframe[style*="position: fixed"] { top: 12px !important; height: calc(100% - 24px - env(safe-area-inset-bottom, 0px)) !important; }
}
