/* ZostanDJ – DJ KURS INTRO. Wszystko w obrębie .zs, żeby nie kolidować z motywem. */
.zi{
  --zi-bg:#0E1117; --zi-panel:#161A22; --zi-panel2:#1D222C; --zi-line:#2A303C;
  --zi-ink:#F4F6F9; --zi-soft:#A8B0BF; --zi-green:#00BF63; --zi-green-dark:#00A353; --zi-green-soft:rgba(0,191,99,.16);
  --zi-ok:#3FBF74; --zi-warn:#F0913F; --zi-off:#6B7382;
  --zi-display:"ZI Montserrat","Montserrat","Helvetica Neue",Arial,sans-serif;
  --zi-body:"ZI Source Sans","Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --zi-mono:"ZI Plex Mono","IBM Plex Mono",ui-monospace,Menlo,monospace;
  background:var(--zi-bg); color:var(--zi-ink); font:17px/1.6 var(--zi-body);
  /* Pełna szerokość niezależnie od kontenera motywu (JS dokłada pomiar co do piksela). */
  width:100vw !important; max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important;
  box-shadow:0 0 0 100vmax var(--zi-bg); clip-path:inset(0 -100vmax);
}
.zi *,.zi *::before,.zi *::after{box-sizing:border-box}
.zi p{margin:0}
.zi a{color:inherit}
.zi img{max-width:100%;height:auto}
.zi-wrap{max-width:1120px;margin:0 auto;padding-inline:20px}
.zi h1,.zi h2,.zi h3{font-family:var(--zi-display);line-height:1.1;margin:0;color:var(--zi-ink);letter-spacing:-.02em;text-transform:none}
.zi .zi-h1{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800}
.zi .zi-h1 span{display:block;color:var(--zi-green);font-size:.42em;font-weight:700;letter-spacing:.02em;margin-top:14px}
.zi .zi-h2{font-size:clamp(1.5rem,3.2vw,2.2rem);font-weight:800;margin-top:10px}
.zi .zi-h2 + *{margin-top:18px}
.zi-eyebrow{font:600 .8rem/1 var(--zi-body);letter-spacing:.16em;text-transform:uppercase;color:var(--zi-green)}
.zi-lead{color:var(--zi-soft);font-size:1.12rem;max-width:62ch}
.zi-note{color:var(--zi-soft);font-size:.95rem;margin-top:18px !important}
.zi-sec{padding-block:56px}
.zi-sec:last-of-type{padding-bottom:72px}

/* Przyciski */
.zi .zi-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 1rem/1.2 var(--zi-display);letter-spacing:-.01em;padding:16px 28px;border-radius:12px;border:2px solid transparent;text-decoration:none;cursor:pointer;transition:transform .15s,background-color .15s}
.zi .zi-btn--green{background:var(--zi-green);color:#08111A}
.zi .zi-btn--green:hover{background:#2ED97F;transform:translateY(-1px)}
.zi .zi-btn--ghost{border-color:var(--zi-line);color:var(--zi-ink)}
.zi .zi-btn--ghost:hover{border-color:var(--zi-green);color:var(--zi-green)}
.zi .zi-btn--off{background:var(--zi-panel2);color:var(--zi-off);cursor:default}
.zi :focus-visible{outline:3px solid var(--zi-green);outline-offset:3px}
.zi-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* Hero */
.zi-hero{position:relative;overflow:hidden;padding-block:56px 60px}
.zi-hero-bg{position:absolute;inset:0;background:url(img/hero.webp) 52% 42%/cover no-repeat;opacity:.55}
.zi-hero::after{content:"";position:absolute;inset:0;background:
  radial-gradient(70% 80% at 78% 30%,rgba(0,191,99,.20),transparent 65%),
  linear-gradient(100deg,var(--zi-bg) 34%,rgba(14,17,23,.78) 58%,rgba(14,17,23,.55) 100%),
  linear-gradient(180deg,rgba(14,17,23,.5),rgba(14,17,23,.2) 40%,var(--zi-bg))}
.zi-hero-top{position:relative;z-index:1;margin-bottom:clamp(44px,6vw,80px)}
.zi-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:start}
.zi-logo{width:min(560px,82vw);height:auto;display:block;margin:0 auto;filter:drop-shadow(0 10px 30px rgba(0,0,0,.55))}
.zi-perks{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:12px}
.zi-perks li{display:grid;grid-template-columns:24px 1fr;gap:10px;color:var(--zi-ink);font-size:1rem}
.zi-perks li::before{content:"";width:11px;height:11px;border-radius:50%;background:var(--zi-green);margin-top:8px;box-shadow:0 0 0 5px var(--zi-green-soft)}

/* Karta najbliższego terminu w hero */
.zi-next{background:rgba(22,26,34,.92);border:1px solid var(--zi-line);border-radius:20px;padding:28px;backdrop-filter:blur(6px);box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.zi-next-head{font:600 .8rem/1 var(--zi-body);letter-spacing:.16em;text-transform:uppercase;color:var(--zi-green);margin-bottom:18px}
.zi-next-date{display:flex;align-items:center;gap:14px}
.zi-next .zi-d,.zi-term .zi-d{font:800 3.4rem/1 var(--zi-display);color:var(--zi-ink)}
.zi-next .zi-m,.zi-term .zi-m{font:600 .9rem/1.25 var(--zi-body);color:var(--zi-soft);text-transform:uppercase;letter-spacing:.06em}
.zi-next-info{margin-top:16px;display:grid;gap:8px}
.zi-next-info p{font-size:1rem;color:var(--zi-soft)}
.zi-next-info strong{color:var(--zi-ink)}
.zi-next .zi-bar{margin-top:6px}
.zi-next .zi-btn{margin-top:20px;width:100%}
.zi-seats-line{color:var(--zi-soft)}

/* Dwie kolumny + listy */
.zi-two{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.zi-checks{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:14px}
.zi-checks li{display:grid;grid-template-columns:30px 1fr;gap:12px;color:var(--zi-soft)}
.zi-checks li::before{content:"✓";color:var(--zi-green);font-weight:800;font-family:var(--zi-display)}

/* Plan dnia */
.zi-timeline{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:2px;background:var(--zi-line);border:1px solid var(--zi-line);border-radius:16px;overflow:hidden}
.zi-timeline li{background:var(--zi-panel);display:grid;grid-template-columns:130px 1fr;gap:20px;padding:18px 24px;align-items:baseline}
.zi-time{font:500 1rem var(--zi-mono);color:var(--zi-green)}
.zi-timeline li.is-break{background:linear-gradient(90deg,var(--zi-green-soft),rgba(0,191,99,.05));box-shadow:inset 3px 0 0 var(--zi-green)}
.zi-timeline li.is-break span:last-child{color:var(--zi-green);font-weight:600}

/* Terminy */
.zi-terms{display:grid;gap:20px;margin-top:26px}
.zi-term{background:var(--zi-panel);border:1px solid var(--zi-line);border-radius:18px;padding:24px 26px}
.zi-term.is-full{opacity:.72}
.zi-term header{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center}
.zi-term-date{display:flex;align-items:center;gap:12px}
.zi-term h3{font-size:1.3rem;font-weight:800}
.zi-place{color:var(--zi-soft);font-size:.98rem;margin-top:4px !important}
.zi-badge{font:700 .85rem/1 var(--zi-body);padding:9px 14px;border-radius:999px;white-space:nowrap}
.zi-badge--free{background:rgba(63,191,116,.16);color:#7BE0A6}
.zi-badge--last{background:rgba(240,145,63,.16);color:#F5B172}
.zi-badge--full{background:#22262F;color:var(--zi-off)}
.zi-seats{margin-top:22px}
.zi-bar{height:10px;border-radius:999px;background:#232833;overflow:hidden}
.zi-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--zi-green),var(--zi-green-dark));border-radius:999px}
.zi-seats p{color:var(--zi-soft);font-size:.95rem;margin-top:10px !important}
.zi-term-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:22px}
.zi-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.zi-price strong{font:800 2rem/1 var(--zi-display);color:var(--zi-ink)}
.zi-price s{color:var(--zi-off)}
.zi-price span{color:var(--zi-soft);font-size:.95rem}
.zi-term-note{color:var(--zi-green);font-size:.95rem;margin-top:14px !important}
.zi-empty{color:var(--zi-soft);margin-top:20px !important}

/* Aftermovie */
.zi-yt{position:relative;margin-top:26px;border-radius:18px;overflow:hidden;background:#000;aspect-ratio:16/9}
.zi-yt iframe,.zi-yt img{width:100%;height:100%;display:block;border:0;object-fit:cover}
.zi-yt-btn{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer}
.zi-play{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:var(--zi-green);box-shadow:0 12px 40px rgba(0,0,0,.45);display:grid;place-items:center}
.zi-play::after{content:"";border-style:solid;border-width:16px 0 16px 26px;border-color:transparent transparent transparent #08111A;margin-left:7px}
.zi-yt-btn:hover .zi-play{background:#2ED97F}

/* Opinie */
.zi-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px}
.zi-review{background:var(--zi-panel);border:1px solid var(--zi-line);border-radius:18px;padding:24px;margin:0;display:flex;flex-direction:column;gap:16px}
.zi-stars{color:var(--zi-green);letter-spacing:.12em}
.zi-review blockquote{margin:0;color:var(--zi-ink);font-size:1.02rem}
.zi-review figcaption{display:flex;align-items:center;gap:14px;color:var(--zi-soft);font-size:.95rem;margin-top:auto}
.zi-review figcaption img{width:56px;height:56px;border-radius:50%;object-fit:cover}
.zi-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--zi-green-soft);color:var(--zi-green);font:800 1.4rem var(--zi-display)}
.zi-review figcaption strong{color:var(--zi-ink)}

/* FAQ */
.zi-faq{margin-top:22px;border-top:1px solid var(--zi-line)}
.zi-faq details{border-bottom:1px solid var(--zi-line);padding:18px 0;margin:0}
.zi-faq summary{cursor:pointer;font-weight:700;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:16px;font-family:var(--zi-display)}
.zi-faq summary::-webkit-details-marker{display:none}
.zi-faq summary::after{content:"+";color:var(--zi-green);font-family:var(--zi-mono)}
.zi-faq details[open] summary::after{content:"–"}
.zi-faq details p{color:var(--zi-soft);margin-top:12px !important;max-width:70ch}

/* Finał */
.zi-final{background:linear-gradient(180deg,var(--zi-bg),#0B1018)}
.zi-final .zi-lead{margin-top:16px}
.zi-contact{color:var(--zi-soft);font-size:.95rem;margin-top:26px !important}
.zi-contact a{color:var(--zi-green);text-decoration:none}

@media (max-width:980px){
  .zi-hero-in{grid-template-columns:1fr;gap:32px}
  .zi-logo{margin-inline:auto}
}
@media (max-width:860px){
  .zi-two{grid-template-columns:1fr}
  .zi-reviews{grid-template-columns:1fr}
  .zi-term header{grid-template-columns:auto 1fr;row-gap:14px}
  .zi-term header .zi-badge{grid-column:1/-1;justify-self:start}
  .zi-timeline li{grid-template-columns:90px 1fr;gap:12px;padding:16px 18px}
  .zi-play{width:68px;height:68px;margin:-34px 0 0 -34px}
  .zi-play::after{border-width:12px 0 12px 20px;margin-left:5px}
}
@media (prefers-reduced-motion:reduce){ .zi .zi-btn{transition:none} }

/* Galeria z poprzednich edycji */
.zi-gal{margin-top:26px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.zi-gal-item{display:block;border-radius:14px;overflow:hidden;background:var(--zi-panel);border:1px solid var(--zi-line);aspect-ratio:4/3}
.zi-gal-item.is-big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.zi-gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.zi-gal-item:hover img{transform:scale(1.04)}
.zi-lb{position:fixed;inset:0;z-index:99999;background:rgba(6,9,14,.94);display:flex;align-items:center;justify-content:center;padding:24px}
.zi-lb img{max-width:min(1200px,94vw);max-height:90vh;width:auto;height:auto;border-radius:12px}
.zi-lb-close{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer}
@media (max-width:760px){
  .zi-gal{grid-template-columns:repeat(2,1fr)}
  .zi-gal-item.is-big{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
}

/* Opinie: źródło + zrzut ekranu */
.zi-rev-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.zi-src{font:600 .78rem/1 var(--zi-body);letter-spacing:.04em;padding:7px 12px;border-radius:999px;background:var(--zi-panel2);color:var(--zi-soft);border:1px solid var(--zi-line);text-decoration:none;white-space:nowrap}
a.zi-src:hover{border-color:var(--zi-green);color:var(--zi-green)}
.zi-src--google{color:#8AB4F8;border-color:rgba(138,180,248,.35)}
.zi-src--facebook{color:#8FB6FF;border-color:rgba(143,182,255,.35)}
.zi-src--instagram{color:#F09BC8;border-color:rgba(240,155,200,.35)}
.zi-rev-shot{position:relative;display:block;border-radius:12px;overflow:hidden;border:1px solid var(--zi-line);background:#fff}
.zi-rev-shot img{width:100%;height:auto;display:block}
.zi-rev-shot span{position:absolute;right:10px;bottom:10px;background:rgba(14,17,23,.86);color:#fff;font:600 .78rem/1 var(--zi-body);padding:8px 12px;border-radius:999px}
.zi-rev-shot:hover span{background:var(--zi-green);color:#08111A}

/* Aftermovie: kilka filmów */
.zi-films{margin-top:26px;display:grid;gap:20px}
.zi-films.is-multi{grid-template-columns:repeat(2,1fr)}
.zi-film{margin:0}
.zi-film .zi-yt{margin-top:0}
.zi-film figcaption{margin-top:12px;color:var(--zi-soft);font-size:.95rem}
.zi-films.is-multi .zi-play{width:64px;height:64px;margin:-32px 0 0 -32px}
.zi-films.is-multi .zi-play::after{border-width:11px 0 11px 18px;margin-left:5px}
@media (max-width:760px){ .zi-films.is-multi{grid-template-columns:1fr} }
