/* PFALLER shared typography layer, loaded last on every page. */
:root {
  --pf-type-kicker: 0.76rem;
  --pf-type-meta: 0.72rem;
  --pf-type-small: 0.8rem;
  --pf-type-body: 0.94rem;
  --pf-type-lead: 1rem;
  --pf-type-card-title: 1rem;
  --pf-type-section: 1.55rem;
  --pf-type-subhero: 2.125rem;
}

.section-h,
.service-redesign h2,
#page-wfl .wfl-section h2,
#page-wfl .wfl-process-section h2,
#page-wfl .wfl-ratgeber-section h2,
.page:not(#page-home) section h2,
[id^="page-rat-"] h2 {
  font-size: var(--pf-type-section) !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
}

.section-sub,
.service-redesign p,
.service-redesign li,
#page-wfl p,
#page-wfl li,
.page:not(#page-home) section p,
.page:not(#page-home) section li,
[id^="page-rat-"] p,
[id^="page-rat-"] li,
#page-impressum p,
#page-impressum li,
#page-datenschutz p,
#page-datenschutz li {
  font-size: var(--pf-type-body) !important;
  line-height: 1.58 !important;
}

.service-redesign .subhero .lead,
.subhero .lead,
#page-wfl .wfl-lp-lead,
[id^="page-rat-"] .subhero p,
[id^="page-city-"] .subhero p {
  font-size: var(--pf-type-lead) !important;
  line-height: 1.56 !important;
}

.home-service-card h3,
.service-redesign h3,
#page-wfl .wfl-card h3,
#page-wfl .wfl-feature-card h3,
.page:not(#page-home) .card h3 {
  font-size: var(--pf-type-card-title) !important;
  line-height: 1.22 !important;
  letter-spacing: 0 !important;
}

.home-service-kicker,
.service-redesign .svc-kicker,
.kicker,
.eyebrow,
.sec-about .eyebrow,
#page-wfl .wfl-eyebrow,
[id^="page-rat-"] .kicker {
  font-size: var(--pf-type-kicker) !important;
  line-height: 1.28 !important;
}

.home-service-quick span,
.svc-pill,
.team-badge,
.sec-about .about-team-grid span,
#page-wfl .wfl-pill,
#page-wfl .wfl-mini-pill {
  font-size: var(--pf-type-meta) !important;
  line-height: 1.25 !important;
}

.page:not(#page-home) .subhero h1,
#page-wfl .wfl-lp-hero h1,
[id^="page-rat-"] .subhero h1,
#page-impressum h1,
#page-datenschutz h1,
#page-kontakt .subhero h1,
[id^="page-city-"] .subhero h1 {
  font-size: var(--pf-type-subhero) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

#page-impressum h2,
#page-datenschutz h2 {
  font-size: 1.12rem !important;
  line-height: 1.25 !important;
}

#page-kontakt p,
main.wrap .card p {
  font-size: var(--pf-type-body) !important;
  line-height: 1.58 !important;
}

#page-kontakt p[style*="font-size:.9rem"] {
  font-size: 14px !important;
  line-height: 1.58 !important;
}

#page-kontakt .contact-form-shell h2,
#page-kontakt .home-contact-form-card h2 {
  font-size: var(--pf-type-section) !important;
  line-height: 1.2 !important;
}

#page-rnd .subhero h1,
#page-vwg .subhero h1,
#page-kg .subhero h1,
#page-kontakt .subhero h1,
[id^="page-rat-"] .subhero h1,
[id^="page-city-"] .subhero h1 {
  font-size: var(--pf-type-subhero) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

#page-rnd h2,
#page-vwg h2,
#page-kg h2,
#page-kontakt h2,
[id^="page-rat-"] h2,
[id^="page-city-"] h2 {
  font-size: var(--pf-type-section) !important;
  line-height: 1.22 !important;
  letter-spacing: 0 !important;
}

#page-rnd p,
#page-rnd li,
#page-vwg p,
#page-vwg li,
#page-kg p,
#page-kg li,
#page-kontakt p,
#page-kontakt li,
[id^="page-rat-"] p,
[id^="page-rat-"] li,
[id^="page-city-"] p,
[id^="page-city-"] li {
  font-size: var(--pf-type-body) !important;
  line-height: 1.58 !important;
}

#page-rnd .svc-kicker,
#page-vwg .svc-kicker,
#page-kg .svc-kicker,
#page-kontakt .kicker,
[id^="page-rat-"] .kicker,
[id^="page-city-"] .kicker {
  font-size: var(--pf-type-kicker) !important;
  line-height: 1.28 !important;
}

[id^="page-rat-"] table {
  font-size: 0.86rem !important;
  line-height: 1.4 !important;
}

@media (max-width: 760px) {
  :root {
    --pf-type-kicker: 0.72rem;
    --pf-type-meta: 0.68rem;
    --pf-type-small: 0.78rem;
    --pf-type-body: 0.875rem;
    --pf-type-lead: 0.94rem;
    --pf-type-card-title: 0.95rem;
    --pf-type-section: 1.32rem;
    --pf-type-subhero: 1.48rem;
  }

  #page-home .hero-title {
    font-size: clamp(2rem, 8vw, 2.45rem) !important;
    line-height: 1.06 !important;
  }

  #page-home .home-service-card h3 {
    font-size: var(--pf-type-card-title) !important;
  }

  #page-home .home-service-card p {
    font-size: 0.82rem !important;
    line-height: 1.42 !important;
  }

  #page-home .home-service-kicker {
    font-size: var(--pf-type-meta) !important;
    letter-spacing: 0.055em !important;
  }

  #page-home .home-service-quick span {
    font-size: var(--pf-type-meta) !important;
  }

  #page-home .home-service-link {
    font-size: 0.7rem !important;
    line-height: 1.25 !important;
  }

  .sec-about .about-founder-card p,
  .sec-about .about-team-grid > div > div:nth-child(2) > div:first-child {
    font-size: 0.78rem !important;
    line-height: 1.38 !important;
  }

  .sec-about .about-team-grid > div > div:first-child > div > div:first-child {
    font-size: 0.9rem !important;
    line-height: 1.22 !important;
  }

  .sec-about .about-team-grid > div > div:first-child > div > div:last-child {
    font-size: 0.78rem !important;
    line-height: 1.32 !important;
  }

  .f-lab,
  .wfl-form-card .f-lab {
    font-size: 0.72rem !important;
    line-height: 1.25 !important;
  }

  .f-inp,
  select.f-inp,
  textarea.f-inp,
  #page-wfl input,
  #page-wfl select,
  #page-wfl textarea {
    font-size: 1rem !important;
  }

  .btn-gold,
  .btn-outline,
  .sticky-btn,
  #sticky-cta a,
  #sticky-cta button {
    font-size: 0.88rem !important;
  }

  #page-impressum section,
  #page-datenschutz section {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }

  [id^="page-rat-"] table {
    font-size: 0.78rem !important;
  }

  [id^="page-rat-"] th,
  [id^="page-rat-"] td {
    padding: 0.55rem !important;
  }
}

@media (max-width: 420px) {
  :root {
    --pf-type-section: 1.26rem;
    --pf-type-subhero: 1.42rem;
  }

  #page-home .hero-title {
    font-size: clamp(1.9rem, 8vw, 2.25rem) !important;
  }

  #page-wfl .wfl-lp-hero h1 {
    font-size: 1.48rem !important;
  }

  .page:not(#page-home) .subhero h1 {
    font-size: var(--pf-type-subhero) !important;
  }

  .section-h,
  .service-redesign h2,
  #page-wfl .wfl-section h2,
  #page-wfl .wfl-process-section h2,
  #page-wfl .wfl-ratgeber-section h2 {
    font-size: var(--pf-type-section) !important;
  }
}
