@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&family=Inter:wght@400&display=swap");


/* ==========================================================================
   DECOYTX CSS ARCHITECTURE
   1. Design tokens / global foundations
   2. Header + navigation
   3. Shared components
   4. ACF / page sections
   5. Footer
   6. Responsive overrides

   Spacing rule:
   - Standard content sections use --dtx-section-x and the section-y scale.
   - Internal heading/content gaps use --dtx-gap-*.
   - Full-bleed / visual cards use --dtx-surface-edge instead of inventing
     section-specific viewport margins.
   ========================================================================== */

:root {
    --dtx-font-primary: "Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --dtx-font-secondary: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --dtx-blue: #14239d;
    --dtx-blue-deep: #0b176e;
    --dtx-cyan: #00aeef;
    --dtx-nav: #818dcd;
    --dtx-nav-soft: #96a0d8;
    --dtx-white: #ffffff;
    /* Layout */
    /* Figma desktop reference is a 1440px frame.
       Standard content is 1248px wide: 1248 / 1440 = 86.6667%.
       Keep the existing 1500px large-desktop cap so the already-approved
       wide-desktop appearance does not change, while narrower desktops now
       preserve the same content-to-type proportions as the Figma frame. */
    --dtx-site-max: 1500px;
    --dtx-site-width: min(86.6667vw, var(--dtx-site-max));

    /* Figma navigation is 1296px on 1440px = 90vw. */
    --dtx-nav-max: 1500px;
    --dtx-nav-width: min(90vw, var(--dtx-nav-max));
    --dtx-site-gutter: 5vw;
    --dtx-section-x: 24px;
    --dtx-section-y: 112px;
    --dtx-section-y-compact: 72px;
    --dtx-section-y-large: 126px;
    --dtx-module-gap: 110px;
    --dtx-surface-edge: 24px;

    /* Vertical rhythm */
    --dtx-gap-xs: 12px;
    --dtx-gap-sm: 24px;
    --dtx-gap-md: 32px;
    --dtx-gap-lg: 48px;
    --dtx-gap-xl: 72px;
}

body {
    background: rgba(237, 239, 247, 1);
    font-family: var(--dtx-font-primary);
}

sup {
    font-size: 0.55em;
    line-height: 0;
    margin-left: 0.1em;
    position: relative;
    top: -0.58em;
    vertical-align: baseline;
}

/* Shared sizing foundation. Desktop width itself is applied near the end of
   the base stylesheet so it cleanly overrides section-specific width:100% rules. */
.site-header__inner,
.site-header__search-panel,
.dtx-container,
.home-hero__inner,
.intro-media,
.intro-media.science-intro-secound .intro-media__copy,
.intro-media.science-intro-second .intro-media__copy,
.three-col-list,
.comparison-table,
.full-width-video-text__inner,
.pipeline,
.stat-block,
.text-row,
.statement-banner,
.logo-strip h2,
.image-cta,
.pillars__content,
.news-cards,
.team-section,
.team-member-single__inner,
.contact-block,
    .contact-cta,
.posts-index,
.system-page__inner,
.site-footer__inner {
    box-sizing: border-box;
}

/* ==========================================================================
   Header + navigation
   ========================================================================== */

.site-header {
    background: transparent;
    border: 0;
    left: 0;
    padding: 34px var(--dtx-site-gutter) 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 100;
}

body.admin-bar .site-header {
    top: 32px;
}

.site-header__inner {
    align-items: center;
    background: rgba(10, 31, 155, .80);
    border-radius: 20px;
    box-shadow: 0 18px 46px rgba(18, 35, 157, .16);
    display: flex;
    gap: 34px;
    height: 84px;
    justify-content: flex-start;
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: 0 18px 0 24px;
}

.site-header__brand,
.mobile-menu__brand,
.site-footer__brand {
    display: inline-flex;
    text-decoration: none;
}

.decoytx-logo {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    width: 230px;
}

.decoytx-logo img {
    display: block;
    height: auto;
    max-width: 100%;
    width: 100%;
}

.site-header__nav {
    flex: 1 1 auto;
    min-width: 0;
}

.site-header__menu,
.site-header__dropdown,
.mobile-menu__list,
.site-footer__group ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-header__menu {
    align-items: center;
    display: flex;
    gap: 34px;
    justify-content: flex-end;
}

.site-header__menu-item {
    position: relative;
}

.site-header__menu a,
.mobile-menu__list a {
    align-items: center;
    color: var(--dtx-white);
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    gap: 8px;
    line-height: 24px;
    text-decoration: none;
    text-transform: uppercase;
}

.site-header__menu a {
    font-size: 17px;
}

.nav-chevron {
    border-color: currentColor;
    border-style: solid;
    border-width: 0 1.5px 1.5px 0;
    display: inline-block;
    height: 8px;
    margin-top: -4px;
    transform: rotate(45deg);
    width: 8px;
}

.external-arrow {
    background: currentColor;
    display: inline-block;
    height: 13px;
    mask: url("../images/icon-external.png") center / contain no-repeat;
    transform: translateY(-1.5px);
    width: 13px;
}

.site-header__dropdown {
    background: #eef1fb;
    border-radius: 7px;
    box-shadow: 0 16px 28px rgba(10, 20, 80, .18);
    left: 0;
    min-width: 156px;
    opacity: 0;
    padding: 15px 12px;
    pointer-events: none;
    position: absolute;
    top: calc(100% + 16px);
    transform: translateY(-4px);
    transition: opacity .18s ease, transform .18s ease;
}

.site-header__menu-item:has(.site-header__dropdown)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 16px;
}

.site-header__menu-item:hover .site-header__dropdown,
.site-header__menu-item:focus-within .site-header__dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.site-header__dropdown a {
    color: #4b5166;
    display: flex;
    font-size: 14px;
    padding: 8px 0;
}

.site-header__search {
    align-items: center;
    background: rgba(237, 239, 247, 0.16);
    border: 0;
    border-radius: 8px;
    color: var(--dtx-white);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    gap: 9px;
    height: 42px;
    letter-spacing: 0;
    line-height: 24px;
    padding: 0 16px;
    text-decoration: none;
    text-transform: uppercase;
}

.site-header__search span,
.site-header__search-field > span,
.mobile-menu__search span {
    background: url("../images/icon-search.png") center / contain no-repeat;
    border: 0;
    border-radius: 0;
    display: inline-block;
    flex: 0 0 auto;
    height: 19.5211410522px;
    opacity: 1;
    position: static;
    transform: none;
    width: 19.5211410522px;
}

.site-header__search span::after,
.site-header__search-field > span::after,
.mobile-menu__search span::after {
    content: none;
}

.site-header__search-panel {
    margin: 12px auto 0;
    max-width: var(--dtx-site-max);
}

.site-header__search-panel[hidden] {
    display: none;
}

.site-header__search-field {
    align-items: center;
    background: rgba(10, 31, 155, .80);
    border-radius: 20px;
    box-shadow: 0 18px 46px rgba(18, 35, 157, .16);
    display: flex;
    gap: 16px;
    min-height: 74px;
    padding: 12px 18px 12px 24px;
}

.site-header__search-field input {
    background: rgba(237, 239, 247, 0.16);
    border: 0;
    border-radius: 8px;
    color: #fff;
    flex: 1 1 auto;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    height: 42px;
    line-height: 24px;
    min-width: 0;
    outline: 0;
    padding: 0 16px;
}

.site-header__search-field input::placeholder {
    color: rgba(255, 255, 255, .78);
    opacity: 1;
}

.site-header__search-field button {
    align-items: center;
    background: transparent;
    border: 2px solid rgba(17, 155, 242, 1);
    border-radius: 10px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    gap: 10px;
    height: 42px;
    justify-content: center;
    letter-spacing: .02em;
    line-height: 18px;
    padding: 0 24px;
    text-transform: uppercase;
}

.site-header__search-field button .home-button__icon {
    color: var(--dtx-cyan);
    height: 18px;
    width: 18px;
}

.site-header__toggle,
.mobile-menu {
    display: none;
}

/* --------------------------------------------------------------------------
   Shared layout primitives
   -------------------------------------------------------------------------- */

.dtx-container {
    margin-inline: auto;
    max-width: var(--dtx-site-max);
    padding-inline: var(--dtx-section-x);
    width: 100%;
}

.dtx-section {
    padding-block: var(--dtx-section-y);
}

.dtx-section--compact {
    padding-block: var(--dtx-section-y-compact);
}

.dtx-section--large {
    padding-block: var(--dtx-section-y-large);
}

/* ==========================================================================
   ACF / page sections
   ========================================================================== */

.landing-page-content {
    background: rgba(237, 239, 247, 1);
    max-width: none;
    min-height: 520px;
    padding: 0;
}

.home-module {
    margin-top: 0;
    margin-bottom: var(--dtx-module-gap);
    position: relative;
}

.landing-page-content > section {
    margin-top: 0;
    margin-bottom: var(--dtx-module-gap);
}

.home-button {
    align-items: center;
    border: 2px solid currentColor;
    border-radius: 18px;
    display: inline-flex;
    gap: 18px;
    justify-content: center;
    min-height: 54px;
    padding-inline: var(--dtx-section-x);
    text-decoration: none;
}

.home-button span:first-child {
    font-family: var(--dtx-font-primary);
    font-size: 24px;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 24px;
}

.home-button__icon {
    background: currentColor;
    display: inline-block;
    height: 23px;
    mask: url("../images/icon-cta-arrow.png") center / contain no-repeat;
    width: 23px;
}

.home-button--light {
    color: var(--dtx-cyan);
}

.home-hero .home-button {
    border-radius: 17px;
    margin: 42px 0 0;
    min-height: 68px;
    min-width: 306px;
}

.home-hero .home-button span:first-child {
    color: #fff;
}

.home-button--outline {
    color: var(--dtx-blue);
}

.home-button--solid,
.home-button--dark {
    background: var(--dtx-blue);
    border-color: var(--dtx-blue);
    color: #fff;
}

.home-hero {
    /* Hero artwork can be tuned per hero without moving the copy/container. */
    --hero-zoom: 1.08;
    --hero-position: center;
    background: linear-gradient(135deg, #7884b8 0%, #d9e1ec 100%);
    color: #fff;
    display: flex;
    align-items: flex-end;
    min-height: 620px;
    overflow: hidden;
    padding: 0 24px 70px;
    position: relative;
}

.home-hero::before {
    background: var(--hero-image, linear-gradient(135deg, #7884b8 0%, #d9e1ec 100%)) var(--hero-position) / cover no-repeat;
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    transform: scale(var(--hero-zoom));
    transform-origin: center;
    z-index: 0;
}

.home-hero::after {
    background:
        linear-gradient(
            48.19deg,
            #0A1F9B 26.21%,
            rgba(10, 31, 155, 0) 78.77%
        ),
        linear-gradient(
            0deg,
            rgba(17, 155, 242, 0.25),
            rgba(17, 155, 242, 0.25)
        );
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.home-hero__video {
    height: 100%;
    inset: 0;
    object-fit: cover;
    object-position: var(--hero-position);
    position: absolute;
    transform: scale(var(--hero-zoom));
    transform-origin: center;
    width: 100%;
    z-index: 0;
}

.home-hero__pattern,
.statement-banner__pattern,
.contact-cta__pattern {
    inset: 0;
    opacity: .34;
    pointer-events: none;
    position: absolute;
}

.home-hero__pattern {
    background: rgba(255, 255, 255, .22);
    display: none;
    left: 0;
    -webkit-mask: var(--hero-emblem, none) left center / auto 100% no-repeat;
    mask: var(--hero-emblem, none) left center / auto 100% no-repeat;
    opacity: 1;
    right: auto;
    width: 430px;
    z-index: 2;
}

.home-hero.homepage-hero .home-hero__pattern {
    display: block;
}

.home-hero__inner {
    box-sizing: border-box;
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding-inline: 24px;
    position: relative;
    z-index: 3;
}

.home-hero h1 {
    font-family: var(--dtx-font-primary);
    font-size: 80px;
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0;
}

.home-hero.homepage-hero {
    min-height: 787px;
    padding: 0 24px 70px;
}

.home-hero.homepage-hero h1 {
    font-size: 96px;
}

.home-hero.about-hero h1 {
    font-size: 80px;
}

.home-hero.about-hero {
    min-height: 787px;
    padding: 0 24px 70px;
}

.home-hero.science-hero {
    --hero-zoom: 1.10;

    display: flex;
    align-items: flex-end;

    min-height: 620px;
    padding: 0 24px 70px;
}

.home-hero.science-hero .home-hero__inner {
    width: 100%;
}

.home-hero.news-hero {
    min-height: 620px;
    padding: 0 24px 70px;
}

.home-hero.news-hero h1 {
    font-size: 72px;
    max-width: 1180px;
}

/* Default desktop hero crop. Individual hero classes can override these values
   where the Figma/client note calls for a different focal point or zoom. */
.home-hero.homepage-hero {
    --hero-zoom: 1.10;
}

.home-hero.about-hero,
.home-hero.news-hero {
    --hero-zoom: 1.10;
}

.home-hero h1 strong,
.home-hero h1 em,
.home-hero h1 span,
.statement-banner strong {
    color: var(--dtx-cyan);
    font-style: normal;
}

h2 strong {
    color: #0a1f9b;
    font-style: normal;
}

.section-image-fullwidth-text h2 strong {
    color: var(--dtx-cyan);
}

.section-image-fullwidth-text .home-button {
    background: rgba(10, 31, 155, 1);
    color: var(--dtx-cyan);
}

.section-image-fullwidth-text .home-button,
.section-pillars .home-button {
    background: rgba(10, 31, 155, 1);
    border: 2px solid rgba(17, 155, 242, 1);
    color: var(--dtx-cyan);
}

.section-image-fullwidth-text .home-button span:first-child,
.section-pillars .home-button span:first-child {
    color: #fff;
}

.home-hero p {
    font-family: var(--dtx-font-primary);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: -18px 0 34px;
}

h2 {
    font-family: var(--dtx-font-primary);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
}

.intro-media {
    align-items: start;
    display: grid;
    gap: clamp(48px, 7vw, 96px);
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    overflow: hidden;
    padding: var(--dtx-section-y) var(--dtx-section-x);
    position: relative;
}

.intro-media__bg-video {
    filter: brightness(1.18) contrast(.82) saturate(.72);
    height: 100%;
    inset: 0;
    object-fit: cover;
    opacity: .86;
    pointer-events: none;
    position: absolute;
    width: 100%;
    z-index: 0;
}

.intro-media:has(.intro-media__bg-video)::before {
    background:
        linear-gradient(180deg, #efedf1 0%, rgba(239, 237, 241, 0) 20%),
        linear-gradient(180deg, rgba(239, 237, 241, 0) 66%, #efedf1 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.intro-media:has(.intro-media__bg-video)::after {
    background:
        linear-gradient(180deg, rgba(239, 237, 241, 0) 89.93%, #efedf1 100%),
        linear-gradient(0deg, rgba(239, 237, 241, 0) 87.31%, #efedf1 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.intro-media__copy,
.intro-media__image {
    position: relative;
    z-index: 2;
}

.intro-media h2,
.logo-strip h2 {
    color: #3c3f4b;
    margin: 0 0 36px;
}

.logo-strip h2 {
    letter-spacing: 0;
    margin-bottom: 70px;
}

.intro-media__text {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.52;
    max-width: 575px;
}

.intro-media__emphasis {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 26px 0 44px;
    max-width: 575px;
}

.intro-media__buttons {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 44px;
}

.intro-media__buttons .home-button:nth-child(even) {
    background-color: rgba(10, 31, 155, 0.1);
    border-color: transparent;
}

.intro-media__emphasis + .intro-media__buttons {
    margin-top: 0;
}

.intro-media__image {
    align-self: start;
    aspect-ratio: 1;
    border-radius: 44px 44px 44px 44px;
    margin-top: 28px;
    overflow: hidden;
}

.intro-media__image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.intro-media.about-intro,
.intro-media.about-intro-media {
    align-items: stretch;
}

.intro-media.about-intro .intro-media__copy,
.intro-media.about-intro-media .intro-media__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.intro-media.about-intro .intro-media__image,
.intro-media.about-intro-media .intro-media__image {
    align-self: stretch;
    aspect-ratio: auto;
    height: auto;
    margin-top: 0;
    min-height: 100%;
}

.intro-media.science-intro {
    display: block;
    padding-top: 0;
}

.intro-media.science-intro .intro-media__text,
.intro-media.science-intro .intro-media__emphasis {
    max-width: none;
}

.intro-media.science-intro-secound,
.intro-media.science-intro-second {
    display: block;
    max-width: none;
}

.intro-media.science-intro-secound:has(.intro-media__bg-video),
.intro-media.science-intro-second:has(.intro-media__bg-video) {
    align-items: center;
    display: flex;
    min-height: clamp(520px, 42vw, 720px);
}

.intro-media.science-intro-secound .intro-media__bg-video,
.intro-media.science-intro-second .intro-media__bg-video {
    height: 100%;
    inset: 0;
}

.intro-media.science-intro-secound .intro-media__copy,
.intro-media.science-intro-second .intro-media__copy {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    text-align: center;
}

.intro-media.science-intro-secound .intro-media__text,
.intro-media.science-intro-secound .intro-media__emphasis,
.intro-media.science-intro-second .intro-media__text,
.intro-media.science-intro-second .intro-media__emphasis {
    max-width: none;
}

.intro-media.science-intro .intro-media__buttons,
.intro-media.science-intro-secound .intro-media__buttons,
.intro-media.science-intro-second .intro-media__buttons {
    flex-direction: column;
}

.intro-media.science-intro .intro-media__buttons {
    align-items: flex-start;
    justify-content: flex-start;
}

.intro-media.science-intro-secound .intro-media__buttons,
.intro-media.science-intro-second .intro-media__buttons {
    align-items: center;
    justify-content: center;
}

.intro-media.dmav-intro .intro-media__copy {
    align-self: center;
}

.intro-media.dmav-intro .intro-media__text,
.intro-media.dmav-intro .intro-media__emphasis {
    text-align: left;
}

.three-col-list {
    color: #383a42;
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: 0 var(--dtx-section-x);
}

.three-col-list__header {
    margin: 0 auto clamp(72px, 9vw, 138px);
    max-width: 1360px;
    text-align: center;
}

.three-col-list h2 {
    color: #383a42;
    margin: 0 0 34px;
}

.three-col-list__header p {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0;
}

.three-col-list__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto auto 1fr;
}

.three-col-list__item {
    display: grid;
    grid-row: span 3;
    grid-template-rows: subgrid;
    padding: 0 clamp(36px, 4vw, 84px);
    text-align: center;
}

.three-col-list__item + .three-col-list__item {
    border-left: 2px solid rgba(10, 31, 155, .14);
}

.three-col-list__icon {
    display: block;
    height: 56px;
    margin: 0 auto 54px;
    object-fit: contain;
    width: 56px;
}

.three-col-list h4 {
    color: rgba(56, 58, 66, 1);
    font-family: var(--dtx-font-primary);
    font-size: 32px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 42px;
    min-height: calc(2 * 1.32em);
    text-align: center;
}

.three-col-list__text {
    color: #383a42;
}

.three-col-list__text p {
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0;
}

.comparison-table {
    color: #383a42;
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: 0 var(--dtx-section-x);
}

.comparison-table h2 {
    color: #383a42;
    margin: 0 0 clamp(72px, 9vw, 132px);
    text-align: center;
}

.comparison-table__table {
    border-bottom: 2px solid rgba(10, 31, 155, .14);
}

.comparison-table__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.comparison-table__cell {
    align-items: center;
    border-top: 2px solid rgba(10, 31, 155, .14);
    display: flex;
    justify-content: center;
    min-height: 96px;
    padding: 22px clamp(28px, 5vw, 84px);
    text-align: center;
}

.comparison-table__cell + .comparison-table__cell {
    background: rgba(17, 155, 242, 0.04);
    border-left: 2px solid rgba(10, 31, 155, .14);
}

.comparison-table__row--head .comparison-table__cell {
    min-height: 166px;
}

.comparison-table__row--head .comparison-table__cell + .comparison-table__cell {
    background: rgba(17, 155, 242, 0.04);
}

.comparison-table__cell p {
    color: rgba(56, 58, 66, 1);
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0;
    text-align: center;
}

.comparison-table__row--head .comparison-table__cell p {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.44;
}

.full-width-video-text {
    align-items: end;
    background: var(--fw-video-image, #0a1f9b) center / cover no-repeat;
    color: #fff;
    display: flex;
    margin: 0;
    min-height: clamp(620px, 56vw, 850px);
    overflow: hidden;
    padding: clamp(160px, 22vw, 360px) var(--dtx-section-x) clamp(124px, 10vw, 172px);
    position: relative;
}

.full-width-video-text::before {
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 74.18%),
        linear-gradient(0deg, rgba(239, 237, 241, 0) 87.31%, #efedf1 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.full-width-video-text__video {
    height: 100%;
    inset: 0;
    object-fit: cover;
    pointer-events: none;
    position: absolute;
    width: 100%;
    z-index: 0;
}

.full-width-video-text__inner {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    position: relative;
    width: 100%;
    z-index: 2;
}

.full-width-video-text h2 {
    color: #fff;
    margin: 0 0 var(--dtx-gap-xl);
    max-width: 720px;
}

.full-width-video-text h2 strong {
    color: var(--dtx-cyan);
}

.full-width-video-text__columns {
    display: grid;
    gap: clamp(48px, 8vw, 116px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-bottom: clamp(54px, 6vw, 92px);
}

.full-width-video-text__column p {
    color: #fff;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0;
}

.full-width-video-text__column p + p {
    margin-top: 1em;
}

.pipeline {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: 0 var(--dtx-section-x);
}

.pipeline__intro {
    align-items: start;
    display: grid;
    gap: clamp(32px, 6vw, 96px);
    grid-template-columns: minmax(0, .85fr) minmax(0, 1fr);
    margin: 0 0 var(--dtx-gap-xl);
}

.pipeline__intro h2 {
    margin: 0;
    text-align: left;
}

.pipeline__intro-text {
    color: rgba(56, 58, 66, 1);
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
}

.pipeline__intro-text p {
    margin: 0;
}

.pipeline__intro-text p + p {
    margin-top: 20px;
}

.pipeline__table {
    --pipeline-left-size: 28%;
    --pipeline-stage-size: 14%;
    --pipeline-action-size: 20%;
    --pipeline-card-padding: 54px;
    --pipeline-phase-start: calc(var(--pipeline-left-size) + var(--pipeline-stage-size));
    --pipeline-left: minmax(300px, var(--pipeline-left-size));
    --pipeline-stage: minmax(160px, var(--pipeline-stage-size));
    --pipeline-action: minmax(240px, var(--pipeline-action-size));
    position: relative;
}

.pipeline__table::before {
    background-image:
        linear-gradient(rgba(10, 31, 155, .16), rgba(10, 31, 155, .16)),
        linear-gradient(rgba(10, 31, 155, .16), rgba(10, 31, 155, .16)),
        linear-gradient(rgba(10, 31, 155, .16), rgba(10, 31, 155, .16));
    background-position: 25% 0, 50% 0, 75% 0;
    background-repeat: no-repeat;
    background-size: 1px 100%;
    content: "";
    inset: 26px var(--pipeline-action-size) 0 var(--pipeline-phase-start);
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.pipeline__phase-head {
    color: rgba(40, 39, 83, 1);
    display: grid;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 400;
    grid-template-columns: repeat(var(--pipeline-phase-count), minmax(0, 1fr));
    letter-spacing: -.04em;
    line-height: 1.32;
    margin-left: var(--pipeline-phase-start);
    padding: 0 var(--pipeline-action-size) 16px 0;
    text-align: center;
    position: relative;
    z-index: 1;
}

.pipeline__cards {
    display: grid;
    gap: var(--dtx-gap-md);
    position: relative;
    z-index: 1;
}

.pipeline__card {
    align-items: center;
    background: rgba(237, 239, 247, 1);
    border-radius: 28px;
    box-shadow: 0 0 48px 0 rgba(17, 155, 242, .16);
    display: grid;
    gap: 0;
    grid-template-columns: var(--pipeline-left) var(--pipeline-stage) minmax(320px, 1fr) var(--pipeline-action);
    min-height: 266px;
    overflow: hidden;
    padding: 0;
    position: relative;
}

.pipeline__card::before {
    background-image:
        linear-gradient(rgba(10, 31, 155, .12), rgba(10, 31, 155, .12)),
        linear-gradient(rgba(10, 31, 155, .12), rgba(10, 31, 155, .12)),
        linear-gradient(rgba(10, 31, 155, .12), rgba(10, 31, 155, .12));
    background-position: 25% 0, 50% 0, 75% 0;
    background-repeat: no-repeat;
    background-size: 1px 100%;
    content: "";
    inset: 0 var(--pipeline-action-size) 0 var(--pipeline-phase-start);
    -webkit-mask-image: repeating-linear-gradient(180deg, #000 0 9px, transparent 9px 18px);
    mask-image: repeating-linear-gradient(180deg, #000 0 9px, transparent 9px 18px);
    pointer-events: none;
    position: absolute;
    z-index: 2;
}

.pipeline__program,
.pipeline__stage,
.pipeline__action {
    align-self: center;
    position: relative;
    z-index: 3;
}

.pipeline__program,
.pipeline__stage {
    padding-left: var(--pipeline-card-padding);
}

.pipeline__action {
    padding-right: var(--pipeline-card-padding);
}

.pipeline__program h3 {
    color: rgba(56, 58, 66, 1);
    font-family: var(--dtx-font-primary);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0;
}

.pipeline__program p {
    color: rgba(7, 7, 14, 1);
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 6px 0 0;
}

.pipeline__stage span,
.pipeline__stage strong {
    color: rgba(7, 7, 14, 1);
    display: block;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    letter-spacing: 0;
    line-height: 1.52;
    text-align: left;
}

.pipeline__stage span {
    color: rgba(56, 58, 66, 1);
    font-weight: 600;
    line-height: 1.44;
    margin-bottom: 8px;
}

.pipeline__stage strong {
    font-weight: 500;
}

.pipeline__progress {
    align-self: center;
    background: #fff;
    border: 2px solid rgba(129, 141, 205, .24);
    border-radius: 999px;
    height: 32px;
    margin: 0 32px;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.pipeline__progress span {
    background: rgba(17, 155, 242, .24);
    border-radius: inherit;
    display: block;
    height: 100%;
    width: var(--pipeline-progress, 0%);
}

.pipeline__action {
    justify-self: end;
    padding-left: 24px;
}

.pipeline__button {
    background: transparent;
    border: 2px solid var(--dtx-cyan);
    color: #0a1f9b;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 20px;
    min-width: 0;
    white-space: nowrap;
}

.pipeline__button span:first-child {
    white-space: nowrap;
}

.stat-block {
    align-items: center;
    display: flex;
    justify-content: center;
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    min-height: 487px;
    overflow: visible;
    padding: 48px var(--dtx-section-x);
    position: relative;
}

.stat-block__pattern {
    background-position: center;
    background-repeat: no-repeat;
    background-size: min(100%, 1221px) auto;
    inset: 0;
    opacity: 1;
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.stat-block__card {
    align-items: center;
    background-color: rgba(237, 239, 247, 1);
    border-radius: 48px;
    box-shadow: 0 0 48px 0 rgba(17, 155, 242, 0.16);
    display: flex;
    justify-content: center;
    overflow: hidden;
    padding: 72px 96px;
    position: relative;
    width: 100%;
    z-index: 1;
}

.stat-block__inner {
    align-items: center;
    display: grid;
    gap: clamp(28px, 4vw, 64px);
    grid-template-columns: minmax(180px, .42fr) minmax(0, 1fr);
    margin: 0 auto;
    max-width: 980px;
    position: relative;
    width: 100%;
}

.stat-block__value {
    color: rgba(17, 155, 242, 1);
    font-family: var(--dtx-font-primary);
    font-size: 96px;
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0;
    text-align: right;
}

.stat-block__text p {
    color: rgba(56, 58, 66, 1);
    font-family: var(--dtx-font-primary);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0;
    text-align: left;
}

.stat-block__text strong {
    color: #0a1f9b;
    font-weight: 600;
}

.text-row {
    align-items: start;
    display: grid;
    gap: clamp(48px, 8vw, 112px);
    grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: 0 var(--dtx-section-x);
}

.text-row__heading h2 {
    margin: 0;
    text-align: left;
}

.text-row__eyebrow {
    justify-content: flex-start;
    margin: 0 0 var(--dtx-gap-md);
}

.text-row__text {
    color: rgba(56, 58, 66, 1);
    font-family: var(--dtx-font-primary);
    font-size: 28px;
    font-weight: 500;
    letter-spacing: -.04em;
    line-height: 1.32;
}

.text-row__text p {
    margin: 0;
}

.text-row__text p + p {
    margin-top: 1em;
}

.statement-banner {
    background:
        linear-gradient(0deg, rgba(17, 155, 242, .16), rgba(17, 155, 242, .16)),
        linear-gradient(0deg, #0a1f9b, #0a1f9b);
    border-radius: 48px;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 160px;
    justify-content: center;
    min-height: 592px;
    margin: 0 auto 120px;
    max-width: var(--dtx-site-max);
    overflow: hidden;
    padding: 80px;
    position: relative;
}

.statement-banner__pattern {
    background: url("../images/home/emblem-grid.png") center / cover no-repeat;
    inset: 0;
    opacity: 1;
    pointer-events: none;
    position: absolute;
}

.statement-banner__inner {
    margin: 0 auto;
    max-width: 990px;
    position: relative;
    text-align: center;
    width: 100%;
}

.statement-banner p {
    font-family: var(--dtx-font-primary);
    font-size: 40px;
    font-weight: 500;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0;
    text-align: center;
}

.logo-strip {
    margin: 0 0 126px;
    overflow: hidden;
    padding: 0;
}

.logo-strip h2 {
    color: #383a42;
    margin: 0 auto 158px;
    max-width: var(--dtx-site-max);
    padding: 0 var(--dtx-section-x);
    text-align: left;
}

.logo-strip__slider {
    display: flex;
    overflow: hidden;
    width: 100%;
}

.logo-strip__track {
    align-items: center;
    animation: logo-strip-marquee 28s linear infinite;
    display: flex;
    flex: 0 0 auto;
    gap: clamp(72px, 8vw, 128px);
    min-width: max-content;
    padding-right: clamp(72px, 8vw, 128px);
}

.logo-strip__item {
    align-items: center;
    color: var(--dtx-blue);
    display: flex;
    font-size: 36px;
    font-weight: 900;
    flex: 0 0 300px;
    height: 120px;
    justify-content: center;
    line-height: 1;
    min-height: 120px;
    text-align: left;
}

.logo-strip__item img {
    display: block;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.logo-strip__item:first-child img {
    max-height: 112px;
}

@keyframes logo-strip-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

.image-cta {
    background:
        linear-gradient(rgba(10, 31, 155, .75), rgba(10, 31, 155, .75)),
        var(--image-cta-bg, linear-gradient(135deg, #7e91cc, #2237b2));
    background-position: center;
    background-size: cover;
    border-radius: 42px;
    color: #fff;
    margin: 0 auto 110px;
    max-width: var(--dtx-site-max);
    min-height: 600px;
    overflow: visible;
    padding: 210px 110px 90px;
    position: relative;
}

.image-cta__inner {
    position: relative;
    z-index: 2;
}

.image-cta h2 {
    margin: 0 0 55px;
}

.image-cta__text {
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.52;
    max-width: 575px;
}

.image-cta__text sup {
    font-size: 0.55em;
    line-height: 0;
    margin-left: 0.1em;
    position: relative;
    top: -0.58em;
    vertical-align: baseline;
}

.image-cta .home-button {
    margin-top: 58px;
}

.pillars {
    background: rgba(237, 239, 247, 1);
    margin: 0;
    padding: 0 var(--dtx-section-x) var(--dtx-section-y);
    position: relative;
    z-index: 0;
}

.pillars__visual {
    background: var(--pillars-image, linear-gradient(135deg, #e7ecf7, #f3f6fb));
    background-position: center;
    background-size: cover;
    height: 760px;
    isolation: isolate;
    margin-inline: calc(var(--dtx-section-x) * -1);
    overflow: hidden;
    position: relative;
}

/* Figma uses a blue-tinted backdrop with the virus video set to Color Burn.
   Keep the source video neutral and reproduce that treatment in CSS. */
.pillars__visual::before {
    background: rgba(17, 155, 242, .10);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.pillars__visual::after {
    background:
        linear-gradient(180deg, #efedf1 0%, rgba(239, 237, 241, 0) 20%),
        linear-gradient(180deg, rgba(239, 237, 241, 0) 66%, #efedf1 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 2;
}

.pillars__visual video {
    display: block;
    filter: grayscale(1) brightness(1.18) contrast(.88);
    height: 100%;
    mix-blend-mode: color-burn;
    object-fit: cover;
    opacity: .76;
    position: relative;
    width: 100%;
    z-index: 1;
}

.pillars__content {
    margin: -155px auto 0;
    max-width: var(--dtx-site-max);
    padding-inline: clamp(28px, 7vw, 150px);
    position: relative;
    text-align: center;
    width: 100%;
    z-index: 2;
}

.pillars h2 {
    color: #383a42;
    margin: 0 0 78px;
}

.pillars__list {
    display: grid;
    gap: 0;
    margin-bottom: 58px;
}

.pillars__item {
    align-items: center;
    border-top: 1px solid rgba(20,35,157,.18);
    display: grid;
    column-gap: 28px;
    grid-template-columns: 70px minmax(280px, 1fr) minmax(360px, 1.35fr);
    padding: 25px 0;
    text-align: left;
}

.pillars__item:last-child {
    border-bottom: 1px solid rgba(20,35,157,.18);
}

.pillars__item span {
    color: rgba(17, 155, 242, 1);
    font-family: var(--dtx-font-primary);
    font-size: 48px;
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 1.32;
    text-align: right;
}

.pillars__item h5 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0;
}

.pillars__item p {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0;
    text-align: right;
}

.news-cards {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: var(--dtx-section-y-compact) var(--dtx-section-x) var(--dtx-section-y);
}

.home-hero .home-hero__eyebrow,
.news-cards__eyebrow,
.text-row__eyebrow {
    align-items: center;
    color: #383a42;
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    gap: 0;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0 0 12px;
    text-align: left;
    text-transform: uppercase;
}

.home-hero .home-hero__eyebrow {
    color: #fff;
}

.home-hero.about-hero .home-hero__eyebrow {
    color: #fff;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.52;
    text-align: center;
    text-transform: uppercase;
}

.home-hero__eyebrow-dot,
.news-cards__eyebrow span,
.text-row__eyebrow span {
    background: url("../images/icon-eyebrow-dot-news.png") center / contain no-repeat;
    display: inline-block;
    flex: 0 0 auto;
    height: 8px;
    margin-right: 8px;
    width: 8px;
}

.home-hero__eyebrow-text {
    display: inline;
}

.news-cards > h3 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 42px;
}

.news-cards > h3 strong {
    color: #0a1f9b;
    font-style: normal;
    font-weight: 600;
}

.news-cards__grid {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(3, 1fr);
}

.news-card {
    background: rgba(211, 214, 224, 0.16);
    border-radius: 12px;
    box-shadow: 0 0 16px 0 rgba(17, 155, 242, 0);
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    padding: 0 22px 28px;
}

.posts-index__card {
    padding-top: 28px;
}

.news-card__image {
    aspect-ratio: 1.8;
    background: linear-gradient(135deg, #e9eef8, #8fb8d6);
    border-radius: 10px;
    display: block;
    margin: 22px 0 28px;
    overflow: hidden;
}

.news-card__image img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.news-card time {
    color: #383a42;
    display: block;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.52;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.news-card__category {
    color: #0a1f9b;
    display: inline-block;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0 0 8px;
    text-transform: uppercase;
}

.news-card h3 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 28px;
    margin: 0 0 14px;
    min-height: 140px;
}

.news-card h3 a {
    color: inherit;
    text-decoration: none;
}

.news-card p {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0 0 26px;
}

.news-card__link {
    align-items: center;
    align-self: flex-start;
    background: rgba(228, 233, 246, 1);
    border-radius: 8px;
    color: rgba(10, 31, 155, 1);
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    gap: 10px;
    letter-spacing: .02em;
    line-height: 18px;
    margin-top: auto;
    min-height: 44px;
    padding: 0 18px;
    text-decoration: none;
}

.news-card__link .home-button__icon {
    height: 18px;
    width: 18px;
}

.news-cards__button {
    margin-top: 45px;
}

.team-section {
    color: #383a42;
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: var(--dtx-section-y) var(--dtx-section-x) var(--dtx-section-y-large);
}

.team-section__intro {
    align-items: start;
    display: grid;
    gap: clamp(48px, 8vw, 116px);
    grid-template-columns: minmax(0, 1fr) minmax(360px, 560px);
    margin-bottom: 108px;
}

.team-section__intro h2 {
    color: #383a42;
    margin: 0;
}

.team-section__text {
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
}

.team-section__text p {
    margin: 0;
}

.team-group + .team-group {
    margin-top: 132px;
}

.team-group > h3 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 58px;
}

.team-group__grid {
    display: grid;
    gap: 86px clamp(70px, 8vw, 122px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.team-card {
    display: grid;
    gap: 28px;
    grid-template-columns: 244px minmax(0, 1fr);
}

.team-card__image {
    aspect-ratio: 244 / 327;
    border-radius: 8px;
    display: block;
    overflow: hidden;
}

.team-card__image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.team-card--bob-langer .team-card__image img,
.team-card--robert-s-langer-scd .team-card__image img,
.team-card--robert-s-langer .team-card__image img {
    object-position: center top;
}

.team-card__content {
    align-self: center;
}

.team-card h4 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 22px;
}

.team-card h4 a {
    color: inherit;
    text-decoration: none;
}

.team-card p {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0 0 58px;
}

.team-card__link {
    align-items: center;
    background: rgba(228, 233, 246, 1);
    border-radius: 12px;
    color: var(--dtx-blue);
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    gap: 16px;
    justify-content: center;
    letter-spacing: .02em;
    line-height: 18px;
    min-height: 54px;
    min-width: 188px;
    padding: 0 28px;
    text-decoration: none;
}

.team-card__link .home-button__icon {
    height: 18px;
    width: 18px;
}

.team-member-single {
    background: rgba(237, 239, 247, 1);
    color: #383a42;
    margin: 0;
    max-width: none;
    padding: 0;
    width: 100%;
}

.team-member-single__inner {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: 260px 24px 285px;
    width: 100%;
}

.team-member-single__back {
    align-items: center;
    color: #383a42;
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 24px;
    font-weight: 500;
    gap: 18px;
    letter-spacing: .02em;
    line-height: 24px;
    margin-bottom: 128px;
    text-decoration: none;
}

.team-member-single__back span {
    display: inline-block;
    height: 22px;
    position: relative;
    width: 34px;
}

.team-member-single__back span::before,
.team-member-single__back span::after {
    background: currentColor;
    content: "";
    position: absolute;
}

.team-member-single__back span::before {
    height: 3px;
    left: 0;
    top: 10px;
    width: 34px;
}

.team-member-single__back span::after {
    border-left: 3px solid currentColor;
    border-top: 3px solid currentColor;
    height: 16px;
    left: 0;
    top: 3px;
    transform: rotate(-45deg);
    width: 16px;
    background: transparent;
}

.team-member-single__grid {
    align-items: center;
    display: grid;
    gap: clamp(56px, 7vw, 96px);
    grid-template-columns: 430px minmax(560px, 720px);
    justify-content: space-between;
    width: 100%;
}

.team-member-single__photo {
    aspect-ratio: 430 / 580;
    border-radius: 0 48px 0 48px;
    overflow: hidden;
}

.team-member-single__content {
    max-width: none;
}

.team-member-single__photo img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.team-member-single--bob-langer .team-member-single__photo img,
.team-member-single--robert-s-langer-scd .team-member-single__photo img,
.team-member-single--robert-s-langer .team-member-single__photo img {
    object-position: center top;
}

.team-member-single__content h1 {
    color: rgba(10, 31, 155, 1);
    font-family: var(--dtx-font-primary);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 10px;
}

.team-member-single__position {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.44;
    margin: 0 0 46px;
}

.team-member-single__bio {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
}

.team-member-single__bio p {
    margin: 0 0 28px;
}

.team-member-single__bio p:last-child {
    margin-bottom: 0;
}

.contact-block {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: var(--dtx-section-y) var(--dtx-section-x) var(--dtx-section-y-large);
}

.contact-block__intro {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 88px;
    max-width: 1000px;
    width: 100%;
}

.contact-block__intro p {
    margin: 0;
}

.contact-block__inner {
    display: grid;
    gap: clamp(70px, 9vw, 150px);
    grid-template-columns: minmax(360px, 520px) minmax(560px, 1fr);
}

.contact-block h2 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 88px;
}

.contact-block__locations h3 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 32px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 62px;
}

.contact-block__location-list {
    display: grid;
    gap: 56px;
}

.contact-block__location {
    align-items: flex-start;
    color: #383a42;
    display: grid;
    gap: 18px;
    grid-template-columns: 34px 1fr;
}

.contact-block__pin {
    background: url("../images/icon-location-pin.png") center / contain no-repeat;
    display: block;
    height: 33px;
    margin-top: 0;
    width: 24px;
}

.contact-block__location h4 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0 0 10px;
}

.contact-block__address {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.52;
}

.contact-block__address p {
    margin: 0;
}

.contact-block__linkedin {
    align-items: center;
    color: #383a42;
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    gap: 18px;
    letter-spacing: 0;
    line-height: 1.52;
    margin-top: 100px;
    text-decoration: underline;
    text-decoration-skip-ink: auto;
}

.contact-block__linkedin img {
    display: block;
    height: 38px;
    width: 38px;
}

.contact-block__form {
    padding-top: 0;
}

.contact-block--has-heading .contact-block__form {
    padding-top: 140.8px;
}

.contact-block .wpcf7-form {
    display: grid;
    gap: 34px;
}

.contact-form__field {
    display: block;
}

.contact-form__label {
    color: #383a42;
    display: block;
    font-family: Aptos, var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 26px;
    margin: 0 0 10px;
}

.contact-block .wpcf7-form-control-wrap {
    display: block;
}

.contact-block input[type="text"],
.contact-block input[type="email"],
.contact-block input[type="tel"],
.contact-block select,
.contact-block textarea {
    appearance: none;
    background: #fff;
    border: 2px solid rgba(129, 141, 205, .36);
    border-radius: 8px;
    color: #383a42;
    display: block;
    font-family: Aptos, var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 400;
    line-height: 26px;
    min-height: 56px;
    padding: 14px 16px;
    width: 100%;
}

.contact-block textarea {
    min-height: 150px;
    resize: vertical;
}

.contact-block input::placeholder,
.contact-block textarea::placeholder,
.contact-block select:invalid {
    color: rgba(56, 58, 66, .44);
}

.contact-form__select-wrap {
    display: block;
    position: relative;
}

.contact-form__select-wrap::after {
    border-bottom: 3px solid #383a42;
    border-right: 3px solid #383a42;
    content: "";
    height: 12px;
    pointer-events: none;
    position: absolute;
    right: 18px;
    top: 20px;
    transform: rotate(45deg);
    width: 12px;
}

.contact-block select {
    padding-right: 52px;
}

.contact-block .wpcf7-submit {
    background-color: rgba(10, 31, 155, 1);
    background-image: url("../images/icon-cta-arrow.png");
    background-position: right 30px center;
    background-repeat: no-repeat;
    background-size: 23px 23px;
    border: 2px solid rgba(17, 155, 242, 1);
    border-radius: 18px;
    color: #fff;
    cursor: pointer;
    display: block;
    font-family: var(--dtx-font-primary);
    font-size: 24px;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 24px;
    margin: 28px 0 0;
    min-height: 54px;
    min-width: 176px;
    padding: 13px 72px 13px 30px;
    text-align: left;
}

.contact-block .wpcf7-spinner {
    display: none;
}

.contact-form-success {
    color: #383a42;
}

.contact-form-success p {
    font-family: var(--dtx-font-primary);
    font-size: 32px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 44px;
}

.contact-form-success__button {
    align-items: center;
    background: rgba(10, 31, 155, 1);
    border: 2px solid rgba(17, 155, 242, 1);
    border-radius: 18px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 24px;
    font-weight: 500;
    gap: 18px;
    justify-content: center;
    letter-spacing: .02em;
    line-height: 24px;
    min-height: 54px;
    padding: 13px 30px;
}

.contact-form-success__button .home-button__icon {
    color: var(--dtx-cyan);
    flex: 0 0 auto;
}

.posts-index {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: 0 var(--dtx-section-x);
}

.posts-index__filters {
    align-items: end;
    display: grid;
    gap: 58px;
    grid-template-columns: minmax(220px, 360px) minmax(220px, 360px) minmax(160px, 1fr);
    margin: 0 0 56px;
}

.posts-index__filter {
    color: #383a42;
    display: grid;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 600;
    gap: 8px;
    line-height: 26px;
}

.posts-index__filter select {
    appearance: none;
    background: transparent url("data:image/svg+xml,%3Csvg width='18' height='11' viewBox='0 0 18 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 2L9 9L16 2' stroke='%23383A42' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center / 14px auto no-repeat;
    border: 2px solid rgba(10, 31, 155, 0.18);
    border-radius: 8px;
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 16px;
    font-weight: 500;
    height: 42px;
    padding: 0 44px 0 12px;
    width: 100%;
}

.posts-index__clear {
    align-items: center;
    align-self: end;
    background: rgba(228, 233, 246, 1);
    border-radius: 8px;
    color: #0a1f9b;
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    gap: 10px;
    justify-content: center;
    letter-spacing: .02em;
    line-height: 18px;
    min-height: 42px;
    justify-self: end;
    padding: 0 20px;
    text-decoration: none;
}

.posts-index__clear .home-button__icon {
    height: 18px;
    width: 18px;
}

.posts-index .news-card h2 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 28px;
    margin: 0 0 14px;
    min-height: 140px;
}

.posts-index__empty {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    grid-column: 1 / -1;
    line-height: 1.52;
    margin: 0;
}

.posts-index__load-more {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 18px;
    justify-content: center;
    margin-top: 58px;
}

.posts-index__load-button {
    background: rgba(10, 31, 155, 1);
    border: 2px solid rgba(17, 155, 242, 1);
    color: #fff;
}

.posts-index__load-button .home-button__icon {
    color: var(--dtx-cyan);
}

.posts-index__load-button[hidden] {
    display: none;
}

.posts-index__loader {
    animation: decoytx-spin .8s linear infinite;
    border: 3px solid rgba(10, 31, 155, 0.14);
    border-top-color: var(--dtx-cyan);
    border-radius: 50%;
    display: none;
    height: 34px;
    width: 34px;
}

.posts-index.is-loading .posts-index__loader {
    display: block;
}

.posts-index__end {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.52;
    margin: 0;
    text-align: center;
}

.posts-index__end--visible {
    margin-top: 58px;
}

@keyframes decoytx-spin {
    to {
        transform: rotate(360deg);
    }
}

.contact-cta {
    background: rgba(17, 155, 242, 1);
    border-radius: 24px;
    box-shadow: 0 0 48px 0 rgba(17, 155, 242, 0.16);
    color: #fff;
    margin: 0 auto 110px;
    max-width: var(--dtx-site-max);
    overflow: hidden;
    padding: 82px 70px;
    position: relative;
}

.contact-cta__pattern {
    background: url("../images/home/contact-emblem.png") right center / auto 100% no-repeat;
    inset: 0;
    opacity: 1;
    pointer-events: none;
    position: absolute;
}

.contact-cta__inner {
    position: relative;
    z-index: 1;
}

.contact-cta__eyebrow {
    align-items: center;
    display: inline-flex;
    font-size: 20px;
    font-weight: 700;
    gap: 0;
    line-height: 1.52;
    margin: 0 0 22px;
    text-transform: uppercase;
}

.contact-cta__eyebrow span {
    background: url("../images/icon-eyebrow-dot-contact.png") center / contain no-repeat;
    display: inline-block;
    flex: 0 0 auto;
    height: 8px;
    margin-right: 8px;
    min-width: 8px;
    width: 8px;
}

.contact-cta h2 {
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 400;
    line-height: 1.18;
    margin: 0 0 34px;
    max-width: 760px;
}

.contact-cta h2 strong {
    color: #fff;
    font-weight: 600;
}

.contact-cta .home-button {
    border: 2px solid rgba(17, 155, 242, 1);
    color: var(--dtx-cyan);
}

.contact-cta .home-button span:first-child {
    color: #fff;
}

.landing-page-content > section.home-module {
    margin-top: 0;
    margin-bottom: var(--dtx-module-gap);
}

.intro-media,
.news-cards,
.intro-media.about-intro,
.intro-media.about-intro-media,
.team-section,
.contact-block,
.intro-media.science-intro {
    padding-top: 0;
}

.intro-media,
.news-cards,
.pillars,
.team-section,
.contact-block,
.three-col-list,
.comparison-table,
.full-width-video-text,
.intro-media.science-intro,
.intro-media.science-intro-secound,
.intro-media.science-intro-second {
    padding-bottom: 0;
}

/* ==========================================================================
   System pages: search + 404
   ========================================================================== */

.system-page {
    background: rgba(237, 239, 247, 1);
    color: #383a42;
    min-height: 70vh;
    padding: 220px var(--dtx-section-x) var(--dtx-module-gap);
}

.system-page__inner {
    margin: 0 auto;
    max-width: var(--dtx-site-max);
}

.system-page__inner--center {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 52vh;
}

.system-page__header {
    margin-bottom: 64px;
    max-width: 1100px;
}

.system-page__eyebrow {
    align-items: center;
    color: #383a42;
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    gap: 0;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0 0 18px;
    text-transform: uppercase;
}

.system-page__eyebrow span {
    background: url("../images/icon-eyebrow-dot-news.png") center / contain no-repeat;
    display: inline-block;
    flex: 0 0 auto;
    height: 8px;
    margin-right: 8px;
    width: 8px;
}

.system-page h1 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 80px;
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 1.18;
    margin: 0;
}

.system-page h1 strong {
    color: #0a1f9b;
    font-style: normal;
}

.system-page__lead {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 24px;
    font-weight: 500;
    line-height: 1.52;
    margin: 28px 0 0;
    max-width: 760px;
}

.system-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 44px;
}

.system-search-form {
    align-items: center;
    display: flex;
    gap: 16px;
    margin-top: 42px;
    max-width: 880px;
}

.system-search-form input {
    background: #fff;
    border: 2px solid rgba(10, 31, 155, 0.18);
    border-radius: 10px;
    color: #383a42;
    flex: 1 1 auto;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    height: 58px;
    line-height: 1;
    min-width: 0;
    outline: 0;
    padding: 0 18px;
}

.system-search-form button {
    align-items: center;
    background: rgba(10, 31, 155, 1);
    border: 2px solid rgba(17, 155, 242, 1);
    border-radius: 10px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    gap: 12px;
    height: 58px;
    letter-spacing: .02em;
    line-height: 20px;
    padding: 0 26px;
}

.system-search-form button .home-button__icon {
    color: var(--dtx-cyan);
    height: 20px;
    width: 20px;
}

.system-results-grid {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(3, 1fr);
}

.system-result-card {
    background: rgba(211, 214, 224, 0.16);
    border-radius: 12px;
    color: #383a42;
    display: flex;
    flex-direction: column;
    min-height: 380px;
    padding: 34px 28px 30px;
}

.system-result-card__type {
    color: #0a1f9b;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.52;
    margin: 0 0 8px;
    text-transform: uppercase;
}

.system-result-card time {
    color: #383a42;
    display: block;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.52;
    margin-bottom: 18px;
    text-transform: uppercase;
}

.system-result-card h2 {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 18px;
}

.system-result-card p:not(.system-result-card__type) {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.52;
    margin: 0 0 28px;
}

.system-result-card .news-card__link {
    margin-top: auto;
}

.system-empty {
    background: rgba(211, 214, 224, 0.16);
    border-radius: 24px;
    max-width: 760px;
    padding: 54px;
}

.system-empty h2 {
    color: #0a1f9b;
    font-family: var(--dtx-font-primary);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.32;
    margin: 0 0 18px;
}

.system-empty p {
    color: #383a42;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.52;
    margin: 0 0 30px;
}

.system-page .navigation.pagination {
    margin-top: 56px;
    text-align: center;
}

.system-page .nav-links {
    display: inline-flex;
    gap: 14px;
}

.system-page .page-numbers {
    color: #0a1f9b;
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    text-decoration: none;
}

.system-page .page-numbers.current {
    color: #383a42;
}

.module {
    margin: 0 auto;
    max-width: 1180px;
    padding: var(--dtx-section-y-compact) var(--dtx-section-x);
}

.module-hero {
    min-height: 560px;
    padding-top: 160px;
}

.module-hero__eyebrow {
    color: var(--dtx-blue);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    margin: 0 0 18px;
    text-transform: uppercase;
}

.module-hero h1 {
    font-size: clamp(44px, 8vw, 92px);
    letter-spacing: 0;
    line-height: .96;
    margin: 0;
    max-width: 900px;
}

.module-hero__text,
.module-content-section__text,
.module-cta-section__text {
    color: var(--dtx-color-muted);
    font-size: 18px;
    max-width: 680px;
}

.module-content-section,
.module-cta-section {
    border-top: 1px solid var(--dtx-color-line);
}

.module h2 {
    font-size: clamp(32px, 5vw, 56px);
    letter-spacing: 0;
    line-height: 1.05;
    margin: 0 0 20px;
    max-width: 780px;
}

.button {
    align-items: center;
    background: var(--dtx-color-ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-weight: 700;
    min-height: 48px;
    padding: 0 22px;
    text-decoration: none;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    background: var(--dtx-blue);
    border: 0;
    color: var(--dtx-white);
    margin-top: 80px;
}

.single-team_member .site-footer {
    margin-top: 0;
}

.site-footer__inner {
    display: grid;
    gap: 62px;
    margin: 0 auto;
    max-width: var(--dtx-site-max);
    padding: var(--dtx-section-y-compact) var(--dtx-section-x) 55px;
}

.site-footer__top {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
}

.site-footer .decoytx-logo {
    width: 230px;
}

.site-footer__social {
    align-items: center;
    background: transparent;
    display: inline-flex;
    height: 48px;
    justify-content: center;
    text-decoration: none;
    width: 48px;
}

.site-footer__social img {
    display: block;
    height: 48px;
    width: 48px;
}

.site-footer__nav {
    display: grid;
    gap: 36px;
    grid-template-columns: 1.05fr 1fr 1.3fr 1.2fr .85fr .95fr;
}

.site-footer__group h2 {
    color: var(--dtx-white);
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.44;
    margin: 0 0 28px;
    text-align: left;
}

.site-footer__group h2 a {
    color: inherit;
    font: inherit;
    line-height: inherit;
    text-decoration: none;
    text-transform: none;
}

.site-footer__group li + li {
    margin-top: 17px;
}

.site-footer__group a,
.site-footer__bottom a {
    color: var(--dtx-white);
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 20px;
    text-decoration: none;
    text-align: left;
    text-transform: uppercase;
}

.site-footer__bottom {
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, .72);
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding-top: 24px;
}

.site-footer__bottom p {
    font-family: var(--dtx-font-secondary);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1;
    margin: 0;
    text-align: center;
}

.site-footer__legal {
    display: flex;
    gap: 27px;
}

.site-footer__legal a {
    font-family: var(--dtx-font-primary);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 24px;
    text-align: center;
    text-transform: none;
}

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

/* --------------------------------------------------------------------------
   Proportional desktop canvas — Figma 1440 reference
   Standard Figma content: 1248 / 1440 = 86.6667%.
   Navigation:             1296 / 1440 = 90%.
   Both scale continuously on laptop/desktop widths, then cap at 1500px so
   the existing approved wide-desktop composition remains unchanged.
   Full-bleed backgrounds/animations stay full width.
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
    .dtx-container,
    .home-hero__inner,
    .intro-media,
    .intro-media.science-intro-secound .intro-media__copy,
    .intro-media.science-intro-second .intro-media__copy,
    .three-col-list,
    .comparison-table,
    .full-width-video-text__inner,
    .pipeline,
    .stat-block,
    .text-row,
    .statement-banner,
    .logo-strip h2,
    .image-cta,
    .pillars__content,
    .news-cards,
    .team-section,
    .team-member-single__inner,
    .contact-block,
    .contact-cta,
    .posts-index,
    .system-page__inner,
    .site-footer__inner {
        box-sizing: border-box;
        width: var(--dtx-site-width);
        max-width: var(--dtx-site-max);
        margin-left: auto;
        margin-right: auto;
    }

    /* Figma navigation is slightly wider than the standard content canvas. */
    .site-header__inner,
    .site-header__search-panel {
        box-sizing: border-box;
        width: var(--dtx-nav-width);
        max-width: var(--dtx-nav-max);
        margin-left: auto;
        margin-right: auto;
    }
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1180px) {
    .site-header__inner {
        gap: 22px;
    }

    .site-header__menu {
        gap: 20px;
    }

    .site-header__menu a,
    .site-header__search {
        font-size: 13px;
    }
}


/* ==========================================================================
   Tablet / compact desktop
   768px–1180px
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1180px) {
    :root {
        /* Tablet should use the available canvas rather than inheriting the
           desktop 78.125vw ratio, which is too narrow around 1024px. */
        --dtx-site-width: calc(100vw - 64px);
        --dtx-site-gutter: 32px;
        --dtx-section-x: 32px;
        --dtx-section-y: 88px;
        --dtx-section-y-compact: 60px;
        --dtx-section-y-large: 104px;
        --dtx-module-gap: 88px;
        --dtx-surface-edge: 32px;

        --dtx-gap-xs: 10px;
        --dtx-gap-sm: 20px;
        --dtx-gap-md: 28px;
        --dtx-gap-lg: 40px;
        --dtx-gap-xl: 56px;
    }

    /* Header: use the same clean hamburger interaction as mobile. Keeping the
       full desktop menu at ~1024px causes the logo/nav/search to collide. */
    .site-header {
        padding: 24px var(--dtx-site-gutter) 0;
    }

    .site-header__inner {
        border-radius: 16px;
        gap: 20px;
        height: 72px;
        max-width: none;
        padding: 0 20px;
        width: 100%;
    }

    .site-header__nav,
    .site-header__search,
    .site-header__search-panel {
        display: none;
    }

    .decoytx-logo {
        width: 190px;
    }

    .site-header__toggle {
        align-items: center;
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        display: inline-flex;
        font: inherit;
        font-size: 13px;
        font-weight: 700;
        gap: 9px;
        margin-left: auto;
        padding: 0;
        text-transform: uppercase;
    }

    .site-header__toggle-icon {
        background-image: linear-gradient(currentColor, currentColor);
        background-position: left 6px;
        background-repeat: no-repeat;
        background-size: 17px 2px;
        display: inline-block;
        height: 14px;
        position: relative;
        width: 17px;
    }

    .site-header__toggle-icon::before,
    .site-header__toggle-icon::after {
        background: currentColor;
        border-radius: 999px;
        content: "";
        height: 2px;
        left: 0;
        position: absolute;
        width: 17px;
    }

    .site-header__toggle-icon::before {
        top: 1px;
    }

    .site-header__toggle-icon::after {
        top: 11px;
    }

    .mobile-menu {
        align-items: flex-start;
        justify-content: center;
        left: 0;
        padding: 24px 32px 0;
        position: fixed;
        right: 0;
        top: 0;
        z-index: 120;
    }

    body.admin-bar .mobile-menu {
        top: 32px;
    }

    .mobile-menu.is-open {
        display: flex;
    }

    .mobile-menu__panel {
        background: var(--dtx-nav);
        border-radius: 16px;
        box-shadow: 0 22px 54px rgba(15, 29, 120, .22);
        color: var(--dtx-white);
        max-width: 720px;
        padding: 0 24px 32px;
        width: 100%;
    }

    .mobile-menu__top {
        align-items: center;
        display: flex;
        height: 72px;
        justify-content: space-between;
        margin-bottom: 28px;
    }

    .mobile-menu__close {
        align-items: center;
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        display: inline-flex;
        font: inherit;
        font-size: 13px;
        font-weight: 700;
        gap: 9px;
        padding: 0;
        text-transform: uppercase;
    }

    .mobile-menu__close span {
        display: inline-block;
        flex: 0 0 auto;
        height: 14px;
        position: relative;
        width: 14px;
    }

    .mobile-menu__close span::before,
    .mobile-menu__close span::after {
        background: currentColor;
        border-radius: 999px;
        content: "";
        height: 2px;
        left: -1px;
        position: absolute;
        top: 6px;
        width: 16px;
    }

    .mobile-menu__close span::before {
        transform: rotate(45deg);
    }

    .mobile-menu__close span::after {
        transform: rotate(-45deg);
    }

    .mobile-menu__search {
        align-items: center;
        background: var(--dtx-nav-soft);
        border-radius: 8px;
        color: var(--dtx-white);
        display: flex;
        gap: 12px;
        height: 44px;
        margin-bottom: 34px;
        padding: 0 14px;
    }

    .mobile-menu__search input {
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        flex: 1;
        font: inherit;
        font-size: 14px;
        font-weight: 700;
        min-width: 0;
        outline: 0;
        text-transform: uppercase;
    }

    .mobile-menu__search input::placeholder {
        color: var(--dtx-white);
        opacity: 1;
    }

    .mobile-menu__list {
        display: grid;
        gap: 28px;
    }

    .mobile-menu__list a,
    .mobile-menu__item-toggle {
        align-items: center;
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        display: inline-flex;
        font-size: 14px;
        font-weight: 700;
        gap: 8px;
        line-height: 1.1;
        padding: 0;
        text-decoration: none;
        text-transform: uppercase;
    }

    .mobile-menu__item-toggle {
        font-family: inherit;
    }

    .mobile-menu__item-toggle[aria-expanded="true"] .nav-chevron {
        margin-top: 3px;
        transform: rotate(225deg);
    }

    .mobile-menu__submenu {
        display: grid;
        gap: 16px;
        list-style: none;
        margin: 18px 0 0;
        padding: 0 0 0 10px;
    }

    .mobile-menu__submenu[hidden] {
        display: none;
    }

    .mobile-menu__submenu a {
        font-size: 13px;
    }

    /* Shared tablet typography */
    h2,
    .logo-strip h2 {
        font-size: 42px;
        line-height: 1.2;
    }

    .home-button {
        border-radius: 14px;
        min-height: 50px;
        padding-inline: 22px;
    }

    .home-button span:first-child {
        font-size: 19px;
        line-height: 22px;
    }

    .home-button__icon {
        height: 19px;
        width: 19px;
    }

    /* Heroes */
    .home-hero {
        --hero-zoom: 1.06;
        min-height: 640px;
        padding: 0 var(--dtx-section-x) 72px;
    }

    .home-hero.homepage-hero,
    .home-hero.about-hero {
        min-height: 700px;
        padding: 0 var(--dtx-section-x) 72px;
    }

    .home-hero.news-hero {
        min-height: 610px;
        padding: 0 var(--dtx-section-x) 72px;
    }

    .home-hero__inner {
        padding-inline: 0;
    }

    .home-hero h1,
    .home-hero.about-hero h1 {
        font-size: 62px;
        line-height: 1.08;
    }

    .home-hero.homepage-hero h1 {
        font-size: 68px;
    }

    .home-hero.news-hero h1 {
        font-size: 56px;
        line-height: 1.1;
    }

    .home-hero p {
        font-size: 30px;
        line-height: 1.3;
        margin: 4px 0 30px;
    }

    .home-hero .home-button {
        margin-top: 30px;
        min-height: 54px;
        min-width: 220px;
    }

    /* Standard image + copy sections */
    .intro-media {
        gap: 48px;
        grid-template-columns: minmax(0, 1fr) minmax(280px, 36%);
        padding: var(--dtx-section-y) var(--dtx-section-x);
    }

    .intro-media__image {
        border-radius: 32px;
        margin-top: 12px;
    }

    .intro-media__text,
    .intro-media__emphasis {
        font-size: 18px;
    }

    .intro-media__emphasis {
        margin: 22px 0 34px;
    }

    .intro-media__buttons {
        gap: 14px;
        margin-top: 34px;
    }

    /* Full-width video intro remains full-bleed; only copy is constrained. */
    .intro-media.science-intro-secound,
    .intro-media.science-intro-second {
        width: 100%;
    }

    .intro-media.science-intro-secound:has(.intro-media__bg-video),
    .intro-media.science-intro-second:has(.intro-media__bg-video) {
        min-height: 560px;
    }

    .intro-media.science-intro-secound .intro-media__copy,
    .intro-media.science-intro-second .intro-media__copy {
        width: min(calc(100vw - 96px), 860px);
    }

    /* 3-column lists: preserve three columns on landscape tablet, but remove the
       desktop-sized inner padding that makes each item too narrow. */
    .three-col-list {
        padding-inline: var(--dtx-section-x);
    }

    .three-col-list__header {
        margin-bottom: 74px;
    }

    .three-col-list__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .three-col-list__item {
        padding: 0 24px;
    }

    .three-col-list__icon {
        height: 48px;
        margin-bottom: 36px;
        width: 48px;
    }

    .three-col-list h4 {
        font-size: 22px;
        margin-bottom: 26px;
    }

    .three-col-list__text p {
        font-size: 16px;
        line-height: 1.48;
    }

    /* Comparison table */
    .comparison-table__cell {
        min-height: 84px;
        padding: 18px 26px;
    }

    .comparison-table__row--head .comparison-table__cell {
        min-height: 124px;
    }

    .comparison-table__cell p {
        font-size: 16px;
    }

    .comparison-table__row--head .comparison-table__cell p {
        font-size: 18px;
    }

    /* Full-width video/text */
    .full-width-video-text {
        min-height: 680px;
        padding: 220px var(--dtx-section-x) 96px;
    }

    .full-width-video-text h2 {
        max-width: 620px;
    }

    .full-width-video-text__columns {
        gap: 48px;
    }

    .full-width-video-text__column p {
        font-size: 18px;
    }

    /* Pipeline: switch from the four-column desktop card before it becomes
       compressed. CTA receives its own row, so it can never collide with the bar. */
    .pipeline__intro {
        gap: 36px;
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        margin-bottom: 52px;
    }

    .pipeline__intro-text {
        font-size: 18px;
    }

    .pipeline__phase-head {
        display: none;
    }

    .pipeline__card {
        align-items: start;
        column-gap: 32px;
        grid-template-columns: minmax(170px, .72fr) minmax(0, 1.28fr);
        grid-template-rows: auto auto auto auto;
        min-height: auto;
        padding: 38px 40px 34px;
        row-gap: 0;
    }

    .pipeline__card::before {
        content: none;
    }

    .pipeline__program {
        grid-column: 1 / -1;
        grid-row: 1;
        padding: 0;
    }

    .pipeline__program h3 {
        font-size: 30px;
        line-height: 1.2;
    }

    .pipeline__program p {
        font-size: 17px;
        line-height: 1.45;
        margin-top: 8px;
    }

    .pipeline__stage {
        display: contents;
        padding: 0;
    }

    .pipeline__stage span {
        grid-column: 1 / -1;
        grid-row: 2;
        font-size: 17px;
        margin: 26px 0 20px;
    }

    .pipeline__stage strong {
        align-self: center;
        grid-column: 1;
        grid-row: 3;
        font-size: 16px;
        padding-top: 10px;
    }

    .pipeline__progress {
        align-self: end;
        grid-column: 2;
        grid-row: 3;
        height: 22px;
        margin: 0;
        overflow: visible;
        position: relative;
    }

    .pipeline__progress::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='xMidYMid meet'%3E%3Cg fill='rgb(56,58,66)' font-family='Geist,Arial,sans-serif' font-size='13' font-weight='400' text-anchor='middle'%3E%3Ctext x='50' y='14'%3EDiscovery%3C/text%3E%3Ctext x='150' y='14'%3EPreclinical%3C/text%3E%3Ctext x='250' y='14'%3EPhase 1%3C/text%3E%3Ctext x='350' y='14'%3EPhase 2%3C/text%3E%3C/g%3E%3C/svg%3E");
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        content: "";
        height: 20px;
        left: 0;
        pointer-events: none;
        position: absolute;
        top: -25px;
        width: 100%;
    }

    .pipeline__progress::after {
        background-image: linear-gradient(90deg,
            transparent calc(25% - .5px), rgba(129, 141, 205, .32) calc(25% - .5px), rgba(129, 141, 205, .32) calc(25% + .5px), transparent calc(25% + .5px),
            transparent calc(50% - .5px), rgba(129, 141, 205, .32) calc(50% - .5px), rgba(129, 141, 205, .32) calc(50% + .5px), transparent calc(50% + .5px),
            transparent calc(75% - .5px), rgba(129, 141, 205, .32) calc(75% - .5px), rgba(129, 141, 205, .32) calc(75% + .5px), transparent calc(75% + .5px));
        border-radius: inherit;
        content: "";
        inset: 0;
        pointer-events: none;
        position: absolute;
        z-index: 2;
    }

    .pipeline__action {
        grid-column: 1 / -1;
        grid-row: 4;
        justify-self: start;
        margin-top: 30px;
        padding: 0;
    }

    .pipeline__button {
        min-width: max-content;
    }

    /* Stat */
    .stat-block {
        min-height: 420px;
        padding: 40px var(--dtx-section-x);
    }

    .stat-block__card {
        border-radius: 34px;
        padding: 56px 54px;
    }

    .stat-block__inner {
        gap: 36px;
        grid-template-columns: minmax(150px, .42fr) minmax(0, 1fr);
    }

    .stat-block__value {
        font-size: 72px;
    }

    .stat-block__text p {
        font-size: 24px;
    }

    /* Text row */
    .text-row {
        gap: 54px;
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
        padding-inline: var(--dtx-section-x);
    }

    .text-row__text {
        font-size: 22px;
        line-height: 1.4;
    }

    /* Statement banner */
    .statement-banner {
        border-radius: 36px;
        gap: 72px;
        min-height: 470px;
        padding: 64px 56px;
    }

    .statement-banner p {
        font-size: 30px;
    }

    /* Logo strip */
    .logo-strip {
        margin-bottom: 104px;
    }

    .logo-strip h2 {
        margin-bottom: 84px;
    }

    .logo-strip__track {
        gap: 64px;
        padding-right: 64px;
    }

    .logo-strip__item {
        flex-basis: 230px;
        height: 105px;
        min-height: 105px;
    }

    .logo-strip__item img {
        max-height: 88px;
    }

    /* Image CTA */
    .image-cta {
        border-radius: 34px;
        min-height: 520px;
        padding: 180px 64px 72px;
    }

    .image-cta h2 {
        margin-bottom: 38px;
    }

    .image-cta__text {
        font-size: 18px;
        max-width: 540px;
    }

    .image-cta .home-button {
        margin-top: 42px;
    }

    /* Pillars */
    .pillars {
        padding-bottom: var(--dtx-section-y);
    }

    .pillars__visual {
        height: 620px;
    }

    .pillars__content {
        margin-top: -110px;
        padding-inline: 44px;
    }

    .pillars h2 {
        margin-bottom: 58px;
    }

    .pillars__item {
        column-gap: 20px;
        grid-template-columns: 54px minmax(180px, .8fr) minmax(0, 1.2fr);
        padding: 22px 0;
    }

    .pillars__item span {
        font-size: 38px;
    }

    .pillars__item h5 {
        font-size: 22px;
    }

    .pillars__item p {
        font-size: 16px;
        line-height: 1.45;
    }

    /* News cards */
    .news-cards {
        padding: var(--dtx-section-y-compact) var(--dtx-section-x) var(--dtx-section-y);
    }

    .news-cards__grid {
        gap: 22px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .news-card {
        padding: 0 18px 24px;
    }

    .posts-index__card {
        padding-top: 24px;
    }

    /* Team / contact / generic post grids: avoid desktop three/four-column squeeze. */
    .team-section__grid,
    .team-grid,
    .posts-index__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-block {
        padding-inline: var(--dtx-section-x);
    }

    /* Contact form: desktop uses 360px + 560px minimum columns, which overflows
       around 1024px. Let both columns shrink naturally on tablet. */
    .contact-block__inner {
        gap: 48px;
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    }

    .contact-block__info,
    .contact-block__form,
    .contact-block__locations,
    .contact-block .wpcf7,
    .contact-block .wpcf7-form,
    .contact-block .wpcf7-form-control-wrap {
        min-width: 0;
        width: 100%;
    }

    .contact-block input[type="text"],
    .contact-block input[type="email"],
    .contact-block input[type="tel"],
    .contact-block select,
    .contact-block textarea {
        box-sizing: border-box;
        max-width: 100%;
        min-width: 0;
        width: 100%;
    }

    .contact-block h2 {
        font-size: 34px;
        margin-bottom: 58px;
    }

    .contact-block--has-heading .contact-block__form {
        padding-top: 102.88px;
    }

    .contact-block__locations h3 {
        font-size: 28px;
        margin-bottom: 42px;
    }

    .contact-block__location-list {
        gap: 40px;
    }

    .contact-block__location h4,
    .contact-block__address {
        font-size: 17px;
    }

    .contact-block__linkedin {
        margin-top: 64px;
    }

    /* Contact CTA follows the same tablet canvas as the other constrained sections. */
    .contact-cta {
        margin-left: auto;
        margin-right: auto;
        max-width: var(--dtx-site-max);
        width: var(--dtx-site-width);
    }

    /* Footer */
    .site-footer {
        margin-top: 80px;
    }

    .site-footer__inner {
        gap: 54px;
        padding: 58px 36px 44px;
    }

    .site-footer__nav {
        gap: 34px 26px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .site-footer__bottom {
        gap: 28px;
    }
}


@media (max-width: 767px) {
    :root {
        /* Mobile spacing system */
        --dtx-section-x: 30px;
        --dtx-section-y: 64px;
        --dtx-section-y-compact: 48px;
        --dtx-section-y-large: 80px;
        --dtx-module-gap: 70px;
        --dtx-surface-edge: 24px;

        --dtx-gap-xs: 12px;
        --dtx-gap-sm: 24px;
        --dtx-gap-md: 32px;
        --dtx-gap-lg: 48px;
        --dtx-gap-xl: 64px;

        /* Backwards-compatible aliases while templates/CSS are migrated */
        --dtx-mobile-section-x: var(--dtx-section-x);
        --dtx-mobile-section-y: var(--dtx-section-y);
        --dtx-mobile-heading-gap: var(--dtx-gap-sm);
        --dtx-mobile-content-gap: var(--dtx-gap-md);
    }

    .site-header {
        padding: 20px 18px 0;
    }

    body.admin-bar .site-header {
        top: 46px;
    }

    .site-header__inner {
        border-radius: 14px;
        height: 64px;
        justify-content: space-between;
        max-width: 330px;
        padding: 0 15px;
    }

    .site-header__nav,
    .site-header__search,
    .site-header__search-panel {
        display: none;
    }

    .decoytx-logo {
        width: 174px;
    }

    .site-header__toggle {
        align-items: center;
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        display: inline-flex;
        font: inherit;
        font-size: 12px;
        font-weight: 700;
        gap: 8px;
        padding: 0;
        text-transform: uppercase;
    }

    .site-header__toggle-icon {
        display: inline-block;
        height: 12px;
        position: relative;
        width: 15px;
    }

    .site-header__toggle-icon::before,
    .site-header__toggle-icon::after {
        background: currentColor;
        border-radius: 999px;
        content: "";
        height: 2px;
        left: 0;
        position: absolute;
        width: 15px;
    }

    .site-header__toggle-icon {
        background-image: linear-gradient(currentColor, currentColor);
        background-position: left 5px;
        background-repeat: no-repeat;
        background-size: 15px 2px;
    }

    .site-header__toggle-icon::before {
        top: 1px;
    }

    .site-header__toggle-icon::after {
        top: 9px;
    }

    .mobile-menu {
        align-items: flex-start;
        left: 0;
        justify-content: center;
        padding-top: 20px;
        position: fixed;
        right: 0;
        top: 0;
        z-index: 120;
    }

    body.admin-bar .mobile-menu {
        top: 46px;
    }

    .mobile-menu.is-open {
        display: flex;
    }

    .mobile-menu__panel {
        background: var(--dtx-nav);
        border-radius: 14px;
        box-shadow: 0 22px 54px rgba(15, 29, 120, .22);
        color: var(--dtx-white);
        min-height: 420px;
        padding: 0 13px 22px;
        width: min(330px, calc(100vw - 36px));
    }

    .mobile-menu__top {
        align-items: center;
        display: flex;
        height: 64px;
        justify-content: space-between;
        margin-bottom: 26px;
    }

    .mobile-menu__close {
        align-items: center;
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        display: inline-flex;
        font: inherit;
        font-size: 12px;
        font-weight: 700;
        gap: 9px;
        padding: 0;
        text-transform: uppercase;
    }

    .mobile-menu__close span {
        display: inline-block;
        flex: 0 0 auto;
        height: 13px;
        position: relative;
        width: 13px;
    }

    .mobile-menu__close span::before,
    .mobile-menu__close span::after {
        border-radius: 999px;
        background: currentColor;
        content: "";
        height: 2px;
        left: -1px;
        position: absolute;
        top: 5.5px;
        width: 15px;
    }

    .mobile-menu__close span::before {
        transform: rotate(45deg);
    }

    .mobile-menu__close span::after {
        transform: rotate(-45deg);
    }

    .mobile-menu__search {
        align-items: center;
        background: var(--dtx-nav-soft);
        border-radius: 6px;
        color: var(--dtx-white);
        display: flex;
        gap: 10px;
        height: 35px;
        margin-bottom: 31px;
        padding: 0 11px;
    }

    .mobile-menu__search input {
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        flex: 1;
        font: inherit;
        font-size: 13px;
        font-weight: 700;
        min-width: 0;
        outline: 0;
        text-transform: uppercase;
    }

    .mobile-menu__search input::placeholder {
        color: var(--dtx-white);
        opacity: 1;
    }

    .system-page {
        padding: 150px var(--dtx-section-x) var(--dtx-module-gap);
    }

    .system-page__header {
        margin-bottom: 42px;
    }

    .system-page h1 {
        font-size: 56px;
        line-height: 1.12;
    }

    .system-page__lead {
        font-size: 20px;
    }

    .system-search-form {
        align-items: stretch;
        display: grid;
        gap: 14px;
        margin-top: 32px;
    }

    .system-search-form input,
    .system-search-form button {
        height: 54px;
        width: 100%;
    }

    .system-search-form button {
        justify-content: center;
    }

    .system-results-grid {
        gap: var(--dtx-gap-sm);
        grid-template-columns: 1fr;
    }

    .system-result-card {
        min-height: 0;
        padding: 28px 24px 30px;
    }

    .system-empty {
        border-radius: 18px;
        padding: 34px 24px;
    }

    .system-page__actions {
        display: grid;
        gap: 14px;
        width: 100%;
    }

    .mobile-menu__list {
        display: grid;
        gap: 32px;
    }

    .mobile-menu__list a,
    .mobile-menu__item-toggle {
        align-items: center;
        background: transparent;
        border: 0;
        color: var(--dtx-white);
        display: inline-flex;
        font-size: 13px;
        font-weight: 700;
        gap: 8px;
        line-height: 1;
        padding: 0;
        text-decoration: none;
        text-transform: uppercase;
    }

    .mobile-menu__item-toggle {
        font-family: inherit;
    }

    .mobile-menu__item-toggle[aria-expanded="true"] .nav-chevron {
        margin-top: 3px;
        transform: rotate(225deg);
    }

    .mobile-menu__submenu {
        display: grid;
        gap: 18px;
        list-style: none;
        margin: 18px 0 0;
        padding: 0 0 0 8px;
    }

    .mobile-menu__submenu[hidden] {
        display: none;
    }

    .mobile-menu__submenu a {
        font-size: 12px;
    }

    .site-footer {
        margin-top: 52px;
    }

    .site-footer__inner {
        gap: 44px;
        max-width: 330px;
        padding: 45px 17px 36px;
    }

    .site-footer__top {
        align-items: flex-start;
    }

    .site-footer .decoytx-logo {
        width: 180px;
    }

    .site-footer__nav {
        display: grid;
        gap: 44px;
        grid-template-columns: 1fr;
    }

    .site-footer__group h2 {
        font-size: 15px;
        margin-bottom: 24px;
    }

    .site-footer__group li + li {
        margin-top: 17px;
    }

    .site-footer__bottom {
        align-items: center;
        flex-direction: column;
        gap: 22px;
        text-align: center;
    }

    .site-footer__bottom p {
        line-height: 1.35;
        max-width: 240px;
    }

    .site-footer__legal {
        flex-direction: column;
        gap: 20px;
    }

    /* Standard ACF content sections share one horizontal gutter.
       Section-specific rules below should only control layout/content, not viewport gutters. */
    .intro-media,
    .news-cards,
    .team-section,
    .contact-block,
    .module {
        padding-inline: var(--dtx-section-x);
    }

    .home-button {
        border-radius: 12px;
        min-height: 44px;
        padding: 0 20px;
    }

    .home-button span:first-child {
        font-size: 20px;
        line-height: 22px;
    }

    .home-button__icon {
        height: 19px;
        width: 19px;
    }

    .home-hero {
        --hero-zoom: 1.03;
        --hero-position: center;
        min-height: 560px;
        padding: 0 var(--dtx-section-x) var(--dtx-section-y-compact);
    }

    .home-hero__inner {
        padding-inline: 0;
    }

    .home-hero.homepage-hero {
        min-height: 620px;
        padding: 0 var(--dtx-section-x) var(--dtx-section-y-compact);
    }

    .home-hero h1 {
        font-size: 56px;
        line-height: 1.08;
    }

    .home-hero.about-hero h1 {
        font-size: 56px;
    }

    .home-hero.news-hero {
        min-height: 560px;
        padding: 0 var(--dtx-section-x) var(--dtx-section-y-compact);
    }

    .home-hero.news-hero h1 {
        font-size: 48px;
        line-height: 1.12;
    }

    .home-hero p {
        font-size: 20px;
        line-height: 1.52;
        margin: 8px 0 32px;
    }

    .home-hero .home-button {
        min-height: 48px;
        min-width: 190px;
    }

    .home-hero .home-button span:first-child {
        font-size: 20px;
        line-height: 22px;
    }

    .intro-media {
        display: flex;
        flex-direction: column;
        padding: var(--dtx-section-y) var(--dtx-section-x) var(--dtx-section-y-large);
    }

    h2,
    .logo-strip h2 {
        font-size: 48px;
        line-height: 1.32;
    }

    h4 {
        font-size: 24px;
    }

    .intro-media h2 {
        margin-bottom: var(--dtx-gap-md);
    }

    .logo-strip h2 {
        margin-bottom: var(--dtx-gap-lg);
    }

    .intro-media__text,
    .intro-media__emphasis {
        font-size: 20px;
        max-width: none;
    }

    .intro-media__emphasis {
        margin: var(--dtx-gap-lg) 0;
    }

    .intro-media__image {
        border-radius: 36px 36px 36px 36px;
        margin: 0 0 var(--dtx-gap-lg) auto;
        order: -1;
        width: min(100%, 360px);
    }

    .three-col-list {
        padding-inline: var(--dtx-section-x);
    }

    .three-col-list__header {
        margin-bottom: var(--dtx-section-y);
    }

    .three-col-list h2 {
        margin-bottom: var(--dtx-gap-md);
    }

    .three-col-list__grid {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        gap: var(--dtx-section-y);
    }

    .three-col-list__item {
        display: block;
        grid-row: auto;
        padding: 0;
    }

    .three-col-list__item + .three-col-list__item {
        border-left: 0;
        border-top: 1px solid rgba(10, 31, 155, .14);
        padding-top: var(--dtx-section-y);
    }

    .three-col-list__icon {
        height: 44px;
        margin-bottom: var(--dtx-gap-lg);
        width: 44px;
    }

    .three-col-list h4 {
        margin-bottom: var(--dtx-gap-md);
        min-height: 0;
    }

    .comparison-table {
        padding-inline: var(--dtx-section-x);
    }

    .comparison-table h2 {
        margin-bottom: var(--dtx-section-y);
    }

    .comparison-table__row {
        grid-template-columns: 1fr;
    }

    .comparison-table__cell {
        min-height: auto;
        padding: 24px var(--dtx-gap-sm);
    }

    .comparison-table__cell + .comparison-table__cell {
        border-left: 0;
    }

    .comparison-table__row--head .comparison-table__cell {
        min-height: auto;
    }

    .full-width-video-text {
        min-height: 720px;
        padding: 220px var(--dtx-section-x) 96px;
    }

    .full-width-video-text h2 {
        margin-bottom: var(--dtx-gap-lg);
    }

    .full-width-video-text__columns {
        grid-template-columns: 1fr;
        gap: var(--dtx-gap-md);
        padding-bottom: 48px;
    }

    .full-width-video-text__column p {
        font-size: 20px;
        line-height: 1.52;
    }

    .pipeline {
        padding: 0 var(--dtx-section-x);
    }

    .pipeline__intro {
        gap: var(--dtx-gap-md);
        grid-template-columns: 1fr;
        margin-bottom: var(--dtx-gap-lg);
    }

    .pipeline__intro h2 {
        margin-bottom: 0;
        text-align: left;
    }

    .pipeline__intro-text {
        font-size: 20px;
    }

    /* Pipeline mobile card follows the Figma information hierarchy:
       program name -> note -> Stage -> current program label + phase pillar -> CTA. */
    .pipeline__phase-head {
        display: none;
    }

    .pipeline__card {
        align-items: start;
        border-radius: 24px;
        column-gap: 14px;
        grid-template-columns: minmax(88px, .72fr) minmax(0, 1.28fr);
        grid-template-rows: auto auto auto;
        min-height: auto;
        padding: 28px 20px 26px;
        row-gap: 0;
    }

    .pipeline__card::before {
        content: none;
    }

    .pipeline__program {
        grid-column: 1 / -1;
        grid-row: 1;
        padding: 0;
    }

    .pipeline__program h3 {
        font-size: 28px;
        line-height: 1.25;
        margin: 0;
    }

    .pipeline__program p {
        font-size: 18px;
        line-height: 1.45;
        margin: 10px 0 0;
    }

    /* display:contents lets Stage and its program label become separate grid items. */
    .pipeline__stage {
        display: contents;
        padding: 0;
    }

    .pipeline__stage span {
        grid-column: 1 / -1;
        grid-row: 2;
        font-size: 18px;
        font-weight: 600;
        line-height: 1.4;
        margin: 24px 0 16px;
    }

    .pipeline__stage strong {
        align-self: center;
        grid-column: 1;
        grid-row: 3;
        font-size: 17px;
        font-weight: 500;
        line-height: 1.35;
        padding: 12px 0 0;
    }

    .pipeline__progress {
        align-self: end;
        grid-column: 2;
        grid-row: 3;
        height: 18px;
        margin: 0 0 0;
        overflow: visible;
        position: relative;
    }

    /* Mobile phases: keep the SVG coordinate system close to the real pillar
       width so 10px text is not horizontally crushed when the background scales.
       Each label is centered on its exact 25% pillar segment. */
    .pipeline__progress::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 16' preserveAspectRatio='xMidYMid meet'%3E%3Cg fill='rgb(56,58,66)' font-family='Geist,Arial,sans-serif' font-size='10' font-weight='400' text-anchor='middle'%3E%3Ctext x='17.5' y='11'%3EDiscovery%3C/text%3E%3Ctext x='52.5' y='11'%3EPreclinical%3C/text%3E%3Ctext x='87.5' y='11'%3EPhase 1%3C/text%3E%3Ctext x='122.5' y='11'%3EPhase 2%3C/text%3E%3C/g%3E%3C/svg%3E");
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        content: "";
        height: 16px;
        left: 0;
        pointer-events: none;
        position: absolute;
        top: -20px;
        width: 100%;
    }

    /* The pillar itself is split into four equal phase segments. */
    .pipeline__progress::after {
        background-image: linear-gradient(90deg,
            transparent calc(25% - .5px), rgba(129, 141, 205, .32) calc(25% - .5px), rgba(129, 141, 205, .32) calc(25% + .5px), transparent calc(25% + .5px),
            transparent calc(50% - .5px), rgba(129, 141, 205, .32) calc(50% - .5px), rgba(129, 141, 205, .32) calc(50% + .5px), transparent calc(50% + .5px),
            transparent calc(75% - .5px), rgba(129, 141, 205, .32) calc(75% - .5px), rgba(129, 141, 205, .32) calc(75% + .5px), transparent calc(75% + .5px));
        border-radius: inherit;
        content: "";
        inset: 0;
        pointer-events: none;
        position: absolute;
        z-index: 2;
    }

    .pipeline__progress > span {
        overflow: hidden;
    }

    .pipeline__action {
        grid-column: 1 / -1;
        grid-row: 4;
        justify-self: start;
        margin-top: 30px;
        padding: 0;
    }

    .stat-block {
        min-height: 360px;
        padding: 34px var(--dtx-section-x);
    }

    .stat-block__pattern {
        background-size: 860px auto;
    }

    .stat-block__card {
        border-radius: 24px;
        padding: 46px 26px;
    }

    .stat-block__inner {
        gap: 10px;
        grid-template-columns: 1fr;
    }

    .stat-block__value {
        font-size: 76px;
        text-align: center;
    }

    .stat-block__text p {
        font-size: 28px;
        line-height: 1.22;
        text-align: center;
    }

    .text-row {
        gap: var(--dtx-gap-md);
        grid-template-columns: 1fr;
        padding: 0 var(--dtx-section-x);
    }

    .text-row__text {
        font-size: 20px;
        letter-spacing: 0;
        line-height: 1.52;
    }

    .statement-banner {
        border-radius: 42px;
        margin: 0 var(--dtx-surface-edge) var(--dtx-section-y-large);
        min-height: 408px;
        padding: 58px 36px;
    }

    .statement-banner__pattern {
        background-size: auto 100%;
    }

    .statement-banner p {
        font-size: 20px;
    }

    .logo-strip {
        margin-bottom: 92px;
    }

    .logo-strip h2 {
        margin-bottom: 54px;
        padding-inline: var(--dtx-section-x);
    }

    .logo-strip__slider {
        overflow: hidden;
    }

    .logo-strip__track {
        animation-duration: 22s;
        gap: 40px;
        padding-right: 40px;
    }

    .logo-strip__item {
        flex-basis: 172px;
        font-size: 22px;
        height: 96px;
        min-height: 96px;
        overflow: visible;
    }

    .logo-strip__item img {
        max-height: 72px;
    }

    .logo-strip__item:first-child img {
        max-height: 92px;
    }

    .image-cta {
        border-radius: 42px;
        margin: 0 var(--dtx-surface-edge) 70px;
        min-height: 660px;
        padding: 116px 25px 39px;
    }

    .image-cta h2 {
        margin-bottom: 30px;
    }

    .image-cta__text {
        font-size: 20px;
    }

    .image-cta .home-button {
        justify-content: space-between;
        margin-top: 34px;
        width: min(100%, 292px);
    }

    .image-cta .home-button span:first-child {
        max-width: calc(100% - 36px);
        padding: 10px;
    }

    .pillars {
        margin-top: 0;
        padding: 0 var(--dtx-section-x) var(--dtx-section-y);
    }

    .pillars__visual {
        height: 420px;
        margin-inline: calc(var(--dtx-section-x) * -1);
    }

    .pillars__content {
        margin-top: -70px;
        padding-inline: 0;
    }

    .pillars h2 {
        margin-bottom: var(--dtx-gap-lg);
    }

    .pillars__item {
        gap: 12px;
        grid-template-columns: 62px minmax(0, 1fr);
        padding: 22px 0;
    }

    .pillars__item span {
        font-size: 38px;
    }

    .pillars__item h5 {
        font-size: 28px;
    }

    .pillars__item p {
        font-size: 20px;
    }

    .pillars__item p {
        grid-column: 1 / -1;
        text-align: left;
    }

    .news-cards {
        padding: var(--dtx-section-y-compact) var(--dtx-section-x) var(--dtx-section-y-large);
    }

    .news-cards__eyebrow {
        text-align: left;
    }

    .section-latest-news.news-cards > h3 {
        font-size: 28px;
    }

    .news-cards__grid {
        gap: var(--dtx-gap-sm);
        grid-template-columns: 1fr;
    }

    .news-card {
        border-radius: 20px;
        padding: 24px 32px 42px;
    }

    .news-card h3,
    .posts-index .news-card h2 {
        min-height: auto;
    }

    .posts-index .news-card__link {
        margin-left: 0;
        margin-top: 16px;
    }

    .news-card__image {
        border-radius: 16px;
        margin: 0 0 var(--dtx-gap-lg);
    }

    .posts-index__filters {
        display: grid;
        gap: 18px;
        grid-template-columns: 1fr;
        margin-bottom: 34px;
    }

    .posts-index__filter {
        font-size: 18px;
    }

    .posts-index__clear {
        justify-self: stretch;
        width: 100%;
    }

    .posts-index__load-more {
        margin-top: 42px;
    }

    .team-section {
        padding: var(--dtx-section-y) var(--dtx-section-x);
    }

    .team-section__intro {
        display: block;
        margin-bottom: var(--dtx-mobile-content-gap);
    }

    .team-section__intro h2 {
        margin-bottom: var(--dtx-mobile-heading-gap);
    }

    .team-section__text {
        font-size: 20px;
    }

    .team-group + .team-group {
        margin-top: var(--dtx-mobile-section-y);
    }

    .team-group > h3 {
        font-size: 28px;
        margin-bottom: var(--dtx-mobile-heading-gap);
    }

    .team-group__grid {
        gap: var(--dtx-mobile-content-gap);
        grid-template-columns: 1fr;
    }

    .team-card {
        gap: 20px;
        grid-template-columns: 126px minmax(0, 1fr);
    }

    .team-card h4 {
        font-size: 24px;
        margin-bottom: 12px;
    }

    .team-card p {
        font-size: 20px;
        margin-bottom: 24px;
    }

    .team-card__link {
        min-height: 44px;
        min-width: 148px;
        padding: 0 20px;
    }

    .team-member-single__inner {
        padding: 140px var(--dtx-section-x) var(--dtx-section-y-large);
    }

    .team-member-single__back {
        font-size: 24px;
        gap: 16px;
        margin-bottom: 54px;
    }

    .team-member-single__back span {
        height: 24px;
        width: 36px;
    }

    .team-member-single__back span::before {
        height: 4px;
        top: 10px;
        width: 36px;
    }

    .team-member-single__back span::after {
        border-left-width: 4px;
        border-top-width: 4px;
        height: 18px;
        top: 3px;
        width: 18px;
    }

    .team-member-single__grid {
        display: block;
    }

    .team-member-single__photo {
        border-radius: 0 36px 0 36px;
        margin-bottom: 48px;
    }

    .team-member-single__content h1 {
        font-size: 36px;
        margin-bottom: 14px;
    }

    .team-member-single__position {
        font-size: 20px;
        margin-bottom: 36px;
    }

    .team-member-single__bio {
        font-size: 20px;
    }

    .contact-block {
        padding: var(--dtx-section-y) var(--dtx-section-x);
    }

    .contact-block__inner {
        display: flex;
        flex-direction: column;
    }

    .contact-block__info {
        display: contents;
    }

    .contact-block h2 {
        font-size: 48px;
        margin-bottom: var(--dtx-mobile-heading-gap);
        order: 1;
    }

    .contact-block__form {
        order: 2;
        padding-top: 0;
    }

    .contact-block--has-heading .contact-block__form {
        padding-top: 0;
    }

    .contact-block__locations {
        margin-top: var(--dtx-mobile-content-gap);
        order: 3;
    }

    .contact-block__locations h3 {
        font-size: 28px;
        margin-bottom: var(--dtx-mobile-heading-gap);
    }

    .contact-block__location-list {
        gap: var(--dtx-mobile-heading-gap);
    }

    .contact-block__location {
        grid-template-columns: 32px 1fr;
    }

    .contact-block__pin {
        height: 30px;
        width: 22px;
    }

    .contact-block__linkedin {
        gap: 18px;
        margin-top: var(--dtx-mobile-heading-gap);
        order: 4;
    }

    .contact-block__linkedin img {
        height: 34px;
        width: 34px;
    }

    .contact-block .wpcf7-form {
        gap: var(--dtx-mobile-heading-gap);
    }

    .contact-form__select-wrap::after {
        right: 17px;
        top: 19px;
    }

    .contact-block .wpcf7-submit {
        background-position: right 20px center;
        background-size: 20px 20px;
        border-radius: 18px;
        font-size: 20px;
        line-height: 22px;
        min-height: 50px;
        min-width: 156px;
        padding: 12px 56px 12px 24px;
    }

    .contact-cta {
        border-radius: 42px;
        margin: 0 var(--dtx-surface-edge) var(--dtx-section-y-large);
        min-height: 472px;
        padding: 176px 25px 48px;
    }

    .contact-cta__pattern {
        inset: auto;
        top: 0;
        right: 0;
        width: 68%;
        height: 34%;
        background:
            var(--contact-cta-mobile-pattern)
            right top / contain no-repeat;
        opacity: 1;
    }

    .contact-cta h2 {
        line-height: 1.28;
    }

    .contact-cta .home-button {
        justify-content: space-between;
        min-height: 48px;
        padding: 0 20px;
        width: min(100%, 236px);
    }

    .contact-cta .home-button span:first-child {
        white-space: nowrap;
    }

    .landing-page-content > section.home-module {
        margin-top: 0;
        margin-bottom: var(--dtx-module-gap);
    }

    .intro-media,
    .news-cards,
    .intro-media.about-intro,
    .intro-media.about-intro-media,
    .team-section,
    .contact-block,
    .intro-media.science-intro {
        padding-top: 0;
    }

    .intro-media,
    .news-cards,
    .pillars,
    .team-section,
    .contact-block,
    .intro-media.science-intro,
    .intro-media.science-intro-secound,
    .intro-media.science-intro-second {
        padding-bottom: 0;
    }
}

/* Text Row eyebrow — same visual treatment as News Cards */
.text-row__eyebrow {
    align-items: center;
    color: #383a42;
    display: inline-flex;
    font-family: var(--dtx-font-primary);
    font-size: 20px;
    font-weight: 700;
    gap: 0;
    letter-spacing: 0;
    line-height: 1.52;
    margin: 0 0 12px;
    text-align: left;
    text-transform: uppercase;
}

.text-row__eyebrow::before {
    background: url("../images/icon-eyebrow-dot-news.png") center / contain no-repeat;
    content: "";
    display: inline-block;
    flex: 0 0 auto;
    height: 8px;
    margin-right: 8px;
    width: 8px;
}

/* Prevent a duplicate dot if the markup already contains the news-style span */
.text-row__eyebrow > span:empty {
    display: none;
}

/* D-MAVS – image/fullwidth text: Figma crop + copy placement */
.section-image-fullwidth-text.image-cta {
    min-height: 600px;

    /* Fill the card completely — no empty sides */
    background-size: cover;
    background-position: center 45%;
    background-repeat: no-repeat;

    /* Copy lower, directly above the glove */
    padding-top: 300px;
    padding-bottom: 70px;
}

.section-image-fullwidth-text .image-cta__inner {
    max-width: 760px;
}

.section-image-fullwidth-text h2 {
    margin-bottom: 34px;
}

.intro-media.dmav-intro-2 .intro-media__image img {
    transform: rotate(90deg);
}

.intro-media.science-intro-secound,
.intro-media.science-intro-second {
    width: 100%;
    max-width: none;
}

.intro-media.science-intro-secound .intro-media__copy,
.intro-media.science-intro-second .intro-media__copy {
    width: var(--dtx-site-width);
    max-width: var(--dtx-site-max);
    margin-left: auto;
    margin-right: auto;
}

.intro-media.science-intro-second .intro-media__bg-video,
.intro-media.science-intro-secound .intro-media__bg-video {
    width: 114%;
    height: 114%;
    left: -7%;
    top: -7%;
    object-fit: cover;
    transform: scale(.88);

    /* Pale blue video treatment */
    filter:
        grayscale(1)
        sepia(1)
        saturate(1.8)
        hue-rotate(165deg)
        brightness(1.28)
        contrast(.58);

    opacity: .48;
}

.intro-media.science-intro-secound .intro-media__copy,
.intro-media.science-intro-second .intro-media__copy,
.intro-media.science-intro-second.decoy .intro-media__copy {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.intro-media.science-intro .intro-media__copy {
    margin-left: 0;
    margin-right: auto;
    text-align: left;
}

.intro-media.science-intro h2,
.intro-media.science-intro-secound h2,
.intro-media.science-intro-second h2,
.intro-media.science-intro-second.decoy h2,
.intro-media.science-intro .intro-media__text,
.intro-media.science-intro .intro-media__emphasis,
.intro-media.science-intro-secound .intro-media__text,
.intro-media.science-intro-secound .intro-media__emphasis,
.intro-media.science-intro-second .intro-media__text,
.intro-media.science-intro-second .intro-media__emphasis,
.intro-media.science-intro-second.decoy .intro-media__text,
.intro-media.science-intro-second.decoy .intro-media__emphasis {
    margin-left: auto;
    margin-right: auto;
}

.intro-media.science-intro h2,
.intro-media.science-intro .intro-media__text,
.intro-media.science-intro .intro-media__emphasis {
    margin-left: 0;
    margin-right: auto;
}

.intro-media.science-intro h2,
.intro-media.science-intro-secound h2,
.intro-media.science-intro-second h2,
.intro-media.science-intro-second.decoy h2 {
    max-width: 780px;
}

.intro-media.science-intro h2 {
    max-width: 900px;
}

.intro-media.science-intro .intro-media__text,
.intro-media.science-intro .intro-media__emphasis,
.intro-media.science-intro-secound .intro-media__text,
.intro-media.science-intro-secound .intro-media__emphasis,
.intro-media.science-intro-second .intro-media__text,
.intro-media.science-intro-second .intro-media__emphasis,
.intro-media.science-intro-second.decoy .intro-media__text,
.intro-media.science-intro-second.decoy .intro-media__emphasis {
    max-width: 820px;
}

.intro-media.science-intro .intro-media__text,
.intro-media.science-intro .intro-media__emphasis {
    max-width: 940px;
}

.site-header__dropdown a,
.mobile-menu__submenu a {
    display: block;
}

.site-header__menu a sup,
.site-header__dropdown a sup,
.mobile-menu__submenu a sup,
.site-footer__group a sup,
.home-hero__eyebrow sup,
.module-hero__eyebrow sup {
    font-size: 0.55em;
    line-height: 0;
    margin-left: 0.1em;
    position: relative;
    top: -0.58em;
    vertical-align: baseline;
}

.home-hero.contact-hero {
    --hero-zoom: 1.5;
}


/* ==========================================================================
   AUDITED FLUID DESKTOP SYSTEM
   --------------------------------------------------------------------------
   Goal:
   - Keep one desktop composition from 1181px upward.
   - Scale typography, spacing, controls and component geometry smoothly on
     smaller desktop/laptop viewports.
   - Let the existing <=1180px tablet/mobile rules change the layout.
   - Avoid stacked/contradictory component patches.

   Figma/reference canvas remains authoritative:
   --dtx-site-width: min(86.6667vw, 1500px)
   --dtx-nav-width:  min(90vw, 1500px)

   Compact-desktop clamp() values are intentionally based on the 1440px
   Figma reference, so typography, spacing and controls shrink at the same
   rate as the corrected content canvas.
   ========================================================================== */


/* --------------------------------------------------------------------------
   DESKTOP REFERENCE / SHARED FIXES
   -------------------------------------------------------------------------- */
@media (min-width: 1181px) {

    /* All desktop hero copy sits just above the lower hero edge.
       Hero height may vary by page, but vertical copy anchoring stays consistent. */
    .home-hero {
        display: flex;
        align-items: flex-end;
    }

    /* Navigation */
    .site-header__menu-item {
        flex: 0 0 auto;
    }

    .site-header__menu a,
    .site-header__search {
        white-space: nowrap;
    }

    /* Shared typography rhythm */
    h2 {
        line-height: 1.18;
    }

    .intro-media__text,
    .intro-media__emphasis,
    .three-col-list__header p,
    .three-col-list__text p,
    .full-width-video-text__column p,
    .pipeline__intro-text,
    .image-cta__text,
    .team-section__text,
    .team-card p,
    .team-member-single__position,
    .team-member-single__bio {
        line-height: 1.44;
    }

    /* Homepage hero: corrected client-review reference */
    .home .home-hero.homepage-hero {
        min-height: 700px;
        padding-top: 405px;
        padding-bottom: 62px;
    }

    .home .home-hero.homepage-hero h1 {
        line-height: 1.06;
    }

    .home .home-hero.homepage-hero p {
        line-height: 1.18;
        margin-top: -8px;
        margin-bottom: 26px;
    }

    .home .home-hero.homepage-hero .home-hero__pattern {
        display: block;
        left: -28px;
        width: 610px;
        background: rgba(255, 255, 255, .29);
        -webkit-mask-position: left center;
        mask-position: left center;
        -webkit-mask-size: auto 92%;
        mask-size: auto 92%;
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
    }

    /* About and News use the same inner-page desktop hero geometry.
       Contact and other ordinary heroes already inherit .home-hero. */
    .home-hero.about-hero,
    .home-hero.news-hero {
        min-height: 620px;
        padding: 0 24px 70px;
    }

    .home-hero.about-hero h1 {
        font-size: 80px;
        line-height: 1.08;
    }

    .home-hero.news-hero h1 {
        font-size: 72px;
        line-height: 1.08;
    }

    /* Homepage intro */
    .home .intro-media {
        gap: 72px;
        grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
    }

    .home .intro-media__image {
        margin-top: 0;
    }

    .home .intro-media h2 {
        line-height: 1.16;
        margin-bottom: 28px;
    }

    .home .intro-media__emphasis {
        margin-top: 20px;
        margin-bottom: 34px;
    }

    /* Homepage statement / dots */
    .home .statement-banner {
        background:
            linear-gradient(0deg, rgba(17, 155, 242, .06), rgba(17, 155, 242, .06)),
            #0a1f9b;
        min-height: 520px;
        padding-top: 64px;
        padding-bottom: 64px;
    }

    .home .statement-banner__pattern {
        background-position: center;
        background-size: 100% auto;
    }

    .home .statement-banner p {
        line-height: 1.22;
    }

    /* D-MAVS full-width image card:
       replace the old fixed 300px top padding that caused vertical elongation. */
    .section-image-fullwidth-text.image-cta {
        min-height: 0;
        padding: 245px 86px 66px;
        background-position: center 45%;
        background-size: cover;
    }

    .section-image-fullwidth-text .image-cta__inner {
        max-width: 690px;
    }

    .section-image-fullwidth-text h2 {
        line-height: 1.14;
        margin-bottom: 28px;
    }

    .section-image-fullwidth-text .home-button {
        margin-top: 38px;
    }

    /* Homepage Science card uses the same structural class but a different
       composition in the design. */
    .home .section-image-fullwidth-text.image-cta {
        min-height: 600px;
        padding: 210px 110px 90px;
        background-position: center;
    }

    .home .section-image-fullwidth-text .image-cta__inner {
        max-width: 650px;
    }

    .home .section-image-fullwidth-text h2 {
        line-height: 1.16;
        margin-bottom: 36px;
    }

    /* Moving virus treatment */
    .home .pillars__visual::before {
        background: rgba(17, 155, 242, .035);
    }

    .home .pillars__visual video {
        filter:
            grayscale(1)
            sepia(1)
            saturate(2.65)
            hue-rotate(184deg)
            brightness(1.04)
            contrast(.94);
        mix-blend-mode: multiply;
        opacity: .66;
    }

    .home .pillars__visual::after {
        background:
            linear-gradient(180deg, rgba(237, 239, 247, 1) 0%, rgba(237, 239, 247, 0) 18%),
            linear-gradient(180deg, rgba(237, 239, 247, 0) 70%, rgba(237, 239, 247, 1) 100%);
    }

    /* Let's Connect always uses the same desktop canvas as navigation/content. */
    .contact-cta {
        box-sizing: border-box;
        width: var(--dtx-site-width);
        max-width: var(--dtx-site-max);
        margin-left: auto;
        margin-right: auto;
    }
}


/* --------------------------------------------------------------------------
   COMPACT DESKTOP / LAPTOP — 1181px–1439px
   Same layout, proportional scaling only.
   -------------------------------------------------------------------------- */
@media (min-width: 1181px) and (max-width: 1439px) {

    :root {
        --dtx-section-y: clamp(92px, 7.7778vw, 112px);
        --dtx-section-y-compact: clamp(59px, 5vw, 72px);
        --dtx-section-y-large: clamp(103px, 8.75vw, 126px);
        --dtx-module-gap: clamp(90px, 7.6389vw, 110px);

        --dtx-gap-xs: clamp(10px, .8333vw, 12px);
        --dtx-gap-sm: clamp(20px, 1.6667vw, 24px);
        --dtx-gap-md: clamp(26px, 2.2222vw, 32px);
        --dtx-gap-lg: clamp(39px, 3.3333vw, 48px);
        --dtx-gap-xl: clamp(59px, 5vw, 72px);
    }

    /* Header / nav */
    .site-header {
        padding-top: clamp(28px, 2.3611vw, 34px);
    }

    .site-header__inner {
        border-radius: clamp(16px, 1.3889vw, 20px);
        gap: clamp(22px, 1.9444vw, 28px);
        height: clamp(69px, 5.8333vw, 84px);
        padding-left: clamp(20px, 1.6667vw, 24px);
        padding-right: clamp(15px, 1.25vw, 18px);
    }

    .decoytx-logo,
    .site-footer .decoytx-logo {
        width: clamp(189px, 15.9722vw, 230px);
    }

    .site-header__menu {
        gap: clamp(17px, 1.5278vw, 22px);
    }

    .site-header__menu a,
    .site-header__search {
        line-height: clamp(20px, 1.6667vw, 24px);
    }

    .site-header__menu a {
        font-size: clamp(14px, 1.1806vw, 17px);
        gap: clamp(6px, .5556vw, 8px);
    }

    .site-header__search {
        font-size: clamp(14.75px, 1.25vw, 18px);
    }

    .nav-chevron {
        height: clamp(6px, .5556vw, 8px);
        width: clamp(6px, .5556vw, 8px);
    }

    .external-arrow {
        height: clamp(10px, .9028vw, 13px);
        width: clamp(10px, .9028vw, 13px);
    }

    .site-header__search {
        border-radius: clamp(7px, .5556vw, 8px);
        gap: clamp(7px, .625vw, 9px);
        height: clamp(35px, 2.9167vw, 42px);
        padding-inline: clamp(11px, 1.1111vw, 16px);
    }

    .site-header__search span {
        height: clamp(16px, 1.3556vw, 19.52px);
        width: clamp(16px, 1.3556vw, 19.52px);
    }

    /* Shared type / controls */
    h2,
    .logo-strip h2 {
        font-size: clamp(39px, 3.3333vw, 48px);
    }

    .home-button {
        border-radius: clamp(14px, 1.25vw, 18px);
        gap: clamp(14px, 1.25vw, 18px);
        min-height: clamp(44px, 3.75vw, 54px);
        padding-inline: clamp(20px, 1.6667vw, 24px);
    }

    .home-button span:first-child {
        font-size: clamp(19.5px, 1.6667vw, 24px);
        line-height: clamp(20px, 1.6667vw, 24px);
    }

    .home-button__icon {
        height: clamp(19px, 1.5972vw, 23px);
        width: clamp(19px, 1.5972vw, 23px);
    }

    .intro-media__text,
    .intro-media__emphasis,
    .three-col-list__header p,
    .three-col-list__text p,
    .full-width-video-text__column p,
    .pipeline__intro-text,
    .pipeline__program p,
    .pipeline__stage span,
    .pipeline__stage strong,
    .image-cta__text,
    .pillars__item p,
    .contact-cta__eyebrow,
    .contact-block__location h4,
    .contact-block__address,
    .team-section__text,
    .team-card p,
    .team-member-single__position,
    .team-member-single__bio {
        font-size: clamp(16.4px, 1.3889vw, 20px);
    }

    /* --------------------------------------------------------------
       HEROES
       Generic inner-page hero also covers Contact and any hero without
       a special page class.
       -------------------------------------------------------------- */
    .home-hero {
        min-height: clamp(509px, 43.0556vw, 620px);
        padding:
            0
            clamp(20px, 1.6667vw, 24px)
            clamp(57px, 4.8611vw, 70px);
    }

    .home-hero h1,
    .home-hero.about-hero h1 {
        font-size: clamp(65.5px, 5.5556vw, 80px);
        line-height: 1.08;
    }

    .home-hero.news-hero h1 {
        font-size: clamp(59px, 5vw, 72px);
        line-height: 1.08;
    }

    .home-hero .home-hero__eyebrow,
    .home-hero.about-hero .home-hero__eyebrow,
    .home-hero.news-hero .home-hero__eyebrow {
        font-size: clamp(16.4px, 1.3889vw, 20px);
        line-height: 1.44;
        margin-bottom: clamp(10px, .8333vw, 12px);
    }

    .home-hero p {
        font-size: clamp(39px, 3.3333vw, 48px);
        line-height: 1.18;
        margin-bottom: clamp(28px, 2.3611vw, 34px);
    }

    .home-hero .home-button {
        margin-top: clamp(34px, 2.9167vw, 42px);
        min-height: clamp(56px, 4.7222vw, 68px);
        min-width: clamp(251px, 21.25vw, 306px);
    }

    /* About / News exactly follow the generic inner-page hero geometry. */
    .home-hero.about-hero,
    .home-hero.news-hero {
        min-height: clamp(509px, 43.0556vw, 620px);
        padding:
            0
            clamp(20px, 1.6667vw, 24px)
            clamp(57px, 4.8611vw, 70px);
    }

    /* Homepage keeps its intentionally larger composition, scaled as one unit. */
    .home .home-hero.homepage-hero {
        min-height: clamp(574px, 48.6111vw, 700px);
        padding:
            0
            clamp(20px, 1.6667vw, 24px)
            clamp(51px, 4.3056vw, 62px);
    }

    .home .home-hero.homepage-hero h1 {
        font-size: clamp(78.5px, 6.6667vw, 96px);
        line-height: 1.06;
    }

    /* --------------------------------------------------------------
       INTRO / IMAGE + COPY
       -------------------------------------------------------------- */
    .intro-media {
        gap: clamp(39px, 4.5vw, 65px);
        grid-template-columns: minmax(0, 1fr) minmax(295px, 31.9444vw);
        padding:
            var(--dtx-section-y)
            clamp(20px, 1.6667vw, 24px);
    }

    .intro-media__image {
        border-radius: clamp(36px, 3.0556vw, 44px);
        margin-top: clamp(23px, 1.9444vw, 28px);
    }

    .intro-media h2 {
        margin-bottom: clamp(29px, 2.5vw, 36px);
    }

    .intro-media__emphasis {
        margin:
            clamp(21px, 1.8056vw, 26px)
            0
            clamp(36px, 3.0556vw, 44px);
    }

    .intro-media__buttons {
        gap: clamp(15px, 1.25vw, 18px);
        margin-top: clamp(36px, 3.0556vw, 44px);
    }

    .home .intro-media {
        gap: clamp(46px, 4.5vw, 65px);
        grid-template-columns: minmax(0, 1fr) minmax(263px, 27.7778vw);
    }

    /* Science full-width background-video section:
       retain full-width visual, scale its minimum height with desktop. */
    .intro-media.science-intro-secound:has(.intro-media__bg-video),
    .intro-media.science-intro-second:has(.intro-media__bg-video) {
        min-height: clamp(520px, 42vw, 605px);
    }

    /* --------------------------------------------------------------
       D-MAVS / IMAGE CTA
       -------------------------------------------------------------- */
    .section-image-fullwidth-text.image-cta {
        padding:
            clamp(201px, 17.0139vw, 245px)
            clamp(71px, 5.9722vw, 86px)
            clamp(54px, 4.5833vw, 66px);
    }

    .section-image-fullwidth-text .image-cta__inner {
        max-width: clamp(566px, 47.9167vw, 690px);
    }

    .section-image-fullwidth-text h2 {
        font-size: clamp(39px, 3.3333vw, 48px);
        margin-bottom: clamp(23px, 1.9444vw, 28px);
    }

    .section-image-fullwidth-text .home-button {
        margin-top: clamp(31px, 2.6389vw, 38px);
    }

    .home .section-image-fullwidth-text.image-cta {
        min-height: clamp(492px, 41.6667vw, 600px);
        padding:
            clamp(172px, 14.5833vw, 210px)
            clamp(90px, 7.6389vw, 110px)
            clamp(74px, 6.25vw, 90px);
    }

    /* --------------------------------------------------------------
       THREE COLUMN / COMPARISON
       -------------------------------------------------------------- */
    .three-col-list__header {
        margin-bottom: clamp(72px, 7vw, 101px);
    }

    .three-col-list__item {
        padding-inline: clamp(30px, 3vw, 43px);
    }

    .three-col-list__icon {
        height: clamp(46px, 3.8889vw, 56px);
        width: clamp(46px, 3.8889vw, 56px);
        margin-bottom: clamp(44px, 3.75vw, 54px);
    }

    .three-col-list h4 {
        font-size: clamp(26px, 2.2222vw, 32px);
        margin-bottom: clamp(34px, 2.9167vw, 42px);
    }

    .comparison-table h2 {
        margin-bottom: clamp(72px, 7vw, 101px);
    }

    .comparison-table__cell {
        min-height: clamp(79px, 6.6667vw, 96px);
        padding:
            clamp(18px, 1.5278vw, 22px)
            clamp(28px, 4vw, 58px);
    }

    .comparison-table__row--head .comparison-table__cell {
        min-height: clamp(136px, 11.5278vw, 166px);
    }

    .comparison-table__cell p {
        font-size: clamp(14.75px, 1.25vw, 18px);
    }

    .comparison-table__row--head .comparison-table__cell p {
        font-size: clamp(16.4px, 1.3889vw, 20px);
    }

    /* --------------------------------------------------------------
       FULL-WIDTH VIDEO
       -------------------------------------------------------------- */
    .full-width-video-text {
        min-height: clamp(509px, 43.5vw, 626px);
        padding:
            clamp(160px, 19vw, 274px)
            clamp(20px, 1.6667vw, 24px)
            clamp(102px, 8.6111vw, 124px);
    }

    .full-width-video-text__columns {
        gap: clamp(48px, 6vw, 86px);
        padding-bottom: clamp(44px, 3.75vw, 54px);
    }

    /* --------------------------------------------------------------
       PIPELINE
       Pipeline has its own laptop breakpoints below. At ~1200–1300px the
       proportional site canvas is too narrow for a readable four-column card,
       so we intentionally change only this component before the tablet breakpoint.
       -------------------------------------------------------------- */

    /* --------------------------------------------------------------
       STATS / TEXT ROW / STATEMENT
       -------------------------------------------------------------- */
    .stat-block {
        min-height: clamp(399px, 33.8194vw, 487px);
        padding:
            clamp(39px, 3.3333vw, 48px)
            clamp(20px, 1.6667vw, 24px);
    }

    .stat-block__card {
        border-radius: clamp(39px, 3.3333vw, 48px);
        padding:
            clamp(59px, 5vw, 72px)
            clamp(79px, 6.6667vw, 96px);
    }

    .stat-block__value {
        font-size: clamp(78px, 6.6667vw, 96px);
    }

    .stat-block__text p,
    .text-row__text {
        font-size: clamp(23px, 1.9444vw, 28px);
    }

    .statement-banner {
        border-radius: clamp(39px, 3.3333vw, 48px);
        gap: clamp(100px, 11.1111vw, 160px);
        min-height: clamp(486px, 41.1111vw, 592px);
        margin-bottom: clamp(98px, 8.3333vw, 120px);
        padding: clamp(66px, 5.5556vw, 80px);
    }

    .statement-banner p {
        font-size: clamp(32.8px, 2.7778vw, 40px);
        line-height: 1.22;
    }

    /* --------------------------------------------------------------
       LOGO STRIP
       -------------------------------------------------------------- */
    .logo-strip {
        margin-bottom: clamp(103px, 8.75vw, 126px);
    }

    .logo-strip h2 {
        margin-bottom: clamp(100px, 9vw, 130px);
    }

    .logo-strip__track {
        gap: clamp(59px, 6vw, 86px);
        padding-right: clamp(59px, 6vw, 86px);
    }

    .logo-strip__item {
        flex-basis: clamp(246px, 20.8333vw, 300px);
        height: clamp(98px, 8.3333vw, 120px);
        min-height: clamp(98px, 8.3333vw, 120px);
    }

    /* --------------------------------------------------------------
       GENERIC IMAGE CTA
       -------------------------------------------------------------- */
    .image-cta:not(.section-image-fullwidth-text) {
        border-radius: clamp(34px, 2.9167vw, 42px);
        min-height: clamp(492px, 41.6667vw, 600px);
        margin-bottom: clamp(90px, 7.6389vw, 110px);
        padding:
            clamp(172px, 14.5833vw, 210px)
            clamp(90px, 7.6389vw, 110px)
            clamp(74px, 6.25vw, 90px);
    }

    .image-cta h2 {
        margin-bottom: clamp(45px, 3.8194vw, 55px);
    }

    .image-cta .home-button {
        margin-top: clamp(47px, 4.0278vw, 58px);
    }

    /* --------------------------------------------------------------
       PILLARS
       -------------------------------------------------------------- */
    .pillars__visual {
        height: clamp(623px, 52.7778vw, 760px);
    }

    .pillars__content {
        margin-top: clamp(-155px, -10.7639vw, -127px);
        padding-inline: clamp(28px, 7vw, 101px);
    }

    .pillars h2 {
        margin-bottom: clamp(64px, 5.4167vw, 78px);
    }

    .pillars__item {
        column-gap: clamp(23px, 1.9444vw, 28px);
        grid-template-columns:
            clamp(57px, 4.8611vw, 70px)
            minmax(clamp(230px, 19.4444vw, 280px), 1fr)
            minmax(clamp(295px, 25vw, 360px), 1.35fr);
        padding-block: clamp(20px, 1.7361vw, 25px);
    }

    .pillars__item span {
        font-size: clamp(39px, 3.3333vw, 48px);
    }

    .pillars__item h5 {
        font-size: clamp(23px, 1.9444vw, 28px);
    }

    /* --------------------------------------------------------------
       NEWS CARDS / POSTS INDEX
       -------------------------------------------------------------- */
    .news-cards > h3 {
        font-size: clamp(32.8px, 2.7778vw, 40px);
        margin-bottom: clamp(34px, 2.9167vw, 42px);
    }

    .news-cards__grid {
        gap: clamp(24px, 2.0833vw, 30px);
    }

    .news-card {
        padding:
            0
            clamp(18px, 1.5278vw, 22px)
            clamp(23px, 1.9444vw, 28px);
    }

    .posts-index__card {
        padding-top: clamp(23px, 1.9444vw, 28px);
    }

    .posts-index__filters {
        gap: clamp(40px, 4.0278vw, 58px);
        margin-bottom: clamp(46px, 3.8889vw, 56px);
    }

    .posts-index__filter,
    .posts-index__clear {
        font-size: clamp(14.75px, 1.25vw, 18px);
    }

    .posts-index__filter select {
        font-size: clamp(13px, 1.1111vw, 16px);
        height: clamp(35px, 2.9167vw, 42px);
    }

    .posts-index .news-card h2,
    .posts-index__empty,
    .posts-index__end {
        font-size: clamp(16.4px, 1.3889vw, 20px);
    }

    .posts-index__load-more,
    .posts-index__end--visible {
        margin-top: clamp(47px, 4.0278vw, 58px);
    }

    /* --------------------------------------------------------------
       ABOUT TEAM LISTING
       -------------------------------------------------------------- */
    .team-section {
        padding:
            var(--dtx-section-y)
            clamp(20px, 1.6667vw, 24px)
            var(--dtx-section-y-large);
    }

    .team-section__intro {
        gap: clamp(48px, 6vw, 86px);
        grid-template-columns:
            minmax(0, 1fr)
            minmax(clamp(295px, 25vw, 360px), clamp(459px, 38.8889vw, 560px));
        margin-bottom: clamp(88px, 7.5vw, 108px);
    }

    .team-group + .team-group {
        margin-top: clamp(108px, 9.1667vw, 132px);
    }

    .team-group > h3 {
        font-size: clamp(39px, 3.3333vw, 48px);
        line-height: 1.18;
        margin-bottom: clamp(47px, 4.0278vw, 58px);
    }

    .team-group__grid {
        gap:
            clamp(70px, 5.9722vw, 86px)
            clamp(58px, 6vw, 86px);
    }

    .team-card {
        gap: clamp(23px, 1.9444vw, 28px);
        grid-template-columns:
            clamp(200px, 16.9444vw, 244px)
            minmax(0, 1fr);
        min-width: 0;
    }

    .team-card__image {
        border-radius: clamp(7px, .5556vw, 8px);
    }

    .team-card h4 {
        font-size: clamp(23px, 1.9444vw, 28px);
        line-height: 1.22;
        margin-bottom: clamp(18px, 1.5278vw, 22px);
    }

    .team-card p {
        margin-bottom: clamp(47px, 4.0278vw, 58px);
    }

    .team-card__link {
        border-radius: clamp(10px, .8333vw, 12px);
        font-size: clamp(14.75px, 1.25vw, 18px);
        gap: clamp(13px, 1.1111vw, 16px);
        line-height: 1;
        min-height: clamp(44px, 3.75vw, 54px);
        min-width: clamp(154px, 13.0556vw, 188px);
        padding-inline: clamp(23px, 1.9444vw, 28px);
    }

    .team-card__link .home-button__icon {
        height: clamp(15px, 1.25vw, 18px);
        width: clamp(15px, 1.25vw, 18px);
    }

    /* --------------------------------------------------------------
       SINGLE TEAM MEMBER
       -------------------------------------------------------------- */
    .team-member-single__inner {
        padding:
            clamp(213px, 18.0556vw, 260px)
            clamp(20px, 1.6667vw, 24px)
            clamp(234px, 19.7917vw, 285px);
    }

    .team-member-single__back {
        font-size: clamp(19.5px, 1.6667vw, 24px);
        gap: clamp(15px, 1.25vw, 18px);
        line-height: 1;
        margin-bottom: clamp(105px, 8.8889vw, 128px);
    }

    .team-member-single__back span {
        height: clamp(18px, 1.5278vw, 22px);
        width: clamp(28px, 2.3611vw, 34px);
    }

    .team-member-single__grid {
        gap: clamp(46px, 5vw, 72px);
        grid-template-columns:
            clamp(352px, 29.8611vw, 430px)
            minmax(0, clamp(459px, 50vw, 720px));
    }

    .team-member-single__photo {
        border-radius:
            0
            clamp(39px, 3.3333vw, 48px)
            0
            clamp(39px, 3.3333vw, 48px);
    }

    .team-member-single__content {
        min-width: 0;
    }

    .team-member-single__content h1 {
        font-size: clamp(32.8px, 2.7778vw, 40px);
        line-height: 1.18;
        margin-bottom: clamp(8px, .6944vw, 10px);
    }

    .team-member-single__position {
        margin-bottom: clamp(38px, 3.1944vw, 46px);
    }

    .team-member-single__bio p {
        margin-bottom: clamp(23px, 1.9444vw, 28px);
    }

    /* --------------------------------------------------------------
       CONTACT FORM / LET'S CONNECT
       -------------------------------------------------------------- */
    .contact-block__intro,
    .contact-block h2 {
        font-size: clamp(32.8px, 2.7778vw, 40px);
        margin-bottom: clamp(72px, 6.1111vw, 88px);
    }

    .contact-block--has-heading .contact-block__form {
        padding-top: calc(clamp(43.3px, 3.6667vw, 52.8px) + clamp(72px, 6.1111vw, 88px));
    }

    .contact-block__inner {
        gap: clamp(42px, 4.5vw, 65px);
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    }

    .contact-block__locations h3 {
        font-size: clamp(26px, 2.2222vw, 32px);
        margin-bottom: clamp(51px, 4.3056vw, 62px);
    }

    .contact-block__location-list {
        gap: clamp(46px, 3.8889vw, 56px);
    }

    .contact-block__linkedin {
        margin-top: clamp(82px, 6.9444vw, 100px);
    }

    .contact-block__info,
    .contact-block__form,
    .contact-block .wpcf7,
    .contact-block .wpcf7-form,
    .contact-block .wpcf7-form-control-wrap {
        min-width: 0;
    }

    .contact-block input[type="text"],
    .contact-block input[type="email"],
    .contact-block input[type="tel"],
    .contact-block select,
    .contact-block textarea {
        box-sizing: border-box;
        max-width: 100%;
        min-width: 0;
        width: 100%;
    }

    .contact-cta {
        border-radius: clamp(20px, 1.6667vw, 24px);
        margin-bottom: clamp(90px, 7.6389vw, 110px);
        padding:
            clamp(67px, 5.6944vw, 82px)
            clamp(57px, 4.8611vw, 70px);
    }

    .contact-cta__eyebrow {
        margin-bottom: clamp(18px, 1.5278vw, 22px);
    }

    .contact-cta h2 {
        font-size: clamp(36px, 3.0556vw, 44px);
        margin-bottom: clamp(28px, 2.3611vw, 34px);
        max-width: clamp(623px, 52.7778vw, 760px);
    }

    /* --------------------------------------------------------------
       SYSTEM / SEARCH / 404
       -------------------------------------------------------------- */
    .system-page {
        padding-top: clamp(180px, 15.2778vw, 220px);
        padding-bottom: var(--dtx-module-gap);
    }

    .system-page__header {
        margin-bottom: clamp(52px, 4.4444vw, 64px);
        max-width: clamp(902px, 76.3889vw, 1100px);
    }

    .system-page__eyebrow {
        font-size: clamp(16.4px, 1.3889vw, 20px);
        margin-bottom: clamp(15px, 1.25vw, 18px);
    }

    .system-page h1 {
        font-size: clamp(65.5px, 5.5556vw, 80px);
    }

    .system-page__lead {
        font-size: clamp(19.5px, 1.6667vw, 24px);
        margin-top: clamp(23px, 1.9444vw, 28px);
        max-width: clamp(623px, 52.7778vw, 760px);
    }

    .system-page__actions {
        gap: clamp(16px, 1.3889vw, 20px);
        margin-top: clamp(36px, 3.0556vw, 44px);
    }

    /* --------------------------------------------------------------
       FOOTER
       -------------------------------------------------------------- */
    .site-footer__inner {
        gap: clamp(51px, 4.3056vw, 62px);
        padding-bottom: clamp(45px, 3.8194vw, 55px);
    }

    .site-footer__social,
    .site-footer__social img {
        height: clamp(39px, 3.3333vw, 48px);
        width: clamp(39px, 3.3333vw, 48px);
    }

    .site-footer__nav {
        gap: clamp(28px, 2.5vw, 36px);
    }

    .site-footer__group h2 {
        font-size: clamp(16.4px, 1.3889vw, 20px);
        margin-bottom: clamp(23px, 1.9444vw, 28px);
    }

    .site-footer__group a,
    .site-footer__bottom a,
    .site-footer__bottom p {
        font-size: clamp(14.75px, 1.25vw, 18px);
    }
}


/* ==========================================================================
   PIPELINE — LAPTOP RESPONSIVE SYSTEM
   --------------------------------------------------------------------------
   The standard desktop card has four horizontal zones. On the proportional
   site canvas that composition stops being readable around 1200–1300px even
   though the page is technically still in the desktop range.

   1401–1439px: keep the Figma-like four-column composition, scaled down.
   1181–1320px: switch only the pipeline card to a roomy two-column composition
   with the CTA on its own row. This prevents squeezed labels, progress phases
   and CTA collisions while the rest of the page remains desktop.
   ========================================================================== */

/* Upper laptop range — four-column desktop composition */
@media (min-width: 1401px) and (max-width: 1439px) {
    .pipeline__table {
        --pipeline-left-size: 25%;
        --pipeline-stage-size: 12%;
        --pipeline-action-size: 21%;
        --pipeline-card-padding: clamp(28px, 2.4vw, 34px);
        --pipeline-phase-start: calc(var(--pipeline-left-size) + var(--pipeline-stage-size));

        --pipeline-left: minmax(225px, var(--pipeline-left-size));
        --pipeline-stage: minmax(112px, var(--pipeline-stage-size));
        --pipeline-action: minmax(205px, var(--pipeline-action-size));
    }

    .pipeline__card {
        grid-template-columns:
            var(--pipeline-left)
            var(--pipeline-stage)
            minmax(0, 1fr)
            var(--pipeline-action);
        min-height: clamp(230px, 18.4722vw, 266px);
    }

    .pipeline__program,
    .pipeline__stage {
        padding-left: var(--pipeline-card-padding);
    }

    .pipeline__program h3 {
        font-size: clamp(34px, 2.7778vw, 40px);
        line-height: 1.18;
    }

    .pipeline__program p,
    .pipeline__stage span,
    .pipeline__stage strong {
        font-size: clamp(16px, 1.32vw, 19px);
    }

    .pipeline__phase-head {
        font-size: clamp(15px, 1.25vw, 18px);
        margin-left: var(--pipeline-phase-start);
        padding-right: var(--pipeline-action-size);
    }

    .pipeline__progress {
        height: clamp(26px, 2.1vw, 30px);
        margin-inline: clamp(12px, 1.1vw, 16px);
        min-width: 0;
    }

    .pipeline__action {
        box-sizing: border-box;
        justify-self: stretch;
        padding-left: clamp(10px, .9vw, 13px);
        padding-right: clamp(16px, 1.35vw, 20px);
    }

    .pipeline__button {
        box-sizing: border-box;
        font-size: clamp(15px, 1.2vw, 17px);
        gap: clamp(8px, .7vw, 10px);
        justify-content: center;
        max-width: 100%;
        min-height: clamp(42px, 3.3vw, 48px);
        padding-inline: clamp(12px, 1vw, 15px);
        width: 100%;
    }

    .pipeline__button span:first-child {
        font-size: inherit;
        line-height: 1;
        white-space: nowrap;
    }

    .pipeline__button .home-button__icon {
        flex: 0 0 auto;
        height: clamp(16px, 1.3vw, 18px);
        width: clamp(16px, 1.3vw, 18px);
    }
}


/* Lower laptop range — preserve hierarchy without squeezing the four columns */
@media (min-width: 1181px) and (max-width: 1400px) {
    .pipeline__intro {
        gap: clamp(32px, 3vw, 40px);
        grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
        margin-bottom: clamp(48px, 4vw, 56px);
    }

    .pipeline__intro h2 {
        font-size: clamp(38px, 3.3333vw, 44px);
        line-height: 1.18;
    }

    .pipeline__intro-text {
        font-size: clamp(16px, 1.45vw, 18px);
        line-height: 1.48;
    }

    .pipeline__table::before {
        display: none;
    }

    .pipeline__phase-head {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));

        font-size: clamp(13px, 1.05vw, 14px);
        letter-spacing: 0;
        line-height: 1.2;

        /*
        * Align phase labels with the progress column.
        * First column of the card is the stage/status area,
        * second column contains the progress pillar.
        */
        margin-left: calc(36% + clamp(18px, 1.8vw, 24px));
        margin-right: clamp(34px, 3vw, 42px);

        padding: 0;
        text-align: center;

        /*
        * The labels visually belong to the first card.
        * Keep them just above its progress bar instead of
        * floating high in the empty area.
        */
        transform: translateY(clamp(195px, 16.2vw, 208px));

        position: relative;
        z-index: 5;
    }

    .pipeline__phase-head > * {
        min-width: 0;
        text-align: center;
        white-space: nowrap;
    }

    .pipeline__cards {
        gap: clamp(24px, 2.2vw, 30px);
    }

    .pipeline__card {
        align-items: start;
        border-radius: clamp(22px, 2vw, 26px);
        column-gap: clamp(28px, 2.6vw, 36px);
        grid-template-columns: minmax(170px, .72fr) minmax(0, 1.28fr);
        grid-template-rows: auto auto auto auto;
        min-height: 0;
        padding:
            clamp(32px, 2.8vw, 38px)
            clamp(34px, 3vw, 42px)
            clamp(30px, 2.6vw, 36px);
        row-gap: 0;
    }

    .pipeline__card::before {
        content: none;
    }

    .pipeline__program {
        grid-column: 1 / -1;
        grid-row: 1;
        min-width: 0;
        padding: 0;
    }

    .pipeline__program h3 {
        font-size: clamp(29px, 2.55vw, 34px);
        line-height: 1.18;
        margin: 0;
    }

    .pipeline__program p {
        font-size: clamp(15px, 1.35vw, 17px);
        line-height: 1.45;
        margin-top: 7px;
    }

    .pipeline__stage {
        display: contents;
        padding: 0;
    }

    .pipeline__stage span {
        grid-column: 1 / -1;
        grid-row: 2;
        font-size: clamp(15px, 1.35vw, 17px);
        line-height: 1.4;
        margin: clamp(22px, 2vw, 26px) 0 clamp(18px, 1.6vw, 21px);
    }

    .pipeline__stage strong {
        align-self: center;
        grid-column: 1;
        grid-row: 3;
        font-size: clamp(14px, 1.25vw, 16px);
        line-height: 1.4;
        min-width: 0;
        padding-top: 8px;
    }

    .pipeline__progress {
        align-self: end;
        grid-column: 2;
        grid-row: 3;
        height: clamp(21px, 1.8vw, 24px);
        margin: 0;
        min-width: 0;
        overflow: visible;
        position: relative;
    }

    /* Phase labels come from .pipeline__phase-head above. */
    .pipeline__progress::before {
        content: none;
    }

    .pipeline__progress::after {
        background-image:
            linear-gradient(
                rgba(129, 141, 205, .32),
                rgba(129, 141, 205, .32)
            ),
            linear-gradient(
                rgba(129, 141, 205, .32),
                rgba(129, 141, 205, .32)
            ),
            linear-gradient(
                rgba(129, 141, 205, .32),
                rgba(129, 141, 205, .32)
            );

        background-repeat: no-repeat;

        background-position:
            25% 0,
            50% 0,
            75% 0;

        background-size:
            1px 100%,
            1px 100%,
            1px 100%;

        border-radius: inherit;
        content: "";
        inset: 0;
        pointer-events: none;
        position: absolute;
        z-index: 2;
    }

    .pipeline__progress > span {
        overflow: hidden;
    }

    .pipeline__action {
        grid-column: 1 / -1;
        grid-row: 4;
        justify-self: start;
        margin-top: clamp(27px, 2.4vw, 32px);
        padding: 0;
    }

    .pipeline__button {
        font-size: clamp(15px, 1.3vw, 17px);
        gap: 10px;
        min-height: clamp(44px, 3.8vw, 50px);
        padding-inline: clamp(18px, 1.7vw, 22px);
        width: auto;
    }

    .pipeline__button span:first-child {
        font-size: inherit;
        line-height: 1;
        white-space: nowrap;
    }

    .pipeline__button .home-button__icon {
        height: clamp(17px, 1.4vw, 19px);
        width: clamp(17px, 1.4vw, 19px);
    }
}

/* ==========================================================================
   HOMEPAGE HERO — explicit section-home-hero scaling
   The homepage markup uses:
   .home-hero.section-home-hero.homepage-hero

   Target the actual section class directly so its larger legacy homepage
   geometry cannot make it feel "zoomed" on compact desktop widths.
   ========================================================================== */

@media (min-width: 1440px) {
    .home-hero.section-home-hero.homepage-hero {
        min-height: 660px;
        padding: 0 24px 58px;
    }

    .home-hero.section-home-hero.homepage-hero h1 {
        font-size: 88px;
        line-height: 1.06;
    }

    .home-hero.section-home-hero.homepage-hero p {
        font-size: 44px;
        line-height: 1.16;
        margin-top: -6px;
        margin-bottom: 24px;
    }
}

@media (min-width: 1181px) and (max-width: 1439px) {
    .home-hero.section-home-hero.homepage-hero {
        min-height: clamp(541px, 45.8333vw, 660px);
        padding:
            0
            clamp(20px, 1.6667vw, 24px)
            clamp(48px, 4.0278vw, 58px);
    }

    .home-hero.section-home-hero.homepage-hero h1 {
        font-size: clamp(72px, 6.1111vw, 88px);
        line-height: 1.06;
    }

    .home-hero.section-home-hero.homepage-hero p {
        font-size: clamp(36px, 3.0556vw, 44px);
        line-height: 1.16;
        margin-top: clamp(-6px, -.4167vw, -5px);
        margin-bottom: clamp(20px, 1.6667vw, 24px);
    }

    .home-hero.section-home-hero.homepage-hero .home-button {
        margin-top: clamp(28px, 2.5vw, 36px);
        min-height: clamp(50px, 4.1667vw, 60px);
        min-width: clamp(220px, 18.75vw, 270px);
    }

    .home-hero.section-home-hero.homepage-hero .home-button span:first-child {
        font-size: clamp(17px, 1.4583vw, 21px);
        line-height: 1;
    }

    .home-hero.section-home-hero.homepage-hero .home-button__icon {
        height: clamp(17px, 1.4583vw, 21px);
        width: clamp(17px, 1.4583vw, 21px);
    }

    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        left: clamp(-28px, -1.65vw, -20px);
        width: clamp(500px, 42.3611vw, 610px);
    }
}

/* ==========================================================================
   HOMEPAGE HERO — bubble D visibility
   Client feedback: the circle/emblem mask is too faint on staging compared
   with the Figma reference. Keep the same mask/position and increase only the
   visible white fill + overall presence.
   ========================================================================== */
@media (min-width: 1181px) {
    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        display: block;
        background: rgba(255, 255, 255, .48);
        opacity: 1;
        -webkit-mask-position: left center;
        mask-position: left center;
        -webkit-mask-size: auto 94%;
        mask-size: auto 94%;
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
    }
}

@media (min-width: 1181px) and (max-width: 1439px) {
    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        background: rgba(255, 255, 255, .44);
    }
}


/* ==========================================================================
   HOMEPAGE HERO — bubble D final visibility/position refinement
   Move the mask further left and strengthen it to better match Figma.
   ========================================================================== */
@media (min-width: 1440px) {
    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        left: -58px;
        background: rgba(255, 255, 255, .62);
        opacity: 1;
    }
}

@media (min-width: 1181px) and (max-width: 1439px) {
    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        left: clamp(-58px, -4vw, -46px);
        background: rgba(255, 255, 255, .58);
        opacity: 1;
    }
}


/* ==========================================================================
   HOMEPAGE HERO — bubble D position correction
   Previous refinement moved it left; move it right instead so more of the
   masked circles are visible inside the hero canvas.
   ========================================================================== */
@media (min-width: 1440px) {
    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        left: 10px;
    }
}

@media (min-width: 1181px) and (max-width: 1439px) {
    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        left: clamp(-4px, .6944vw, 10px);
    }
}


/* ==========================================================================
   HOMEPAGE HERO — bubble D full-mask geometry
   The mask is anchored to the hero's left edge and sized to fit completely
   inside the hero instead of being positioned with arbitrary negative/positive
   offsets. This keeps the full D visible consistently across desktop widths.
   ========================================================================== */
@media (min-width: 1181px) {
    .home-hero.section-home-hero.homepage-hero .home-hero__pattern {
        left: 0;
        top: 0;
        bottom: 0;
        height: 100%;
        width: min(42.5vw, 612px);

        background: rgba(255, 255, 255, .62);
        opacity: 1;

        -webkit-mask-position: left center;
        mask-position: left center;

        -webkit-mask-size: contain;
        mask-size: contain;

        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
    }
}

/* Homepage only — flip + zoom Image CTA artwork */
.home .section-image-fullwidth-text.homepage-image-cta {
    background: none;
    overflow: hidden;
    isolation: isolate;
}

.home .section-image-fullwidth-text.homepage-image-cta::before {
    content: "";
    position: absolute;
    inset: -7%;
    z-index: 0;
    pointer-events: none;

    background:
        var(--image-cta-bg, linear-gradient(135deg, #7e91cc, #2237b2))
        center 55% / cover no-repeat;

    /* flip + zoom + move artwork to the right */
    transform: translateX(14%) scaleX(-1) scale(1.22);
    transform-origin: center;
}

.home .section-image-fullwidth-text.homepage-image-cta::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;

    /* Keep existing blue overlay */
    background: rgba(10, 31, 155, .75);
}

.home .section-image-fullwidth-text.homepage-image-cta .image-cta__inner {
    position: relative;
    z-index: 2;
}

/* D-MAVs – Three Column List
   Keep column titles on one line across desktop widths. */
@media (min-width: 1181px) {
    .three-col-list h4 {
        white-space: nowrap;
    }
}

@media (min-width: 1181px) and (max-width: 1439px) {
    .three-col-list__item {
        padding-inline: clamp(18px, 1.6667vw, 24px);
    }

    .three-col-list h4 {
        font-size: clamp(25px, 2.0833vw, 30px);
    }
}

/* ==========================================================================
   FIGMA 1440 DESKTOP SCALE — FINAL CANVAS SAFEGUARD
   --------------------------------------------------------------------------
   Reference:
   - Figma frame: 1440px
   - Standard content: 1248px = 86.6667vw
   - Navigation: 1296px = 90vw

   This final rule intentionally only controls horizontal desktop canvas
   geometry. Existing 1181–1439 clamp() typography/spacing rules remain the
   source of truth for proportional compact-desktop scaling, and existing
   <=1180px tablet/mobile layouts are untouched.
   ========================================================================== */
@media (min-width: 1181px) {
    .site-header__inner,
    .site-header__search-panel {
        width: var(--dtx-nav-width);
        max-width: var(--dtx-nav-max);
    }
}

/* ==========================================================================
   NEWS HERO — long-title desktop safety
   --------------------------------------------------------------------------
   News titles are dynamic and can be much taller than ordinary inner-page
   hero headings. Keep the copy bottom-anchored like the rest of the site,
   but give this hero enough vertical room that the eyebrow/title never runs
   underneath the fixed navigation on laptop/desktop widths.
   ========================================================================== */
@media (min-width: 1440px) {
    .home-hero.news-hero {
        min-height: 760px;
        padding-bottom: 70px;
    }
}

@media (min-width: 1181px) and (max-width: 1439px) {
    .home-hero.news-hero {
        min-height: clamp(700px, 52.7778vw, 760px);
        padding-bottom: clamp(57px, 4.8611vw, 70px);
    }
}

/* ==========================================================================
   INVESTORS NAV — NESTED DROPDOWNS
   ========================================================================== */
.site-header__dropdown {
    min-width: 230px;
}

.site-header__dropdown-item {
    position: relative;
}

.site-header__dropdown-item > a {
    align-items: center;
    gap: 12px;
    justify-content: space-between;
    white-space: nowrap;
}

.site-header__dropdown-chevron {
    flex: 0 0 auto;
    height: 6px;
    margin: 0 2px 0 12px;
    transform: rotate(-45deg);
    width: 6px;
}

.site-header__subdropdown {
    background: #eef1fb;
    border-radius: 7px;
    box-shadow: 0 16px 28px rgba(10, 20, 80, .18);
    left: calc(100% + 8px);
    list-style: none;
    margin: 0;
    min-width: 230px;
    opacity: 0;
    padding: 15px 12px;
    pointer-events: none;
    position: absolute;
    top: -15px;
    transform: translateX(-4px);
    transition: opacity .18s ease, transform .18s ease;
    z-index: 4;
}

.site-header__dropdown-item.has-subdropdown::after {
    content: "";
    bottom: 0;
    left: 100%;
    position: absolute;
    top: 0;
    width: 10px;
}

.site-header__dropdown-item:hover > .site-header__subdropdown,
.site-header__dropdown-item:focus-within > .site-header__subdropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}

.site-header__subdropdown a {
    color: #4b5166;
    display: flex;
    font-size: 14px;
    padding: 8px 0;
    white-space: nowrap;
}

@media (max-width: 1180px) {
    .mobile-menu__submenu-group > a {
        font-weight: 600;
    }

    .mobile-menu__subsubmenu {
        display: grid;
        gap: 12px;
        list-style: none;
        margin: 12px 0 4px;
        padding: 0 0 0 16px;
    }

    .mobile-menu__subsubmenu a {
        font-size: 12px;
        font-weight: 500;
        opacity: .82;
    }
}

/* ==========================================================================
   IMAGE CTA — FIGMA HEIGHT / CROP CORRECTION
   --------------------------------------------------------------------------
   Figma desktop reference for the large image CTA is 1248 x 657 with 80px
   internal spacing. The older implementation used large top padding to push
   the copy downward, which made the card feel taller on narrower screens.
   Anchor the content to the bottom instead and let the card scale as one unit.
   ========================================================================== */

/* Desktop / compact desktop */
@media (min-width: 1181px) {
    .section-image-fullwidth-text.image-cta {
        display: flex;
        align-items: flex-end;
        box-sizing: border-box;

        min-height: clamp(539px, 45.625vw, 657px);

        padding:
            clamp(66px, 5.5556vw, 80px)
            clamp(66px, 5.5556vw, 80px);

        background-position: center;
        background-size: cover;
    }

    .home .section-image-fullwidth-text.homepage-image-cta {
        min-height: clamp(539px, 45.625vw, 657px);
        padding:
            clamp(66px, 5.5556vw, 80px)
            clamp(66px, 5.5556vw, 80px);
    }

    .section-image-fullwidth-text .image-cta__inner,
    .home .section-image-fullwidth-text .image-cta__inner {
        max-width: clamp(594px, 50.2083vw, 723px);
    }
}

/* Landscape tablet / small laptop */
@media (min-width: 768px) and (max-width: 1180px) {
    .section-image-fullwidth-text.image-cta,
    .home .section-image-fullwidth-text.homepage-image-cta {
        display: flex;
        align-items: flex-end;
        box-sizing: border-box;

        min-height: clamp(500px, 45.625vw, 539px);
        padding:
            clamp(48px, 5.5556vw, 66px)
            clamp(42px, 5.5556vw, 66px);
    }
}

/* Mobile / portrait tablet */
@media (max-width: 767px) {
    .section-image-fullwidth-text.image-cta,
    .home .section-image-fullwidth-text.homepage-image-cta {
        display: flex;
        align-items: flex-end;
        box-sizing: border-box;

        min-height: clamp(500px, 130vw, 560px);
        padding: 48px 25px 36px;
    }
}


/* Homepage person-jumping artwork:
   stronger crop than the previous scale(1.22), while keeping the approved flip. */
.home .section-image-fullwidth-text.homepage-image-cta::before {
    inset: -3%;

    background:
        var(--image-cta-bg, linear-gradient(135deg, #7e91cc, #2237b2))
        center 90% / cover no-repeat;

    transform: translateX(16%) scaleX(-1) scale(1.45);
    transform-origin: center;
}

@media (max-width: 767px) {
    .home .section-image-fullwidth-text.homepage-image-cta::before {
        background-position: 62% center;
        transform:
            translateX(5%)
            translateY(-30%)
            scaleX(-1)
            scale(2);
    }
}

/* ==========================================================================
   HERO COPY ↔ HEADER LOGO HORIZONTAL ALIGNMENT
   --------------------------------------------------------------------------
   The hero copy must start on the exact same vertical axis as the logo in
   the fixed navigation. Previously the hero used the 1248/content canvas
   while the header used the wider navigation canvas. Once either canvas hit
   its max-width cap, their left edges drifted apart on some desktop widths.

   Use the navigation canvas for the hero wrapper as well, then reproduce the
   header's left inner padding. This changes only the horizontal anchor of the
   hero copy; hero artwork, height, typography and vertical positioning stay
   untouched.
   ========================================================================== */

/* Standard + compact desktop */
@media (min-width: 1181px) {
    .home-hero__inner,
    .home-hero.science-hero .home-hero__inner {
        box-sizing: border-box;
        width: var(--dtx-nav-width);
        max-width: var(--dtx-nav-max);
        margin-left: auto;
        margin-right: auto;
        padding-right: 0;
        padding-left: 24px;
    }
}

/* Match the header's proportionally scaled left padding on laptop desktop. */
@media (min-width: 1181px) and (max-width: 1439px) {
    .home-hero__inner,
    .home-hero.science-hero .home-hero__inner {
        padding-left: clamp(20px, 1.6667vw, 24px);
    }
}

/* Tablet / compact desktop:
   header left edge = 5vw outer gutter + 20px inner padding. */
@media (min-width: 768px) and (max-width: 1180px) {
    .home-hero__inner,
    .home-hero.science-hero .home-hero__inner {
        box-sizing: border-box;
        width: calc(90vw - 40px);
        max-width: none;
        margin-left: calc(5vw + 20px);
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
    }
}

@media (min-width: 601px) and (max-width: 767px) {
    .pipeline__progress::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='xMidYMid meet'%3E%3Cg fill='rgb(56,58,66)' font-family='Geist,Arial,sans-serif' font-size='13' font-weight='400' text-anchor='middle'%3E%3Ctext x='50' y='14'%3EDiscovery%3C/text%3E%3Ctext x='150' y='14'%3EPreclinical%3C/text%3E%3Ctext x='250' y='14'%3EPhase 1%3C/text%3E%3Ctext x='350' y='14'%3EPhase 2%3C/text%3E%3C/g%3E%3C/svg%3E");

        background-position: center bottom;
        background-repeat: no-repeat;
        background-size: 100% auto;

        height: 20px;
        left: 0;
        top: -25px;
        width: 100%;
    }
}

/* Mobile + tablet menu — match desktop navigation color */
@media (max-width: 1180px) {
    .mobile-menu__panel {
        background: rgba(10, 31, 155, .80);
    }

    .mobile-menu__search {
        background: rgba(237, 239, 247, .16);
    }
}

/* ==========================================================================
   MOBILE / TABLET PARENT LINKS + SUBMENU TOGGLE
   --------------------------------------------------------------------------
   Parent labels remain real navigation links, while the chevron button has
   the separate job of opening/closing the child submenu.
   ========================================================================== */
@media (max-width: 1180px) {
    .mobile-menu__parent {
        align-items: center;
        display: flex;
        justify-content: space-between;
        width: 100%;
    }

    .mobile-menu__parent-link {
        align-items: center;
        display: inline-flex;
        flex: 1 1 auto;
        min-width: 0;
        text-decoration: none;
    }

    .mobile-menu__parent .mobile-menu__item-toggle {
        align-items: center;
        background: transparent;
        border: 0;
        color: #fff;
        cursor: pointer;
        display: flex;
        flex: 0 0 48px;
        height: 48px;
        justify-content: center;
        margin: 0;
        padding: 0;
        width: 48px;
    }

    .mobile-menu__parent .mobile-menu__item-toggle .nav-chevron {
        margin: -4px 0 0;
        transition: transform .2s ease;
    }

    .mobile-menu__parent .mobile-menu__item-toggle[aria-expanded="true"] .nav-chevron {
        transform: rotate(225deg);
    }
}

/* D-MAV comparison table: keep desktop paired, group columns on mobile */
.comparison-table__mobile {
    display: none;
}

@media (max-width: 767px) {
    .comparison-table__table--desktop {
        display: none;
    }

    .comparison-table__mobile {
        display: block;
        border-bottom: 2px solid rgba(10, 31, 155, .14);
    }

    .comparison-table__mobile-group + .comparison-table__mobile-group {
        margin-top: 0;
    }

    .comparison-table__mobile-header,
    .comparison-table__mobile-cell {
        align-items: center;
        border-top: 2px solid rgba(10, 31, 155, .14);
        display: flex;
        justify-content: center;
        min-height: auto;
        padding: 24px var(--dtx-gap-sm);
        text-align: center;
    }

    .comparison-table__mobile-header {
        font-weight: 600;
    }

    .comparison-table__mobile-group:nth-child(even) .comparison-table__mobile-header,
    .comparison-table__mobile-group:nth-child(even) .comparison-table__mobile-cell {
        background: rgba(17, 155, 242, .04);
    }

    .comparison-table__mobile p {
        color: rgba(56, 58, 66, 1);
        font-family: var(--dtx-font-primary);
        font-size: 16px;
        line-height: 1.52;
        margin: 0;
        text-align: center;
    }

    .comparison-table__mobile-header p {
        font-size: 18px;
        font-weight: 600;
        line-height: 1.44;
    }
}

@media (max-width: 600px) {
    .pipeline__card {
        column-gap: 10px;
        grid-template-columns: 78px minmax(0, 1fr);
    }

    .pipeline__progress::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 14' preserveAspectRatio='xMidYMid meet'%3E%3Cg fill='rgb(56,58,66)' font-family='Geist,Arial,sans-serif' font-size='7.5' font-weight='400' text-anchor='middle'%3E%3Ctext x='20' y='10'%3EDiscovery%3C/text%3E%3Ctext x='60' y='10'%3EPreclinical%3C/text%3E%3Ctext x='100' y='10'%3EPhase 1%3C/text%3E%3Ctext x='140' y='10'%3EPhase 2%3C/text%3E%3C/g%3E%3C/svg%3E");

        background-position: center;
        background-repeat: no-repeat;
        background-size: 100% auto;

        height: 14px;
        top: -18px;
        width: 100%;
    }

    .pipeline__stage strong {
        font-size: 16px;
    }
}

@media (max-width: 767px) {
    .home-hero.contact-hero {
        --hero-position: 65% center;
    }
}

/* ==========================================================================
   Mobile alignment fix
   Keep header and footer on the same horizontal grid as page sections.
   ========================================================================== */
@media (max-width: 767px) {
    .site-header {
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }

    .site-header__inner,
    .site-header__search-panel {
        width: 100%;
        max-width: none;
    }

    .site-footer {
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }

    .site-footer__inner {
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
    }
}

/* ==========================================================================
   TABLET CANVAS AUDIT — 768px–1180px
   --------------------------------------------------------------------------
   One tablet geometry for all constrained modules:
   - outer canvas: viewport - 64px (32px per side)
   - content line: 32px inside that canvas where the component has inner copy
   - full-bleed visual sections stay full width; only their inner copy aligns
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1180px) {
    :root {
        --dtx-site-width: calc(100vw - 64px);
        --dtx-nav-width: var(--dtx-site-width);
        --dtx-site-gutter: 32px;
        --dtx-section-x: 32px;
        --dtx-surface-edge: 32px;
    }

    /* All constrained surfaces share exactly the same outer edges. */
    .dtx-container,
    .intro-media,
    .three-col-list,
    .comparison-table,
    .pipeline,
    .stat-block,
    .text-row,
    .statement-banner,
    .logo-strip h2,
    .image-cta,
    .pillars__content,
    .news-cards,
    .team-section,
    .team-member-single__inner,
    .contact-block,
    .contact-cta,
    .posts-index,
    .system-page__inner,
    .site-footer__inner {
        box-sizing: border-box;
        width: var(--dtx-site-width);
        max-width: none;
        margin-left: auto;
        margin-right: auto;
    }

    /* Header card uses the same outer canvas as the sections. */
    .site-header {
        box-sizing: border-box;
        padding-left: var(--dtx-site-gutter);
        padding-right: var(--dtx-site-gutter);
    }

    .site-header__inner {
        box-sizing: border-box;
        width: 100%;
        max-width: none;
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }

    /* Hero background remains full bleed; copy aligns with header logo and
       standard section copy instead of using the older 90vw calculation. */
    .home-hero {
        padding-left: 0;
        padding-right: 0;
    }

    .home-hero__inner,
    .home-hero.science-hero .home-hero__inner {
        box-sizing: border-box;
        width: var(--dtx-site-width);
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }

    /* Full-bleed modules keep their artwork edge-to-edge, but their copy
       follows the same tablet content line. */
    .full-width-video-text__inner,
    .intro-media.science-intro-secound .intro-media__copy,
    .intro-media.science-intro-second .intro-media__copy {
        box-sizing: border-box;
        width: var(--dtx-site-width);
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }

    /* Footer content uses the same content line as header + sections. */
    .site-footer__inner {
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }

    /* Open tablet menu follows the same outer edges as the closed header. */
    .mobile-menu {
        box-sizing: border-box;
        padding-left: var(--dtx-site-gutter);
        padding-right: var(--dtx-site-gutter);
    }

    .mobile-menu__panel {
        box-sizing: border-box;
        width: 100%;
        max-width: none;
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }
}

/* ==========================================================================
   TABLET REFINEMENTS — pipeline phase alignment + single team overflow
   768px–1180px
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1180px) {

    /* Pipeline:
       The previous SVG used background-size: contain. Because the SVG is
       400x20, "contain" was constrained by its 20px-high box and the artwork
       became narrower than the actual progress pillar. Stretch the SVG canvas
       to the pillar width so each label center lands at 12.5 / 37.5 / 62.5 /
       87.5% of the exact bar width. */
    .pipeline__progress::before {
        background-position: center bottom;
        background-size: 100% auto;
        height: 30px;
        top: -32px;
        width: 100%;
    }

    /* Give the progress side a little more room on tablet. */
    .pipeline__card {
        column-gap: 28px;
        grid-template-columns: minmax(150px, .62fr) minmax(0, 1.38fr);
    }

    .pipeline__stage strong {
        min-width: 0;
    }

    /* Single team member:
       Desktop's fixed 430px + min 560px columns cannot fit inside a ~960px
       tablet canvas and were forcing the bio beyond the right edge. Keep the
       two-column composition on tablet, but make both columns genuinely fluid. */
    .team-member-single {
        overflow-x: clip;
    }

    .team-member-single__inner {
        box-sizing: border-box;
        max-width: none;
        overflow: hidden;
        padding:
            150px
            var(--dtx-section-x)
            var(--dtx-section-y-large);
        width: var(--dtx-site-width);
    }

    .team-member-single__grid {
        align-items: start;
        gap: clamp(36px, 4.6875vw, 48px);
        grid-template-columns:
            minmax(260px, 34%)
            minmax(0, 1fr);
        justify-content: stretch;
        max-width: 100%;
        min-width: 0;
        width: 100%;
    }

    .team-member-single__photo,
    .team-member-single__content,
    .team-member-single__bio,
    .team-member-single__bio p {
        box-sizing: border-box;
        max-width: 100%;
        min-width: 0;
    }

    .team-member-single__content {
        overflow-wrap: anywhere;
    }

    .team-member-single__photo {
        width: 100%;
    }

    .team-member-single__content h1 {
        font-size: clamp(34px, 3.5156vw, 40px);
    }

    .team-member-single__position,
    .team-member-single__bio {
        font-size: clamp(17px, 1.9531vw, 20px);
    }
}

/* On narrower portrait tablets, stack the single-team layout before either
   column becomes cramped. */
@media (min-width: 768px) and (max-width: 980px) {
    .team-member-single__grid {
        grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
        gap: 32px;
    }
}


/* ==========================================================================
   Homepage Image CTA — compact desktop positioning fix
   Keep the approved artwork zoom/crop; only shift the artwork so the jumping
   person stays clear of the copy on narrower desktop widths.
   ========================================================================== */
@media (min-width: 1181px) and (max-width: 1439px) {
    .home .section-image-fullwidth-text.homepage-image-cta::before {
        inset: -3%;
        background-position: center 90%;
        transform: translateX(22%) scaleX(-1) scale(1.45);
        transform-origin: center;
    }
}

@media (min-width: 768px) and (max-width: 1180px) {
    .home .section-image-fullwidth-text.homepage-image-cta::before {
        inset: -3%;
        background-position: center 90%;
        transform: translateX(26%) scaleX(-1) scale(1.45);
        transform-origin: center;
    }
}

/* ==========================================================================
   Investors nav — compact desktop nested dropdown positioning
   On narrower desktop widths the Investors item sits close to the right edge,
   so second-level flyouts cannot safely open to the right. Keep the first
   dropdown anchored to Investors and open nested menus to the left instead.
   ========================================================================== */
@media (min-width: 1181px) and (max-width: 1439px) {
    .site-header__menu-item:has(.site-header__subdropdown) > .site-header__dropdown {
        left: auto;
        right: 0;
    }

    .site-header__menu-item:has(.site-header__subdropdown) .site-header__subdropdown {
        left: auto;
        right: calc(100% + 8px);
        transform: translateX(4px);
    }

    .site-header__menu-item:has(.site-header__subdropdown) .site-header__dropdown-item:hover > .site-header__subdropdown,
    .site-header__menu-item:has(.site-header__subdropdown) .site-header__dropdown-item:focus-within > .site-header__subdropdown {
        transform: translateX(0);
    }

    /* Move the invisible hover bridge to the same side as the flyout. */
    .site-header__menu-item:has(.site-header__subdropdown) .site-header__dropdown-item.has-subdropdown::after {
        left: auto;
        right: 100%;
    }
}


/* ==========================================================================
   MOBILE / TABLET MENU — FINAL BEHAVIOR FIX
   --------------------------------------------------------------------------
   Keep the existing site header visible. The open menu starts below it,
   removes the duplicate logo/close header, and makes the panel itself
   independently scrollable on short phone screens.
   ========================================================================== */
@media (max-width: 1180px) {
    .mobile-menu {
        bottom: 0;
        box-sizing: border-box;
        height: auto;
        overflow: hidden;
        padding-top: 0;
    }

    /* The real fixed header remains above the menu, so don't render a second one. */
    .mobile-menu__top {
        display: none;
    }

    .mobile-menu__panel {
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    /* The text is always navigation; only the dedicated chevron button toggles. */
    .mobile-menu__parent-link {
        position: relative;
        z-index: 2;
        touch-action: manipulation;
    }

    .mobile-menu__parent .mobile-menu__item-toggle {
        position: relative;
        z-index: 3;
    }
}

/* Tablet / small laptop hamburger layout:
   24px header top spacing + 72px header card + 8px breathing room. */
@media (min-width: 768px) and (max-width: 1180px) {
    .mobile-menu {
        top: 104px;
    }

    body.admin-bar .mobile-menu {
        top: 136px;
    }

    .mobile-menu__panel {
        max-height: calc(100dvh - 120px);
    }

    body.admin-bar .mobile-menu__panel {
        max-height: calc(100dvh - 152px);
    }
}

/* Phone / portrait tablet:
   20px header top spacing + 64px header card + 8px breathing room. */
@media (max-width: 767px) {
    .mobile-menu {
        top: 92px;
    }

    body.admin-bar .mobile-menu {
        top: 138px;
    }

    .mobile-menu__panel {
        max-height: calc(100dvh - 108px);
    }

    body.admin-bar .mobile-menu__panel {
        max-height: calc(100dvh - 154px);
    }
}


/* ==========================================================================
   D-MAV COMPARISON TABLE — FINAL MOBILE ORDER ENFORCEMENT
   --------------------------------------------------------------------------
   Preserve desktop/tablet paired columns.
   On mobile, render the dedicated mobile markup as:
   1) complete Traditional antiviral model column
   2) complete D-MAV model column
   ========================================================================== */
@media (max-width: 767px) {
    .comparison-table__table--desktop {
        display: none !important;
    }

    .comparison-table__mobile {
        display: flex !important;
        flex-direction: column;
        width: 100%;
    }

    .comparison-table__mobile-group {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .comparison-table__mobile-group:first-child {
        order: 1;
    }

    .comparison-table__mobile-group:nth-child(2) {
        order: 2;
    }
}

/* ==========================================================================\n   MOBILE / TABLET MENU — SEAMLESS HEADER + RELIABLE CLOSE\n   --------------------------------------------------------------------------\n   Final override only. Keeps every previous fix intact.\n   ========================================================================== */
@media (max-width: 1180px) {
    /* Menu begins exactly where the visible header card ends. */
    body.mobile-menu-open .site-header__inner {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        box-shadow: none;
    }

    .mobile-menu {
        background: rgba(0, 0, 0, .08);
        padding-top: 0;
    }

    .mobile-menu__panel {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        margin-top: 0;
    }

    /* Duplicate mobile header remains hidden; give Search its own breathing room. */
    .mobile-menu__top {
        display: none;
    }

    .mobile-menu__search {
        margin-top: 18px;
    }
}

@media (min-width: 768px) and (max-width: 1180px) {
    .mobile-menu {
        top: 96px;
    }

    body.admin-bar .mobile-menu {
        top: 128px;
    }

    .mobile-menu__panel {
        max-height: calc(100dvh - 96px);
    }

    body.admin-bar .mobile-menu__panel {
        max-height: calc(100dvh - 128px);
    }
}

@media (max-width: 767px) {
    .mobile-menu {
        top: 84px;
    }

    body.admin-bar .mobile-menu {
        top: 130px;
    }

    .mobile-menu__panel {
        max-height: calc(100dvh - 84px);
    }

    body.admin-bar .mobile-menu__panel {
        max-height: calc(100dvh - 130px);
    }
}


/* ========================================================================== 
   MOBILE MENU — MATCH CLOSED HEADER WIDTH
   --------------------------------------------------------------------------
   On phones the header uses --dtx-section-x on both sides. The menu inherited
   the older 32px tablet gutter, which made the open panel visibly narrower.
   Keep the exact same outer edges as the header.
   ========================================================================== */
@media (max-width: 767px) {
    .mobile-menu {
        padding-left: var(--dtx-section-x);
        padding-right: var(--dtx-section-x);
    }

    .mobile-menu__panel {
        box-sizing: border-box;
        width: 100%;
        max-width: none;
    }
}


/* ==========================================================================
   INTRO WITH MEDIA — MOBILE IMAGE CENTERING
   --------------------------------------------------------------------------
   Keep the media card centered inside the mobile content width and neutralize
   any desktop/tablet offset that can push it to the right.
   ========================================================================== */
@media (max-width: 767px) {
    .intro-media__image {
        box-sizing: border-box;
        margin-left: auto;
        margin-right: auto;
        transform: none;
        width: 100%;
    }

    .intro-media__image img {
        display: block;
        margin-left: auto;
        margin-right: auto;
        object-position: center;
        width: 100%;
    }
}


/* ==========================================================================
   NEWS HERO — MOBILE LONG-TITLE HEADER SAFETY
   --------------------------------------------------------------------------
   Preserve the existing bottom-anchored hero composition, but reserve enough
   space above dynamic News titles so the eyebrow/title can never run beneath
   the fixed mobile header. This is mobile-only and does not alter the desktop
   News hero safety rules already present above.
   ========================================================================== */
@media (max-width: 767px) {
    .home-hero.news-hero {
        box-sizing: border-box;
        min-height: 680px;
        padding-top: 120px;
    }
}

/* Narrow phones need a little more vertical room because long News titles
   wrap onto more lines. */
@media (max-width: 600px) {
    .home-hero.news-hero {
        min-height: 720px;
        padding-top: 120px;
    }
}


/* ==========================================================================
   HOMEPAGE HERO — 900px BREAKPOINT BRIDGE
   --------------------------------------------------------------------------
   900px is the exact handoff between the mobile (<=767) and tablet (>=901)
   systems. Keep that boundary visually consistent with the already-approved
   tablet hero instead of letting the phone geometry win at exactly 900px.
   ========================================================================== */



/* ==========================================================================
   HERO COPY ↔ HEADER LOGO — MOBILE COMPLETION
   --------------------------------------------------------------------------
   Desktop and tablet already use the header navigation axis.
   On <=767px the header outer gutter is --dtx-section-x and the logo sits
   another 15px inside .site-header__inner. Match that exact axis for every
   hero, including the exact 900px breakpoint.
   ========================================================================== */
@media (max-width: 767px) {
    .home-hero .home-hero__inner,
    .home-hero.science-hero .home-hero__inner,
    .home-hero.section-home-hero.homepage-hero .home-hero__inner {
        box-sizing: border-box;
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        padding-left: 15px;
        padding-right: 15px;
    }
}

@media (min-width: 768px) and (max-width: 1180px) {
    .home-hero.contact-hero {
        --hero-position: 72% center;
    }
}

/* Investors dropdown — prevent submenu text clipping on laptop screens */
@media (min-width: 1181px) {

    .site-header__menu-item:has(.site-header__subdropdown) > .site-header__dropdown {
        left: auto;
        right: 0;
        min-width: 250px;
    }

    .site-header__menu-item:has(.site-header__subdropdown) .site-header__subdropdown {
        left: auto;
        right: calc(100% + 8px);
        min-width: max-content;
        width: max-content;
        max-width: none;
        transform: translateX(4px);
    }

    .site-header__menu-item:has(.site-header__subdropdown) .site-header__subdropdown a {
        width: max-content;
        min-width: 100%;
        white-space: nowrap;
    }

    .site-header__menu-item:has(.site-header__subdropdown)
    .site-header__dropdown-item:hover > .site-header__subdropdown,
    .site-header__menu-item:has(.site-header__subdropdown)
    .site-header__dropdown-item:focus-within > .site-header__subdropdown {
        transform: translateX(0);
    }

    .site-header__menu-item:has(.site-header__subdropdown)
    .site-header__dropdown-item.has-subdropdown::after {
        left: auto;
        right: 100%;
    }
}


/* ==========================================================================
   RESPONSIVE BREAKPOINT POLICY
   --------------------------------------------------------------------------
   Final layout handoff:
   - Mobile: 0–767px
   - Tablet / compact desktop: 768–1180px
   - Desktop: 1181px+
   The hamburger navigation may still be used on tablet; "mobile layout" here
   refers to the stacked/narrow module geometry, typography and spacing.
   ========================================================================== */


/* ==========================================================================
   PIPELINE — CONTENT-AWARE CTA WRAP
   --------------------------------------------------------------------------
   Keep Learn More in the desktop row while the pipeline itself has enough
   room. Once the actual pipeline table becomes too narrow, switch only that
   component to the roomy two-column layout and place the CTA on its own row.
   This is based on component width, not browser viewport width.
   ========================================================================== */
@media (min-width: 1181px) {
    .pipeline__table {
        container-type: inline-size;
        container-name: pipeline-table;
    }

    @container pipeline-table (max-width: 1260px) {
        .pipeline__table::before {
            display: none;
        }

        .pipeline__phase-head {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            font-size: clamp(13px, 1.05vw, 14px);
            letter-spacing: 0;
            line-height: 1.2;
            margin-left: calc(36% + clamp(18px, 1.8vw, 24px));
            margin-right: clamp(34px, 3vw, 42px);
            padding: 0;
            text-align: center;
            transform: translateY(clamp(195px, 16.2vw, 208px));
            position: relative;
            z-index: 5;
        }

        .pipeline__phase-head > * {
            min-width: 0;
            text-align: center;
            white-space: nowrap;
        }

        .pipeline__cards {
            gap: clamp(24px, 2.2vw, 30px);
        }

        .pipeline__card {
            align-items: start;
            border-radius: clamp(22px, 2vw, 26px);
            column-gap: clamp(28px, 2.6vw, 36px);
            grid-template-columns: minmax(170px, .72fr) minmax(0, 1.28fr);
            grid-template-rows: auto auto auto auto;
            min-height: 0;
            padding:
                clamp(32px, 2.8vw, 38px)
                clamp(34px, 3vw, 42px)
                clamp(30px, 2.6vw, 36px);
            row-gap: 0;
        }

        .pipeline__card::before {
            content: none;
        }

        .pipeline__program {
            grid-column: 1 / -1;
            grid-row: 1;
            min-width: 0;
            padding: 0;
        }

        .pipeline__program h3 {
            font-size: clamp(29px, 2.55vw, 34px);
            line-height: 1.18;
            margin: 0;
        }

        .pipeline__program p {
            font-size: clamp(15px, 1.35vw, 17px);
            line-height: 1.45;
            margin-top: 7px;
        }

        .pipeline__stage {
            display: contents;
            padding: 0;
        }

        .pipeline__stage span {
            grid-column: 1 / -1;
            grid-row: 2;
            font-size: clamp(15px, 1.35vw, 17px);
            line-height: 1.4;
            margin: clamp(22px, 2vw, 26px) 0 clamp(18px, 1.6vw, 21px);
        }

        .pipeline__stage strong {
            align-self: center;
            grid-column: 1;
            grid-row: 3;
            font-size: clamp(14px, 1.25vw, 16px);
            line-height: 1.4;
            min-width: 0;
            padding-top: 8px;
        }

        .pipeline__progress {
            align-self: end;
            grid-column: 2;
            grid-row: 3;
            height: clamp(21px, 1.8vw, 24px);
            margin: 0;
            min-width: 0;
            overflow: visible;
            position: relative;
        }

        .pipeline__progress::before {
            content: none;
        }

        .pipeline__progress::after {
            background-image:
                linear-gradient(rgba(129, 141, 205, .32), rgba(129, 141, 205, .32)),
                linear-gradient(rgba(129, 141, 205, .32), rgba(129, 141, 205, .32)),
                linear-gradient(rgba(129, 141, 205, .32), rgba(129, 141, 205, .32));
            background-repeat: no-repeat;
            background-position: 25% 0, 50% 0, 75% 0;
            background-size: 1px 100%, 1px 100%, 1px 100%;
            border-radius: inherit;
            content: "";
            inset: 0;
            pointer-events: none;
            position: absolute;
            z-index: 2;
        }

        .pipeline__progress > span {
            overflow: hidden;
        }

        .pipeline__action {
            grid-column: 1 / -1;
            grid-row: 4;
            justify-self: start;
            margin-top: clamp(27px, 2.4vw, 32px);
            padding: 0;
        }

        .pipeline__button {
            box-sizing: border-box;
            font-size: clamp(15px, 1.3vw, 17px);
            gap: 10px;
            justify-content: center;
            max-width: none;
            min-height: clamp(44px, 3.8vw, 50px);
            padding-inline: clamp(18px, 1.7vw, 22px);
            width: auto;
        }

        .pipeline__button span:first-child {
            font-size: inherit;
            line-height: 1;
            white-space: nowrap;
        }

        .pipeline__button .home-button__icon {
            flex: 0 0 auto;
            height: clamp(17px, 1.4vw, 19px);
            width: clamp(17px, 1.4vw, 19px);
        }
    }
}

@media (min-width: 1181px) {
    .contact-cta.science {
        min-height: clamp(354px, 30vw, 432px);
        padding-top: clamp(130px, 10.9722vw, 158px);
        padding-bottom: clamp(103px, 8.75vw, 126px);
    }

    .contact-cta.science .contact-cta__inner {
        transform: translateY(clamp(44px, 3.75vw, 54px));
    }
}
