@import url("https://fonts.googleapis.com/css2?family=Archivo:wght@700;800;900&family=DM+Sans:wght@400;500;700;800&family=Poppins:ital,wght@1,700;1,800&family=Sora:wght@600;700;800&display=swap");

/* Single source of truth for typography after removing old inline overrides. */
:root {
  --font-body: "DM Sans", sans-serif !important;
  --font-headline: "Sora", sans-serif !important;
  --font-accent: "Poppins", sans-serif !important;
  --font-display: "Archivo", sans-serif !important;
  --font-ui: "Sora", sans-serif !important;
  --bs-font-sans-serif: var(--font-body) !important;
  --bs-body-font-family: var(--bs-font-sans-serif) !important;
}

html,
body {
  font-family: var(--bs-body-font-family) !important;
}

body {
  letter-spacing: -0.01em;
}

::selection {
  background: rgba(13, 110, 253, 0.16);
}

body :where(
  p,
  a,
  li,
  label,
  input,
  textarea,
  select,
  button,
  small,
  strong,
  em,
  blockquote,
  figcaption,
  dt,
  dd,
  td,
  th,
  legend
) {
  font-family: var(--bs-body-font-family) !important;
  letter-spacing: -0.012em !important;
}

body :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .h1,
  .h2,
  .h3,
  .h4,
  .h5,
  .h6
) {
  font-family: var(--font-headline) !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1.01 !important;
  text-transform: none !important;
}

body :where(
  .banner-inner-section h1,
  .home-solutions-head-editorial h2,
  .privat-cards-heading h2,
  .cta-dark-card h2,
  .contact-hero-copy h1,
  .legal-section h2:first-of-type,
  .display-1,
  .display-2,
  .display-3,
  .display-4,
  .rs-text-title,
  .premium-seo-card h3,
  .faq-dark .accordion-button span
) {
  font-family: var(--font-display) !important;
  font-weight: 900 !important;
  letter-spacing: -0.055em !important;
  line-height: 0.92 !important;
  text-wrap: balance;
}

body :where(
  .kicker,
  .badge-soft,
  .reviews-kicker,
  .prozess-kicker,
  .tarif-table-kicker,
  .section-number-bar .badge,
  [class*="kicker"],
  [class*="eyebrow"],
  .cta-sub,
  [class*="accent-headline"],
  [class*="superitalic"]
) {
  font-family: var(--font-accent) !important;
  font-style: italic !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
}

body :where(
  .btn,
  .button,
  button,
  .btn-pill-primary,
  .btn-pill-secondary,
  .btn-pill-light
) {
  font-family: var(--font-body) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}

body :where(.index-header-brand, .index-header-panel-cta) {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
}

body :where(.index-header-cta, .index-header-panel-nav a, .index-header-panel-contact a) {
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

body :where(.index-header-panel-kicker, .home-solutions-kicker, .home-solution-eyebrow) {
  font-family: var(--font-accent) !important;
  font-style: italic !important;
  font-weight: 800 !important;
  letter-spacing: 0.035em !important;
  text-transform: uppercase !important;
}

body :where(.home-solution-pro-card h3, .rs-card h3, .privat-option-card h3, .faq-card h3) {
  font-family: var(--font-ui) !important;
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
  line-height: 1.02 !important;
}

body :where(.home-solution-cta, .hero-trust-badge, .btn-lg, .btn-pill-primary, .btn-pill-secondary, .btn-pill-light) {
  font-family: var(--font-ui) !important;
  font-weight: 800 !important;
  letter-spacing: -0.022em !important;
}

body :where(.home-solution-cta .cta-sub, .hero-trust-badge span) {
  letter-spacing: -0.015em !important;
}

body :where(.home-solutions-kicker, .home-solution-eyebrow) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
  line-height: 1 !important;
}

body :where(.home-solutions-kicker) {
  background: linear-gradient(180deg, rgba(13, 110, 253, 0.08), rgba(13, 110, 253, 0.04)) !important;
  border: 1px solid rgba(13, 110, 253, 0.08) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85) !important;
}

body :where(.home-solution-eyebrow) {
  font-size: 17px !important;
  min-height: 34px !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

body :where(.cta-sub, .section-number-bar .badge, .badge-soft, .reviews-kicker, .prozess-kicker, .tarif-table-kicker) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  line-height: 1 !important;
}

body :where(.cta-sub) {
  margin-top: 8px !important;
  background: linear-gradient(180deg, rgba(13, 110, 253, 0.08), rgba(13, 110, 253, 0.03)) !important;
  border: 1px solid rgba(13, 110, 253, 0.08) !important;
}

body :where(.banner-inner-section h1) {
  max-width: 11.5ch;
}

body :where(.banner-inner-section h1 + p, .home-solutions-head-editorial p, .home-solution-pro-card p) {
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.68 !important;
}

@media (max-width: 991.98px) {
  body :where(.banner-inner-section h1) {
    letter-spacing: -0.05em !important;
    line-height: 0.94 !important;
    max-width: 100%;
  }
}

@media (max-width: 575.98px) {
  body :where(.home-solutions-head-editorial h2, .privat-cards-heading h2, .cta-dark-card h2) {
    line-height: 0.96 !important;
  }

  body :where(.home-solutions-kicker, .home-solution-eyebrow, .cta-sub, .section-number-bar .badge, .badge-soft) {
    font-size: 13px !important;
    min-height: 36px !important;
    padding: 0 15px !important;
  }

  body :where(.home-solution-eyebrow) {
    font-size: 15px !important;
    min-height: 30px !important;
    padding: 0 !important;
  }
}
