:root {
  --fs-xs:   0.75rem;
  --fs-sm:   0.875rem;
  --fs-base: 1rem;
  --fs-md:   1.0625rem;
  --fs-lg:   1.125rem;
  --fs-xl:   clamp(1.15rem, 2.2vw, 1.5rem);
  --fs-2xl:  clamp(1.3rem, 2.5vw, 1.6rem);
  --fs-3xl:  clamp(1.5rem, 3vw, 1.8rem);
  --fs-4xl:  clamp(1.8rem, 3.5vw, 2.4rem);
  --fs-hero: clamp(2rem, 4vw, 3rem);

  --lh-tight:   1.2;
  --lh-snug:    1.3;
  --lh-normal:  1.6;
  --lh-relaxed: 1.7;
  --lh-loose:   1.8;

  --fw-normal:  400;
  --fw-medium:  500;
  --fw-semibold: 600;
  --fw-bold:    700;

  --heading-mt-sm: 1.5rem;
  --heading-mt-md: 2rem;
  --heading-mb-xs: 0.5rem;
  --heading-mb-sm: 0.8rem;
  --heading-mb-md: 1.2rem;
  --heading-mb-lg: 1.5rem;
}


h1, h2, h3, h4, h5, h6 {
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--color-primary);
  margin-top: 0;
  margin-bottom: var(--heading-mb-md);
}

h1 { font-size: var(--fs-4xl); }
h2 { font-size: 2rem; }

h3 {
  font-size: 1.5rem;
  margin-bottom: var(--heading-mb-sm);
}

h4 {
  font-size: 1rem;
  font-weight: var(--fw-bold);
  margin-bottom: 0.8rem;
}

h5 {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary);
  margin-bottom: 1rem;
}

h6 {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-text-secondary);
  margin-bottom: 0.5rem;
}


body {
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
}

p {
  margin-bottom: 1rem;
  line-height: var(--lh-normal);
}

p + p { margin-top: 0; }


.content-section h1,
.content-section h2 {
  line-height: var(--lh-snug);
}

.content-section p,
.page-inner p,
.page-content p {
  font-size: var(--fs-lg);
}


.cards-duo .duo-card h3,
.cards-duo .duo-card h4 {
  font-size: var(--fs-xl);
  line-height: var(--lh-snug);
  margin-bottom: 0.4rem;
  color: var(--color-primary);
}

.partner-card h3 {
  font-size: var(--fs-2xl);
}


.faq-area-group h5 {
  margin-bottom: 1.2rem;
}


.t3-headline {
  line-height: var(--lh-tight);
}


.btn-card,
.btn-card-extern {
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
}

.section-label {
  display: inline-block;
  font-size: 0.91rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.4rem 1.3rem;
  border-radius: 30px;
  white-space: nowrap;
  margin: 0;
}

.label-blue   { background: #dce8f7; color: #1e4d8c; }
.label-orange { background: #fce8d5; color: #a0440a; }
.label-green  { background: #e0f0e6; color: var(--color-primary); }

h2.section-label {
  font-size: 0.91rem;
  line-height: 1.4;
  margin: 0;
}
