/* ============================================================
   10 — stopka i strony pomocnicze (błędy, treść zwykła)
   ============================================================ */

/* --- pas z logo organizatora i partnerów --------------------- */

.ai-loga {
  background: var(--ai-bg);
  border-top: 1px solid var(--ai-line);
}

.ai-loga__in {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ai-s5) var(--ai-s7);
  align-items: flex-start;
  padding-block: var(--ai-s6);
}

.ai-loga__blok h2 {
  margin: 0 0 var(--ai-s3);
  font-family: var(--ai-font-body);
  font-size: var(--ai-size-label);
  font-weight: 600;
  letter-spacing: var(--ai-ls-label);
  text-transform: uppercase;
  color: var(--ai-rose);
}

.ai-loga__znaki {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ai-s5);
  margin: 0;
}

.ai-loga__znaki img { width: auto; max-width: 240px; max-height: 88px; height: auto; }

/* Znak w dwóch wersjach: ciemny nadruk na jasnym tle, jasny na ciemnym.
   Decyduje `data-motyw`, a nie `prefers-color-scheme` — inaczej ręczny
   przełącznik motywu nie zmieniałby logo. Gdy druga wersja nie została wgrana,
   `.ai-loga__znak--jasny` w ogóle nie powstaje i znak zostaje widoczny zawsze. */
.ai-loga__znak--ciemny { display: none; }
[data-motyw="ciemny"] .ai-loga__znak--jasny { display: none; }
[data-motyw="ciemny"] .ai-loga__znak--ciemny { display: inline; }

/* Znak, którego mamy tylko w jasnym nadruku. W wyglądzie jasnym dostaje granatową
   płytkę, bo inaczej zniknąłby w tle; w ciemnym płytka jest zbędna. */
.ai-loga__znak--na-plytce {
  background: var(--ai-bg-ciemne);
  padding: 12px 18px;
  border-radius: var(--ai-r-md);
  box-sizing: content-box;
}
[data-motyw="ciemny"] .ai-loga__znak--na-plytce { background: none; padding: 0; }
.ai-loga__nazwa { font-weight: 600; color: var(--ai-heading); }

/* Bez marginesu: każda sekcja kończąca stronę ma własny dolny odstęp,
   a sekcja domykająca jest pełnoekranowa i margines robiłby pod nią dziurę. */
.ai-stopka {
  border-top: 1px solid var(--ai-line);
}

.ai-stopka__in {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--ai-s1) var(--ai-s4);
  padding-block: 22px 36px;
  font-size: var(--ai-size-small);
  color: var(--ai-text);
}

/* Organizator, kontakt i dane firmy — trzy kolumny, które na wąskim ekranie
   zwijają się do jednej. Uczestnik ma wiedzieć, z kim zawiera umowę, zanim zapłaci. */

.ai-stopka__organizator {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ai-s5) var(--ai-s4);
  border-top: 1px solid var(--ai-line);
  font-size: var(--ai-size-small);
  line-height: 1.6;
}

.ai-stopka__blok h2 {
  margin: 0 0 var(--ai-s2);
  font-family: var(--ai-font-body);
  font-size: var(--ai-size-label);
  font-weight: 600;
  letter-spacing: var(--ai-ls-label);
  text-transform: uppercase;
  color: var(--ai-rose);
}

.ai-stopka__blok p { margin: 0 0 4px; }
.ai-stopka__blok a { color: var(--ai-text); }
.ai-stopka__blok a:hover { color: var(--ai-heading); }

.ai-stopka__firma { color: var(--ai-heading); }

/* Odstępy pisane z podniesioną specyficznością, bo `95-pasy.css` zeruje
   `padding-block` każdemu dziecku stopki: `.ai-stopka.ai-pas > *`.
   Bez tego selektora blok organizatora przykleja się do wiersza nad linią. */
.ai-stopka.ai-pas > .ai-stopka__in {
  padding-block: 22px 0;
}

.ai-stopka.ai-pas > .ai-stopka__organizator {
  padding-block: var(--ai-s5) var(--ai-s6);
}

.ai-stopka.ai-pas > .ai-stopka__dokumenty {
  padding-bottom: var(--ai-s4);
}

/* Numer konta łamie się na wąskim ekranie zamiast rozpychać stopkę w bok. */
.ai-stopka__konto {
  margin-top: var(--ai-s2);
  overflow-wrap: anywhere;
}

@media (max-width: 800px) {
  .ai-stopka__organizator { grid-template-columns: 1fr; }
}

/* Dokumenty w osobnym wierszu, mniejszym drukiem: mają być osiągalne z każdej
   strony, ale nie konkurować z terminem i miejscem konferencji. */
.ai-stopka__dokumenty {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ai-s1) var(--ai-s4);
  padding-bottom: var(--ai-s4);
  font-size: var(--ai-size-label);
}

.ai-stopka__dokumenty a {
  color: var(--ai-text);
}

.ai-stopka__dokumenty a:hover {
  color: var(--ai-heading);
}

/* --- strona błędu ------------------------------------------- */

.ai-blad {
  padding-block: clamp(64px, 12vw, 140px);
  text-align: center;
}
.ai-blad__kod {
  margin: 0 0 var(--ai-s4);
  font-family: var(--ai-font-body);
  font-size: var(--ai-size-label);
  font-weight: 600;
  letter-spacing: var(--ai-ls-label);
  text-transform: uppercase;
  color: var(--ai-rose);
}
.ai-blad h1 { margin-bottom: var(--ai-s4); }
.ai-blad p { margin-inline: auto; max-width: var(--ai-miara-waska); }
.ai-blad .ai-btn { margin-top: var(--ai-s5); }

/* --- zwykła strona treściowa -------------------------------- */

.ai-tresc { padding-block: var(--ai-s6) var(--ai-s7); }
.ai-tresc h2 { margin-top: var(--ai-s6); margin-bottom: var(--ai-s3); }
.ai-tresc h3 { margin-top: var(--ai-s5); margin-bottom: var(--ai-s2); }
.ai-tresc ul, .ai-tresc ol { max-width: var(--ai-miara); }
