/* ==========================================================================
   Lab Dostępności – system wizualny 2026
   Ładowany po main.css. Kolory wyłącznie z tokenów (tokens.css), każda para
   tekst/tło ma policzony kontrast WCAG 2.2. Cele dotykowe min. 44–48 px.
   ========================================================================== */

:root {
  --layout-max: 1200px;
  --content-max: 760px;
  --ld-section-gap: clamp(4rem, 9vw, 7.5rem);
  --ld-card-pad: clamp(1.5rem, 3vw, 2.5rem);
  --ld-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E");
}

body {
  background: var(--clr-bg);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-weight: 700;
  letter-spacing: -0.015em;
  hyphens: manual;
}
h1 { letter-spacing: -0.025em; }

/* Linki w treści: zawsze podkreślone; na najechanie grubsze podkreślenie
   (sygnał niezależny od koloru – WCAG 1.4.1). */
a {
  text-decoration-thickness: 0.09em;
  text-underline-offset: 0.2em;
}
a:hover {
  color: var(--clr-accent-hover);
  text-decoration-thickness: 0.18em;
}

::selection {
  background: var(--clr-marker);
  color: var(--color-ink);
}

/* Ukryty poza ekranem niezależnie od wysokości (duży tekst, 320 px). */
.skip-link {
  top: 8px;
  transform: translateY(calc(-100% - 3rem));
  max-width: calc(100vw - 16px);
  background: var(--color-ink);
  color: #ffffff;
  border-radius: 12px;
  font-weight: 700;
}
.skip-link:focus {
  top: 8px;
  transform: none;
  outline: 3px solid var(--clr-marker);
  outline-offset: 2px;
}

/* ==========================================================================
   Nagłówek
   ========================================================================== */
.site-header {
  background: var(--clr-bg);
  border-bottom: 1px solid var(--clr-border);
}
.site-header__inner {
  min-height: 5.5rem;
  padding-block: 0.75rem;
  gap: clamp(0.75rem, 2vw, 2rem);
}
.site-logo {
  gap: 0.75rem;
  font-size: 1.05rem;
  letter-spacing: 0.03em;
  max-width: none;
}
.site-logo__mark {
  --clr-text: var(--clr-marker);
  flex: 0 0 auto;
  width: 3rem;
  height: 3rem;
  border-radius: 0.875rem;
  background: var(--color-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.site-logo__mark svg { width: 2.25rem; height: auto; }
.site-logo__text {
  max-width: 9.5rem;
  line-height: 1.1;
}

.primary-nav a,
.primary-nav__button {
  min-height: 3rem;
  padding: 0.6rem 0.9rem;
  border-radius: 12px;
  font-size: 1.0625rem;
  font-weight: 500;
}
.primary-nav a:hover,
.primary-nav__button:hover,
.primary-nav__item.is-current > a,
.primary-nav__item.is-current > .primary-nav__button {
  background: var(--clr-surface);
  border-color: var(--clr-border);
}
.primary-nav a[aria-current="page"],
.primary-nav__item.is-current > .primary-nav__button {
  color: var(--clr-text);
  font-weight: 700;
  text-decoration-color: var(--clr-accent);
}
.primary-nav__chevron {
  transform: none;
  transition: transform 0.15s ease;
}
.primary-nav__item.is-open > .primary-nav__button .primary-nav__chevron {
  transform: rotate(180deg);
}
.primary-nav__dropdown {
  background: var(--color-ink);
  border: 1px solid var(--color-ink-3);
  border-radius: 18px;
  box-shadow: 0 24px 48px rgba(23, 24, 28, 0.22);
  padding: 0.6rem;
  min-width: 16rem;
  width: max-content;
  max-width: min(24rem, calc(100vw - 2rem));
}
.primary-nav__item:nth-last-child(-n+3) > .primary-nav__dropdown {
  left: auto;
  right: 0;
}
.primary-nav__dropdown a {
  color: #f2f1ee;
  min-height: 2.75rem;
  border-radius: 10px;
  white-space: normal;
  width: 100%;
}
.primary-nav__item--mobile-cta a.btn {
  background: var(--clr-accent);
  border: 2px solid var(--clr-accent);
  color: var(--clr-on-accent);
  font-weight: 700;
  justify-content: center;
}
.primary-nav__item--mobile-cta a.btn:hover {
  background: var(--clr-accent-hover);
  border-color: var(--clr-accent-hover);
  color: var(--clr-on-accent);
}
.primary-nav__dropdown a:hover,
.primary-nav__dropdown a[aria-current="page"] {
  background: var(--color-ink-2);
  border-color: var(--color-ink-3);
  color: #ffffff;
}
.primary-nav__dropdown a:focus-visible {
  outline-color: var(--clr-marker);
  box-shadow: 0 0 0 7px var(--color-ink);
}

.site-header__tools {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 0 0 auto;
}
.site-header__cta {
  min-height: 3.25rem;
  padding-inline: 1.4rem;
}

/* Panel „Widok” */
.display-settings { position: relative; }
.display-settings__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding: 0.5rem 0.9rem;
  border: 1.5px solid var(--clr-border-strong);
  border-radius: 12px;
  background: var(--clr-surface);
  color: var(--clr-text);
  font: inherit;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
}
.display-settings__toggle:hover {
  border-color: var(--clr-text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.display-settings__toggle[aria-expanded="true"] {
  background: var(--clr-text);
  border-color: var(--clr-text);
  color: var(--clr-bg);
}
.display-settings__toggle[aria-expanded="true"] svg circle { fill: var(--clr-text); }
.display-settings__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.6rem);
  z-index: 300;
  width: min(21rem, calc(100vw - 2rem));
  padding: 1.25rem;
  background: var(--clr-surface);
  color: var(--clr-text);
  border: 1.5px solid var(--clr-border-strong);
  border-radius: 20px;
  box-shadow: 0 24px 48px rgba(23, 24, 28, 0.18);
  display: grid;
  gap: 1.1rem;
}
.display-settings__panel[hidden] { display: none; }
.display-settings__group {
  min-width: 0;
  border: 0;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.display-settings__group legend {
  padding: 0;
  margin-bottom: 0.5rem;
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
}
.display-settings__option {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 3rem;
  padding: 0.4rem 0.8rem;
  border: 1.5px solid var(--clr-border);
  border-radius: 12px;
  cursor: pointer;
  font-size: 1rem;
}
.display-settings__option:hover { border-color: var(--clr-border-strong); }
.display-settings__option:has(input:checked) {
  border-color: var(--clr-accent);
  background: var(--clr-accent-soft);
  font-weight: 700;
}
.display-settings__option input {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  accent-color: var(--clr-accent);
}
.display-settings__note {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--clr-text-muted);
}

.nav-toggle {
  min-height: 3rem;
  border-radius: 12px;
  border-width: 1.5px;
  background: var(--clr-surface);
}
.nav-toggle[aria-expanded="true"] {
  background: var(--clr-text);
  border-color: var(--clr-text);
  color: var(--clr-bg);
}

@media (max-width: 1180px) and (min-width: 861px) {
  .site-logo__text { display: none; }
  .primary-nav a,
  .primary-nav__button { padding-inline: 0.6rem; font-size: 1rem; }
}
@media (max-width: 860px) {
  .site-header__inner { min-height: 4.5rem; flex-wrap: nowrap; }
  .site-logo { max-width: none; }
  .site-logo .site-logo__mark { display: inline-flex; }
  .site-logo .site-logo__text { display: inline; font-size: 0.95rem; }
  .site-header__tools { margin-left: auto; gap: 0.5rem; }
  .site-header__cta { display: none; }
  .nav-toggle { margin-left: 0; }
  .primary-nav { order: 5; }
  .primary-nav__dropdown { width: auto; max-width: none; }
}
@media (max-width: 420px) {
  .site-logo .site-logo__text { display: none; }
}

/* ==========================================================================
   Przyciski – motyw i bloki Gutenberga
   ========================================================================== */
.btn,
.wp-block-button__link,
.wp-element-button {
  min-height: 3.25rem;
  padding: 0.8rem 1.5rem;
  border-radius: 14px;
  font-family: var(--font-base);
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.25;
  gap: 0.6rem;
}
.btn-primary,
.wp-block-button:not(.is-style-outline):not(.is-style-marker) > .wp-block-button__link {
  background: var(--clr-accent);
  border: 2px solid var(--clr-accent);
  color: var(--clr-on-accent);
}
.btn-primary:hover,
.wp-block-button:not(.is-style-outline):not(.is-style-marker) > .wp-block-button__link:hover {
  background: var(--clr-accent-hover);
  border-color: var(--clr-accent-hover);
  color: var(--clr-on-accent);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.btn-secondary,
.wp-block-button.is-style-outline > .wp-block-button__link {
  background: transparent;
  border: 2px solid var(--clr-text);
  color: var(--clr-text);
}
.btn-secondary:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
  background: var(--clr-surface);
  color: var(--clr-text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.wp-block-button.is-style-marker > .wp-block-button__link {
  background: var(--clr-marker);
  border: 2px solid var(--clr-marker);
  color: var(--clr-on-marker);
}
.wp-block-button.is-style-marker > .wp-block-button__link:hover {
  background: #ffffff;
  border-color: #ffffff;
  color: var(--color-ink);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.wp-block-button__link { display: inline-flex; align-items: center; text-decoration: none; }
.ld-button-arrow > .wp-block-button__link::after,
.site-header__cta svg {
  flex: 0 0 auto;
}
.ld-button-arrow > .wp-block-button__link::after {
  content: "";
  width: 1.1em;
  height: 1.1em;
  background: currentColor;
  -webkit-mask: var(--ld-arrow) center / contain no-repeat;
  mask: var(--ld-arrow) center / contain no-repeat;
}

/* ==========================================================================
   Karty i elementy wspólne
   ========================================================================== */
.card {
  background: var(--clr-surface);
  border: 1.5px solid var(--clr-border);
  border-radius: var(--radius-lg);
  padding: var(--ld-card-pad);
}
.card:hover { border-color: var(--clr-accent); }

.ld-kicker,
.section-kicker {
  margin: 0 0 0.9rem;
  font-family: var(--font-base);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-accent);
}

/* Listy stylizowane zachowują semantykę listy także w Safari/VoiceOver
   (list-style: none usuwałoby ją) – dlatego pusty znacznik zamiast none. */
.ld-pills,
.ld-audience__list,
.ld-standards__list,
.ld-checklist,
.ld-report__list,
.ld-topics,
.ld-steps,
.ld-journey,
.ld-team__list {
  list-style-type: "\200B";
  margin: 0;
  padding: 0;
}

/* ==========================================================================
   Strona główna 2026
   ========================================================================== */
/* Motyw klasyczny: blok Grupa owija dzieci w .wp-block-group__inner-container.
   display: contents pozwala siatce działać na właściwych elementach
   (to zwykły div bez roli, więc nie zmienia drzewa dostępności). */
.ld-home-2026 .wp-block-group[class*="ld-"] > .wp-block-group__inner-container,
.ld-bento .wp-block-group > .wp-block-group__inner-container {
  display: contents;
}
.ld-home-2026 .wp-block-group[class*="ld-"] > *,
.ld-home-2026 .wp-block-group[class*="ld-"] > .wp-block-group__inner-container > * {
  margin-block: 0;
}
.ld-home-2026 .site-main > * {
  width: min(100% - 2 * var(--page-gutter), var(--layout-max));
  margin-inline: auto;
}
.ld-home-2026 .site-main > * + * { margin-top: var(--ld-section-gap); }
.ld-home-2026 .site-main > .ld-standards { margin-top: 0; }
.ld-home-2026 .site-main > :last-child { margin-bottom: var(--ld-section-gap); }
.ld-home-2026 .site-main p { max-width: none; }

.ld-section { display: grid; gap: clamp(2rem, 4vw, 3rem); }
.ld-home-2026 .ld-section > .ld-section__header,
.ld-section__header { display: grid; gap: 0.9rem; max-width: 50rem; }
.ld-section__header .ld-kicker { margin: 0; }
.ld-section__title {
  margin: 0;
  font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem);
  line-height: 1.08;
}
.ld-section__more { font-weight: 700; font-size: 1.125rem; }

/* Hero */
.ld-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
  padding-block: clamp(3rem, 7vw, 5.5rem) clamp(3rem, 6vw, 5rem);
}
.ld-hero__main { display: grid; gap: 1.75rem; align-content: start; }
.ld-pills { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.ld-pills li {
  padding: 0.4rem 0.9rem;
  border: 1.5px solid var(--clr-text);
  border-radius: 999px;
  background: var(--clr-surface);
  font-size: 0.9375rem;
  font-weight: 700;
}
.ld-hero__title {
  margin: 0;
  font-size: clamp(2.6rem, 1.4rem + 4.8vw, 5.25rem);
  line-height: 1.02;
}
.ld-highlight {
  background: linear-gradient(transparent 58%, var(--clr-marker) 58%, var(--clr-marker) 92%, transparent 92%);
  color: inherit;
  padding-inline: 0.12em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  white-space: nowrap;
}
.ld-hero__lead {
  margin: 0;
  font-size: clamp(1.1875rem, 1rem + 0.6vw, 1.375rem);
  line-height: 1.6;
  color: var(--clr-text-muted);
  max-width: 40rem;
}
.ld-hero__actions { gap: 0.9rem; }

/* Ścieżki odbiorców */
.ld-audience {
  background: var(--clr-inverse-bg);
  color: var(--clr-inverse-text);
  border-radius: var(--radius-xl);
  padding: clamp(1.5rem, 3vw, 2.25rem);
}
.ld-audience__title {
  margin: 0 0 1rem;
  font-size: 1.625rem;
  color: #ffffff;
}
.ld-audience__list { display: grid; gap: 0.85rem; }
.ld-audience__list a {
  position: relative;
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr) 1.5rem;
  column-gap: 1.1rem;
  align-items: center;
  min-height: 5.5rem;
  padding: 1.1rem 1.25rem;
  background: var(--clr-inverse-surface);
  border: 1.5px solid var(--clr-inverse-border);
  border-radius: 20px;
  color: var(--clr-inverse-muted);
  font-size: 1rem;
  line-height: 1.45;
  text-decoration: none;
}
.ld-audience__list a::before {
  content: "";
  grid-row: 1 / span 2;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 14px;
  background: var(--clr-marker) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317181c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18'/%3E%3Cpath d='M5 21V10l7-5 7 5v11'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E") center / 1.6rem no-repeat;
}
.ld-audience__list li:nth-child(2) a::before { background: var(--color-violet-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317181c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6h15l-1.5 9h-12z'/%3E%3Cpath d='M6 6 5 3H2'/%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='18' cy='20' r='1.5'/%3E%3C/svg%3E") center / 1.6rem no-repeat; }
.ld-audience__list li:nth-child(3) a::before { background: #f2f1ee url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317181c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 8-5 4 5 4'/%3E%3Cpath d='m16 8 5 4-5 4'/%3E%3Cpath d='m14 4-4 16'/%3E%3C/svg%3E") center / 1.6rem no-repeat; }
.ld-audience__list a::after {
  content: "";
  grid-column: 3;
  grid-row: 1 / span 2;
  width: 1.4rem;
  height: 1.4rem;
  background: var(--clr-marker);
  -webkit-mask: var(--ld-arrow) center / contain no-repeat;
  mask: var(--ld-arrow) center / contain no-repeat;
}
.ld-audience__list strong {
  grid-column: 2;
  display: block;
  font-size: 1.25rem;
  color: #ffffff;
}
.ld-audience__list a:hover { border-color: var(--clr-marker); }
.ld-audience__list a:hover strong { text-decoration: underline; text-underline-offset: 0.2em; }
.ld-audience__list a:focus-visible {
  outline-color: var(--clr-marker);
  box-shadow: 0 0 0 7px var(--color-ink);
}

/* Pasek standardów */
.ld-standards {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
  gap: 2rem;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3.5vw, 3rem);
  background: var(--clr-surface);
  border: 1.5px solid var(--clr-border);
  border-radius: 28px;
}
.ld-standards__title { margin: 0; font-size: 1.75rem; line-height: 1.2; }
.ld-standards__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.ld-standards__list li {
  color: var(--clr-text-muted);
  font-size: 1.0625rem;
  line-height: 1.55;
}
.ld-standards__list strong {
  display: block;
  margin-bottom: 0.35rem;
  font-family: var(--font-heading);
  font-size: 1.375rem;
  color: var(--clr-accent);
}

/* Usługi – siatka bento */
.ld-bento {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.ld-card {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: var(--ld-card-pad);
  background: var(--clr-surface);
  border: 1.5px solid var(--clr-border);
  border-radius: 28px;
}
.ld-card:hover { border-color: var(--clr-accent); }
.ld-card h3 { margin: 0; font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); }
.ld-card p { margin: 0; font-size: 1.125rem; line-height: 1.6; color: var(--clr-text-muted); }
.ld-card .ld-card__link { margin-top: auto; }
.ld-card__link a,
.ld-team .ld-card__link a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--clr-accent);
}
.ld-card__link a::after {
  content: "";
  width: 1.1em;
  height: 1.1em;
  background: currentColor;
  -webkit-mask: var(--ld-arrow) center / contain no-repeat;
  mask: var(--ld-arrow) center / contain no-repeat;
}
.ld-card--wide {
  grid-column: span 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
}
.ld-card__body { display: flex; flex-direction: column; gap: 1.1rem; }
.ld-card--soft { background: var(--clr-accent-soft); border-color: var(--clr-accent-soft); }
.ld-card--soft p { color: var(--clr-text); }
.ld-card--inverse {
  background: var(--clr-inverse-bg);
  border-color: var(--clr-inverse-bg);
  color: var(--clr-inverse-text);
}
.ld-card--inverse h3 { color: #ffffff; }
.ld-card--inverse p { color: var(--clr-inverse-muted); }
.ld-card--inverse .ld-card__link a { color: var(--clr-marker); }
.ld-card--inverse a:focus-visible { outline-color: var(--clr-marker); box-shadow: 0 0 0 7px var(--color-ink); }

.ld-checklist { display: grid; gap: 0.6rem; font-size: 1.0625rem; }
.ld-checklist li {
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr);
  gap: 0.6rem;
  align-items: start;
}
.ld-checklist li::before {
  content: "";
  width: 1.4rem;
  height: 1.6rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e6b45' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / 1.25rem no-repeat;
}

.ld-report {
  display: grid;
  gap: 0.75rem;
  align-content: start;
  padding: 1.5rem;
  background: var(--clr-bg);
  border: 1.5px solid var(--clr-border);
  border-radius: 20px;
}
.ld-report__caption {
  margin: 0;
  font-size: 0.875rem !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
}
.ld-report__list { display: grid; gap: 0.75rem; }
.ld-issue {
  display: grid;
  gap: 0.35rem;
  padding: 1rem 1.1rem;
  background: var(--clr-surface);
  border: 1.5px solid var(--clr-border);
  border-radius: 14px;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--clr-text-muted);
}
.ld-issue strong { font-size: 1.0625rem; color: var(--clr-text); }
.ld-issue__badge {
  justify-self: start;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 700;
}
.ld-issue--critical .ld-issue__badge { background: var(--color-danger-bg); color: var(--color-danger-text); }
.ld-issue--serious .ld-issue__badge { background: var(--color-warning-bg); color: var(--color-warning-text); }
.ld-issue--fixed .ld-issue__badge { background: var(--color-success-bg); color: var(--color-success-text); }

.ld-topics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  align-content: start;
}
.ld-topics a {
  display: flex;
  align-items: center;
  min-height: 3.5rem;
  height: 100%;
  padding: 0.75rem 1rem;
  background: var(--clr-inverse-surface);
  border: 1.5px solid var(--clr-inverse-border);
  border-radius: 16px;
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}
.ld-topics a:hover { border-color: var(--clr-marker); text-decoration: underline; text-underline-offset: 0.2em; }

/* Proces */
.ld-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  counter-reset: ld-step;
}
.ld-steps li {
  counter-increment: ld-step;
  display: grid;
  gap: 0.75rem;
  align-content: start;
  padding-top: 1.75rem;
  border-top: 3px solid var(--clr-text);
  color: var(--clr-text-muted);
  font-size: 1.0625rem;
  line-height: 1.6;
}
.ld-steps li::before {
  content: counter(ld-step, decimal-leading-zero);
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  color: var(--clr-accent);
}
.ld-steps strong { display: block; font-size: 1.375rem; color: var(--clr-text); }

/* Oferta dla biznesu */
.ld-pad {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 3.5rem);
  padding: clamp(2rem, 5vw, 4rem);
  background: var(--color-violet);
  color: #ffffff;
  border-radius: 36px;
}
.ld-pad__intro { display: grid; gap: 1.25rem; align-content: start; }
.ld-pad .ld-kicker { color: var(--clr-marker); margin: 0; }
.ld-pad__title { margin: 0; font-size: clamp(2rem, 1.3rem + 2.4vw, 3rem); line-height: 1.1; color: #ffffff; }
.ld-pad p { margin: 0; font-size: 1.1875rem; line-height: 1.6; color: var(--color-lavender); }
.ld-pad .wp-block-buttons { gap: 0.9rem; }
.ld-pad .is-style-outline > .wp-block-button__link { border-color: #ffffff; color: #ffffff; }
.ld-pad .is-style-outline > .wp-block-button__link:hover { background: var(--color-violet-dark); color: #ffffff; }
.ld-pad a:focus-visible { outline-color: #ffffff; box-shadow: 0 0 0 7px var(--color-ink); }
.ld-pad__journey { display: grid; gap: 0.75rem; align-content: start; }
.ld-pad__journey-title { font-weight: 700; color: #ffffff !important; }
.ld-journey { display: grid; gap: 0.6rem; counter-reset: ld-journey; }
.ld-journey li {
  counter-increment: ld-journey;
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 3.75rem;
  padding: 0.75rem 1.25rem;
  background: var(--color-violet-dark);
  border-radius: 16px;
  font-size: 1.1875rem;
  font-weight: 700;
}
.ld-journey li::before {
  content: counter(ld-journey);
  flex: 0 0 2.25rem;
  height: 2.25rem;
  border-radius: 10px;
  background: #ffffff;
  color: var(--color-violet-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 1.0625rem;
}

/* Zespół */
.ld-team {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.ld-team__intro { display: grid; gap: 1.1rem; align-content: start; }
.ld-team__intro > * { margin: 0; }
.ld-team__intro p { color: var(--clr-text-muted); font-size: 1.1875rem; }
.ld-team__intro .ld-kicker { color: var(--clr-accent); font-size: 0.9375rem; }
.ld-team__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: 1.5rem;
}
.ld-person {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.75rem;
  background: var(--clr-surface);
  border: 1.5px solid var(--clr-border);
  border-radius: 28px;
}
.ld-person:hover { border-color: var(--clr-accent); }
.ld-person__photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 20px;
}
.ld-person__photo--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--clr-accent-soft);
  color: var(--clr-accent);
  font-family: var(--font-heading);
  font-size: 4rem;
  font-weight: 700;
}
.ld-person__photo--1 { background: var(--color-warning-bg); color: var(--color-ink); }
.ld-person__name { margin: 0; font-size: 1.625rem; }
.ld-person__name a { color: var(--clr-text); text-decoration-color: var(--clr-accent); }
.ld-person__summary { margin: 0; color: var(--clr-text-muted); font-size: 1.0625rem; line-height: 1.55; }

/* Aktualności na stronie głównej */
.ld-home-2026 .home-news { padding: 0; background: none; }
.ld-home-2026 .home-news::before { display: none; }
.ld-home-2026 .home-news__inner { width: 100%; max-width: none; padding: 0; }
.home-news__header {
  max-width: none;
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 1rem 2rem;
  margin-bottom: 2.5rem;
}
.home-news__header h2 { margin: 0; font-size: clamp(2rem, 1.2rem + 3vw, 3.25rem); }
.home-news__all { margin: 0; font-weight: 700; font-size: 1.125rem; }
.home-news-card {
  background: var(--clr-surface);
  border: 1.5px solid var(--clr-border);
  border-radius: 24px;
  padding: clamp(1.5rem, 2.5vw, 2rem);
}
.home-news-card:hover { border-color: var(--clr-accent); }
.home-news-card__title { font-size: 1.5rem; line-height: 1.3; }
.home-news-card__label { color: var(--clr-accent); }

/* Kontakt */
.ld-cta {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: center;
  padding: clamp(2rem, 5.5vw, 4.5rem);
  background: var(--clr-inverse-bg);
  color: var(--clr-inverse-text);
  border-radius: 36px;
}
.ld-cta__text { display: grid; gap: 1.25rem; }
.ld-cta__title { margin: 0; font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem); line-height: 1.05; color: #ffffff; }
.ld-cta p { margin: 0; font-size: 1.25rem; line-height: 1.6; color: var(--clr-inverse-muted); }
.ld-cta__actions { flex-direction: column; align-items: stretch; gap: 0.9rem; }
.ld-cta__actions .wp-block-button { width: 100%; }
.ld-cta__actions .wp-block-button__link { width: 100%; justify-content: center; min-height: 4rem; font-size: 1.1875rem; }
.ld-cta .is-style-outline > .wp-block-button__link { border-color: #f2f1ee; color: #ffffff; overflow-wrap: anywhere; }
.ld-cta .is-style-outline > .wp-block-button__link:hover { background: var(--color-ink-2); color: #ffffff; }
.ld-cta a:focus-visible { outline-color: var(--clr-marker); box-shadow: 0 0 0 7px var(--color-ink); }

/* ==========================================================================
   Stopka
   ========================================================================== */
.site-footer {
  margin-top: 0;
  padding-block: clamp(3rem, 6vw, 4rem) 2.5rem;
  background: var(--clr-bg);
  border-top: 1px solid var(--clr-border);
  font-size: 1.0625rem;
  color: var(--clr-text-muted);
}
.site-footer a { color: var(--clr-accent); }
.footer-grid {
  grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 2.5rem);
}
.footer-grid h2 { margin: 0 0 0.75rem; font-family: var(--font-base); font-size: 1.0625rem; font-weight: 700; color: var(--clr-text); }
.footer-brand { display: grid; gap: 0.75rem; align-content: start; }
.footer-brand__name { margin: 0; font-family: var(--font-heading); font-size: 1.375rem; font-weight: 700; color: var(--clr-text); }
.footer-brand__tagline { margin: 0; line-height: 1.6; }
.footer-brand__report { justify-self: start; margin-top: 0.5rem; }
.site-footer .footer-brand__report { color: var(--clr-text); }
.footer-nav__list li + li { margin-top: 0.15rem; }
.footer-bottom {
  margin-top: clamp(2rem, 5vw, 3rem);
  padding-top: 1.75rem;
  align-items: center;
  gap: 1rem 2rem;
}
.footer-bottom__copy { margin: 0; }
.theme-switcher--footer {
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  border: 0;
  padding: 0;
  inline-size: auto;
  background: none;
}
.theme-switcher--footer legend {
  float: left;
  margin-right: 0.5rem;
  padding: 0;
  font-weight: 700;
  color: var(--clr-text);
}
.footer-theme .theme-switcher--footer,
.theme-switcher--footer { grid-template-columns: none; }
.theme-switcher--footer span {
  min-height: 2.75rem;
  padding: 0.5rem 1rem;
  border: 1.5px solid var(--clr-border-strong);
  border-radius: 12px;
  font-size: 1rem;
  align-items: center;
}
.theme-switcher--footer input:checked + span {
  background: var(--clr-text);
  border-color: var(--clr-text);
  color: var(--clr-bg);
}

/* ==========================================================================
   Tryb ciemny – nadpisania sekcji z tłem stałym
   ========================================================================== */
:root[data-theme="dark"] .ld-pad,
:root[data-theme="dark"] .ld-journey li::before { --color-violet: #3a2c82; }
:root[data-theme="dark"] .ld-audience,
:root[data-theme="dark"] .ld-cta,
:root[data-theme="dark"] .ld-card--inverse { border: 1.5px solid var(--clr-inverse-border); }
:root[data-theme="dark"] .ld-checklist li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2367d391' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E"); }
:root[data-theme="dark"] .ld-highlight {
  background: none;
  color: var(--clr-marker);
  box-shadow: inset 0 -0.14em 0 0 var(--clr-marker);
}
:root[data-theme="dark"] .site-logo__mark { --clr-text: var(--color-ink); background: var(--clr-marker); }
:root[data-theme="dark"] .ld-person__photo--1 { background: #3a3220; color: #ffe066; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .ld-pad { --color-violet: #3a2c82; }
  :root:not([data-theme]) .ld-audience,
  :root:not([data-theme]) .ld-cta,
  :root:not([data-theme]) .ld-card--inverse { border: 1.5px solid var(--clr-inverse-border); }
  :root:not([data-theme]) .ld-checklist li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2367d391' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E"); }
  :root:not([data-theme]) .ld-highlight {
    background: none;
    color: var(--clr-marker);
    box-shadow: inset 0 -0.14em 0 0 var(--clr-marker);
  }
  :root:not([data-theme]) .site-logo__mark { --clr-text: var(--color-ink); background: var(--clr-marker); }
  :root:not([data-theme]) .ld-person__photo--1 { background: #3a3220; color: #ffe066; }
}

/* ==========================================================================
   Układ responsywny – 400% powiększenia = 320 px bez przewijania w poziomie
   ========================================================================== */
@media (max-width: 1080px) {
  .ld-hero { grid-template-columns: 1fr; }
  .ld-standards { grid-template-columns: 1fr; }
  .ld-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ld-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ld-team { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .ld-bento,
  .ld-card--wide,
  .ld-pad,
  .ld-cta { grid-template-columns: 1fr; }
  .ld-card--wide { grid-column: auto; }
  .ld-standards__list,
  .ld-steps { grid-template-columns: 1fr; }
  .ld-topics { grid-template-columns: 1fr; }
  .ld-hero__actions .wp-block-button,
  .ld-pad .wp-block-button { width: 100%; }
  .ld-hero__actions .wp-block-button__link,
  .ld-pad .wp-block-button__link { width: 100%; justify-content: center; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand__report { justify-self: stretch; }
}
/* Wąskie ekrany i duży tekst: ikona nad treścią, aby słowa nie łamały się
   w środku (WCAG 1.4.4 / 1.4.10). */
@media (max-width: 480px) {
  .ld-audience__list a { grid-template-columns: minmax(0, 1fr) 1.5rem; row-gap: 0.35rem; padding: 1rem 1.1rem; }
  .ld-audience__list a::before { grid-row: 1; grid-column: 1; width: 2.75rem; height: 2.75rem; background-size: 1.35rem; margin-bottom: 0.35rem; }
  .ld-audience__list a::after { grid-column: 2; grid-row: 1 / span 3; align-self: start; margin-top: 0.7rem; }
  .ld-audience__list strong { grid-column: 1; font-size: 1.125rem; }
}
@media (max-width: 640px) {
  :root[data-text-size="xlarge"] .ld-audience__list a,
  :root[data-text-size="large"] .ld-audience__list a { grid-template-columns: minmax(0, 1fr) 1.5rem; row-gap: 0.35rem; }
  :root[data-text-size="xlarge"] .ld-audience__list a::before,
  :root[data-text-size="large"] .ld-audience__list a::before { grid-row: 1; grid-column: 1; margin-bottom: 0.35rem; }
  :root[data-text-size="xlarge"] .ld-audience__list a::after,
  :root[data-text-size="large"] .ld-audience__list a::after { grid-column: 2; grid-row: 1 / span 3; align-self: start; margin-top: 0.9rem; }
  :root[data-text-size="xlarge"] .ld-audience__list strong,
  :root[data-text-size="large"] .ld-audience__list strong { grid-column: 1; }
}

/* Przyklejony nagłówek tylko tam, gdzie jest na niego miejsce. Przy dużym
   powiększeniu (np. 400 %) lub niskim oknie przewija się z treścią, więc nie
   zasłania elementu z fokusem (WCAG 2.4.11) ani treści (1.4.10). */
@media (max-height: 640px), (max-width: 480px) {
  .site-header { position: relative; }
  html { scroll-padding-top: 1rem; }
}
:root[data-text-size="xlarge"] .site-header { position: relative; }
:root[data-text-size="xlarge"] { scroll-padding-top: 1rem; }
:root[data-text-size="large"] { scroll-padding-top: 8rem; }

/* Podpis tabeli w treści (WCAG 1.3.1). Podpis przeniesiony z bloku jest
   widoczny; dodany automatycznie z nagłówka zostaje ukryty wizualnie. */
.entry-content table caption,
.prose table caption {
  caption-side: top;
  text-align: left;
  padding-bottom: 0.6rem;
  color: var(--clr-text-muted);
  font-size: 0.9375rem;
  font-weight: 700;
}

/* Cele dotykowe min. 24x24 px (WCAG 2.5.8). Linki w zdaniu sa z tego
   kryterium wylaczone, ale linki stojace samodzielnie w listach i numeracja
   stron juz nie - dlatego dostaja wlasna wysokosc, nie tylko interlinie. */
.navigation.pagination .page-numbers,
.pagination-wrap :is(a, span) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--clr-border);
  border-radius: var(--radius);
  text-decoration: none;
}
.navigation.pagination .page-numbers.current {
  background: var(--clr-accent);
  border-color: var(--clr-accent);
  color: var(--clr-on-accent);
}
.navigation.pagination .page-numbers.dots {
  border-color: transparent;
}
:where(.entry-content, .prose, .sitemap-list, .knowledge-index) li > a:only-child,
:where(.entry-content, .prose) p > a:only-child,
:where(.entry-content, .prose) dd > a:only-child,
:where(h1, h2, h3, h4, h5, h6) > a:only-child {
  display: inline-block;
  min-height: 24px;
  padding-block: 0.15rem;
}

/* Nawigacja nigdy nie nachodzi na siebie: pozycje się zawijają, a przy
   powiększonym tekście menu przechodzi do własnego wiersza nagłówka. */
.primary-nav__list { flex-wrap: wrap; }
.primary-nav__item { flex-shrink: 0; }
.primary-nav__chevron { flex-shrink: 0; }
@media (min-width: 861px) {
  :root[data-text-size="large"] .site-header__inner,
  :root[data-text-size="xlarge"] .site-header__inner { flex-wrap: wrap; row-gap: 0.5rem; }
  :root[data-text-size="large"] .site-header__tools,
  :root[data-text-size="xlarge"] .site-header__tools { margin-left: auto; }
  :root[data-text-size="large"] .primary-nav,
  :root[data-text-size="xlarge"] .primary-nav { order: 5; flex-basis: 100%; justify-content: flex-start; }
  :root[data-text-size="large"] .site-logo .site-logo__text,
  :root[data-text-size="xlarge"] .site-logo .site-logo__text { display: inline; }
}
@media (max-width: 860px) {
  .site-header__inner { flex-wrap: wrap; row-gap: 0.5rem; }
}

/* ==========================================================================
   Ograniczony ruch i wymuszone kolory
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .primary-nav__chevron { transition: none; }
}
@media (forced-colors: active) {
  .ld-card,
  .ld-audience,
  .ld-audience__list a,
  .ld-standards,
  .ld-pad,
  .ld-cta,
  .ld-person,
  .ld-issue,
  .ld-topics a,
  .ld-journey li,
  .home-news-card,
  .display-settings__panel { border: 1px solid CanvasText; }
  .ld-highlight { background: Mark; color: MarkText; forced-color-adjust: none; }
  .site-logo__mark { forced-color-adjust: none; background: Canvas !important; border: 1px solid CanvasText; }
  .site-logo__mark svg :is(path, circle) { stroke: CanvasText !important; }
  .ld-audience__list a::before,
  .ld-checklist li::before { forced-color-adjust: none; }
  .ld-card__link a::after,
  .ld-audience__list a::after,
  .ld-button-arrow > .wp-block-button__link::after { background: LinkText; }
  .display-settings__option:has(input:checked) { border: 2px solid Highlight; }
}

/* Druk: bez elementów interaktywnych i ciemnych teł */
@media print {
  .site-header__tools, .nav-toggle, .display-settings, .theme-switcher { display: none !important; }
  .ld-audience, .ld-pad, .ld-cta, .ld-card--inverse { background: #ffffff !important; color: #000000 !important; border: 1px solid #000000; }
  .ld-audience *, .ld-pad *, .ld-cta *, .ld-card--inverse * { color: #000000 !important; }
}
