/* Locally hosted Google Fonts. Czech Latin Extended glyphs are included. */
@font-face {
  font-family: "Open Sans";
  src: url("fonts/opensans-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Open Sans";
  src: url("fonts/opensans-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Open Sans";
  src: url("fonts/opensans-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: "Open Sans";
  src: url("fonts/opensans-800.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}
@font-face {
  font-family: "Space Grotesk";
  src: url("fonts/space-grotesk-500.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Space Grotesk";
  src: url("fonts/space-grotesk-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Space Grotesk";
  src: url("fonts/space-grotesk-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

body.bg-slate-950 {
  font-family: "Open Sans", "Helvetica Neue", Arial, sans-serif !important;
}

/* Keep Space Grotesk to compact labels and numeric metadata. */
.hero-kicker,
.case-type,
.service-price,
.service-price small,
.process-list li > span,
.cooperation-price,
.section-eyebrow,
.problem-eyebrow,
.problem-list span,
.ms-dialog-brand,
.site-nav .nav-links .nav-cta,
.service-index,
#quiz-progress-label,
.price,
[data-number],
.tabular-nums {
  font-family: "Space Grotesk", "Open Sans", sans-serif;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.hero-content h1 {
  font-family: "Open Sans", "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(3.6rem, 6.25vw, 6.5rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.035em;
}

/* Section headings follow the reference's compact, heavy hierarchy. */
.section-heading h2,
.diagnostic-inner h2,
.aftercare-inner h2,
#kontakt h2,
#faq h2 {
  font-size: clamp(2.375rem, 3.15vw, 2.75rem);
  font-weight: 800;
  line-height: 1.14;
  letter-spacing: -.035em;
}
.service-item h3,
.case-grid h3,
.process-list h3,
.cooperation-grid h3,
.problem-list h3 {
  font-size: clamp(1.25rem, 1.75vw, 1.5rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.02em;
}
.problem-section h2,
.aftercare-inner h2 {
  font-weight: 800;
}

body #quiz-title,
body #quiz-question-container > p,
body #quiz-result-title,
body > [data-modal] #modal-title {
  font-family: "Open Sans", "Helvetica Neue", Arial, sans-serif;
  font-weight: 800;
}
body #quiz-box,
body > [data-modal],
body #cookie-consent {
  font-family: "Open Sans", "Helvetica Neue", Arial, sans-serif;
}

@media (max-width: 767px) {
  .hero-content h1 {
    font-size: clamp(1.9rem, 8.2vw, 2.15rem);
    line-height: 1.12;
  }
  .section-heading h2,
  .diagnostic-inner h2,
  .aftercare-inner h2,
  #kontakt h2,
  #faq h2 {
    font-size: clamp(1.875rem, 8.2vw, 2.125rem);
  }
  .service-item h3,
  .case-grid h3,
  .process-list h3,
  .cooperation-grid h3,
  .problem-list h3 {
    font-size: 1.25rem;
  }
}

@media (max-width: 360px) {
  .hero-content h1 { font-size: 1.9rem; }
}
