/*
 * DIASELECT GLOBAL TYPOGRAPHY LOCK — 2026-09-22
 * Montserrat is the only approved typeface for Homepage, subpages,
 * embedded components, product cards, navigation, forms and metadata.
 * Do not restore serif or monospace typography tokens.
 */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Montserrat-400.ttf") format("truetype")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/Montserrat-500.ttf") format("truetype")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/Montserrat-600.ttf") format("truetype")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/Montserrat-700.ttf") format("truetype")}

:root {
  --font-sans: "Montserrat", Arial, Helvetica, sans-serif;
  --choice-active-border: #8caea2;

  --type-page-h1-size: 3rem;
  --type-page-h1-weight: 600;
  --type-page-h1-line: 1.04;
  --type-page-h1-track: -.04em;

  --type-product-hero-size: 2.8125rem;
  --type-product-hero-weight: 500;
  --type-product-hero-line: 1.08;
  --type-product-hero-track: -.025em;

  --type-h2-size: 2.6875rem;
  --type-h2-weight: 600;
  --type-h2-line: 1.13;
  --type-h2-track: -.032em;

  --type-h3-size: 1.8125rem;
  --type-h3-weight: 600;
  --type-h3-line: 1.22;
  --type-h3-track: -.018em;

  --type-card-title-size: 1.125rem;
  --type-card-title-weight: 600;
  --type-card-title-line: 1.42;
  --type-card-title-track: -.012em;

  --type-editorial-display-size: 2rem;
  --type-editorial-display-weight: 500;
  --type-editorial-display-line: 1.15;
  --type-editorial-display-track: -.03em;

  --type-lead-size: 1.0625rem;
  --type-lead-weight: 400;
  --type-lead-line: 1.65;
  --type-lead-track: 0;

  --type-body-size: 1rem;
  --type-body-weight: 400;
  --type-body-line: 1.65;
  --type-body-track: 0;

  --type-small-size: .875rem;
  --type-small-weight: 400;
  --type-small-line: 1.6;
  --type-small-track: 0;

  --type-meta-size: .75rem;
  --type-meta-weight: 500;
  --type-meta-line: 1.4;
  --type-meta-track: .04em;

  --type-eyebrow-size: .75rem;
  --type-eyebrow-weight: 700;
  --type-eyebrow-line: 1.25;
  --type-eyebrow-track: .14em;

  --type-cta-size: .875rem;
  --type-cta-weight: 700;
  --type-cta-line: 1.2;
  --type-cta-track: 0;

  --type-nav-size: .9375rem;
  --type-nav-weight: 500;
  --type-nav-line: 1.3;
  --type-nav-track: 0;

  --space-eyebrow-heading: 18px;
  --space-heading-lead: 24px;
  --page-opening-offset: 76px;
}

html body,
button,
input,
select,
textarea {
  font-family: var(--font-sans);
}

html body {
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line);
  letter-spacing: var(--type-body-track);
}

.desktop-nav,
.mobile-nav,
.site-footer nav {
  font-size: var(--type-nav-size);
  font-weight: var(--type-nav-weight);
  line-height: var(--type-nav-line);
  letter-spacing: var(--type-nav-track);
}

.desktop-nav a[aria-current="page"],
.mobile-nav a[aria-current="page"] {
  font-weight: 600 !important;
}

.eyebrow,
.hero-eyebrow,
.technology-label,
.goal-character,
.person-role,
.partner-subtitle {
  font-size: var(--type-eyebrow-size);
  font-weight: var(--type-eyebrow-weight);
  line-height: var(--type-eyebrow-line);
  letter-spacing: var(--type-eyebrow-track);
}

.solutions-opening h1,
.solid-opening h1,
.hema-opening h1,
.pgx-opening h1,
.about-opening h1 {
  font-family: var(--font-sans);
  font-size: var(--type-page-h1-size);
  font-weight: var(--type-page-h1-weight);
  line-height: var(--type-page-h1-line);
  letter-spacing: var(--type-page-h1-track);
}

.section-intro h2,
.contact h2,
.solutions-directory .solution-copy h2,
.solutions-contact h2,
.diagnostic-intro h2,
.directory-intro h2,
.workflow-intro h2,
.path-heading h2,
.technology-intro h2,
.pgx-contact h2,
.hema-contact h2,
.solid-contact h2,
.woven-copy h2,
.team-intro h2,
.partners-intro h2,
.about-cta h2,
.solution-tile h3,
.technology-name,
.values h3,
.person-copy h3,
.partner-field h3,
.biomarker-group h3,
.product-group h3,
.discovery-group h4 {
  font-weight: 500;
}

.hero-copy h1,
.hero-copy h2 {
  font-family: var(--font-sans);
  font-size: var(--type-product-hero-size);
  font-weight: var(--type-product-hero-weight);
  line-height: var(--type-product-hero-line);
  letter-spacing: var(--type-product-hero-track);
}

.section-intro h2,
.contact h2,
.solutions-contact h2,
.diagnostic-intro h2,
.directory-intro h2,
.workflow-intro h2,
.path-heading h2,
.technology-intro h2,
.pgx-contact h2,
.hema-contact h2,
.solid-contact h2,
.woven-copy h2,
.team-intro h2,
.partners-intro h2,
.about-cta h2 {
  font-size: var(--type-h2-size);
  line-height: var(--type-h2-line);
  letter-spacing: var(--type-h2-track);
}

.solution-tile h3,
.technology-name,
.values h3,
.person-copy h3,
.partner-field h3,
.biomarker-group h3,
.product-group h3,
.discovery-group h4,
.solutions-directory .solution-copy h2 {
  font-size: var(--type-h3-size);
  line-height: var(--type-h3-line);
  letter-spacing: var(--type-h3-track);
}

.section-intro > p:last-child,
.contact-copy > p:not(.eyebrow),
.solutions-opening-lead,
.solid-opening-lead,
.hema-opening-lead,
.pgx-opening-lead,
.about-opening-lead,
.woven-copy > p:last-child {
  font-size: var(--type-lead-size);
  font-weight: var(--type-lead-weight);
  line-height: var(--type-lead-line);
  letter-spacing: var(--type-lead-track);
}

.hero-cta,
.technology-section-link a,
.contact-form button,
.solutions-contact a,
.product-action,
.solid-contact > a,
.hema-contact > a,
.pgx-contact > a,
.about-cta a {
  font-size: var(--type-cta-size);
  font-weight: var(--type-cta-weight);
  line-height: var(--type-cta-line);
  letter-spacing: var(--type-cta-track);
}

.contact-form label {
  font-size: var(--type-small-size);
  font-weight: 600;
  line-height: var(--type-small-line);
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line);
}

/* Technologie — osadzony, zatwierdzony moduł; tylko warstwa typograficzna. */
.technology-component h1 {
  font-family: var(--font-sans) !important;
  font-size: var(--type-page-h1-size) !important;
  font-weight: var(--type-page-h1-weight) !important;
  line-height: var(--type-page-h1-line) !important;
  letter-spacing: var(--type-page-h1-track) !important;
}

.technology-component h2,
.technology-component .tech-chapter-head h2 {
  font-size: var(--type-h2-size) !important;
  font-weight: var(--type-h2-weight) !important;
  line-height: var(--type-h2-line) !important;
  letter-spacing: var(--type-h2-track) !important;
}

.technology-component h3,
.technology-component .choice-name,
.technology-component .rt-scene-copy h3 {
  font-size: var(--type-h3-size) !important;
  font-weight: var(--type-h3-weight) !important;
  line-height: var(--type-h3-line) !important;
  letter-spacing: var(--type-h3-track) !important;
}

.technology-component .eyebrow,
.technology-component .section-no,
.technology-component .subhead,
.technology-component .fit-label {
  font-size: var(--type-eyebrow-size) !important;
  font-weight: var(--type-eyebrow-weight) !important;
  line-height: var(--type-eyebrow-line) !important;
  letter-spacing: var(--type-eyebrow-track) !important;
}

.technology-component .lead {
  font-size: var(--type-lead-size) !important;
  font-weight: var(--type-lead-weight) !important;
  line-height: var(--type-lead-line) !important;
  letter-spacing: var(--type-lead-track) !important;
}

.technology-component .section-lead,
.technology-component .tech-choice p,
.technology-component .fit-editorial p,
.technology-component .rt-scene-copy p {
  font-size: var(--type-body-size) !important;
  font-weight: var(--type-body-weight) !important;
  line-height: var(--type-body-line) !important;
  letter-spacing: var(--type-body-track) !important;
}

.technology-component .step strong,
.technology-component .system-name,
.technology-component .tech-flow-stage strong,
.technology-component .tech-flow-stage small,
.technology-component .step small,
.technology-component .rt-system-maker,
.technology-component .rt-system-name,
.technology-component .rt-system-detail {
  font-size: var(--type-small-size) !important;
  line-height: var(--type-small-line) !important;
}

.technology-component .link,
.technology-component .cta {
  font-size: var(--type-cta-size) !important;
  font-weight: var(--type-cta-weight) !important;
  line-height: var(--type-cta-line) !important;
  letter-spacing: var(--type-cta-track) !important;
}

/* Aktualności — lista, homepage focus i artykuł. */
.news-component h1 {
  font-family: var(--font-sans) !important;
  font-size: var(--type-page-h1-size) !important;
  font-weight: var(--type-page-h1-weight) !important;
  line-height: var(--type-page-h1-line) !important;
  letter-spacing: var(--type-page-h1-track) !important;
}

.news-component h2,
.news-component .article-body h2 {
  font-size: var(--type-h2-size) !important;
  font-weight: var(--type-h2-weight) !important;
  line-height: var(--type-h2-line) !important;
  letter-spacing: var(--type-h2-track) !important;
}

.news-component h3,
.news-component .article-body h3 {
  font-size: var(--type-h3-size) !important;
  font-weight: var(--type-h3-weight) !important;
  line-height: var(--type-h3-line) !important;
  letter-spacing: var(--type-h3-track) !important;
}

.news-component .news-card h3,
.news-component .editorial-item h3 {
  font-size: var(--type-card-title-size) !important;
  font-weight: var(--type-card-title-weight) !important;
  line-height: var(--type-card-title-line) !important;
  letter-spacing: var(--type-card-title-track) !important;
}

.news-component h2,
.news-component .article-body h2,
.faq-component .questions-title {
  font-weight: 500 !important;
}

.news-component .eyebrow,
.news-component .topic {
  font-size: var(--type-eyebrow-size) !important;
  font-weight: var(--type-eyebrow-weight) !important;
  line-height: var(--type-eyebrow-line) !important;
  letter-spacing: var(--type-eyebrow-track) !important;
}

.news-component .lead,
.news-component .home-hero p {
  font-size: var(--type-lead-size) !important;
  font-weight: var(--type-lead-weight) !important;
  line-height: var(--type-lead-line) !important;
}

.news-component .article-body {
  font-size: var(--type-body-size) !important;
  font-weight: var(--type-body-weight) !important;
  line-height: var(--type-body-line) !important;
}

.news-component .news-card p,
.news-component .editorial-item p {
  font-size: var(--type-small-size) !important;
  font-weight: var(--type-small-weight) !important;
  line-height: var(--type-small-line) !important;
}

.news-component .read-more,
.news-component .archive-link,
.news-component .back-link,
.news-component .focus-head .all-link,
.news-component .focus-bottom button,
.news-component .more-btn {
  font-size: var(--type-cta-size) !important;
  font-weight: var(--type-cta-weight) !important;
  line-height: var(--type-cta-line) !important;
}

.news-component .filter-btn {
  font-size: var(--type-small-size) !important;
  line-height: var(--type-small-line) !important;
}

.news-component .meta,
.news-component time {
  font-size: var(--type-meta-size) !important;
  font-weight: var(--type-meta-weight) !important;
  line-height: var(--type-meta-line) !important;
  letter-spacing: var(--type-meta-track) !important;
}

/* FAQ i mapa — mapa pozostaje osobnym, świadomie editorialowym displayem. */
.faq-component .map-copy {
  font-size: var(--type-editorial-display-size) !important;
  font-weight: var(--type-editorial-display-weight) !important;
  line-height: var(--type-editorial-display-line) !important;
  letter-spacing: var(--type-editorial-display-track) !important;
}

.faq-component .questions-title {
  font-size: var(--type-h2-size) !important;
  font-weight: 500 !important;
  line-height: var(--type-h2-line) !important;
  letter-spacing: var(--type-h2-track) !important;
}

.faq-component .qa-question {
  font-size: var(--type-card-title-size) !important;
  font-weight: var(--type-card-title-weight) !important;
  line-height: var(--type-card-title-line) !important;
  letter-spacing: var(--type-card-title-track) !important;
}

.faq-component .qa-panel p {
  font-size: var(--type-body-size) !important;
  font-weight: var(--type-body-weight) !important;
  line-height: var(--type-body-line) !important;
}

/* Karty produktu — zewnętrzny LOCK danych i layoutu pozostaje bez zmian. */
.product-card-component h1#productName {
  font-family: var(--font-sans) !important;
  font-size: var(--type-product-hero-size) !important;
  font-weight: var(--type-product-hero-weight) !important;
  line-height: var(--type-product-hero-line) !important;
  letter-spacing: var(--type-product-hero-track) !important;
}

.product-card-component h2 {
  font-size: var(--type-h2-size) !important;
  font-weight: var(--type-h2-weight) !important;
  line-height: var(--type-h2-line) !important;
  letter-spacing: var(--type-h2-track) !important;
}

.product-card-component .eyebrow,
.product-card-component .section-no,
.product-card-component .demo-kicker,
.product-card-component .core-item h3,
.product-card-component .tech-subheading {
  font-size: var(--type-eyebrow-size) !important;
  font-weight: var(--type-eyebrow-weight) !important;
  line-height: var(--type-eyebrow-line) !important;
  letter-spacing: var(--type-eyebrow-track) !important;
}

.product-card-component .lead {
  font-size: var(--type-lead-size) !important;
  font-weight: var(--type-lead-weight) !important;
  line-height: var(--type-lead-line) !important;
}

.product-card-component .section-lead,
.product-card-component .core-item p,
.product-card-component .path,
.product-card-component .doc-copy,
.product-card-component .contact p {
  font-size: var(--type-body-size) !important;
  font-weight: var(--type-body-weight) !important;
  line-height: var(--type-body-line) !important;
}

.product-card-component .d-title,
.product-card-component .path strong,
.product-card-component .wf-panel h4 {
  font-size: var(--type-card-title-size) !important;
  font-weight: var(--type-card-title-weight) !important;
  line-height: var(--type-card-title-line) !important;
  letter-spacing: var(--type-card-title-track) !important;
}

.product-card-component .hero-cta,
.product-card-component .contact-action,
.product-card-component .doc-action,
.product-card-component .nav-cta,
.product-card-component .dialog-close,
.product-card-component .text-link {
  font-size: var(--type-cta-size) !important;
  font-weight: var(--type-cta-weight) !important;
  line-height: var(--type-cta-line) !important;
  letter-spacing: var(--type-cta-track) !important;
}

@media (max-width: 1100px) {
  :root {
    --type-page-h1-size: 3rem;
    --type-product-hero-size: 2.25rem;
    --type-h2-size: 2.375rem;
    --type-h3-size: 1.625rem;
  }
}

@media (max-width: 900px) {
  :root {
    --type-page-h1-size: 3rem;
    --type-product-hero-size: 2rem;
    --type-h2-size: 2.375rem;
    --type-h3-size: 1.625rem;
    --type-lead-size: 1rem;
    --space-eyebrow-heading: 18px;
    --space-heading-lead: 22px;
  }
}

@media (max-width: 560px) {
  :root {
    --type-page-h1-size: 2.25rem;
    --type-product-hero-size: 1.75rem;
    --type-h2-size: 1.875rem;
    --type-h3-size: 1.3125rem;
    --type-lead-size: 1rem;
    --type-eyebrow-size: .75rem;
    --space-eyebrow-heading: 16px;
    --space-heading-lead: 20px;
  }
}

/* Work 3: shared opening geometry for equivalent page headings. */
:is(.solutions-opening,.solid-opening,.hema-opening,.pgx-opening,.about-opening) h1 {
  max-width: 980px;
}
:is(.solutions-opening,.solid-opening,.hema-opening,.pgx-opening,.about-opening) :is(.solutions-opening-lead,.solid-opening-lead,.hema-opening-lead,.pgx-opening-lead,.about-opening-lead) {
  max-width: 830px;
}

/* One spacing scale for equivalent subpage introductions. */
:is(.solutions-opening,.solid-opening,.hema-opening,.pgx-opening,.about-opening) {
  min-height: 0;
}
:is(.solutions-opening,.solid-opening,.hema-opening,.pgx-opening,.about-opening) :is(
  .solutions-opening-inner,.solid-opening-inner,.hema-opening-inner,.pgx-opening-inner,.about-opening-inner
) {
  padding-top: var(--page-opening-offset);
  padding-bottom: 76px;
}
:is(.solutions-opening,.solid-opening,.hema-opening,.pgx-opening,.about-opening) :is(
  .solutions-opening-lead,.solid-opening-lead,.hema-opening-lead,.pgx-opening-lead,.about-opening-lead
) {
  margin-top: var(--space-heading-lead);
}
@media (max-width: 900px) {
  :root { --page-opening-offset: 62px; }
  :is(.solutions-opening,.solid-opening,.hema-opening,.pgx-opening,.about-opening) :is(
    .solutions-opening-inner,.solid-opening-inner,.hema-opening-inner,.pgx-opening-inner,.about-opening-inner
  ) { padding-top: var(--page-opening-offset); padding-bottom: 60px; }
}
@media (max-width: 560px) {
  :root { --page-opening-offset: 48px; }
  :is(.solutions-opening,.solid-opening,.hema-opening,.pgx-opening,.about-opening) :is(
    .solutions-opening-inner,.solid-opening-inner,.hema-opening-inner,.pgx-opening-inner,.about-opening-inner
  ) { padding-top: var(--page-opening-offset); padding-bottom: 48px; }
}

/* Jeden, mniejszy rytm nagłówków na podstronach. Homepage ma własną skalę HERO. */
:is(
  .solutions-page,
  .solid-tumors-page,
  .hema-page,
  .pgx-page,
  .about-page,
  .technology-page,
  .news-page,
  .product-page,
  .technology-component,
  .news-component,
  .product-card-component
) {
  --type-page-h1-size: 2.6875rem;
  --type-h2-size: 2.125rem;
  --type-h3-size: 1.5rem;
}

.product-card-component {
  --type-product-hero-size: 2.75rem;
}

@media (max-width: 1100px) {
  :is(.solutions-page, .solid-tumors-page, .hema-page, .pgx-page,
      .about-page, .technology-page, .news-page, .product-page,
      .technology-component, .news-component, .product-card-component) {
    --type-page-h1-size: 2.625rem;
    --type-h2-size: 2rem;
    --type-h3-size: 1.375rem;
  }
  .product-card-component { --type-product-hero-size: 2.625rem; }
}

@media (max-width: 900px) {
  :is(.solutions-page, .solid-tumors-page, .hema-page, .pgx-page,
      .about-page, .technology-page, .news-page, .product-page,
      .technology-component, .news-component, .product-card-component) {
    --type-page-h1-size: 2.5rem;
    --type-h2-size: 1.875rem;
    --type-h3-size: 1.375rem;
  }
  .product-card-component { --type-product-hero-size: 2.5rem; }
}

@media (max-width: 560px) {
  :is(.solutions-page, .solid-tumors-page, .hema-page, .pgx-page,
      .about-page, .technology-page, .news-page, .product-page,
      .technology-component, .news-component, .product-card-component) {
    --type-page-h1-size: 1.875rem;
    --type-h2-size: 1.5rem;
    --type-h3-size: 1.125rem;
  }
  .product-card-component { --type-product-hero-size: 1.875rem; }
}
