/* =====================================================================
   FAMILY · Nawiedzony Zamek Świny — style strony (nadpisuje base.css)
   Klimat: bordowa tapeta dworu, złote ramy, dynie, ciepłe światło.
   ===================================================================== */
.theme-family {
  --bg: #170a0b; --bg-2: #261315; --bg-3: #321719;
  --wine: #4a1219; --wine-2: #6b1a22;
  --ink: #fcefdc; --ink-dim: #dcc5a8;
  --accent: #ff7a1a; --accent-2: #ffc15e; --accent-ink: #1d0b02;
  --gold: #e9b65a;
  --line: rgba(255, 210, 160, .17);
}
.fam h2 em, .fam h1 em { font-style: normal; color: var(--accent-2); }
.only-mobile { display: inline; }
@media (min-width: 560px) { .only-mobile { display: none; } }
.sec-head { margin-bottom: 26px; }
.sec-head > * + * { margin-top: 12px; }
.fam .eyebrow + .h2, .fam .eyebrow + .h1 { margin-top: 12px; }
.fam .h2 + .lead, .fam .h2 + .prose { margin-top: 16px; }

/* RRRRR innym krojem */
.rrr b {
  display: inline-block; font-family: var(--f-hand); font-weight: 400; color: var(--accent);
  font-size: 1.22em; line-height: .8; letter-spacing: -.01em;
  text-shadow: 0 0 16px rgba(255, 122, 26, .55), 0 2px 0 #3a0d06;
}
.js .rrr b { animation: rrr 2.8s ease-in-out infinite; transform-origin: 50% 70%; }
@keyframes rrr { 0%, 68%, 100% { transform: none; } 73% { transform: translateX(-2px) rotate(-4deg); } 78% { transform: translateX(2px) rotate(4deg); } 83% { transform: translateX(-2px) rotate(-2deg); } 88% { transform: translateX(1px); } }

/* ---------- 1. HERO ---------- */
.fhero {
  position: relative; isolation: isolate; overflow: hidden;
  padding: calc(84px + env(safe-area-inset-top)) 0 34px;
  background: radial-gradient(120% 70% at 70% 30%, #5b1720 0%, #3a0d14 45%, #1f080c 80%, var(--bg) 100%);
}
.fhero__wall {
  position: absolute; inset: 0; z-index: -1; opacity: .30;
  background: url(img/tapeta.webp) 0 0 / 200px 200px repeat;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 100%);
          mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 100%);
}
.fhero::after { /* ciepła poświata za portretem */
  content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; left: 50%; top: 300px; transform: translate(-50%, -50%);
  background: radial-gradient(closest-side, rgba(255, 150, 60, .32), transparent); pointer-events: none;
}
.fhero__web { width: 190px; right: -40px; top: -20px; transform: scaleX(-1); opacity: .55; z-index: 0; }
.fhero__flock { top: 90px; height: 40%; z-index: 0; --bat: #1a0f1e; }
.fhero__in { position: relative; z-index: 4; display: grid; gap: 14px; }
.fhero__text { text-align: center; }
.fhero__ed {
  display: inline-flex; align-items: center; gap: 10px;
  font: 600 .8125rem/1.2 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2);
}
.fhero__ed span { padding: 4px 9px; border: 1px solid rgba(255, 193, 94, .55); border-radius: 999px; }
.fhero__h {
  margin-top: 10px;
  font: 900 clamp(2.85rem, 1.2rem + 7.6vw, 5.6rem)/.9 var(--f-goth); letter-spacing: -.005em; color: #fff3df;
  text-shadow: 0 3px 0 #2a0508, 0 0 28px rgba(255, 140, 60, .35);
  text-wrap: balance;
}
.fhero__claim {
  margin: 12px auto 0; max-width: 20ch;
  font: 700 clamp(1.3rem, 1rem + 1.6vw, 1.9rem)/1.15 var(--f-display); color: var(--ink); text-wrap: balance;
}
.fhero__art { position: relative; margin: 0 auto; width: min(300px, 78vw); }
.fhero__knight { width: 100%; filter: drop-shadow(0 22px 30px rgba(0, 0, 0, .6)); }
.js .fhero__art.is-in .fhero__knight { animation: knight 7s ease-in-out 1.2s infinite; }
@keyframes knight { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(-4px, -6px, 0) rotate(-.6deg); } }
.plate {
  position: absolute; left: 50%; bottom: -8px; transform: translateX(-50%) rotate(-2deg);
  width: 86%; aspect-ratio: 600 / 233; display: grid; place-content: center; text-align: center;
  background: url(img/tabliczka.webp) center / 100% 100% no-repeat;
  font: 700 clamp(.98rem, .8rem + .9vw, 1.35rem)/1.05 var(--f-display); color: #2d1606;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .55));
}
.plate span { display: block; }
.plate b { display: block; color: #7a1010; font-weight: 900; }
.fhero__info { display: grid; gap: 14px; justify-items: center; text-align: center; margin-top: 8px; }
.fhero__chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.fhero__chips li {
  padding: 7px 12px; border-radius: 999px; font-size: .9375rem; line-height: 1.2;
  background: rgba(20, 6, 8, .55); border: 1px solid rgba(255, 193, 94, .35); color: var(--ink);
}
.fhero__chips b { color: var(--accent-2); }
.fhero__cta { display: grid; gap: 10px; width: 100%; max-width: 420px; }
.fhero__buy { flex-wrap: wrap; row-gap: 2px; line-height: 1.1; }
.fhero__from { font-weight: 600; font-size: .9375rem; opacity: .82; }
.fhero__count { font-size: .9375rem; color: var(--ink-dim); }
.fhero__count b { color: var(--accent-2); }
.fhero__fog { height: 38%; opacity: .55; z-index: 3; }
.fhero__more { display: none; }
@media (min-width: 560px) {
  .fhero__cta { grid-template-columns: 1.4fr 1fr; max-width: 560px; }
  .fhero__more { display: inline-flex; }
}
@media (min-width: 1024px) {
  .fhero { padding: 120px 0 70px; min-height: min(100svh, 900px); display: grid; align-items: center; }
  .fhero__in { grid-template-columns: 1.05fr .95fr; grid-template-areas: "text art" "info art"; column-gap: 40px; row-gap: 26px; align-items: end; }
  .fhero__text { grid-area: text; text-align: left; }
  .fhero__claim { margin-left: 0; max-width: 18ch; }
  .fhero__art { grid-area: art; width: min(560px, 100%); align-self: center; }
  .fhero__info { grid-area: info; justify-items: start; text-align: left; align-self: start; }
  .fhero__chips { justify-content: flex-start; }
  .fhero::after { left: 72%; top: 50%; width: 800px; height: 800px; }
  .fhero__web { width: 300px; right: auto; left: -30px; transform: none; }
  .fhero__flock { top: 100px; }
}

/* ---------- 3. Czym to jest ---------- */
.intro { overflow: hidden; }
.intro__leaves { width: 340px; right: -150px; top: -60px; opacity: .5; }
.intro__grid { position: relative; z-index: 3; display: grid; gap: 34px; }
.intro__warn { font-size: 1.6rem; line-height: 1.15; color: var(--accent); margin-top: 18px; transform: rotate(-2deg); }
.frame { position: relative; width: min(280px, 72vw); margin: 0 auto; aspect-ratio: 700 / 875; }
.frame__pic { position: absolute; left: 18%; right: 18%; top: 17.5%; bottom: 14.5%; overflow: hidden; background: #110607; }
.frame__pic picture, .frame__pic img { width: 100%; height: 100%; object-fit: cover; }
.frame__gold { position: absolute; inset: 0; width: 100%; height: 100%; filter: drop-shadow(0 18px 24px rgba(0, 0, 0, .6)); }
.frame__cap { position: absolute; left: 0; right: 0; bottom: -34px; text-align: center; font: 500 .9375rem/1.2 var(--f-serif); font-style: italic; color: var(--ink-dim); }
.frame__cap .credit { display: block; font-style: normal; margin-top: 2px; }
@media (min-width: 900px) {
  .intro__grid { grid-template-columns: 1.3fr 1fr; align-items: center; gap: 60px; }
  .frame { width: 330px; }
  .intro__leaves { width: 520px; right: -160px; }
}

/* ---------- 4. Atrakcje ---------- */
.atr { overflow: hidden; background: linear-gradient(180deg, var(--bg) 0%, #1d0c0e 50%, var(--bg) 100%); }
.atr__skel { width: 150px; right: -22px; top: 40px; opacity: .9; transform: rotate(-8deg); }
.atr .sec-head { position: relative; z-index: 2; padding-right: 96px; }
.atr .attr__t { font-size: 1.3rem; }
.atr .attr { background: linear-gradient(180deg, var(--bg-2), #1e0e10); }
.atr__main .attr:first-child .attr__t { font-size: var(--fs-2); }
@media (min-width: 560px) { .atr .sec-head { padding-right: 0; max-width: 34ch; } }
@media (min-width: 1024px) {
  .atr__skel { width: 230px; right: 4%; top: 30px; }
  .atr__main { grid-template-columns: repeat(3, 1fr); }
  .atr__main .attr--wide { grid-column: span 2; grid-row: span 1; }
}

/* fotospoty */
.spots { margin-top: 48px; }
.spots__head { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 14px; align-items: center; margin-bottom: 16px; }
.spots__head .h3 { margin-top: 6px; }
.spots__balloons { width: 96px; }
.spots__hint { margin-top: 6px; font-size: .9375rem; }
.spots .attr__img--tall { aspect-ratio: 4 / 4.4; }
.spots .attr__t { font-size: 1.2rem; }
@media (min-width: 560px) and (max-width: 1023px) { .spots__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .spots__head { grid-template-columns: 120px 1fr; } .spots__balloons { width: 120px; } }

/* ---------- 5. Budzenie bestii ---------- */
.beast { overflow: hidden; isolation: isolate; text-align: center; background: #0e0506; }
.beast__bg { position: absolute; inset: 0; z-index: -1; }
.beast__bg img { width: 100%; height: 115%; object-fit: cover; opacity: .38; filter: saturate(1.15); }
.beast__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--bg) 0%, rgba(14, 5, 6, .35) 30%, rgba(14, 5, 6, .55) 70%, var(--bg) 100%); }
.beast__in { position: relative; z-index: 3; display: grid; justify-items: center; gap: 0; }
.beast__in > * + * { margin-top: 14px; }
.beast__h { font-family: var(--f-goth); font-weight: 900; font-size: clamp(3rem, 1.6rem + 7vw, 6rem); line-height: .95; }
.beast__word { color: var(--accent); text-shadow: 0 0 24px rgba(255, 122, 26, .6); }
.beast .lead { max-width: 30ch; margin-inline: auto; }
.beast__play { display: grid; justify-items: center; gap: 14px; width: 100%; max-width: 440px; margin-top: 22px !important; }
.beast__fig { position: relative; margin: 0; width: min(280px, 72vw); }
.beast__img { width: 100%; filter: drop-shadow(0 20px 30px rgba(0, 0, 0, .7)) brightness(.8) saturate(.8); transition: filter .5s; transform-origin: 50% 80%; }
.beast__roar {
  position: absolute; left: 50%; top: 18%; transform: translate(-50%, 0) scale(.4) rotate(-6deg); opacity: 0;
  font: 400 clamp(2.2rem, 1.6rem + 3vw, 3.4rem)/1 var(--f-hand); color: var(--accent-2); white-space: nowrap;
  text-shadow: 0 0 20px rgba(255, 122, 26, .9), 0 3px 0 #3a0d06; pointer-events: none;
  transition: transform .4s var(--ease-out), opacity .3s;
}
.beast__fig.is-shake .beast__img { animation: beast-shake .45s ease-in-out; }
.beast__fig.is-awake .beast__img { filter: drop-shadow(0 0 40px rgba(255, 122, 26, .7)) brightness(1.08) saturate(1.1); animation: beast-roar .9s ease-out; }
.beast__fig.is-awake .beast__roar { opacity: 1; transform: translate(-50%, -30%) scale(1) rotate(-6deg); }
.beast__ctl { display: grid; gap: 10px; width: 100%; justify-items: center; }
.beast__btn { min-width: 220px; font-size: 1.125rem; }
.beast__meter { width: 100%; height: 12px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid var(--line); overflow: hidden; }
.beast__meter i { display: block; height: 100%; background: linear-gradient(90deg, #ffc15e, #ff7a1a, #d0141f); transform: scaleX(0); transform-origin: 0 50%; transition: transform .35s var(--ease-out); }
.beast .fine { color: var(--ink-dim); font-size: .9375rem; min-height: 1.5em; }
html:not(.js) .beast__ctl { display: none; }
@keyframes beast-shake { 0%, 100% { transform: none; } 20% { transform: translateX(-6px) rotate(-2deg); } 40% { transform: translateX(6px) rotate(2deg); } 60% { transform: translateX(-4px) rotate(-1deg); } 80% { transform: translateX(3px); } }
@keyframes beast-roar { 0% { transform: scale(1); } 30% { transform: scale(1.08) translateY(-6px); } 100% { transform: scale(1); } }
@media (min-width: 900px) {
  .beast__play { grid-template-columns: 1fr 1fr; max-width: 760px; align-items: center; }
  .beast__fig { width: 340px; }
}

/* ---------- 6. Jak to działa + praktycznie ---------- */
.plan { overflow: hidden; }
.plan__grid { display: grid; gap: 34px; }
.plan__lantern { width: 64px; right: 14px; top: 10px; opacity: .95; }
.plan .h2 { padding-right: 60px; }
.plan__lead { margin-top: 12px; }
.tl { list-style: none; padding: 0; margin: 20px 0 0; position: relative; display: grid; gap: 2px; }
.tl::before { content: ""; position: absolute; left: 47px; top: 16px; bottom: 16px; width: 2px; background: linear-gradient(180deg, transparent, var(--accent) 12%, var(--accent) 88%, transparent); opacity: .55; }
.tl__i { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 14px; padding: 8px 0; }
.tl__t {
  justify-self: start; align-self: start; position: relative; z-index: 1; min-width: 96px; text-align: center;
  padding: 5px 8px; border-radius: 999px; background: var(--bg-3); border: 1px solid var(--line);
  font: 700 .9375rem/1.2 var(--f-mono); color: var(--accent-2); white-space: nowrap;
}
.tl__i b { display: block; font: 700 1.125rem/1.25 var(--f-display); }
.tl__i p { color: var(--ink-dim); line-height: 1.45; }
.tl__i--hot .tl__t { background: var(--accent); color: var(--accent-ink); border-color: transparent; box-shadow: 0 0 22px rgba(255, 122, 26, .55); }
.plan__note { margin-top: 12px; }
.costume {
  display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: center; margin-top: 18px; padding: 14px 16px 14px 10px; border-radius: 16px;
  background: linear-gradient(135deg, #3b1530, #241024); border: 1px solid rgba(190, 140, 255, .25);
}
.costume__hat { width: 72px; transform: rotate(-12deg); }
.trip { padding: 20px 16px 18px; border-radius: 20px; background: linear-gradient(170deg, var(--bg-3), var(--bg-2)); border: 1px solid var(--line); }
.trip__addr { margin-top: 6px; color: var(--ink-dim); }
.trip__addr b { color: var(--ink); }
.trip__list { list-style: none; padding: 0; display: grid; gap: 4px; margin: 12px 0 16px; }
.trip__list li { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; padding: 7px 0; border-bottom: 1px dashed var(--line); line-height: 1.45; }
.trip__list li:last-child { border-bottom: 0; }
.trip__ic { font-size: 1.2rem; text-align: center; line-height: 1.3; }
.trip__list b { color: var(--accent-2); }
@media (min-width: 900px) {
  .plan__grid { grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: start; }
  .plan__lantern { width: 100px; right: auto; left: 52%; top: 40px; }
  .plan .h2 { padding-right: 0; }
  .trip { padding: 28px; margin-top: 40px; }
}

/* ---------- 7. Bilety ---------- */
.tix { overflow: hidden; background: radial-gradient(90% 60% at 50% 0%, #3d1017 0%, var(--bg) 70%); }
.tix__grid { position: relative; z-index: 3; display: grid; gap: 30px; }
.tix__urgent { margin-top: 14px; padding: 12px 14px; border-left: 3px solid var(--accent); background: rgba(255, 122, 26, .09); border-radius: 0 10px 10px 0; }
.tix__urgent b { color: var(--accent-2); }
.fam-tickets { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 22px 0 8px; }
.ftk {
  position: relative; padding: 14px 14px 16px; border-radius: 16px; background: var(--bg-2); border: 1px solid var(--line);
}
.ftk--star {
  grid-column: 1 / -1; padding: 22px 20px 20px;
  background: linear-gradient(135deg, #ff8a2a 0%, #f06414 60%, #c8460a 100%); border-color: transparent; color: #1d0b02;
  box-shadow: 0 18px 40px -16px rgba(255, 122, 26, .7);
}
.ftk__badge { position: absolute; top: -11px; left: 18px; padding: 3px 10px; border-radius: 999px; background: #1d0b02; color: var(--accent-2); font: 600 .75rem/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; }
.ftk__n { font: 700 1.0625rem/1.2 var(--f-body); }
.ftk__p { display: grid; margin-top: 4px; }
.ftk__p b { font: 900 1.75rem/1.05 var(--f-display); color: var(--accent-2); }
.ftk__p span { font-size: .875rem; color: var(--ink-dim); }
.ftk--star .ftk__n { font-size: 1.25rem; }
.ftk--star .ftk__p { grid-template-columns: auto 1fr; align-items: baseline; column-gap: 14px; }
.ftk--star .ftk__p b { font-size: 2.6rem; color: #1d0b02; }
.ftk--star .ftk__p span { color: #3a1606; font-weight: 600; }
.tix .prices { margin-top: 6px; gap: 0; }
.tix .price { flex-wrap: wrap; }
.tix__info > .fine { margin-top: 12px; }
.tix__buy { position: relative; }
.tix__ticket { position: relative; z-index: 2; width: 150px; margin: 0 0 -38px auto; transform: rotate(8deg); }
.tix__alt { margin-top: 14px; text-align: center; }
.tix__alt a { color: var(--accent-2); font-weight: 600; }
@media (min-width: 900px) {
  .tix__grid { grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: start; }
  .fam-tickets { grid-template-columns: repeat(2, 1fr); }
  .tix__buy { position: sticky; top: 30px; }
  .tix__ticket { width: 200px; }
}

/* ---------- 8. Ekipa ---------- */
.crew { background: linear-gradient(180deg, var(--bg), #200b0e 60%, var(--bg)); }
.crew__h { font-size: clamp(2.2rem, 1.4rem + 4vw, 4rem); }
.crew__nums { list-style: none; padding: 0; margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.crew__nums li { padding: 16px 14px; border-radius: 16px; border: 1px solid var(--line); background: rgba(255, 255, 255, .03); display: grid; gap: 4px; align-content: start; }
.crew__nums b { font: 900 clamp(1.9rem, 1.4rem + 2vw, 2.8rem)/1 var(--f-display); color: var(--accent-2); }
.crew__nums span { font-size: .9375rem; color: var(--ink-dim); line-height: 1.35; }
.crew__wern { margin-top: 18px; max-width: 46ch; color: var(--ink-dim); font-size: 1.0625rem; }
.crew__wern b { color: var(--ink); }
@media (min-width: 900px) { .crew__nums { gap: 16px; } }

/* ---------- 9. Galeria (w sekcji ekipy) ---------- */
.gal { margin-top: 34px; }
.gal__h { margin-bottom: 14px; }
.gal__hint { display: block; margin-top: 4px; font: 500 .9375rem/1.4 var(--f-body); color: var(--ink-dim); }
.gal__rail { grid-auto-columns: auto; align-items: stretch; }
.gal__i { display: block; height: 260px; border-radius: 14px; overflow: hidden; border: 1px solid rgba(233, 182, 90, .35); box-shadow: var(--shadow); background: var(--bg-2); }
.gal__i img { object-fit: cover; transition: transform .8s var(--ease-out); }
.gal__i:hover img { transform: scale(1.04); }
@media (min-width: 1024px) { .gal__i { height: 400px; } }

/* ---------- 11. FAQ ---------- */
.ffaq { overflow: hidden; }
.ffaq .faq { margin-top: 26px; }
.ffaq .h2 { padding-right: 84px; }
.ffaq__ghost { width: 92px; right: 12px; top: 64px; opacity: .9; }
.ffaq .faq__more { margin-top: 22px; }
@media (min-width: 900px) { .ffaq__ghost { width: 140px; right: 8%; top: 70px; } }

/* ---------- 12. Link do Extreme ---------- */
.xlink__card {
  position: relative; display: block; overflow: hidden; isolation: isolate; border-radius: 20px; text-decoration: none; color: #ece6e1;
  min-height: 300px; border: 1px solid rgba(208, 20, 31, .45); background: #070506;
  box-shadow: 0 20px 50px -20px rgba(208, 20, 31, .5);
}
.xlink__bg { position: absolute; inset: 0; z-index: -1; }
.xlink__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 78% 50%; opacity: .55; transition: transform 1s var(--ease-out), opacity .5s; }
.xlink__card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7, 5, 6, .2) 0%, rgba(7, 5, 6, .92) 70%); }
.xlink__body { display: grid; gap: 8px; padding: 120px 22px 24px; }
.xlink__k { font: 600 .8125rem/1.2 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: #ff4a52; }
.xlink__h { font: 600 clamp(2rem, 1.4rem + 3vw, 3.4rem)/1 'Oswald', sans-serif; text-transform: uppercase; }
.xlink__d { color: #c9c0bb; max-width: 40ch; }
.xlink__go { margin-top: 6px; font-weight: 700; color: #fff; display: inline-flex; gap: .4em; }
.xlink__go i { font-style: normal; transition: transform .3s var(--ease); }
.xlink__card:hover .xlink__bg img { transform: scale(1.04); opacity: .7; }
.xlink__card:hover .xlink__go i { transform: translateX(5px); }
@media (min-width: 900px) {
  .xlink__card { min-height: 360px; }
  .xlink__card::after { background: linear-gradient(90deg, rgba(7, 5, 6, .95) 0%, rgba(7, 5, 6, .7) 45%, rgba(7, 5, 6, .1) 100%); }
  .xlink__body { padding: 56px 48px; max-width: 560px; }
}

/* ---------- Stopka ---------- */
.footer__grid { display: grid; gap: 26px; }
.footer__ev { color: var(--ink); }
.footer__links a { color: var(--accent-2); }
@media (min-width: 900px) { .footer__grid { grid-template-columns: 1fr 1fr; } }

@media (prefers-reduced-motion: reduce) {
  .rrr b, .fhero__knight { animation: none !important; }
}

/* ---------- Telefon: zwarty rytm (85% gości kupuje z telefonu) ---------- */
@media (max-width: 719px) {
  .fam .section { padding-block: 56px; }
  .fam .section--tight { padding-block: 36px; }
  .intro { padding-bottom: 8px; }
  .intro__frame { display: none; }
  .intro__leaves { opacity: .28; width: 260px; right: -120px; }
  .intro .lead { font-size: 1.0625rem; }
  .intro__warn { font-size: 1.45rem; margin-top: 12px; }
  .atr { padding-top: 40px; }
  .atr__main .attr__body { padding-bottom: 16px; }
  .spots { margin-top: 36px; }
  .spots__head { grid-template-columns: 72px 1fr; }
  .spots__balloons { width: 72px; }
  .spots .attr__img--tall { aspect-ratio: 4 / 3; }
  .spots .attr__body { padding: 10px 14px 14px; }
  .beast__fig { width: 210px; }
  .beast__play { margin-top: 10px !important; }
  .tix__ticket { display: none; }
  .ticket-widget { min-height: 220px; }
  .crew__nums li { padding: 12px; }
  .ffaq .faq__q { min-height: 56px; padding-block: 12px; }
  .xlink__card { min-height: 0; }
  .xlink__body { padding-top: 96px; }
  .footer { padding-top: 40px; }
}
.beast__img { -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 98%); mask-image: linear-gradient(180deg, #000 70%, transparent 98%); }
.frame__cap { bottom: -40px; }
.intro__frame { margin-bottom: 40px; }
@media (max-width: 719px) {
  .crew__h { font-size: 2rem; }
  .crew__nums { margin-top: 18px; }
  .crew__nums b { font-size: 1.75rem; }
  .footer { padding-top: 32px; font-size: .9375rem; }
  .footer__grid { gap: 14px; }
  .footer__grid .stack > * + * { margin-top: .6rem; }
  .footer__logo { width: 110px; }
  .xlink__body { padding: 80px 18px 20px; gap: 6px; }
  .intro + .atr { padding-top: 28px; }
  .tix .ftk--star { padding: 18px 18px 16px; }
}
@media (max-width: 719px) {
  .fam .section { padding-block: 48px; }
  .intro__p2 { display: none; }
  .crew__nums { grid-template-columns: 1fr; gap: 0; }
  .crew__nums li { grid-template-columns: 112px 1fr; align-items: center; gap: 12px; padding: 10px 0; border: 0; border-bottom: 1px dashed var(--line); border-radius: 0; background: none; }
  .gal__i { height: 230px; }
  .footer__grid > .stack:first-child p { display: none; }
  .fhero__art { width: min(280px, 74vw); }
  .beast__fig { width: 190px; }
  .xlink__body { padding-top: 64px; }
}
.spots__hint { font: 500 .9375rem/1.3 var(--f-body); color: var(--ink-dim); }
@media (min-width: 720px) { .crew__nums { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 719px) {
  .atr__main .attr--wide .attr__img { aspect-ratio: 16 / 9; }
  .tl__i { grid-template-columns: 88px 1fr; gap: 12px; padding: 6px 0; }
  .tl__t { min-width: 88px; font-size: .875rem; }
  .tl::before { left: 43px; }
  .xlink__body { padding-top: 48px; }
  .trip { padding: 16px 14px 14px; }
}
@media (max-width: 559px) {
  .spots .attr { display: block; }
  .spots .attr__img--tall { aspect-ratio: 1 / 1; }
  .spots .attr__img::after { background: linear-gradient(180deg, transparent 35%, rgba(12, 4, 6, .92) 100%); }
  .spots .attr__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 12px 14px 14px; gap: 2px; }
  .spots .attr__d { color: #eadbc6; font-size: 1rem; }
}
/* base.css: ul[role="list"] (0,1,1) zeruje padding .attrs--rail (0,1,0) → przywracamy */
@media (max-width: 559px) {
  ul.attrs--rail[role="list"] { padding: 4px var(--gutter) 18px; }
  .attrs--compact .attr__credit { display: none; }
}

/* galeria: szerokość z proporcji kafla */
.gal__i { aspect-ratio: 2 / 3; }
.gal__i--h { aspect-ratio: 3 / 2; }
.gal__i picture, .gal__i img { width: 100%; height: 100%; }

@media (max-width: 559px) { .gal__i--h { aspect-ratio: 4 / 5; } }
.xlink__bg img { object-position: 50% 30%; opacity: .5; filter: grayscale(1) contrast(1.1); }
@media (min-width: 900px) { .xlink__bg { left: 45%; } }
.gal__rail { grid-auto-columns: max-content; }
.gal__i { aspect-ratio: auto; width: 267px; height: 400px; }
.gal__i--h { width: 600px; }
@media (max-width: 1023px) { .gal__i { width: 200px; height: 300px; } .gal__i--h { width: 450px; } }
@media (max-width: 559px) { .gal__i, .gal__i--h { width: 184px; height: 230px; } }
@media (max-width: 719px) { .crew__nums li { grid-template-columns: 146px 1fr; } .crew__nums b { white-space: nowrap; font-size: 1.6rem; } }
@media (min-width: 560px) {
  .fhero__cta { grid-template-columns: auto auto; justify-content: start; max-width: none; width: auto; }
  .fhero__buy { flex-wrap: nowrap; white-space: nowrap; }
}
@media (min-width: 900px) {
  .atr__main { grid-template-columns: 1fr; }
  .atr__main .attr--wide { grid-column: auto; display: grid; grid-template-columns: 1.5fr 1fr; }
  .atr__main .attr--wide .attr__img { aspect-ratio: 16 / 9; }
  .atr__main .attr--wide .attr__img::after { background: linear-gradient(90deg, transparent 60%, color-mix(in srgb, var(--bg-2) 80%, transparent)); }
  .atr__main .attr--wide .attr__body { align-content: center; padding: 28px 32px; gap: 12px; }
  .atr__main .attr--wide .attr__t { font-size: var(--fs-3); }
  .atr__main .attr--wide .attr__d { font-size: var(--fs-1); }
  .atr__more { grid-template-columns: repeat(5, 1fr); gap: 16px; margin-top: 16px; }
  .atr__more .attr__t { font-size: 1.15rem; }
}

/* =====================================================================
   ITERACJA 1 (uwagi krytyków A i B)
   ===================================================================== */
/* Hero: CTA w dwóch liniach, mniejsza rama na telefonie */
.fhero__buy { flex-direction: column; gap: 2px; padding-block: 10px; }
.fhero__buyl { display: inline-flex; align-items: center; gap: .45em; font-size: 1.25rem; font-weight: 800; }
.fhero__from { font-size: .9375rem; font-weight: 600; opacity: .85; }
.fhero__count { font-weight: 500; }
@media (max-width: 559px) {
  .fhero { padding-bottom: 26px; }
  .fhero__in { gap: 10px; }
  .fhero__art { width: min(238px, 62vw); }
  .fhero__claim { margin-top: 8px; }
  .fhero__info { margin-top: 6px; gap: 12px; }
  .fhero__chips li { padding: 6px 11px; font-size: .9375rem; }
  .plate { bottom: -4px; }
}

/* Atrakcje: duże karty w karuzeli na telefonie (grafika ma sprzedawać) */
.atr__more .attr__d strong { color: var(--accent-2); }
.rail-dots { display: none; }
@media (max-width: 559px) {
  .atr__hint { display: flex; align-items: center; gap: 8px; margin: 22px 0 8px; font: 600 .9375rem/1.3 var(--f-body); color: var(--ink-dim); }
  .atr__hint span { color: var(--accent-2); }
  .js .atr__hint span { display: inline-block; animation: nudge 1.8s ease-in-out infinite; }
  .js .rail-dots { display: flex; justify-content: center; gap: 8px; margin-top: 2px; }
  .rail-dots i { width: 8px; height: 8px; border-radius: 999px; background: rgba(255, 210, 160, .28); transition: width .3s var(--ease), background .3s; }
  .rail-dots i.on { width: 22px; background: var(--accent); }
}
@keyframes nudge { 0%, 100% { transform: none; } 50% { transform: translateX(5px); } }

/* Fotospoty: siatka 2×2, wszystko widać od razu */
@media (max-width: 559px) {
  .spots__list { grid-template-columns: 1fr 1fr; gap: 10px; }
  .spots .attr__img--tall { aspect-ratio: 1 / 1; }
  .spots .attr__body { padding: 10px 10px 10px; }
  .spots .attr__t { font-size: 1.0625rem; line-height: 1.15; }
  .spots .attr__d { display: none; }
}

/* Budzenie bestii: wyraźna zabawa z licznikiem */
.beast { --wake: 0; }
.beast__img { filter: drop-shadow(0 20px 30px rgba(0, 0, 0, .7)) brightness(calc(.72 + var(--wake) * .36)) saturate(calc(.75 + var(--wake) * .4)); }
.beast__game { font-size: 1.0625rem; color: var(--ink); }
.beast__game b { color: var(--accent-2); }
.beast__tag { display: inline-block; margin-right: 6px; padding: 2px 9px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font: 700 .75rem/1.4 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; vertical-align: 2px; }
.beast__btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-width: 240px; min-height: 68px; padding: 0 34px; border: 0; border-radius: 999px; cursor: pointer;
  background: radial-gradient(120% 140% at 50% 0%, #ffd27a 0%, #ff8a2a 45%, #d8480c 100%); color: #1d0b02;
  font: 900 1.375rem/1 var(--f-display); letter-spacing: .01em;
  box-shadow: 0 0 0 4px rgba(255, 122, 26, .25), 0 14px 34px -10px rgba(255, 122, 26, .8), inset 0 -3px 0 rgba(0, 0, 0, .2);
  transition: transform .15s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.beast__btn-i { font-size: 1.5rem; }
.beast__btn::before { content: ""; position: absolute; inset: -4px; border-radius: inherit; border: 2px solid rgba(255, 170, 80, .7); opacity: 0; pointer-events: none; }
.js .beast__btn::before { animation: ping 2s ease-out infinite; }
.beast__btn:active { transform: scale(.95); }
.beast__btn.is-hit { animation: hit .3s var(--ease-out); }
.beast__btn:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
@keyframes ping { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.25, 1.5); opacity: 0; } }
@keyframes hit { 0% { transform: scale(.92); } 60% { transform: scale(1.06); } 100% { transform: none; } }
.beast__meterwrap { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; width: 100%; }
.beast__meter { height: 14px; }
.beast__pct { min-width: 3.4em; text-align: right; font: 700 1.125rem/1 var(--f-mono); color: var(--accent-2); }
.beast__msg { color: var(--ink) !important; font-weight: 600; }
.beast__buy { margin-top: 2px; }
.beast__buy[hidden] { display: none; }
.js .beast__buy:not([hidden]) { animation: faq-in .5s var(--ease-out); }
html:not(.js) .beast__game { display: none; }

/* Bilety: pilność puli 1, etykieta wewnątrz karty, notka pod widgetem */
.tix__urgent { padding: 14px 16px; border-left: 4px solid var(--accent); border-radius: 0 14px 14px 0; background: linear-gradient(90deg, rgba(255, 122, 26, .18), rgba(255, 122, 26, .05)); }
.tix__urgent > * + * { margin-top: 6px; }
.tix__urgent p:last-child { color: var(--ink-dim); font-size: .9375rem; line-height: 1.45; }
.tix__left { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; font-weight: 700; font-size: 1.0625rem; }
.tix__left b { padding: 5px 12px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font: 800 1rem/1.2 var(--f-body); white-space: nowrap; }
.tix__left b span { color: inherit; }
.ftk__badge { position: static; display: inline-block; margin-bottom: 8px; }
.tix__free { margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: rgba(255, 193, 94, .08); border: 1px solid rgba(255, 193, 94, .3); color: var(--accent-2); }
.tix__free b { font-weight: 700; }
.tix__note { margin-top: 14px; color: var(--ink-dim); font-size: .9375rem; line-height: 1.45; text-align: center; }

/* Galeria 2025: siatka, wszystko widać od razu */
.gal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gal__grid .gal__i { width: auto; height: auto; aspect-ratio: 1 / 1; border-radius: 12px; }
.gal__grid .gal__i--wide { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.gal__grid .gal__i picture, .gal__grid .gal__i img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 720px) { .gal__grid { grid-template-columns: repeat(4, 1fr); gap: 12px; } .gal__grid .gal__i--wide { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; } }
@media (min-width: 1024px) { .gal__grid { gap: 14px; } }

@media (prefers-reduced-motion: reduce) {
  .beast__btn::before, .atr__hint span, .beast__btn.is-hit { animation: none !important; }
}
/* telefon: ciaśniejszy rytm sekcji (limit wysokości zrzutu) */
@media (max-width: 719px) {
  .fam .section { padding-block: 40px; }
  .fam .section.atr { padding-top: 24px; }
  .gal { margin-top: 26px; }
  .tix__free { padding: 0; border: 0; background: none; margin-top: 10px; }
  .beast__in > * + * { margin-top: 10px; }
  .beast__fig { width: 170px; }
  .tl { margin-top: 14px; }
  .plan__grid { gap: 26px; }
  .ffaq .faq { margin-top: 18px; }
}
.beast__btn { box-shadow: 0 14px 34px -10px rgba(255, 122, 26, .8), inset 0 -3px 0 rgba(0, 0, 0, .2); }

/* =====================================================================
   ITERACJA 2 (uwagi krytyków A i B)
   ===================================================================== */
/* Pasek skrótów pod hero: wypełnia dół pierwszego ekranu i prowadzi do biletów */
.fjump { position: relative; z-index: 5; margin-top: -2px; padding: 4px 0 6px; background: linear-gradient(180deg, transparent, var(--bg) 40%); }
.fjump__in { display: flex; padding-inline: var(--gutter, 16px); gap: 8px; overflow-x: auto; scrollbar-width: none; padding-block: 6px; scroll-snap-type: x proximity; }
.fjump__in::-webkit-scrollbar { display: none; }
.fjump a {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: .4em; min-height: 46px; padding: 0 16px; border-radius: 999px;
  border: 1px solid rgba(255, 193, 94, .4); background: rgba(255, 193, 94, .06); color: var(--ink);
  font: 600 1rem/1 var(--f-body); text-decoration: none; scroll-snap-align: start; transition: background-color .2s, border-color .2s, transform .2s var(--ease);
}
.fjump a:hover { border-color: var(--accent); background: rgba(255, 122, 26, .14); }
.fjump a:active { transform: scale(.97); }
.fjump a.fjump__hot { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 800; box-shadow: 0 10px 24px -12px rgba(255, 122, 26, .9); }
@media (min-width: 720px) { .fjump__in { justify-content: center; flex-wrap: wrap; } }
@media (max-width: 719px) {
  .fam .section.intro { padding-top: 22px; }
  .fhero { padding-bottom: 14px; }
  .fhero__fog { height: 26%; }
}

/* Hero desktop: drugie CTA czytelniejsze */
.fhero__more { border: 2px solid rgba(255, 193, 94, .75); color: #fff3df; font-weight: 700; background: rgba(20, 6, 8, .45); }
.fhero__more:hover { border-color: var(--accent-2); background: rgba(255, 193, 94, .12); }

/* Atrakcje: zwarta lista na telefonie, wszystko widać bez przesuwania */
.atr__more { margin-top: 14px; }
.atr__more .attr__img .attr__tag { font-size: .6875rem; }
.attr--star { border-color: rgba(255, 193, 94, .6) !important; box-shadow: 0 16px 36px -20px rgba(255, 122, 26, .8); background: linear-gradient(135deg, #3a1a10, #24100f) !important; }
.attr--star .attr__t { color: var(--accent-2) !important; }
@media (max-width: 559px) {
  .atr__more { gap: 10px; }
  .atr__more .attr__img { min-height: 118px; }
  .atr__more .attr__t { font-size: 1.125rem; line-height: 1.15; }
  .atr__more .attr__d { font-size: .9375rem; line-height: 1.4; }
  .atr__more .attr__credit { display: none; }
  .attr--star .attr__img .attr__tag { display: inline-flex !important; left: 6px; top: auto; bottom: 6px; padding: 2px 6px; font-size: .625rem; letter-spacing: .04em; }
  .atr__main .attr--wide .attr__body { padding: 12px 16px 14px; }
}
@media (min-width: 560px) and (max-width: 899px) { .atr__more .attr--star { grid-column: 1 / -1; } }

/* Bilety: kto jest dzieckiem + oszczędność */
.ftk__who { font-size: .875rem; color: var(--ink-dim); margin-top: 2px; }
.tix__save { margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: rgba(255, 193, 94, .08); border: 1px dashed rgba(255, 193, 94, .45); font-size: 1rem; line-height: 1.45; }
.tix__save b { color: var(--accent-2); }
.tix__who { margin-top: 10px; color: var(--ink-dim); font-size: .9375rem; line-height: 1.45; }
.tix__who b { color: var(--ink); }
.fam-tickets { margin-bottom: 0; }
.ticket-widget__ic { width: 120px; transform: rotate(-6deg); filter: drop-shadow(0 10px 16px rgba(0, 0, 0, .5)); }
.ticket-widget__placeholder .spinner { display: none; }
@media (max-width: 719px) { .ticket-widget { min-height: 0; padding-block: 22px; } .ticket-widget__ic { width: 96px; } }

/* Budzenie bestii: na telefonie zwarta zabawa (smok obok przycisku) */
@media (max-width: 559px) {
  .beast__play { grid-template-columns: 116px 1fr; align-items: center; gap: 12px; text-align: left; margin-top: 14px !important; }
  .beast__fig { width: 116px !important; }
  .beast__ctl { justify-items: stretch; gap: 8px; }
  .beast__game { font-size: .9375rem; line-height: 1.35; }
  .beast__btn { min-width: 0; width: 100%; min-height: 56px; padding: 0 18px; font-size: 1.2rem; }
  .beast__btn-i { font-size: 1.25rem; }
  .beast__meterwrap { gap: 8px; }
  .beast__pct { font-size: 1rem; min-width: 2.8em; }
  .beast__msg { font-size: .875rem !important; min-height: 2.6em !important; }
  .beast__roar { font-size: 1.6rem; }
  .beast__buy { grid-column: 1 / -1; justify-self: stretch; }
}

/* Galeria: jedno pionowe zdjęcie na dwa rzędy */
.gal__grid .gal__i--tall { grid-row: span 2; aspect-ratio: auto; }
@media (min-width: 720px) { .gal__grid { grid-auto-rows: 1fr; } }

/* FAQ: duszek nie zasłania pytań */
.ffaq__ghost { pointer-events: none; z-index: 0; top: 14px; width: 78px; right: 10px; }
.ffaq .wrap { position: relative; z-index: 2; }
@media (min-width: 900px) { .ffaq__ghost { top: 30px; width: 120px; right: 6%; } }
.price__name small { display: inline; font-size: .875rem; color: var(--ink-dim); font-weight: 400; }
.ftk__who { font-size: .8125rem; white-space: nowrap; }
@media (max-width: 559px) {
  .attr--star .attr__img .attr__tag { display: none !important; }
  .tix__alt { display: none; }
  .ticket-widget__ic { width: 72px; }
  .ticket-widget { padding-block: 16px; }
  .ticket-widget__placeholder { gap: 6px; }
  .gal__hint { display: none; }
  .spots { margin-top: 28px; }
}
@media (min-width: 900px) {
  .atr__more { grid-template-columns: repeat(4, 1fr); }
  .atr__more .attr--star { grid-column: span 2; grid-row: span 2; }
  .atr__more .attr--star .attr__img { aspect-ratio: auto; flex: 1; min-height: 300px; }
  .atr__more .attr--star { display: flex; flex-direction: column; }
  .atr__more .attr--star .attr__t { font-size: var(--fs-2); }
  .atr__more .attr--star .attr__d { font-size: 1.0625rem; }
}
@media (min-width: 900px) { .fam .section.intro { padding-bottom: 24px; } .fam .section.atr { padding-top: 56px; } .intro__frame { margin-bottom: 48px; } }

/* =====================================================================
   ITERACJA 3 (uwagi krytyków A i B)
   ===================================================================== */
/* Hero: data i godzina w jednym chipie */
.fhero__chips .fhero__chip-main { background: rgba(255, 122, 26, .16); border-color: rgba(255, 193, 94, .6); }
@media (max-width: 559px) {
  .fhero__chips { gap: 6px; }
  .fhero__chips li { padding: 5px 11px; }
  .fhero__chips .fhero__chip-main { flex-basis: auto; }
  .fhero__info { gap: 10px; }
}

/* Pasek skrótów: 4 krótkie pozycje, mieszczą się na 390 px; „Bilety” nie udaje głównego CTA */
.fjump a { padding: 0 15px; min-height: 44px; }
.fjump a.fjump__hot { background: rgba(255, 122, 26, .12); border: 2px solid var(--accent); color: var(--accent-2); font-weight: 700; box-shadow: none; }
.fjump a.fjump__hot::before { content: ""; width: 18px; height: 12px; border-radius: 3px; background: radial-gradient(circle at 0 50%, transparent 3px, var(--accent-2) 3.5px) left / 50% 100% no-repeat, radial-gradient(circle at 100% 50%, transparent 3px, var(--accent-2) 3.5px) right / 50% 100% no-repeat; }
@media (max-width: 719px) {
  .fjump__in { justify-content: space-between; gap: 6px; }
  .fjump a { padding: 0 12px; font-size: .9688rem; }
}
@media (max-width: 379px) { /* bardzo wąskie ekrany: wskazówka, że pasek się przewija */
  .fjump__in { justify-content: flex-start; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
}

/* Intro: plan dnia w skrócie, przed biletami */
.intro__p2 { display: block !important; }
.mini {
  display: block; margin-top: 20px; padding: 14px 14px 12px; border-radius: 18px; text-decoration: none; color: var(--ink);
  background: linear-gradient(160deg, rgba(255, 122, 26, .12), rgba(255, 193, 94, .04)); border: 1px solid rgba(255, 193, 94, .35);
  transition: border-color .2s, transform .2s var(--ease);
}
.mini:hover { border-color: var(--accent); }
.mini:active { transform: scale(.99); }
.mini__h { display: flex; justify-content: space-between; align-items: center; font: 600 .8125rem/1.2 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent-2); }
.mini__h i { font-style: normal; font-size: 1.1rem; letter-spacing: 0; }
.mini__tl { list-style: none; padding: 0; margin: 12px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); position: relative; }
.mini__tl::before { content: ""; position: absolute; left: 12%; right: 12%; top: 7px; height: 2px; background: linear-gradient(90deg, var(--accent-2), var(--accent)); opacity: .5; }
.mini__tl li { position: relative; display: grid; justify-items: center; text-align: center; gap: 2px; padding-top: 22px; }
.mini__tl li::before { content: ""; position: absolute; top: 2px; left: 50%; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--bg); border: 2px solid var(--accent-2); }
.mini__tl b { font: 800 1rem/1.1 var(--f-body); color: var(--ink); white-space: nowrap; }
.mini__tl span { font-size: .8125rem; line-height: 1.2; color: var(--ink-dim); }
.mini__tl .mini__hot::before { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 14px rgba(255, 122, 26, .9); }
.mini__tl .mini__hot b { color: var(--accent); }
.mini__f { display: block; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); font-size: .9375rem; color: var(--ink-dim); text-align: center; }
@media (max-width: 379px) { .mini__tl b { font-size: .875rem; } }

/* Atrakcje: jedna obróbka zdjęć i grafik + „grafika poglądowa” */
.atr .attr__img img, .spots .attr__img img { filter: sepia(.14) saturate(1.05) contrast(1.06) brightness(.98); }
.atr .attr__img { box-shadow: inset 0 0 0 1px rgba(255, 193, 94, .25); }
.atr .attr__img::before { /* winieta + ziarno: ta sama „ramka” dla zdjęć i grafik */
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(120% 100% at 50% 45%, transparent 55%, rgba(20, 6, 4, .55) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 193, 94, .22);
}
.attr__credit { z-index: 3; }
.attr__credit--gen { font-style: italic; }
.attr__lite { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: 999px; background: rgba(255, 193, 94, .15); border: 1px solid rgba(255, 193, 94, .45); color: var(--accent-2); font: 600 .75rem/1.4 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; vertical-align: 3px; }
@media (max-width: 559px) {
  .atr__more .attr__credit, .attrs--compact .attr__credit { display: none; }
  .atr__more .attr__credit--gen, .attrs--compact .attr__credit--gen { display: block; left: 6px; right: auto; bottom: 5px; font-size: .625rem; }
  .spots .attr__credit--gen { top: 7px; right: 8px; bottom: auto; font-size: .625rem; }
}

/* Bilety: każdy pakiet ma argument */
.ftk__save { margin-top: 8px; display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; background: rgba(255, 193, 94, .12); color: var(--accent-2); font: 700 .875rem/1.3 var(--f-body); }
.ftk__save { white-space: nowrap; font-size: .8125rem; }
.ftk--star .ftk__save { background: #1d0b02; color: var(--accent-2); font-size: .9375rem; }
.ftk--star .ftk__save small { font-weight: 500; color: #e9c79a; font-size: .8125rem; }
.ftk--star .ftk__save::before { content: none; }

/* Widget zastępczy: podsumowanie cen zamiast pustej ramki */
.tw-sum { list-style: none; padding: 0; margin: 6px 0 0; width: 100%; min-width: min(300px, 100%); display: grid; text-align: left; }
.tw-sum li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 2px; border-bottom: 1px dashed var(--line); font-size: .9375rem; }
.tw-sum li:last-child { border-bottom: 0; }
.tw-sum b { color: var(--accent-2); white-space: nowrap; }
.tw-sum li:first-child b { font-size: 1.0625rem; }
.tw-sum__f { font-size: .8125rem; color: var(--ink-dim); line-height: 1.4; }
.ticket-widget__placeholder { max-width: 34ch; }

/* Budzenie bestii: na telefonie pionowo, przycisk na całą szerokość, procent w pasku */
.beast__meterwrap { position: relative; display: block; }
.beast__meter { height: 26px; }
.beast__pct { position: absolute; inset: 0; display: grid; place-items: center; min-width: 0; text-align: center; font-size: .875rem !important; color: #fff; text-shadow: 0 1px 2px #000, 0 0 6px #000; pointer-events: none; }
@media (max-width: 559px) {
  .beast__play { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 6px; margin-top: 8px !important; max-width: 100%; }
  .beast__fig { width: 150px !important; }
  .beast__ctl { width: 100%; justify-items: stretch; gap: 10px; }
  .beast__game { text-align: center; }
  .beast__btn { width: 100%; min-height: 58px; }
  .beast__msg { text-align: center; min-height: 1.4em !important; }
}
.beast__ctl, .beast__play { box-sizing: border-box; min-width: 0; }

/* Kto was straszy: kafle 2×2 z dużymi liczbami (jak na stronie startowej) */
ul.crew__nums[role="list"] { list-style: none; padding: 0; margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px 16px; }
.crew__nums li { display: grid !important; grid-template-columns: none !important; gap: 6px !important; align-content: start; padding: 14px 0 0 !important; border: 0 !important; border-top: 1px solid var(--line) !important; border-radius: 0 !important; background: none !important; }
.crew__nums b { font: 900 clamp(2.4rem, 1.8rem + 3vw, 4.2rem)/.9 var(--f-display) !important; letter-spacing: -.03em; white-space: nowrap; background: linear-gradient(180deg, #ffe0a8, #ff7a1a 70%, #c2410c); -webkit-background-clip: text; background-clip: text; color: transparent; }
.crew__nums b.crew__sm { font-size: clamp(1.9rem, 1.5rem + 2.2vw, 3.4rem) !important; }
.crew__nums span { font-size: .9375rem; line-height: 1.4; color: var(--ink-dim); }
@media (min-width: 900px) { ul.crew__nums[role="list"] { grid-template-columns: repeat(4, 1fr); } }

/* FAQ: duszek w prawym górnym rogu, poza nagłówkiem */
.ffaq .h2 { padding-right: 0; }
.ffaq .eyebrow { padding-right: 90px; }
.ffaq__ghost { top: 6px; right: 6px; width: 64px; opacity: .85; }
@media (max-width: 559px) { .ffaq .wrap { padding-top: 0; } .ffaq .h2 { max-width: calc(100% - 64px); } }
@media (min-width: 900px) { .ffaq__ghost { top: 24px; right: 4%; width: 110px; } }
@media (max-width: 559px) {
  .fhero__chips li:not(.fhero__chip-main) { padding: 5px 10px; font-size: .875rem; white-space: nowrap; }
  .fhero__chips .fhero__chip-main { flex: 0 0 auto; margin-inline: 20%; }
  .fhero__chips { column-gap: 5px; }
}

/* Telefon: limit wysokości zrzutu (8 192 px) — skróty bez utraty informacji */
@media (max-width: 719px) {
  .intro__p2 { display: none !important; }            /* to samo mówi „Plan dnia w skrócie” */
  .plan .tl { display: none; }                         /* oś czasu jest wyżej, w „Plan dnia w skrócie” */
  .plan .h2 { font-size: 1.75rem; }
  .plan__lantern { width: 48px; }
  .gal__grid .gal__i--wide { display: none; }          /* mapping jest już w atrakcjach */
  .ticket-widget__ic { display: none; }
  .beast__fig { width: 128px !important; }
}
@media (max-width: 719px) {
  .fam .section { padding-block: 34px; }
  .tw-sum__f { display: none; }
  .ticket-widget__placeholder > .muted { font-size: .9375rem; }
  .crew__wern { margin-top: 14px; }
  ul.crew__nums[role="list"] { gap: 16px 14px; margin-top: 18px; }
}

/* =====================================================================
   ITERACJA 4 (uwagi krytyków A i B)
   ===================================================================== */
/* Hero: cena dziecka od razu pod CTA */
.fhero__kids { font: 600 1rem/1.3 var(--f-body); color: var(--ink); }
.fhero__kids b { color: var(--accent-2); }
.fhero__count { font-size: .875rem; }
@media (max-width: 559px) {
  .fhero__info { gap: 8px; }
  .fhero__kids { margin-top: 2px; }
  .fhero__count { margin-top: -4px; }
}

/* Pasek skrótów: luźniej przy krawędzi + zanik po prawej (widać, że się przewija) */
@media (max-width: 719px) {
  .fjump { padding-bottom: 0; }
  .fjump__in { justify-content: flex-start; gap: 6px; padding-right: 28px; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .fjump a { padding: 0 11px; }
  .fam .section.intro { padding-top: 12px; }
}

/* Atrakcje: bez „grafika poglądowa” na kafelkach, jedna adnotacja pod fotospotami */
.attr__credit--gen { display: none !important; }
.spots__note { margin-top: 14px; color: var(--ink-dim); font-size: .8125rem; font-style: italic; }
/* Dom strachów light: karta w pełnej szerokości ze zdjęciem u góry */
.atr__more .attr--feature { grid-column: 1 / -1; display: flex !important; flex-direction: column; border-color: rgba(255, 193, 94, .45); }
.atr__more .attr--feature .attr__img { aspect-ratio: 16 / 9 !important; min-height: 0 !important; height: auto !important; }
.atr__more .attr--feature .attr__img::after { background: linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--bg-2) 85%, transparent)); }
.atr__more .attr--feature .attr__body { padding: 12px 16px 16px; }
.atr__more .attr--feature .attr__t { font-size: 1.375rem; }
@media (min-width: 900px) {
  .atr__more .attr--feature { grid-column: span 2; display: grid !important; grid-template-columns: 1.3fr 1fr; flex-direction: row; }
  .atr__more .attr--feature .attr__img { aspect-ratio: auto !important; height: 100% !important; }
  .atr__more .attr--feature .attr__body { align-content: center; padding: 20px 24px; }
}

/* Galeria 2025 tuż po atrakcjach: mozaika 6 zdjęć (3 kolumny) */
.gal2 { background: linear-gradient(180deg, var(--bg), #1f0b0d 50%, var(--bg)); }
.gal2__head { margin-bottom: 16px; }
.gal2 .gal__hint { display: block !important; margin-top: 6px; }
.gal3 { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 112px; gap: 6px; }
.gal3 .gal__i { width: auto !important; height: auto !important; aspect-ratio: auto !important; border-radius: 10px; }
.gal3 .gal__i picture, .gal3 .gal__i img { width: 100%; height: 100%; object-fit: cover; }
.gal3 .gal3__a, .gal3 .gal3__c { grid-column: span 2; }
.gal3 .gal3__b { grid-row: span 2; }
@media (min-width: 720px) { .gal3 { grid-auto-rows: 190px; gap: 10px; } }
@media (min-width: 1024px) { .gal3 { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; gap: 14px; } .gal3 .gal3__c { grid-column: span 2; } }
@media (max-width: 719px) { .fam .section.gal2 { padding-block: 28px 30px; } .gal2 .h2 { font-size: 1.75rem; } }

/* Bilety: zaznaczanie pakietu + „Twój wybór” w miejscu na widget */
.is-pickable { cursor: pointer; transition: transform .2s var(--ease), box-shadow .2s, border-color .2s, outline-color .2s; outline: 2px solid transparent; outline-offset: 3px; }
.is-pickable:focus-visible { outline-color: #fff; }
.ftk.is-pickable:active, .price.is-pickable:active { transform: scale(.985); }
.ftk.is-picked:not(.ftk--star) { border-color: var(--accent) !important; box-shadow: 0 0 0 2px var(--accent), 0 14px 30px -18px rgba(255, 122, 26, .9); }
.ftk--star.is-picked { box-shadow: 0 0 0 3px #ffe0a8, 0 20px 44px -18px rgba(255, 122, 26, .95); }
.ftk.is-picked .ftk__n::after, .price.is-picked .price__name::after { content: " ✓"; color: var(--accent-2); font-weight: 800; }
.ftk--star.is-picked .ftk__n::after { color: #1d0b02; }
.price.is-pickable { border-radius: 10px; padding-inline: 8px; margin-inline: -8px; }
.price.is-picked { background: rgba(255, 122, 26, .12); }
.tw-sel { display: grid; gap: 2px; width: 100%; padding: 12px 14px; border-radius: 14px; background: linear-gradient(135deg, rgba(255, 122, 26, .2), rgba(255, 193, 94, .06)); border: 1px solid rgba(255, 193, 94, .55); text-align: center; }
.tw-sel[hidden] { display: none; }
.tw-sel__k { font: 600 .75rem/1.2 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2); }
.tw-sel b { font: 800 1.375rem/1.15 var(--f-display); color: var(--ink); }
.tw-sel [data-sel-meta] { font-size: .9375rem; color: var(--ink-dim); }
.tw-sel.is-pop { animation: twpop .45s var(--ease-out); }
@keyframes twpop { 0% { transform: scale(.94); opacity: .4; } 60% { transform: scale(1.03); } 100% { transform: none; opacity: 1; } }
.tix__pickhint { display: block; margin-top: 4px; color: var(--accent-2); }
.tix__pickhint[hidden] { display: none; }

/* Budzenie bestii: zaproszenie do zabawy, a nie pusty stan */
.beast__meter { background: rgba(255, 122, 26, .12) !important; border: 2px solid var(--accent) !important; box-shadow: 0 0 18px -4px rgba(255, 122, 26, .7); }
.beast__meter i { min-width: 0; background: linear-gradient(90deg, #ffc15e, #ff7a1a 60%, #ff3d1a) !important; }
.beast__pct { color: #fff !important; font-size: .9375rem !important; }
.beast__msg { color: var(--accent-2) !important; font-size: 1rem !important; }
.js .beast__btn { animation: beastpulse 1.6s ease-in-out infinite; }
.js .beast__btn.is-hit { animation: hit .3s var(--ease-out); }
@keyframes beastpulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); box-shadow: 0 18px 44px -8px rgba(255, 122, 26, 1), inset 0 -3px 0 rgba(0, 0, 0, .2); } }

/* FAQ i stopka: kontakt do organizatora */
.faq__contact { margin-top: 22px; padding: 16px 18px; border-radius: 16px; border: 1px dashed rgba(255, 193, 94, .5); background: rgba(255, 193, 94, .06); }
.faq__contact-h { font-weight: 700; color: var(--ink); }
.faq__contact-l { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.faq__contact-l a { display: inline-flex; align-items: center; min-height: 44px; color: var(--accent-2); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.faq__more { margin-top: 14px; }
.footer__contact a { color: var(--accent-2); }

@media (prefers-reduced-motion: reduce) {
  .js .beast__btn, .tw-sel.is-pop { animation: none !important; }
}

/* Telefon: limit wysokości zrzutu (8 192 px) po dodaniu galerii i karty domu strachów */
.tw-sel__hint { display: block; margin-top: 4px; font-size: .8125rem; color: var(--accent-2); }
.js .tw-sel__hint { display: block; }
.faq__contact { margin-top: 18px; padding: 12px 16px; border-radius: 14px; border: 1px dashed rgba(255, 193, 94, .5); background: rgba(255, 193, 94, .06); display: flex; flex-wrap: wrap; align-items: center; gap: 2px 16px; }
.faq__contact-h { font-weight: 700; color: var(--ink); width: 100%; }
.faq__contact a { display: inline-flex; align-items: center; min-height: 40px; color: var(--accent-2); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 719px) {
  .fam .section { padding-block: 30px; }
  .fhero__count { display: none; }
  .tix__left { flex-wrap: nowrap; font-size: 1rem; }
  .tix__left b { padding: 4px 10px; font-size: .875rem; }
  .tix__urgent { padding: 12px 14px; }
  .gal3 { grid-auto-rows: 104px; }
  .atr__more .attr--feature .attr__img { aspect-ratio: 2 / 1 !important; }
  .beast__fig { width: 104px !important; }
  .footer__logo { display: none; }
  .footer__grid > .stack:first-child { display: none; }
  .xlink__d { font-size: .9375rem; line-height: 1.45; }
  .ticket-widget { padding-block: 14px; }
  .ticket-widget__placeholder strong { font-size: 1.25rem; }
  .tix__note { font-size: .875rem; }
}
@media (max-width: 719px) {
  .fam .section { padding-block: 28px; }
  .spots__head { grid-template-columns: 64px 1fr !important; gap: 10px !important; }
  .spots__balloons { width: 64px !important; }
  .plan__lead { margin-top: 8px; }
  .crew__wern { font-size: .9375rem; line-height: 1.5; }
  .gal2__head { margin-bottom: 12px; }
}

/* Galeria: stałe rozmieszczenie (bez dziur) */
.gal3 .gal__i:nth-child(1) { grid-area: a; } .gal3 .gal__i:nth-child(2) { grid-area: b; } .gal3 .gal__i:nth-child(3) { grid-area: c; }
.gal3 .gal__i:nth-child(4) { grid-area: d; } .gal3 .gal__i:nth-child(5) { grid-area: e; } .gal3 .gal__i:nth-child(6) { grid-area: f; }
.gal3 { grid-template-areas: "a a b" "c d b" "e e f"; }
@media (min-width: 1024px) { .gal3 { grid-template-columns: 1.4fr 1fr 1fr 1fr; grid-template-areas: "a a b c" "e f b d"; grid-auto-rows: 250px; } }
/* Desktop: dom strachów jako zwykła karta, żeby siatka 4 kolumn się domykała */
@media (min-width: 900px) {
  .atr__more .attr--feature { grid-column: auto; display: flex !important; flex-direction: column; }
  .atr__more .attr--feature .attr__img { aspect-ratio: 4 / 3 !important; height: auto !important; }
  .atr__more .attr--feature .attr__body { padding: 14px 18px 20px; align-content: start; }
  .atr__more .attr--feature .attr__t { font-size: 1.1875rem; }
}
