/* Shared ACF block typography. Loaded after page-specific styles so every
   editorial block follows the same scale as the homepage. */

:is(
  .subpage-intro,
  .about-woven,
  .about-team,
  .about-partners,
  .about-cta,
  .solutions-directory,
  .solutions-contact,
  .diagnostic-section,
  .pgx-technology,
  .pgx-contact,
  .hema-directory,
  .hema-workflow,
  .hema-contact,
  .solid-contact,
  .technologies-home,
  .technology-contact,
  .native-news,
  .map-faq-section,
  .values,
  .contact,
  .privacy-content
) {
  font-family: var(--font-sans);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line);
  letter-spacing: var(--type-body-track);
}

:is(
  .subpage-intro-title,
  .solid-opening h1,
  .hema-opening h1,
  .pgx-opening h1,
  .privacy-content > h1
) {
  font-family: var(--font-sans) !important;
  font-size: var(--type-h2-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;
  text-wrap: balance;
}

:is(
  .section-intro h2,
  .woven-copy h2,
  .team-intro h2,
  .partners-intro h2,
  .about-cta h2,
  .diagnostic-intro h2,
  .directory-intro h2,
  .workflow-intro h2,
  .path-heading h2,
  .technology-intro h2,
  .solutions-contact h2,
  .solid-contact h2,
  .hema-contact h2,
  .pgx-contact h2,
  .technology-contact h2,
  .native-news h2,
  .questions-title,
  .contact h2,
  .privacy-content h2
) {
  font-family: var(--font-sans) !important;
  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;
  text-wrap: balance;
}

:is(
  .solution-tile h3,
  .solution-copy h2,
  .technology-name,
  .values h3,
  .person-copy h3,
  .partner-field h3,
  .goal-tab strong,
  .biomarker-group h3,
  .product-group h3,
  .discovery-group h4,
  .native-news-card h3,
  .privacy-content h3
) {
  font-family: var(--font-sans) !important;
  /* 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;
  font-size: 1.17em;
}

:is(
  .eyebrow,
  .technology-label,
  .goal-character,
  .person-role,
  .partner-subtitle,
  .path-heading > p
) {
  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;
}

:is(
  .subpage-intro-lead,
  .solid-opening-lead,
  .hema-opening-lead,
  .pgx-opening-lead,
  .section-intro > p:not(.eyebrow),
  .woven-copy > p:last-child
) {
  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;
}

:is(
  .team-intro > p:last-child,
  .person-copy > p:last-child,
  .partner-content > p,
  .diagnostic-intro > p:last-child,
  .technology-intro > p:last-child,
  .workflow-note,
  .goal-tab > span:last-child,
  .solutions-contact p,
  .solid-contact p,
  .hema-contact p,
  .pgx-contact p,
  .technology-contact p,
  .native-news-card > p,
  .qa-panel p,
  .contact-copy > p:not(.eyebrow),
  .privacy-content p,
  .privacy-content li
) {
  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;
}

:is(
  .product-name,
  .qa-question,
  .workflow-tab strong
) {
  /* 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;
  font-size: 1rem !important;
}

:is(
  .product-code,
  .product-facts dt,
  .workflow-number,
  .workflow-tab > span,
  .native-news-date
) {
  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;
}

:is(
  .product-facts dd,
  .technology-fit
) {
  font-size: var(--type-small-size) !important;
  font-weight: var(--type-small-weight) !important;
  line-height: var(--type-small-line) !important;
  letter-spacing: var(--type-small-track) !important;
}

:is(
  .product-action,
  .read-more,
  .technology-section-link a,
  .about-cta a,
  .solutions-contact a,
  .solid-contact a,
  .hema-contact a,
  .pgx-contact a,
  .technology-contact-cta,
  .contact-form button
) {
  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: 560px) {
  :is(
    .subpage-intro-title,
    .solid-opening h1,
    .hema-opening h1,
    .pgx-opening h1,
    .privacy-content > h1
  ) {
    overflow-wrap: anywhere;
  }
}

/* About/team desktop layout: equal columns and a heading contained by the shell. */
@media (min-width: 901px) {
  .about-page .about-team {
    padding-top: 0 !important;
  }

  .about-page .team-intro {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: clamp(56px, 6vw, 80px);
  }

  .about-page .team-intro h2 {
    min-width: 0;
    max-width: 100%;
    margin-top: 0;
    font-size: clamp(1.75rem, 2.35vw, 2rem) !important;
    line-height: 1.28 !important;
    overflow-wrap: anywhere;
  }

  .about-page .team-intro h2 span {
    white-space: normal;
  }
}

/* Shared animated text link, based on the news read-more treatment. */
.text-link-animated {
  position: relative;
  display: inline-block;
  width: max-content;
  max-width: 100%;
  padding-bottom: 4px;
  color: var(--navy);
  text-decoration: none;
}

.text-link-animated::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: var(--green);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .24s ease;
}

.text-link-animated:hover::after,
.text-link-animated:focus-visible::after {
  transform: scaleX(1);
}

.text-link-animated:hover,
.text-link-animated:focus-visible {
  color: var(--navy);
}

.partner-external-link {
  border-bottom: 0 !important;
}

.partner-label span {
  display: inline-grid;
  place-items: center;
  align-self: flex-start;
  width: 42px;
  height: 42px;
  margin: 0 0 20px;
  border-radius: 50%;
  background: #edf4ef;
  color: var(--green) !important;
  line-height: 1;
}

.partner-diatech .partner-label span {
  box-sizing: border-box;
  border: 1px solid rgba(3, 105, 75, .2);
  background: #fff;
}

/* Shared green CTA. Page-level classes may still control placement and width. */
.site-button.site-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  max-width: 100%;
  padding: 12px 19px;
  border: 1px solid var(--green);
  border-radius: 0;
  background: var(--green);
  color: #fff;
  font-family: var(--font-sans);
  font-size: var(--type-cta-size);
  font-weight: var(--type-cta-weight);
  line-height: var(--type-cta-line);
  letter-spacing: var(--type-cta-track);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.site-button.site-button:hover,
.site-button.site-button:focus-visible {
  border-color: #262d5c;
  background: #262d5c;
  color: #fff;
  transform: none;
}

/* The contact form keeps its white default button and gains the common hover. */
.contact-form button[type="submit"]:hover,
.contact-form button[type="submit"]:focus-visible {
  border-color: var(--green);
  background: var(--green);
  color: #fff;
  transform: none;
}

/* Biomarker directory: one visual container and one level of separators. */
.biomarker-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-items: start;
  padding: 0;
  border: 0;
  background: transparent;
}

.biomarker-list .biomarker-group,
.biomarker-list .biomarker-group + .biomarker-group {
  margin: 0;
  padding: 24px 0 0;
  border: 0;
  border-top: 1px solid rgba(3, 105, 75, .42);
  background: rgba(255, 255, 255, .58);
}

.biomarker-list .biomarker-group h3 {
  margin: 0 0 12px;
  font-size: clamp(1.25rem, 1.7vw, 1.55rem) !important;
  line-height: 1.2 !important;
  padding-inline: 27px;
}

.biomarker-list .biomarker-product-list {
  border: 0;
  border-top: 1px solid rgba(9, 47, 66, .12);
}

.biomarker-list .biomarker-item {
  border: 0;

  background: transparent;

}
.biomarker-list .biomarker-item .product-name {
padding-left: 19px;
}

.biomarker-list .biomarker-item:last-child {
  /* border-bottom: 1px solid rgba(9, 47, 66, .12); */
}

.biomarker-list .biomarker-item summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin: 0;
  padding: 16px 52px 16px 9px;
  border: 0;
  background: transparent;
  transition: background-color .2s ease;
}

.biomarker-list .biomarker-item summary::before,
.biomarker-list .biomarker-item summary::after {
  display: none;
  content: none;
}

.biomarker-list .biomarker-item summary:hover {
  background: rgba(233, 242, 238, .5);
}

.biomarker-list .biomarker-item summary:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 2px;
  box-shadow: none;
}

.biomarker-list .biomarker-item .qa-toggle {
  position: absolute;
  top: 50%;
  right: 5px;
  color: var(--navy);
  transform: translateY(-50%);
}

.biomarker-list .biomarker-item.is-open > summary {
  background: rgba(233, 242, 238, .36);
}

.biomarker-list .biomarker-item.is-open .qa-toggle {
  color: var(--green);
}

.biomarker-list .biomarker-item.is-open .qa-toggle span:last-child {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

.biomarker-list .product-code {
  color: inherit !important;
}

.biomarker-list .biomarker-item .product-detail-panel {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  opacity: 0;
  transition: grid-template-rows .28s cubic-bezier(.2, .65, .25, 1), opacity .22s ease;
}

/* Product lists use the same smooth grid-row accordion as technology-family. */
.diagnostic-section .product-item summary::before,
.diagnostic-section .product-item summary::after {
  display: none;
  content: none;
}

.diagnostic-section .product-item summary {
  padding-right: 52px;
  transition: background-color .2s ease;
}

.diagnostic-section .product-item summary:hover,
.diagnostic-section .product-item.is-open > summary {
  background: rgba(233, 242, 238, .5);
}

.diagnostic-section .product-item .product-code {
  color: inherit !important;
}

.diagnostic-section .product-item .qa-toggle {
  position: absolute;
  top: 50%;
  right: 5px;
  color: var(--navy);
  transform: translateY(-50%);
}

.diagnostic-section .product-item.is-open .qa-toggle {
  color: var(--green);
}

.diagnostic-section .product-item.is-open .qa-toggle span:last-child {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

.diagnostic-section .product-item .product-detail-panel {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  opacity: 0;
  transition: grid-template-rows .28s cubic-bezier(.2, .65, .25, 1), opacity .22s ease;
}

.diagnostic-section .product-item.is-open .product-detail-panel {
  grid-template-rows: 1fr;
  opacity: 1;
}

.diagnostic-section .product-item .product-detail-panel > .product-detail {
  min-height: 0;
  overflow: hidden;
  padding-left: 10px;
}

@media (prefers-reduced-motion: reduce) {
  .diagnostic-section .product-item .product-detail-panel {
    transition: none;
  }
}

.biomarker-list .biomarker-item.is-open .product-detail-panel {
  grid-template-rows: 1fr;
  opacity: 1;
}

.biomarker-list .biomarker-item .product-detail-panel > .product-detail {
  min-height: 0;
  overflow: hidden;
}

.biomarker-list .biomarker-item .product-detail {
  padding: 9px 28px 22px;
}

.biomarker-list .biomarker-item .product-facts,
.product-list .product-facts {
  /* grid-template-columns: repeat(3, minmax(0, 1fr)); */
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.product-list .product-facts {
  padding-top: 14px;
}
.biomarker-list .biomarker-item .product-detail > .product-action {
  margin-right: 0;
}
.product-list .product-item .product-name,
.product-list h3 {
  padding-left: 10px;
}
@media (max-width: 700px) {
  .biomarker-list {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .biomarker-list .biomarker-group,
  .biomarker-list .biomarker-group + .biomarker-group {
    padding: 20px 0 22px;
  }

  .biomarker-list .biomarker-item summary {
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 16px 45px 16px 7px;
  }

  .biomarker-list .biomarker-item .product-detail {
    padding-inline: 7px;
  }
}

@media (max-width: 900px) {
  .biomarker-list .biomarker-item .product-detail-panel {
    margin-left: 0;
  }

  .biomarker-list .biomarker-item .product-facts {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .biomarker-list .biomarker-item .product-detail-panel {
    transition: none;
  }
}

/* Product directories share the visual language of technology families. */
.product-directory {
 display: flex;
  flex-direction: column;
  gap: 18px;
}

.product-directory .product-group,
.product-directory .product-group + .product-group {
  margin: 0;
  padding: 24px 0 0;
  border: 0;
  /* border-top: 1px solid rgba(3, 105, 75, .42);
  background: rgba(255, 255, 255, .58); */
}

.product-directory .product-group h3 {
  margin: 0 0 10px;
  padding-left: 10px;
}

.product-directory .product-list {
  border: 0;
}

.product-directory .product-item {
  border: 0;
  border-top: 1px solid rgba(9, 47, 66, .12);
  background: transparent;
}

.product-directory .product-item .product-name {
  /* padding-left: 19px; */
  padding-left: 0;
}

.product-directory .product-item:last-child {
  border-bottom: 1px solid rgba(9, 47, 66, .12);
}

.product-directory .product-item summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin: 0;
  padding: 16px 52px 16px 9px;
  border: 0;
  background: transparent;
  transition: background-color .2s ease;
}

.product-directory .product-item summary::before,
.product-directory .product-item summary::after {
  display: none;
  content: none;
}

.product-directory .product-item summary:hover {
  background: rgba(233, 242, 238, .5);
}

.product-directory .product-item summary:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 2px;
  box-shadow: none;
}

.product-directory .product-item .qa-toggle {
  position: absolute;
  top: 50%;
  right: 5px;
  color: var(--navy);
  transform: translateY(-50%);
}

.product-directory .product-item.is-open > summary {
  background: rgba(233, 242, 238, .36);
}

.product-directory .product-item.is-open .qa-toggle {
  color: var(--green);
}

.product-directory .product-item.is-open .qa-toggle span:last-child {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

.product-directory .product-item .product-code {
  color: inherit !important;
}

.product-directory .product-item .product-detail-panel {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  opacity: 0;
  transition: grid-template-rows .28s cubic-bezier(.2, .65, .25, 1), opacity .22s ease;
}

.product-directory .product-item.is-open .product-detail-panel {
  grid-template-rows: 1fr;
  opacity: 1;
}

.product-directory .product-item .product-detail-panel > .product-detail {
  min-height: 0;
  overflow: hidden;
}

.product-directory .product-item .product-detail {
  padding: 9px 12px 22px;
}

.product-directory .product-item .product-detail > .product-action {
  margin-right: 0;
}

.product-directory .product-item .product-facts {
  padding-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;

}
@media (max-width: 700px) {
  .product-directory {
    gap: 20px;
  }

  .product-directory .product-group,
  .product-directory .product-group + .product-group {
    padding: 20px 16px 22px;
  }

  .product-directory .product-item summary {
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 16px 45px 16px 7px;
  }

  .product-directory .product-item .product-detail {
    padding-inline: 7px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .product-directory .product-item .product-detail-panel {
    transition: none;
  }
}
