/* Section divider — reusable (D-W20-008 / D-W20-010) */
.ax-divider {
  background: var(--ax-paper);
}

/* C — divider reads as the top of the following section */
.ax-divider:has(+ .ax-on-ink),
.ax-divider:has(+ .ax-section--dark) {
  background: var(--ax-ink);
}

.ax-divider:has(+ .ax-on-sand),
.ax-divider:has(+ .ax-files) {
  background: var(--ax-sand);
}

/* Explicit CMS tone wins over :has inheritance */
.ax-divider--sand {
  background: var(--ax-sand);
}

/* FAQ używa jaśniejszego piasku niż reszta sekcji piaskowych. Separator ma
   czytać się jako góra sekcji, więc na tej jednej parze dobieramy odcień
   dokładnie — inaczej między etykietą a nagłówkiem widać szew. */
.ax-divider:has(+ .ax-faq--sand),
.ax-divider--sand:has(+ .ax-faq--sand) {
  background: var(--ax-sand-light);
}

.ax-divider--ink {
  background: var(--ax-ink);
}

.ax-divider__inner {
  max-width: var(--ax-maxw);
  margin: 0 auto;
  padding: 0 var(--ax-gutter);
}

.ax-divider__row {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.6vw, 22px);
  padding: var(--ax-div-pad-top) 0 var(--ax-div-pad-bottom);
}

.ax-divider__rule {
  flex: 0 0 clamp(40px, 6vw, 120px);
  height: 1px;
  background: rgba(53, 59, 102, 0.22);
  display: block;
}

.ax-divider--ink .ax-divider__rule,
.ax-divider:has(+ .ax-on-ink):not(.ax-divider--sand) .ax-divider__rule,
.ax-divider:has(+ .ax-section--dark):not(.ax-divider--sand) .ax-divider__rule {
  background: rgba(244, 241, 235, 0.22);
}

.ax-divider__rule--grow {
  flex: 1;
}

.ax-divider__mark {
  width: 11px;
  height: 8.8px;
  flex: 0 0 auto;
  display: block;
  fill: var(--ax-steel);
}

.ax-divider__mark--muted {
  width: 7px;
  height: 5.6px;
  fill: rgba(53, 59, 102, 0.32);
}

.ax-divider--ink .ax-divider__mark--muted,
.ax-divider:has(+ .ax-on-ink):not(.ax-divider--sand) .ax-divider__mark--muted,
.ax-divider:has(+ .ax-section--dark):not(.ax-divider--sand) .ax-divider__mark--muted {
  fill: rgba(244, 241, 235, 0.32);
}

.ax-divider__label {
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(53, 59, 102, 0.45);
  white-space: nowrap;
}

.ax-divider--ink .ax-divider__label,
.ax-divider:has(+ .ax-on-ink):not(.ax-divider--sand) .ax-divider__label,
.ax-divider:has(+ .ax-section--dark):not(.ax-divider--sand) .ax-divider__label {
  color: rgba(244, 241, 235, 0.45);
}

/*
 * B — one owner of top air: after a standalone divider the section
 * does not add padding-top (divider --ax-div-pad-* already did).
 * contact-phone hides its preceding divider — keep its own top pad.
 */
.ax-divider + [data-sec]:not(.ax-contact-phone) {
  padding-top: 0;
}

/*
 * B2 — ten sam właściciel dla dolnej strony granicy. Duży krok (--ax-sec-pad-l,
 * 152 px) jest rezerwą na koniec strony przed stopką. Sekcje, które go używały,
 * a stały nad belką, dawały granicę 216 px, gdy cała reszta strony ma 166 px -
 * i to była przyczyna kolejnych zgłoszeń o pustej przestrzeni (nagrody, zarząd,
 * liczby, siatka realizacji). Podmieniamy więc token na zwykły krok.
 *
 * Podmiana tokenu, a nie samego padding-bottom, jest tu celowa: bloki z zerowym
 * albo skróconym dołem (hero, pas wideo, mapa, cytat z tight_bottom) nigdy po
 * ten token nie sięgają, więc reguła ich nie dotyczy i nie doda im pustki.
 * Nowy blok, który policzy dół z --ax-sec-end, dostanie to zachowanie sam.
 */
.ax-main > [data-sec]:has(+ .ax-divider) {
  --ax-sec-end: var(--ax-sec-pad-m);
}

@media (max-width: 900px) {
  .ax-divider__label {
    white-space: normal;
  }

  /*
   * Mapa zaraz pod belką: pełny div-pad + intro zostawiał pusty pas nad H2.
   * Domyka to dolny odstęp - i tylko on, bo górny z pustym pasem nad H2 nic nie
   * robił, a skrócony do 12 px zostawiał belkę mapy dwa razy bliżej krawędzi niż
   * wszystkie pozostałe. Górny wraca więc do wspólnego rytmu sekcji.
   */
  .ax-divider:has(+ .ax-loc-map) .ax-divider__row {
    padding-bottom: 4px;
  }
}
