/* EROR4X4 — system zapisów, część publiczna
   Tokeny przeniesione 1:1 z kanwy projektowej (EROR4X4 Events - uczestnik). */

:root{
  --bg:#0B0B0B;
  --surface:#151515;
  --surface-2:#1B1B1B;
  --surface-3:#2A2A2A;

  --line:#2E2E2E;
  --line-strong:#3A3A3A;
  --line-muted:#4A463F;
  --line-faint:#222;

  --text:#F4F2ED;
  --text-2:#D6D1C6;
  --muted:#9A958B;
  --muted-2:#6E6A62;

  --gold:#D3A21C;
  --gold-bg:#211D0F;
  --green:#8FD08A;
  --orange:#E08A2E;

  --font-heading:var(--font-body);
  --font-display:'IBM Plex Sans',system-ui,sans-serif;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:var(--font-body);

  --pad:16px;           /* gutter mobile */
  --maxw:1280px;
}

@media (min-width:900px){ :root{ --pad:40px; } }

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.5;
  overflow-x:hidden;
}

a{ color:var(--gold); text-decoration:none; }
a:hover{ color:#fff; }

img{ max-width:100%; display:block; }

input,select,textarea,button{ font-family:var(--font-body); font-size:16px; }
input::placeholder{ color:var(--muted); }

:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---------- typografia ---------- */

.h1,.h2,.h3,.h4{
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  margin:0;
  line-height:1;
  text-wrap:balance;
}
.h1{ font-size:clamp(27px,7vw,55px); line-height:.94; }
.h2{ font-size:clamp(22px,3.4vw,32px); }
.h3{ font-size:clamp(19px,2.4vw,23px); line-height:1.02; }
.h4{ font-size:clamp(17px,1.9vw,21px); letter-spacing:.03em; }

.eyebrow{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.lead{ color:var(--text-2); font-size:clamp(15px,1.7vw,19px); }
.muted{ color:var(--muted); }
.mono{ font-family:var(--font-mono); }
.prose{ color:var(--text-2); font-size:16px; line-height:1.65; max-width:62ch; text-wrap:pretty; margin:0; }

/* ---------- layout ---------- */

.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:clamp(26px,4vw,44px); }
.stack{ display:flex; flex-direction:column; gap:22px; }
.stack-lg{ display:flex; flex-direction:column; gap:30px; }

/* ---------- header / nawigacja ---------- */

.site-header{
  background:var(--bg);
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
}
.site-header__inner{
  max-width:var(--maxw); margin-inline:auto;
  padding:14px var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{ display:flex; align-items:center; gap:10px; color:var(--text); }
.brand:hover{ color:var(--text); }
.brand img{ height:36px; width:auto; }
.brand span{
  font-family:var(--font-display); font-weight:800; font-size:18px;
  text-transform:uppercase; letter-spacing:.04em;
}
@media (min-width:900px){
  .site-header__inner{ padding:16px var(--pad); }
  .brand img{ height:46px; }
  .brand span{ font-size:16px; }
}

.nav-toggle{
  background:none; border:0; padding:6px; cursor:pointer;
  display:flex; flex-direction:column; gap:4px;
}
.nav-toggle span{ width:22px; height:2px; background:var(--text); display:block; }
@media (min-width:900px){ .nav-toggle{ display:none; } }

.nav{
  display:flex; gap:28px;
  font-family:var(--font-display); font-size:17px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
}
.nav a{ color:var(--muted); padding-bottom:2px; border-bottom:2px solid transparent; }
.nav a:hover{ color:var(--text); }
.nav a[aria-current="page"]{ color:var(--text); border-bottom-color:var(--gold); }

@media (max-width:899px){
  .nav{
    display:none;
    position:absolute; left:0; right:0; top:100%;
    flex-direction:column; gap:0;
    background:var(--bg); border-bottom:1px solid var(--line);
  }
  .nav[data-open="true"]{ display:flex; }
  .nav a{ padding:15px var(--pad); border-bottom:1px solid var(--line); }
  .nav a[aria-current="page"]{ border-bottom-color:var(--line); color:var(--gold); }
}

.back-link{
  font-family:var(--font-display); font-size:17px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);
}
.back-link:hover{ color:var(--text); }

/* ---------- hero ---------- */

.hero{
  position:relative;
  min-height:300px;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  display:flex; align-items:flex-end;
  padding:18px var(--pad);
}
.hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(11,11,11,.15),rgba(11,11,11,.95));
}
.hero__inner{ position:relative; z-index:1; width:100%; }
.hero--list{ min-height:230px; }
.hero--event{ min-height:300px; }
@media (min-width:900px){
  .hero{ padding:44px var(--pad); }
  .hero--list{ min-height:280px; }
  /* Stała wysokość, nie min-height — inaczej wydarzenie z długim tytułem
     dostaje wyższe zdjęcie niż pozostałe. */
  .hero--event{ height:420px; min-height:0; }
  /* Tytuł skaluje się tak, żeby zmieścić się w tej wysokości także wtedy,
     gdy zawija się na dwie linie. */
  .hero--event .h1{ font-size:clamp(30px,3.6vw,46px); }
  .hero--event::after{
    background:linear-gradient(180deg,rgba(11,11,11,.2) 0%,rgba(11,11,11,.55) 45%,rgba(11,11,11,.95) 100%);
  }
}
.hero__row{ display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap; }
/* Lewa kolumna kurczy się zamiast rozpychać wiersz — inaczej długi tytuł
   spycha panel z ceną pod spód i hero puchnie. */
.hero__row > :first-child{ flex:1 1 0; min-width:0; }
.hero__row > .buybox{ flex:0 0 300px; }
.hero__meta{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:12px; color:var(--text-2); font-size:clamp(14.5px,1.6vw,18px); }
.hero__meta .sep{ color:var(--muted); }

.hero__back{
  position:absolute; top:14px; left:var(--pad); z-index:2;
  width:34px; height:34px;
  border:1px solid var(--line-muted); background:rgba(11,11,11,.6);
  display:flex; align-items:center; justify-content:center;
  color:var(--text); font-size:16px;
}
.hero__back:hover{ color:var(--text); border-color:var(--gold); }
@media (min-width:900px){ .hero__back{ display:none; } }

/* ---------- odznaki / statusy ---------- */

.badge{
  display:inline-block;
  font-family:var(--font-mono); font-size:9px; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase;
  padding:4px 8px;
  background:var(--line-strong); color:var(--text-2);
}
@media (min-width:900px){ .badge{ font-size:10px; padding:5px 9px; } }
.badge--gold{ background:var(--gold); color:var(--surface); }
.badge--light{ background:var(--text); color:var(--surface); }
.badge--orange{ background:var(--orange); color:var(--surface); }
.badge--outline{ background:transparent; border:1px solid var(--line-muted); color:var(--text-2); }

.status{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--muted); }
.status::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; flex:none; }
@media (min-width:900px){ .status{ font-size:13px; } .status::before{ width:8px; height:8px; } }
.status--open{ color:var(--green); }
.status--last{ color:var(--gold); }
.status--soon{ color:var(--muted); }
.status--full{ color:var(--orange); }

/* ---------- pasek miejsc ---------- */

.progress{ height:6px; background:var(--surface-3); overflow:hidden; }
.progress > span{ display:block; height:100%; background:var(--gold); }
.progress-note{ font-family:var(--font-mono); font-size:11px; color:var(--muted); margin-top:6px; }

/* ---------- przyciski ---------- */

.btn{
  display:block; width:100%;
  border:0; cursor:pointer;
  text-align:center;
  padding:15px;
  font-family:var(--font-display); font-weight:800;
  font-size:18px; text-transform:uppercase; letter-spacing:.05em;
  background:var(--gold); color:var(--surface);
  transition:filter .15s ease;
}
.btn:hover{ filter:brightness(1.1); color:var(--surface); }
.btn:disabled{ opacity:.5; cursor:not-allowed; filter:none; }

.btn--ghost{
  background:transparent; color:var(--text-2);
  border:1px solid var(--line-strong);
  font-weight:600; font-size:17px;
}
.btn--ghost:hover{ color:var(--text); border-color:var(--line-muted); }

.btn--outline{
  background:transparent; color:var(--gold);
  border:2px solid var(--gold);
  font-size:20px; letter-spacing:.03em; padding:17px;
}
.btn--outline:hover{ background:var(--gold); color:var(--surface); }

.btn--lg{ padding:19px; font-size:clamp(16px,2vw,21px); letter-spacing:.03em; }
.btn--inline{ width:auto; display:inline-block; }

/* ---------- karty wydarzeń ---------- */

.card-grid{ display:grid; gap:18px; grid-template-columns:1fr; }
@media (min-width:900px){ .card-grid{ grid-template-columns:1fr 1fr; gap:26px; } }

.card{
  background:var(--surface-2);
  border:1px solid var(--line);
  display:flex; flex-direction:column;
  color:inherit;
}
a.card:hover{ color:inherit; border-color:var(--line-muted); }

/* Jeden format kadru dla wszystkich kart — inaczej dolne krawędzie zdjęć
   w jednym rzędzie nie schodzą się ze sobą. */
.card__media{
  position:relative;
  aspect-ratio:2/1;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  background-color:var(--surface-3);
  flex:none;
}
.card__media .badge{ position:absolute; top:12px; left:12px; }
@media (min-width:900px){ .card__media .badge{ top:14px; left:14px; } }

.card__body{ padding:16px 16px 18px; display:flex; flex-direction:column; flex:1; }
@media (min-width:900px){ .card__body{ padding:22px 24px 24px; } }
.card__org{ color:var(--muted); font-size:14px; margin-top:4px; }
.card__meta{ color:var(--text-2); font-size:14px; margin-top:8px; display:flex; flex-wrap:wrap; gap:6px 22px; }
@media (min-width:900px){ .card__meta{ font-size:15px; margin-top:16px; } }
.card__meta .sep{ color:var(--muted); }

.card__foot{
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  margin-top:14px; padding-top:14px; border-top:1px solid var(--line);
}
@media (min-width:900px){ .card__foot{ margin-top:20px; padding-top:18px; } }

.card__row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-top:12px; font-size:14px; color:var(--muted);
}

.price{ font-family:var(--font-display); font-weight:800; font-size:18px; line-height:1; }
@media (min-width:900px){ .price{ font-size:22px; } }
.price__unit{
  font-family:var(--font-mono); font-size:9px; color:var(--muted);
  letter-spacing:.08em; text-transform:uppercase;
}
@media (min-width:900px){ .price__unit{ font-size:10px; } }

.card .btn{ margin-top:14px; }
@media (min-width:900px){ .card .btn{ margin-top:20px; } }
.card__seats{ margin-top:14px; }
.card__seats--empty{ visibility:hidden; }
.card__spacer{ flex:1; min-height:8px; }

/* ---------- pasek faktów ---------- */

.factbar{
  display:grid; grid-template-columns:1fr 1fr;
  background:var(--surface-2);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.factbar > div{ padding:14px 16px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.factbar > div:nth-child(2n){ border-right:0; }
.factbar > div:nth-last-child(-n+2){ border-bottom:0; }
.factbar dt{ font-family:var(--font-mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.factbar dd{ margin:3px 0 0; font-size:15px; }
@media (min-width:900px){
  .factbar{ grid-template-columns:repeat(4,1fr); }
  .factbar > div{ padding:20px 22px; border-bottom:0; }
  .factbar > div:nth-child(2n){ border-right:1px solid var(--line); }
  .factbar > div:last-child{ border-right:0; }
  .factbar dt{ font-size:10px; }
  .factbar dd{ font-size:16px; margin-top:5px; }
}

.seatbar{
  display:flex; align-items:center; gap:12px;
  padding:14px var(--pad);
  border-bottom:1px solid var(--line);
}
.seatbar .progress{ flex:1; }
@media (min-width:900px){ .seatbar{ display:none; } }
.seatbar span:last-child{ font-family:var(--font-mono); font-size:12px; color:var(--text-2); }

/* ---------- treść wydarzenia ---------- */

.event-body{ display:grid; grid-template-columns:1fr; gap:30px; padding-block:clamp(20px,3vw,40px); }
.event-body .prose{ white-space:pre-wrap; }
@media (min-width:900px){ .event-body{ grid-template-columns:1fr 340px; gap:40px; } }

.timeline{ display:flex; flex-direction:column; margin-top:14px; }
.timeline div{
  display:grid; grid-template-columns:62px 1fr; gap:18px;
  padding:11px 0; border-top:1px solid var(--line);
}
.timeline div:last-child{ border-bottom:1px solid var(--line); }
.timeline dt{ font-family:var(--font-mono); color:var(--gold); font-size:14px; }
.timeline dd{ margin:0; font-size:16px; }
@media (min-width:900px){ .timeline div{ grid-template-columns:76px 1fr; } }

/* ---------- akordeon ---------- */

.accordion{ display:flex; flex-direction:column; gap:1px; margin-top:14px; }
.accordion__item{ background:var(--surface-2); border:1px solid var(--line); }
.accordion__btn{
  width:100%; background:none; border:0; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:15px 16px; text-align:left;
  color:var(--text); font-size:16px;
}
@media (min-width:900px){ .accordion__btn{ padding:16px 18px; font-size:17px; } }
.accordion__btn::after{ content:"+"; color:var(--gold); font-size:19px; line-height:1; flex:none; }
.accordion__btn[aria-expanded="true"]::after{ content:"\2212"; }
.accordion__panel{ padding:0 16px 16px; }
@media (min-width:900px){ .accordion__panel{ padding:0 18px 18px; } }
.accordion__panel[hidden]{ display:none; }

.two-col{ display:grid; grid-template-columns:1fr; gap:20px; margin-top:4px; font-size:15px; color:var(--text-2); }
@media (min-width:600px){ .two-col{ grid-template-columns:1fr 1fr; } }
.checklist{ margin:0; padding:0; list-style:none; }
.checklist li{ padding:2px 0; }
.checklist li::before{ content:"\2713\00a0"; color:var(--gold); }

/* ---------- panel boczny ---------- */

.sidebar{ display:flex; flex-direction:column; gap:20px; }
.sidecard{ background:var(--surface-2); border:1px solid var(--line); padding:20px; }
.sidecard--plain{ background:transparent; }
.sidecard__list{ display:flex; flex-direction:column; gap:8px; margin-top:12px; font-size:14.5px; color:var(--text-2); }
.sidecard__list > div{ display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); padding-bottom:8px; }
.sidecard__list > div:last-child{ border-bottom:0; padding-bottom:0; }
.sidecard__list .mono{ color:var(--muted); }

.buybox{
  background:var(--surface); border:1px solid var(--line-strong);
  padding:22px 24px; min-width:300px;
}
.buybox__price{ display:flex; align-items:baseline; gap:10px; margin-top:4px; }
.buybox__price strong{ font-family:var(--font-display); font-weight:800; font-size:33px; line-height:1; }
.buybox__price s{ color:var(--muted); font-size:18px; }
.buybox__note{ color:var(--gold); font-size:13px; margin-top:2px; }
.buybox .btn{ margin-top:16px; font-size:16px; letter-spacing:.04em; padding:17px; }
.reassure{ display:flex; flex-direction:column; gap:5px; margin-top:14px; font-size:12.5px; color:var(--muted); }
.reassure li{ list-style:none; }
.reassure::before{ content:none; }
ul.reassure{ margin:14px 0 0; padding:0; }
ul.reassure li::before{ content:"\2713\00a0"; }

@media (max-width:899px){ .buybox{ display:none; } }
@media (min-width:900px){ .reassure--mobile{ display:none; } }

/* ---------- sticky CTA (mobile) ---------- */

.sticky-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:40;
  background:var(--bg); border-top:1px solid var(--line);
  padding:12px var(--pad);
  padding-bottom:calc(12px + env(safe-area-inset-bottom));
  display:flex; align-items:center; gap:14px;
}
.sticky-cta .btn{ flex:1; width:auto; padding:16px; font-size:19px; letter-spacing:.04em; }
.sticky-cta .price{ font-size:19px; }
body.has-sticky{ padding-bottom:96px; }
@media (min-width:900px){ .sticky-cta{ display:none; } body.has-sticky{ padding-bottom:0; } }

/* ---------- formularz ---------- */

.form-header{
  background:var(--bg); border-bottom:1px solid var(--line);
  padding:16px var(--pad);
  display:flex; align-items:center; gap:12px;
}
.form-header__title{ font-family:var(--font-display); font-weight:800; font-size:20px; text-transform:uppercase; line-height:1; }
.form-header__sub{ color:var(--muted); font-size:12.5px; }

.form-shell{ max-width:640px; margin-inline:auto; padding:18px var(--pad) 40px; display:flex; flex-direction:column; gap:24px; }

.field{ display:flex; flex-direction:column; gap:6px; }
.field > span{ font-size:13px; color:var(--muted); }
.field input,.field select,.field textarea{
  background:var(--surface-2); border:1px solid var(--line-strong);
  color:var(--text); padding:14px; outline:none; width:100%;
}
.field input:focus,.field select:focus{ border-color:var(--gold); }
.field input[type="text"].upper{ text-transform:uppercase; }
.field__hint{ font-size:12.5px; color:var(--muted); }
.field__error{ font-size:12.5px; color:var(--orange); }
.field input[aria-invalid="true"]{ border-color:var(--orange); }

.field-row{ display:flex; gap:10px; }
.field-row .field{ flex:1; min-width:0; }

.fieldset{ border:0; margin:0; padding:0; }
.fieldset__list{ display:flex; flex-direction:column; gap:8px; margin-top:10px; }

/* karta wyboru klasy */
.radio-card{
  display:flex; gap:12px; align-items:flex-start;
  border:1px solid var(--line); background:var(--surface-2);
  padding:14px 15px; cursor:pointer;
}
.radio-card input{ position:absolute; opacity:0; pointer-events:none; }
.radio-card__dot{
  width:20px; height:20px; border-radius:50%;
  border:2px solid var(--muted); flex:none; margin-top:2px;
  display:flex; align-items:center; justify-content:center;
}
.radio-card__dot::after{ content:""; width:10px; height:10px; border-radius:50%; background:transparent; }
.radio-card__name{ font-family:var(--font-display); font-weight:800; font-size:19px; text-transform:uppercase; }
.radio-card__desc{ color:var(--muted); font-size:13px; }
.radio-card__price{ font-family:var(--font-display); font-weight:800; font-size:19px; }
.radio-card > div{ flex:1; min-width:0; }

.radio-card:has(input:checked){ border:2px solid var(--gold); background:var(--gold-bg); padding:13px 14px; }
.radio-card:has(input:checked) .radio-card__dot{ border-color:var(--gold); }
.radio-card:has(input:checked) .radio-card__dot::after{ background:var(--gold); }
.radio-card:has(input:checked) .radio-card__desc{ color:#C9C3B5; }
.radio-card:has(input:disabled){ opacity:.55; cursor:not-allowed; }
.radio-card:has(input:disabled) .radio-card__dot{ border-color:var(--line-muted); }
.radio-card:has(input:focus-visible){ outline:2px solid var(--gold); outline-offset:2px; }

/* licznik osób */
.stepper{
  display:flex; align-items:center; justify-content:space-between;
  background:var(--surface-2); border:1px solid var(--line);
  padding:10px 12px;
}
.stepper__label{ font-size:16px; }
.stepper__ctrl{ display:flex; align-items:center; gap:14px; }
.stepper button{
  width:44px; height:44px; flex:none;
  background:transparent; border:1px solid var(--line-muted); color:var(--text);
  font-size:22px; line-height:1; cursor:pointer;
}
.stepper button.plus{ background:var(--gold); border-color:var(--gold); color:var(--surface); }
.stepper button:disabled{ opacity:.4; cursor:not-allowed; }
.stepper output{ font-family:var(--font-display); font-weight:800; font-size:16px; min-width:20px; text-align:center; }

/* ---------- podsumowanie / płatność ---------- */

.summary{ background:var(--surface-2); border:1px solid var(--line); padding:16px; }
.summary__rows{ display:flex; flex-direction:column; gap:9px; margin-top:12px; font-size:15px; }
.summary__rows > div{ display:flex; justify-content:space-between; gap:12px; }
.summary__rows dt{ color:var(--muted); }
.summary__rows dd{ margin:0; text-align:right; }
.summary__rows .discount{ color:var(--green); }
.summary__rows .discount dt{ color:var(--green); }
.summary__total{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin-top:14px; padding-top:14px; border-top:1px solid var(--line-strong);
}
.summary__total dt{ font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.summary__total dd{ margin:0; font-family:var(--font-display); font-weight:800; font-size:26px; line-height:1; }

.promo__toggle{
  background:none; border:0; padding:0; cursor:pointer;
  font-size:14px; color:var(--gold); font-family:var(--font-body);
  border-bottom:1px dashed var(--line-muted); padding-bottom:2px;
}
.promo__row{ display:flex; gap:8px; margin-top:10px; }
.promo__row input{
  flex:1; min-width:0; background:var(--surface-2); border:1px solid var(--line-strong);
  color:var(--text); padding:14px; outline:none; text-transform:uppercase;
}
.promo__row button{
  border:1px solid var(--line-muted); background:transparent; color:var(--text);
  padding:14px 18px; cursor:pointer;
  font-family:var(--font-display); font-weight:600; font-size:17px; text-transform:uppercase;
}
.promo__msg{ font-size:13px; margin-top:8px; }
.promo__msg.ok{ color:var(--green); }
.promo__msg.err{ color:var(--orange); }

.consent{ display:flex; gap:12px; align-items:flex-start; cursor:pointer; }
.consent input{ position:absolute; opacity:0; pointer-events:none; }
.consent__box{
  width:24px; height:24px; flex:none;
  border:2px solid var(--muted);
  display:flex; align-items:center; justify-content:center;
  font-size:15px; color:transparent;
}
.consent__box::after{ content:"\2713"; }
.consent:has(input:checked) .consent__box{ border-color:var(--gold); background:var(--gold); color:var(--surface); }
.consent:has(input:focus-visible) .consent__box{ outline:2px solid var(--gold); outline-offset:2px; }
.consent span:last-child{ font-size:14.5px; line-height:1.5; }
.req{ color:var(--gold); }

.legal{ font-size:13px; color:var(--muted); line-height:1.55; }

.paymethods{
  display:flex; align-items:center; justify-content:center; gap:14px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
  color:var(--muted); text-transform:uppercase;
}
.paymethods .sep{ color:var(--line-muted); }

.helpline{
  text-align:center; font-size:13px; color:var(--muted);
  border-top:1px solid var(--line); padding-top:16px;
}
.helpline a{ color:var(--text-2); font-family:var(--font-mono); }

/* ---------- stany końcowe ---------- */

.success-head{ background:var(--gold); color:var(--surface); padding:30px var(--pad) 26px; }
.success-head__mark{
  width:56px; height:56px; border:3px solid var(--surface); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:30px;
}
.success-head h1{ margin:16px 0 0; font-family:var(--font-display); font-weight:800;
  font-size:32px; line-height:.98; text-transform:uppercase; }
.success-head p{ margin:6px 0 0; font-size:17px; font-weight:500; }

.statbox{ display:flex; gap:12px; }
.statbox > div{ flex:1; border:1px solid var(--line); padding:14px; }
.statbox dt{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.statbox dd{ margin:0; font-family:var(--font-display); font-weight:800; font-size:24px; line-height:1.1; }

.notebox{ background:var(--surface-2); border:1px solid var(--line); padding:15px; font-size:14.5px; line-height:1.55; }
.notebox--warn{ border-left:4px solid var(--orange); font-size:15px; line-height:1.6; }

.error-mark{
  width:52px; height:52px; border:3px solid var(--orange); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:26px; color:var(--orange);
}
.countdown{
  display:flex; align-items:center; gap:10px; margin-top:14px;
  background:var(--surface-2); border:1px solid var(--line-strong); padding:14px 16px;
}
.countdown time{ font-family:var(--font-mono); font-size:26px; color:var(--gold); }
.countdown span{ font-size:13.5px; color:var(--muted); }

.crew-list{ display:flex; flex-direction:column; }
.crew-list li{ display:flex; gap:14px; align-items:center; padding:14px var(--pad); border-bottom:1px solid var(--line-faint); list-style:none; }
.crew-list{ margin:0; padding:0; }
.crew-list .num{ font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--gold); min-width:34px; }
.crew-list .name{ font-size:16px; }
.crew-list .car{ color:var(--muted); font-size:13.5px; }

/* ---------- stopka ---------- */

.site-footer{
  border-top:1px solid var(--line);
  margin-top:clamp(40px,6vw,64px);
  padding:28px var(--pad) 40px;
  color:var(--muted); font-size:13.5px;
}
.site-footer__inner{ max-width:var(--maxw); margin-inline:auto; display:grid; grid-template-columns:minmax(0,1fr); gap:28px 32px; align-items:start; }
.site-footer__col{ min-width:0; overflow-wrap:anywhere; }
.site-footer__col .eyebrow{ margin-bottom:8px; }
.site-footer__col a{ display:inline-block; }
@media(min-width:600px){ .site-footer__inner{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1100px){ .site-footer__inner{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.site-footer .legal-links{ max-width:var(--maxw); margin:28px auto 0; padding:18px 0 0; border-top:1px solid var(--line); justify-content:flex-start; }
.site-footer a{ color:var(--text-2); }
.site-footer a:hover{ color:var(--gold); }

/* ---------- pomocnicze ---------- */

.is-hidden{ display:none !important; }

/* Na mobile powrót zapewnia okrągła strzałka w hero — nagłówkowy link się dubluje i łamie. */
@media (max-width:899px){ .back-link{ display:none; } }

/* ===================== strony treściowe ===================== */

.page-head{
  border-bottom:1px solid var(--line);
  /* padding-block, nie skrót — skrót wyzerowałby padding-inline z .wrap */
  padding-block:clamp(28px,5vw,56px) clamp(20px,3vw,32px);
}
.page-head .h1{ font-size:clamp(30px,6vw,52px); }
.page-head .lead{ margin:12px 0 0; max-width:62ch; }

.content{ display:grid; grid-template-columns:1fr; gap:clamp(26px,4vw,44px); }
@media (min-width:900px){ .content--aside{ grid-template-columns:1fr 320px; gap:48px; } }

.content h2{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(20px,2.6vw,26px); text-transform:uppercase; margin:0 0 12px;
}
.content h3{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(17px,2vw,20px); text-transform:uppercase; margin:0 0 6px;
}
.content p{ color:var(--text-2); font-size:16px; line-height:1.7; margin:0 0 14px; max-width:68ch; text-wrap:pretty; }
.content p:last-child{ margin-bottom:0; }

.rule{ border:0; border-top:1px solid var(--line); margin:clamp(26px,4vw,40px) 0; }

/* wyróżnienia */
.points{ display:grid; grid-template-columns:1fr; gap:1px; margin:18px 0 0; padding:0; list-style:none; }
@media (min-width:700px){ .points{ grid-template-columns:1fr 1fr; } }
.points li{
  background:var(--surface-2); border:1px solid var(--line);
  padding:16px 18px; font-size:15px; color:var(--text-2); line-height:1.55;
}
.points li strong{ color:var(--text); display:block; font-family:var(--font-display);
  font-weight:800; text-transform:uppercase; font-size:15px; margin-bottom:4px; }

/* kafelki oferty */
.tiles{ display:grid; grid-template-columns:1fr; gap:18px; }
@media (min-width:700px){ .tiles{ grid-template-columns:1fr 1fr; } }
@media (min-width:1100px){ .tiles--3{ grid-template-columns:repeat(3,1fr); } }
.tile{ background:var(--surface-2); border:1px solid var(--line); display:flex; flex-direction:column; }
.tile__media{ height:160px; background-size:cover; background-position:center; }
.tile__body{ padding:20px; display:flex; flex-direction:column; flex:1; }
.tile__body p{ font-size:14.5px; margin:8px 0 0; color:var(--muted); }
.tile__foot{ margin-top:auto; padding-top:16px; }

/* zespół */
.team{ display:grid; grid-template-columns:1fr; gap:16px; margin-top:18px; }
@media (min-width:700px){ .team{ grid-template-columns:1fr 1fr; } }
@media (min-width:1100px){ .team{ grid-template-columns:repeat(3,1fr); } }
.team article{ background:var(--surface-2); border:1px solid var(--line); padding:18px 20px; }
.team h3{ margin-bottom:4px; }
.team p{ font-size:14.5px; margin:0; color:var(--muted); line-height:1.6; }

/* partnerzy */
.logos{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:20px; }
@media (min-width:600px){ .logos{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:900px){ .logos{ grid-template-columns:repeat(6,1fr); } }
.logos li{ list-style:none; }
.logos{ padding:0; }
.logos figure{
  margin:0; background:#fff; border:1px solid var(--line);
  aspect-ratio:1; display:flex; align-items:center; justify-content:center; padding:12px;
}
.logos img{ max-width:100%; max-height:100%; object-fit:contain; }
.logos figcaption{
  font-family:var(--font-mono); font-size:10px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); text-align:center; margin-top:6px;
}

/* kontakt */
.contact-card{ background:var(--surface-2); border:1px solid var(--line); padding:22px 24px; }
.contact-card dl{ margin:0; display:flex; flex-direction:column; gap:12px; }
.contact-card dt{ font-family:var(--font-mono); font-size:10px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); }
.contact-card dd{ margin:2px 0 0; font-size:16px; }
.contact-card .big{ font-family:var(--font-display); font-weight:800; font-size:24px; }

.cta-band{
  background:var(--surface-2); border:1px solid var(--line);
  padding:clamp(22px,4vw,32px); display:flex; gap:20px;
  align-items:center; justify-content:space-between; flex-wrap:wrap;
}
.cta-band .btn{ width:auto; }

/* ===================== plan / roadmapa ===================== */

.plan-legend{ display:flex; gap:18px; flex-wrap:wrap; margin-top:16px; font-size:13px; color:var(--muted); }
.plan-legend span{ display:inline-flex; align-items:center; gap:7px; }

.pill{
  display:inline-flex; align-items:center; gap:6px; flex:none;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; padding:4px 9px; white-space:nowrap;
  border:1px solid var(--line-strong); color:var(--muted);
}
.pill::before{ content:"●"; font-size:9px; }
.pill--done{ border-color:#2F4A2F; background:#1E2A1E; color:var(--green); }
.pill--wip{ border-color:var(--tier-border,#6A5A18); background:var(--gold-bg); color:var(--gold); }
.pill--next{ border-color:var(--line-muted); color:var(--text-2); }
.pill--blocked{ border-color:#6A3A3A; background:#2A1E1E; color:#C46A6A; }
.pill--later{ border-color:var(--line); color:var(--muted-2); }

.stage{ margin-top:clamp(26px,4vw,40px); }
.stage__head{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.stage__num{ font-family:var(--font-mono); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); }
.stage__goal{ color:var(--muted); font-size:14.5px; margin:6px 0 0; max-width:70ch; }
.stage__bar{ height:5px; background:var(--surface-3); margin-top:14px; display:flex; }
.stage__bar i{ display:block; height:100%; }
.stage__bar .d{ background:var(--green); }
.stage__bar .w{ background:var(--gold); }

.feat{ display:flex; flex-direction:column; gap:1px; margin-top:14px; }
.feat__row{
  display:grid; grid-template-columns:1fr auto; gap:8px 16px; align-items:start;
  background:var(--surface-2); border:1px solid var(--line); padding:14px 16px;
}
.feat__row > .pill{ grid-row:1; grid-column:2; }
.feat__name{ font-size:15.5px; }
.feat__note{ grid-column:1/-1; color:var(--muted); font-size:13.5px; line-height:1.55; }
@media (min-width:700px){
  .feat__row{ grid-template-columns:minmax(0,22ch) 1fr auto; align-items:center; }
  .feat__name{ grid-column:1; }
  .feat__note{ grid-column:2; }
  .feat__row > .pill{ grid-column:3; }
}

.plan-meta{
  display:flex; gap:24px; flex-wrap:wrap; margin-top:10px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted);
}

/* ===================== strona główna: rozdzielacz ===================== */

/* Na każdym ekranie wysokość wynika z treści, bez rozciągania do viewportu.
   Chowanie pasków telefonu nie zmienia wysokości sekcji ani kadru tła. */
:root{ --header-h:65px; }
@media (min-width:900px){ :root{ --header-h:79px; } }

.home{
  position:relative;
  min-height:0;
  display:flex; flex-direction:column; justify-content:center;
  padding:24px var(--pad);
  overflow:hidden;
}
/* Tablet i komputer: wysokość wynika z treści, z oddechem nad i pod nią.
   Nie rozciągamy sekcji do całego ekranu kosztem widoczności zapisów. */
@media (min-width:600px){
  .home{ min-height:0; padding:clamp(32px,4vw,48px) var(--pad); }
}
@media (min-width:700px){
  .home .home-tile{ min-height:clamp(88px,13svh,120px); }
}

/* karuzela w tle — przenikanie, nie przesuwanie */
.home__slides{ position:absolute; inset:0; z-index:0; }
.home__slides > i{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity 1.4s ease;
}
.home__slides > i[data-on="1"]{ opacity:1; }
.home::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(11,11,11,.72),rgba(11,11,11,.88));
}
@media (prefers-reduced-motion:reduce){
  .home__slides > i{ transition:none; }
}

.home__inner{ position:relative; z-index:2; width:100%; max-width:var(--maxw);
  margin-inline:auto; padding-inline:0; }
.home__title{ font-size:clamp(26px,6.4vw,54px); margin-top:6px; }
.home__lead{ margin:8px 0 0; max-width:56ch; }

/* siatka kafelków — 2×4 na telefonie, 4×2 na komputerze */
.home-tiles{
  list-style:none; margin:clamp(16px,3vw,28px) 0 0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:8px;
}
@media (min-width:700px){ .home-tiles{ grid-template-columns:repeat(4,1fr); gap:14px; } }

.home-tile{
  position:relative; display:flex; align-items:flex-end;
  min-height:74px; padding:12px;
  background:rgba(21,21,21,.78); border:1px solid var(--line-strong);
  color:var(--text);
  background-size:cover; background-position:center;
  transition:border-color .15s ease, transform .15s ease;
}
.home-tile:hover,.home-tile:focus-visible{ color:var(--text); border-color:var(--gold); }
@media (min-width:700px){
  .home-tile{ min-height:150px; padding:16px; }
  .home-tile:hover{ transform:translateY(-2px); }
}
/* Na komputerze kafelek ma zdjęcie; przyciemnienie trzyma czytelność napisu. */
.home-tile::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(11,11,11,.25),rgba(11,11,11,.85));
}
.home-tile__text{ position:relative; z-index:1; }
.home-tile__name{
  display:block; font-family:var(--font-display); font-weight:800;
  font-size:clamp(12.5px,3.1vw,17px); line-height:1.05;
  text-transform:uppercase; letter-spacing:.02em;
}
@media (min-width:700px){ .home-tile__name{ font-size:17px; } }
/* Podgląd pojawia się dopiero tam, gdzie jest miejsce — na telefonie kafelek
   zostaje samą nazwą, inaczej osiem sztuk nie zmieści się w jednym ekranie. */
.home-tile__hint{ display:none; }
@media (min-width:900px){
  .home-tile__hint{
    display:block; margin-top:6px; font-size:13px; color:var(--text-2);
    line-height:1.4; max-height:0; opacity:0; overflow:hidden;
    transition:max-height .2s ease, opacity .2s ease;
  }
  .home-tile:hover .home-tile__hint,
  .home-tile:focus-visible .home-tile__hint{ max-height:80px; opacity:1; }
}

.home__more{
  position:relative; z-index:2; margin:clamp(14px,2.4vw,22px) auto 0;
  max-width:var(--maxw); width:100%;
  display:flex; gap:10px 22px; flex-wrap:wrap; align-items:center;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted);
}

/* ===================== kategoria oferty / trasa ===================== */

.cat-grid{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
}
@media (min-width:700px){ .cat-grid{ grid-template-columns:repeat(4,1fr); gap:16px; } }

.route-list{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:1px; }
.route-list a{
  display:grid; grid-template-columns:1fr auto; gap:6px 16px; align-items:center;
  background:var(--surface-2); border:1px solid var(--line); padding:15px 18px;
  color:var(--text);
}
.route-list a:hover{ border-color:var(--gold); color:var(--text); }
.route-list .route-name{
  font-family:var(--font-display); font-weight:800; font-size:16px;
  text-transform:uppercase; letter-spacing:.02em;
}
.route-list .route-meta{
  grid-column:1/-1; font-family:var(--font-mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
}
@media (min-width:700px){
  .route-list a{ grid-template-columns:minmax(0,26ch) 1fr auto; }
  .route-list .route-meta{ grid-column:2; }
}
.route-list .route-go{ color:var(--gold); font-size:13px; }

.facts{ display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:18px 0 0; padding:0; list-style:none; }
@media (min-width:900px){ .facts{ grid-template-columns:repeat(4,1fr); } }
.facts li{ background:var(--surface-2); border:1px solid var(--line); padding:14px 16px; }
.facts dt{ font-family:var(--font-mono); font-size:10px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); }
.facts dd{ margin:5px 0 0; font-size:16px; color:var(--text); }

/* Miejsce na treść, której jeszcze nie dostaliśmy. Lepsze niż zmyślony opis
   i lepsze niż pusta sekcja, po której nie widać, że czegoś brakuje. */
.todo{
  background:var(--surface-2); border:1px dashed var(--line-muted);
  padding:18px 20px; color:var(--muted); font-size:14.5px; line-height:1.6;
}
.todo strong{ color:var(--text-2); display:block; font-family:var(--font-display);
  font-weight:800; text-transform:uppercase; font-size:14px; margin-bottom:5px; }

/* Galerie tras i kompaktowy katalog wydarzeń. */
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.photo-grid figure{margin:0;min-width:0}.photo-grid img{width:100%;height:auto;aspect-ratio:1.52;object-fit:cover;display:block}
.photo-grid figcaption{font-size:14px;color:var(--muted);padding-top:8px}
.event-filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}
.event-filters label{display:grid;gap:6px;flex:1;min-width:180px;color:var(--text-2)}
.event-filters select{
  appearance:none; -webkit-appearance:none; width:100%; min-width:0; min-height:48px;
  padding:12px 48px 12px 16px; border:1px solid var(--line); border-radius:4px;
  font:inherit; color:var(--text); cursor:pointer;
  background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23c9a52b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;
}
.event-filters select:hover{border-color:var(--gold)}
.event-filters select:focus-visible{border-color:var(--gold)}
@media(forced-colors:active){.event-filters select{appearance:auto;background-image:none}}
.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.event-tile{min-width:0;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line)}
.event-tile>a{display:block;height:100%;color:inherit;text-decoration:none}
/* Format dostarczonych plakatów; zdjęcia o innych proporcjach wypełniają kadr. */
.event-tile img{display:block;width:100%;height:auto;aspect-ratio:1000 / 538;object-fit:cover;object-position:center}
.event-tile__body{padding:16px}.event-tile h2{margin:8px 0}.event-tile p{font-size:14px;color:var(--text-2)}
.event-tile__foot{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;align-items:center}
.event-tile:hover{border-color:var(--gold)}
.slides-toggle{background:transparent;border:1px solid var(--line);color:var(--text);padding:8px 12px;cursor:pointer;font-size:12px}
:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(min-width:1000px){.event-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.event-grid{gap:10px}.event-tile__body{padding:10px}.event-tile .h3{font-size:17px;line-height:1.2}.event-tile .status{font-size:11px}.photo-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.slides-toggle{display:none}}

/* Documents and order review */
.legal-document { max-width: 900px; overflow-wrap: anywhere; }
.legal-document section { margin-top: 2rem; }
.legal-document h2 { font-size: 1.3rem; line-height: 1.4; }
.legal-document p { line-height: 1.7; }
.legal-draft, .legal-todo { border-left: 3px solid var(--gold); padding: 1rem; background: var(--bg-2, #20231c); }
.legal-links { display:flex; flex-wrap:wrap; gap:12px 24px; padding:24px; justify-content:center; }
.summary__rows dd { overflow-wrap:anywhere; min-width:0; }
@media print { .site-header, .site-footer, .nav-toggle { display:none; } .legal-document { max-width:none; color:#000; } .legal-todo, .legal-draft { background:none; } }

/* Shared missing-page and data-failure views. */
.trail-error{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,90px);align-items:center;padding-block:56px}
.trail-error__copy{min-width:0}.trail-error__code{font-family:var(--font-display);font-size:clamp(90px,12vw,168px);line-height:1;color:var(--gold);letter-spacing:-.05em;margin:12px 0}
.trail-error h1{font-family:var(--font-display);font-size:clamp(34px,4.4vw,62px);line-height:1.08;text-transform:uppercase;margin:18px 0}
.trail-error p{color:var(--text-2);max-width:46ch}.trail-error .trail-error__lead{font-size:21px;color:var(--text)}
.trail-error__actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.trail-error .trail-error__note{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.trail-error__photo{position:relative;margin:0;border:1px solid var(--line);transform:rotate(2deg)}
.trail-error__photo img{display:block;width:100%;height:auto;aspect-ratio: .94;object-fit:cover;filter:saturate(.72)}
.trail-error__photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:42px 22px 22px;background:linear-gradient(transparent,rgba(0,0,0,.9));font-family:var(--font-mono);font-size:12px;color:#fff;text-transform:uppercase}
.trail-error__footer{border-top:1px solid var(--line);padding-block:22px;color:var(--muted);font-size:12px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
@media(max-width:700px){.trail-error{grid-template-columns:1fr;padding-block:30px;gap:30px}.trail-error__photo{transform:none}.trail-error__photo img{aspect-ratio:1.35}.trail-error__actions .btn{width:100%}}

/* Wariant po uwagach Łukasza: krój ozdobny tylko w tytule strony głównej. */
/* Ten krój używa zwykłej wagi; syntetyczne pogrubienie zalewa nacięcia. */
.home__title{font-family:'Black Ops One',system-ui,sans-serif;font-weight:400;font-synthesis:none;}

@media(max-width:380px){.event-grid{grid-template-columns:minmax(0,1fr)}}

.event-body .rich-description{white-space:normal;overflow-wrap:anywhere;}
.rich-description p{margin:0 0 1em;}
.rich-description ul,.rich-description ol{padding-left:1.5em;margin:0 0 1em;}
.rich-description ul{list-style:disc;}
.rich-description ol{list-style:decimal;}
.rich-description > :last-child{margin-bottom:0;}

/* Event typography: readable copy and a hero that grows with long names. */
.hero--event .h1{font-size:clamp(30px,7vw,36px);line-height:1.08;overflow-wrap:anywhere;text-wrap:balance}
.hero--event .hero__meta{font-size:16px;line-height:1.5}
#event-root .prose{font-size:16px!important}
@media(min-width:900px){
  .hero--event{height:auto;min-height:420px}
  .hero--event .h1{font-size:clamp(48px,4vw,56px)}
  .hero--event .hero__meta{font-size:18px}
  #event-root .prose{font-size:18px!important}
}
