/**
 * Landing „Orteza na zwyrodnienie kolana" — style tylko dla szablonu
 * page-landing-zwyrodnienie (body.cti3-lz). Ładowane warunkowo
 * w inc/landing-zwyrodnienie.php, więc nie wpływa na inne podstrony.
 *
 * Typografia jak na landingu „Dla sportowców" (Bebas Neue + Poppins),
 * ze skalą i kontrastem pod osoby starsze (WCAG 2.2 AA):
 * - tekst bazowy 20–24 px, interlinia 1.6, Poppins 400 zamiast 300,
 * - tekst na ciemnym tle min. #E5E5E5 (≥ 15:1), akcent #FF6B00 (≥ 6.4:1),
 * - przyciski pomarańczowe z ciemnym tekstem (#0A0A0A na #FF6B00 = 6.9:1),
 * - obramowania pól formularza ≥ 3:1, cele klikalne min. 64 px wysokości,
 * - wyraźny fokus klawiatury, brak animacji przy prefers-reduced-motion.
 *
 * @package CTi3
 */

body.cti3-lz {
  --lz-bg: #0a0a0a;
  --lz-surface: #141414;
  --lz-surface-alt: #1e1e1e;
  --lz-border: #2a2a2a;
  --lz-field-border: #8a8a8a;
  --lz-text: #ffffff;
  --lz-text-soft: #e5e5e5;
  --lz-accent: #ff6b00;
  --lz-accent-hover: #ff8c33;
  --lz-on-accent: #0a0a0a;
  --lz-focus: #ffffff;
  --lz-radius: 20px;
  --lz-radius-sm: 12px;
  --lz-wrap: 1200px;
  --lz-gutter: clamp(20px, 4vw, 40px);
  --lz-section-y: clamp(64px, 8vw, 104px);
  --lz-callbar-h: 88px;

  --lz-fs-body: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
  --lz-fs-lead: clamp(1.375rem, 1.25rem + 0.5vw, 1.6875rem);
  --lz-fs-small: clamp(1.125rem, 1.08rem + 0.2vw, 1.3125rem);
  --lz-fs-eyebrow: clamp(1.125rem, 1.08rem + 0.2vw, 1.25rem);
  --lz-fs-h1: clamp(2rem, 1.5rem + 5.15vw, 5.25rem);
  --lz-fs-h1-sub: clamp(2rem, 1.6rem + 1.8vw, 3.25rem);
  --lz-fs-h2: clamp(2.5rem, 1.9rem + 2.6vw, 4rem);
  --lz-fs-card-title: clamp(2.125rem, 1.9rem + 0.9vw, 2.75rem);
  --lz-fs-h3: clamp(1.5rem, 1.38rem + 0.5vw, 1.875rem);
  --lz-fs-button: clamp(1.25rem, 1.15rem + 0.45vw, 1.625rem);

  background: var(--lz-bg);
  color: var(--lz-text);
  font-family: var(--wp--preset--font-family--poppins), 'Poppins', sans-serif;
  font-size: var(--lz-fs-body);
  font-weight: 400;
  line-height: 1.6;
  padding-bottom: var(--lz-callbar-h);
}

/* Elementy globalne motywu, które na landingu przeszkadzają. */
body.cti3-lz .cti3-scroll-top {
  display: none !important;
}

/* ==========================================================================
   Reset odstępów bloków (layout „flow" dokłada margin-block-start)
   ========================================================================== */
body.cti3-lz .lz-main .wp-block-post-content > *,
body.cti3-lz .lz-main .wp-block-group > *,
body.cti3-lz .lz-main .wp-block-group > * + * {
  margin-block: 0;
}

body.cti3-lz .lz-main p,
body.cti3-lz .lz-main ul {
  margin: 0;
}

/* ==========================================================================
   Typografia
   ========================================================================== */
body.cti3-lz .lz-main h1,
body.cti3-lz .lz-main h2,
body.cti3-lz .lz-main .lz-hero__sub,
body.cti3-lz .lz-main .lz-step__num {
  font-family:
    var(--wp--preset--font-family--bebas-neue), 'Bebas Neue', Impact, sans-serif;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-wrap: balance;
}

body.cti3-lz .lz-hero__title {
  font-size: var(--lz-fs-h1);
  line-height: 1;
  color: var(--lz-text);
}

body.cti3-lz .lz-hero__sub {
  font-size: var(--lz-fs-h1-sub);
  line-height: 1.05;
  color: var(--lz-accent);
}

body.cti3-lz .lz-section-title {
  font-size: var(--lz-fs-h2);
  line-height: 1.05;
  color: var(--lz-text);
}

body.cti3-lz .lz-eyebrow {
  font-size: var(--lz-fs-eyebrow);
  font-weight: 700;
  letter-spacing: 3px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--lz-accent);
}

body.cti3-lz .lz-lead {
  font-size: var(--lz-fs-lead);
  line-height: 1.6;
  color: var(--lz-text-soft);
}

body.cti3-lz .lz-note {
  font-size: var(--lz-fs-small);
  color: var(--lz-text-soft);
}

body.cti3-lz .lz-main strong {
  font-weight: 700;
  color: var(--lz-text);
}

/* Linki w treści — zawsze podkreślone, wyraźny hover. */
body.cti3-lz .lz-main p a,
body.cti3-lz .lz-footer a:not(.lz-btn) {
  color: var(--lz-accent);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

body.cti3-lz .lz-main p a:hover,
body.cti3-lz .lz-footer a:not(.lz-btn):hover {
  color: var(--lz-text);
}

/* Fokus klawiatury — biały obrys widoczny na czarnym i pomarańczowym. */
body.cti3-lz a:focus-visible,
body.cti3-lz button:focus-visible,
body.cti3-lz summary:focus-visible,
body.cti3-lz input:focus-visible,
body.cti3-lz textarea:focus-visible,
body.cti3-lz video:focus-visible {
  outline: 3px solid var(--lz-focus) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px var(--lz-bg) !important;
}

/* ==========================================================================
   Układ
   ========================================================================== */
body.cti3-lz .lz-section {
  background: var(--lz-bg);
  border-top: 1px solid var(--lz-border);
  padding: var(--lz-section-y) 0;
}

body.cti3-lz .lz-section.lz-hero {
  border-top: 0;
  padding-top: clamp(32px, 5vw, 72px);
}

body.cti3-lz .lz-wrap {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(var(--lz-wrap) + 2 * var(--lz-gutter));
  margin-inline: auto;
  padding-inline: var(--lz-gutter);
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 4vw, 48px);
}

body.cti3-lz .lz-wrap--narrow {
  max-width: calc(960px + 2 * var(--lz-gutter));
}

body.cti3-lz .lz-section-head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 900px;
}

body.cti3-lz .lz-section-head--center {
  align-self: center;
  align-items: center;
  text-align: center;
}

body.cti3-lz .lz-grid {
  display: grid;
  gap: 24px;
}

body.cti3-lz .lz-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.cti3-lz .lz-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.cti3-lz .lz-card {
  background: var(--lz-surface);
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius);
  padding: clamp(28px, 3vw, 40px);
  display: flex;
  flex-direction: column;
  gap: 14px;
  color: var(--lz-text-soft);
}

body.cti3-lz .lz-card__title {
  font-size: var(--lz-fs-card-title);
  line-height: 1.05;
  color: var(--lz-accent) !important;
}

/* ==========================================================================
   Przyciski (blok core/button + linki .lz-btn w częściach szablonu)
   !important na kolorach: style.css wymusza biały tekst przycisków
   (`.wp-block-button:not(...) .wp-block-button__link { color: #fff !important }`),
   a biały na #FF6B00 ma kontrast 2.9:1 — za mało dla WCAG AA.
   ========================================================================== */
body.cti3-lz .lz-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

body.cti3-lz .lz-buttons--stack {
  flex-direction: column;
  max-width: 560px;
}

body.cti3-lz .lz-buttons .wp-block-button {
  margin: 0;
}

body.cti3-lz .lz-buttons--stack .wp-block-button {
  width: 100%;
}

body.cti3-lz .lz-buttons .wp-block-button__link,
body.cti3-lz .lz-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 72px;
  padding: 14px 40px;
  border-radius: 999px;
  border: 3px solid transparent;
  font-family: var(--wp--preset--font-family--poppins), 'Poppins', sans-serif;
  font-size: var(--lz-fs-button);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.5px;
  text-transform: none;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

body.cti3-lz
  .lz-main
  .wp-block-button.lz-button-primary
  .wp-block-button__link.wp-element-button,
body.cti3-lz .lz-btn--primary {
  background: var(--lz-accent) !important;
  color: var(--lz-on-accent) !important;
  box-shadow: 0 10px 30px rgba(255, 107, 0, 0.3);
}

body.cti3-lz
  .lz-main
  .wp-block-button.lz-button-primary
  .wp-block-button__link.wp-element-button:hover,
body.cti3-lz .lz-btn--primary:hover {
  background: var(--lz-accent-hover) !important;
  color: var(--lz-on-accent) !important;
}

body.cti3-lz
  .lz-main
  .wp-block-button.lz-button-secondary
  .wp-block-button__link.wp-element-button {
  background: transparent !important;
  color: var(--lz-text) !important;
  border-color: var(--lz-text);
}

body.cti3-lz
  .lz-main
  .wp-block-button.lz-button-secondary
  .wp-block-button__link.wp-element-button:hover {
  background: var(--lz-text) !important;
  color: var(--lz-on-accent) !important;
}

body.cti3-lz .lz-button-xl .wp-block-button__link {
  min-height: 96px;
  padding-inline: 56px;
  font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
}

body.cti3-lz .lz-icon {
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
}

/* ==========================================================================
   Nagłówek (parts/header-landing.html)
   ========================================================================== */
body.cti3-lz .lz-header {
  background: var(--lz-bg);
  border-bottom: 1px solid var(--lz-border);
}

body.cti3-lz .lz-header__inner {
  box-sizing: border-box;
  max-width: calc(var(--lz-wrap) + 2 * var(--lz-gutter));
  margin-inline: auto;
  padding: 14px var(--lz-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

body.cti3-lz .lz-header__logo {
  display: inline-flex;
  border-radius: 8px;
}

body.cti3-lz .lz-header__logo img {
  display: block;
  height: clamp(48px, 5vw, 64px);
  width: auto;
  border-radius: 0;
}

body.cti3-lz .lz-header__call {
  width: auto;
  min-height: 60px;
  padding: 10px 28px;
  box-shadow: none;
}

body.cti3-lz .lz-header__call-short {
  display: none;
}

/* ==========================================================================
   Hero
   ========================================================================== */
body.cti3-lz .lz-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 48px;
  align-items: center;
}

body.cti3-lz .lz-hero__text {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

body.cti3-lz .lz-hero__text .lz-hero__title + .lz-hero__sub {
  margin-top: -12px;
}

body.cti3-lz .lz-hero__text .lz-lead {
  max-width: 820px;
}

body.cti3-lz .lz-hero__hours {
  max-width: 560px;
  text-align: center;
}

body.cti3-lz .lz-hero__media {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

body.cti3-lz .lz-media-caption {
  font-size: var(--lz-fs-small);
  font-weight: 600;
  text-align: center;
}

/* ==========================================================================
   Wideo (core/video). Brak autoodtwarzania, preload=none, kontrolki natywne.
   ========================================================================== */
body.cti3-lz .lz-video {
  margin: 0;
  border-radius: var(--lz-radius);
  overflow: hidden;
  background: var(--lz-surface-alt);
  border: 1px solid var(--lz-border);
}

/* Wszystkie nagrania są pionowe (9:16, z telefonu). Proporcję wymuszamy
   z !important, bo WP potrafi zapisać w bloku odwrócone wymiary (flaga obrotu
   w pliku z telefonu) jako inline `aspect-ratio: 1024 / 576` — wtedy były czarne
   paski. Szerokość ograniczona tak, by cały film mieścił się na ekranie. */
body.cti3-lz {
  --lz-video-w: clamp(280px, calc(72vh * 9 / 16), 420px);
}

body.cti3-lz .lz-video video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16 !important;
  object-fit: cover;
  background: #000;
}

body.cti3-lz .lz-clip,
body.cti3-lz .lz-hero__media {
  width: 100%;
  max-width: var(--lz-video-w);
  justify-self: center;
  margin-inline: auto;
}

/* Przycisk „play" na plakacie — cała ramka klikalna, ikona jak w makiecie
   (trójkąt ciemny zamiast białego: kontrast 6.9:1 na #FF6B00). */
body.cti3-lz .lz-video {
  position: relative;
}

body.cti3-lz .lz-play {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: inherit;
  background: rgba(0, 0, 0, 0.15);
  cursor: pointer;
}

body.cti3-lz .lz-play[hidden] {
  display: none;
}

body.cti3-lz .lz-play__icon {
  width: 104px;
  height: 104px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--lz-accent);
  color: var(--lz-on-accent);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  transition:
    transform 0.2s ease,
    background-color 0.2s ease;
}

body.cti3-lz .lz-play__icon svg {
  width: 44px;
  height: 44px;
  margin-left: 6px;
}

body.cti3-lz .lz-play:hover .lz-play__icon {
  background: var(--lz-accent-hover);
  transform: scale(1.06);
}

/* Ramka ma overflow: hidden — obrys fokusu rysujemy do środka. */
body.cti3-lz .lz-play:focus-visible {
  outline: 4px solid var(--lz-focus) !important;
  outline-offset: -8px !important;
  box-shadow: none !important;
}

/* Pusty blok wideo (film jeszcze nie wgrany) — nie pokazujemy pustej ramki. */
body.cti3-lz .lz-video:empty {
  display: none;
}

body.cti3-lz .lz-hero__media:has(.lz-video:empty) {
  display: none;
}

body.cti3-lz .lz-hero__grid:has(.lz-video:empty) {
  grid-template-columns: minmax(0, 1fr);
}

/* ==========================================================================
   Nagrania przed / po
   ========================================================================== */
body.cti3-lz .lz-compare {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

body.cti3-lz .lz-clip {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body.cti3-lz .lz-badge {
  align-self: flex-start;
  padding: 6px 20px;
  border-radius: 10px;
  background: var(--lz-text);
  color: var(--lz-on-accent);
  font-size: var(--lz-fs-small);
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.4;
  text-transform: uppercase;
}

body.cti3-lz .lz-badge--accent {
  background: var(--lz-accent);
}

body.cti3-lz .lz-compare__desc {
  color: var(--lz-text-soft);
}

/* !important: theme.json zawęża separatory do 120 px (core/separator css). */
body.cti3-lz .lz-divider {
  width: 100% !important;
  max-width: none !important;
  margin: 0;
  border: 0;
  border-top: 1px solid var(--lz-border);
  color: var(--lz-border);
  opacity: 1;
}

/* ==========================================================================
   Kroki
   ========================================================================== */
body.cti3-lz .lz-step {
  gap: 16px;
  color: var(--lz-text);
}

body.cti3-lz .lz-step__num {
  font-size: clamp(4rem, 3.4rem + 2vw, 5.25rem);
  line-height: 1;
  color: var(--lz-accent);
}

body.cti3-lz .lz-step__title {
  font-family: var(--wp--preset--font-family--poppins), 'Poppins', sans-serif;
  font-size: var(--lz-fs-h3);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lz-text);
}

body.cti3-lz .lz-step--accent {
  background: var(--lz-accent);
  border-color: var(--lz-accent);
  color: var(--lz-on-accent);
}

body.cti3-lz .lz-step--accent .lz-step__num,
body.cti3-lz .lz-step--accent .lz-step__title {
  color: var(--lz-on-accent);
}

body.cti3-lz .lz-inline-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px 28px;
}

body.cti3-lz .lz-inline-cta .lz-buttons .wp-block-button__link {
  width: auto;
}

/* ==========================================================================
   Dla kogo — lista z ikoną
   ========================================================================== */
body.cti3-lz .lz-checklist {
  list-style: none;
  padding: 0;
  max-width: 960px;
  border-bottom: 1px solid var(--lz-border);
}

body.cti3-lz .lz-checklist li {
  position: relative;
  margin: 0;
  padding: 22px 0 22px 52px;
  border-top: 1px solid var(--lz-border);
  font-size: clamp(1.375rem, 1.25rem + 0.5vw, 1.75rem);
  font-weight: 500;
  line-height: 1.4;
}

body.cti3-lz .lz-checklist li::before {
  content: '';
  position: absolute;
  left: 0;
  top: calc(22px + 0.7em - 16px);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--lz-accent)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")
    center / 20px no-repeat;
}

/* ==========================================================================
   Maciej — osoba kontaktowa
   ========================================================================== */
body.cti3-lz .lz-person {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  background: var(--lz-surface);
  border: 1px solid var(--lz-border);
  border-radius: 24px;
  overflow: hidden;
}

body.cti3-lz .lz-person__photo {
  margin: 0;
  min-height: 420px;
  background: var(--lz-surface-alt);
}

body.cti3-lz .lz-person__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

/* Brak zdjęcia (WP nie renderuje pustego bloku obrazka) — karta na pełną szerokość. */
body.cti3-lz .lz-person:not(:has(.lz-person__photo)) {
  grid-template-columns: minmax(0, 1fr);
}

body.cti3-lz .lz-person__body {
  padding: clamp(32px, 4vw, 56px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
}

body.cti3-lz .lz-person__name {
  margin-top: 8px !important;
  padding-top: 20px;
  border-top: 1px solid var(--lz-border);
  font-size: clamp(1.625rem, 1.5rem + 0.5vw, 2.125rem);
  font-weight: 700;
  line-height: 1.2;
}

body.cti3-lz .lz-person__phone a {
  font-family:
    var(--wp--preset--font-family--bebas-neue), 'Bebas Neue', Impact, sans-serif;
  font-size: clamp(3rem, 2.5rem + 2vw, 4rem);
  line-height: 1.1;
  letter-spacing: 1px;
  text-decoration: none;
  color: var(--lz-accent);
}

body.cti3-lz .lz-person__phone a:hover {
  color: var(--lz-text);
}

body.cti3-lz .lz-person .lz-buttons .wp-block-button__link {
  width: auto;
}

/* ==========================================================================
   Kontakt — formularz CF7 + karta danych
   ========================================================================== */
body.cti3-lz .lz-contact__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 48px;
  align-items: start;
}

body.cti3-lz .lz-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

body.cti3-lz .lz-form p {
  margin: 0;
  display: contents;
}

body.cti3-lz .lz-form br {
  display: none;
}

body.cti3-lz .lz-form__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 32px;
}

body.cti3-lz .lz-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

body.cti3-lz .lz-field__label {
  font-size: var(--lz-fs-small);
  font-weight: 700;
  line-height: 1.4;
  color: var(--lz-text);
}

body.cti3-lz .lz-req {
  color: var(--lz-accent);
}

body.cti3-lz .lz-field .wpcf7-form-control-wrap {
  display: block;
}

body.cti3-lz .wpcf7 .lz-form input[type='text'],
body.cti3-lz .wpcf7 .lz-form input[type='email'],
body.cti3-lz .wpcf7 .lz-form input[type='tel'],
body.cti3-lz .wpcf7 .lz-form textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 68px;
  padding: 14px 20px;
  border: 2px solid var(--lz-field-border);
  border-radius: 10px;
  background: #000;
  color: var(--lz-text);
  font-family: var(--wp--preset--font-family--poppins), 'Poppins', sans-serif;
  font-size: var(--lz-fs-body);
  line-height: 1.5;
}

body.cti3-lz .wpcf7 .lz-form textarea {
  min-height: 200px;
}

body.cti3-lz .wpcf7 .lz-form input::placeholder,
body.cti3-lz .wpcf7 .lz-form textarea::placeholder {
  color: #a3a3a3;
  opacity: 1;
}

body.cti3-lz .wpcf7 .lz-form input:hover,
body.cti3-lz .wpcf7 .lz-form textarea:hover {
  border-color: #b5b5b5;
  background: #000;
}

body.cti3-lz .wpcf7 .lz-form input:focus,
body.cti3-lz .wpcf7 .lz-form textarea:focus {
  border-color: var(--lz-accent);
  background: #000;
  box-shadow: 0 0 0 3px rgba(255, 107, 0, 0.35);
}

/* Błędy walidacji — czytelny tekst, nie tylko kolor ramki. */
body.cti3-lz .wpcf7 .lz-form .wpcf7-not-valid {
  border-color: #ff8a8a !important;
}

body.cti3-lz .wpcf7-not-valid-tip {
  margin-top: 8px;
  font-size: var(--lz-fs-small);
  font-weight: 600;
  color: #ffb3b3;
}

body.cti3-lz .wpcf7 form .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 16px 20px;
  border-width: 2px;
  border-radius: var(--lz-radius-sm);
  font-size: var(--lz-fs-body);
  line-height: 1.5;
  color: var(--lz-text);
}

/* Zgoda RODO — duży checkbox, cała etykieta klikalna. */
body.cti3-lz .lz-form__consent .wpcf7-list-item {
  margin: 0;
}

body.cti3-lz .lz-form__consent label {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: var(--lz-fs-small);
  line-height: 1.6;
  color: var(--lz-text-soft);
  cursor: pointer;
}

body.cti3-lz .lz-form__consent input[type='checkbox'] {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  margin: 2px 0 0;
  accent-color: var(--lz-accent);
  cursor: pointer;
}

body.cti3-lz .lz-form__hint {
  display: block !important;
  font-size: var(--lz-fs-small);
  color: var(--lz-text-soft);
}

body.cti3-lz .lz-form__submit {
  display: flex;
}

body.cti3-lz .wpcf7 .lz-form input[type='submit'] {
  width: 100%;
  min-height: 80px;
  padding: 16px 40px;
  border: 0;
  border-radius: 999px;
  background: var(--lz-accent);
  color: var(--lz-on-accent);
  font-family: var(--wp--preset--font-family--poppins), 'Poppins', sans-serif;
  font-size: var(--lz-fs-button);
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: none;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(255, 107, 0, 0.3);
  transition: background-color 0.2s ease;
}

body.cti3-lz .wpcf7 .lz-form input[type='submit']:hover {
  background: var(--lz-accent-hover);
}

body.cti3-lz .wpcf7-spinner {
  margin: 0 0 0 16px;
  align-self: center;
}

body.cti3-lz .lz-contact-card {
  gap: 0;
}

body.cti3-lz .lz-contact-card__title {
  margin-bottom: 8px !important;
  font-family: var(--wp--preset--font-family--poppins), 'Poppins', sans-serif;
  font-size: var(--lz-fs-h3);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lz-text);
}

body.cti3-lz .lz-contact-card__row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 22px 0;
  border-bottom: 1px solid var(--lz-border);
}

body.cti3-lz .lz-contact-card__row:last-of-type {
  border-bottom: 0;
}

body.cti3-lz .lz-contact-card__label {
  font-size: var(--lz-fs-small);
  font-weight: 600;
  color: var(--lz-text-soft);
}

body.cti3-lz .lz-contact-card__value {
  font-size: var(--lz-fs-body);
  font-weight: 600;
  color: var(--lz-text);
  overflow-wrap: anywhere;
}

body.cti3-lz .lz-contact-card__value a {
  display: inline-block;
  min-height: 44px;
  padding-block: 6px;
  box-sizing: border-box;
  color: var(--lz-text);
}

body.cti3-lz .lz-contact-card__value--phone a {
  font-size: clamp(1.75rem, 1.6rem + 0.6vw, 2.25rem);
  font-weight: 700;
  color: var(--lz-accent);
  text-decoration: none;
}

body.cti3-lz .lz-contact-card__note {
  margin-top: 8px !important;
  padding: 20px 22px;
  border-radius: var(--lz-radius-sm);
  background: #1e1612;
  border: 1px solid #3a281d;
  font-size: var(--lz-fs-small);
  line-height: 1.55;
  color: var(--lz-text-soft);
}

/* ==========================================================================
   FAQ (core/details)
   ========================================================================== */
body.cti3-lz .lz-faq__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

body.cti3-lz .lz-faq-item {
  background: var(--lz-surface);
  border: 1px solid var(--lz-border);
  border-radius: 14px;
}

body.cti3-lz .lz-faq-item[open] {
  border-color: #4a4a4a;
}

body.cti3-lz .lz-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 88px;
  box-sizing: border-box;
  padding: 18px 28px;
  border-radius: 14px;
  font-size: clamp(1.3125rem, 1.2rem + 0.45vw, 1.625rem);
  font-weight: 700;
  line-height: 1.35;
  color: var(--lz-text);
  cursor: pointer;
  list-style: none;
}

body.cti3-lz .lz-faq-item summary::-webkit-details-marker {
  display: none;
}

/* Ikona +/− rysowana CSS-em (dekoracyjna; stan ogłasza natywny <details>). */
body.cti3-lz .lz-faq-item summary::after {
  content: '+';
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 2px solid var(--lz-accent);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  color: var(--lz-accent);
}

body.cti3-lz .lz-faq-item[open] summary::after {
  content: '−';
}

body.cti3-lz .lz-faq-item summary:hover {
  color: var(--lz-accent);
}

body.cti3-lz .lz-faq-item > :not(summary) {
  padding: 0 28px 28px;
  font-size: var(--lz-fs-body);
  line-height: 1.6;
  color: var(--lz-text-soft);
}

/* ==========================================================================
   Końcowe CTA
   ========================================================================== */
body.cti3-lz .lz-section.lz-final {
  background: var(--lz-surface);
}

body.cti3-lz .lz-final__inner {
  align-items: center;
  text-align: center;
  gap: 28px;
}

body.cti3-lz .lz-final .lz-buttons {
  justify-content: center;
}

body.cti3-lz .lz-final .lz-buttons .wp-block-button__link {
  width: auto;
}

/* ==========================================================================
   Stopka + przyklejony pasek „Zadzwoń" (parts/footer-landing.html)
   ========================================================================== */
body.cti3-lz .lz-footer {
  margin: 0;
  background: var(--lz-bg);
  border-top: 1px solid var(--lz-border);
}

body.cti3-lz .lz-footer__inner {
  box-sizing: border-box;
  max-width: calc(var(--lz-wrap) + 2 * var(--lz-gutter));
  margin-inline: auto;
  padding: 48px var(--lz-gutter);
  display: flex;
  flex-direction: column;
  gap: 18px;
  font-size: var(--lz-fs-small);
  line-height: 1.6;
}

body.cti3-lz .lz-footer p {
  margin: 0;
}

body.cti3-lz .lz-footer__disclaimer {
  font-weight: 600;
  color: var(--lz-text);
}

body.cti3-lz .lz-footer__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  color: var(--lz-text-soft);
}

body.cti3-lz .lz-footer__meta a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

body.cti3-lz .lz-callbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 950;
  box-sizing: border-box;
  min-height: var(--lz-callbar-h);
  padding: 12px max(16px, calc((100vw - var(--lz-wrap)) / 2));
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: rgba(10, 10, 10, 0.97);
  border-top: 1px solid #3a3a3a;
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.5);
}

body.cti3-lz .lz-callbar__text {
  margin: 0;
  font-size: var(--lz-fs-small);
  font-weight: 600;
  color: var(--lz-text-soft);
}

body.cti3-lz .lz-callbar__btn {
  width: auto;
  min-height: 64px;
  padding-inline: 40px;
  box-shadow: none;
}

/* Kotwice (#oddzwonimy, #nagrania) nie chowają nagłówków pod niczym. */
body.cti3-lz [id] {
  scroll-margin-top: 24px;
}

/* ==========================================================================
   Responsywność
   ========================================================================== */
@media (max-width: 1024px) {
  body.cti3-lz .lz-grid--3 {
    grid-template-columns: minmax(0, 1fr);
  }

  body.cti3-lz .lz-contact__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 860px) {
  body.cti3-lz .lz-hero__grid,
  body.cti3-lz .lz-person {
    grid-template-columns: minmax(0, 1fr);
  }

  body.cti3-lz .lz-buttons--stack {
    max-width: none;
  }

  body.cti3-lz .lz-hero__hours {
    max-width: none;
  }

  body.cti3-lz .lz-person__photo {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 781px) {
  body.cti3-lz {
    --lz-callbar-h: 92px;
  }

  body.cti3-lz .lz-grid--2,
  body.cti3-lz .lz-form__row {
    grid-template-columns: minmax(0, 1fr);
  }

  body.cti3-lz .lz-header__call-long {
    display: none;
  }

  body.cti3-lz .lz-header__call-short {
    display: inline;
  }

  body.cti3-lz .lz-header__call {
    padding-inline: 22px;
  }

  body.cti3-lz .lz-callbar__text {
    display: none;
  }

  body.cti3-lz .lz-callbar {
    padding-inline: 14px;
  }

  body.cti3-lz .lz-callbar__btn {
    width: 100%;
  }

  body.cti3-lz .lz-inline-cta .lz-buttons,
  body.cti3-lz .lz-inline-cta .lz-buttons .wp-block-button,
  body.cti3-lz .lz-person .lz-buttons .wp-block-button,
  body.cti3-lz .lz-final .lz-buttons .wp-block-button {
    width: 100%;
  }

  body.cti3-lz .lz-inline-cta .lz-buttons .wp-block-button__link,
  body.cti3-lz .lz-person .lz-buttons .wp-block-button__link,
  body.cti3-lz .lz-final .lz-buttons .wp-block-button__link {
    width: 100%;
    padding-inline: 24px;
  }

  body.cti3-lz .lz-faq-item summary {
    padding: 16px 20px;
  }

  body.cti3-lz .lz-faq-item > :not(summary) {
    padding: 0 20px 24px;
  }

  body.cti3-lz .lz-checklist li {
    padding-left: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.cti3-lz *,
  body.cti3-lz *::before,
  body.cti3-lz *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}
