/* =============================================================
   Nuvox Healthcare — style.css
   Premium science / preventive-health theme.
   Design system: brand blue + red on white / light grey, black text.
   Brand colours per Nuvox Brand Guideline: #234E87 (blue) Â· #D82128 (red) Â· #102B4E (dark navy).
   Typography per guideline: Inter (digital) throughout.
   Sections in source order:
     1. Tokens         6. Nav            11. About
     2. Base/reset     7. Hero           12. Services
     3. Typography     8. Sub-hero       13. Research
     4. Buttons        9. Home sections  14. Contact
     5. Chrome        10. Shared cards   15. Footer + keyframes
   ============================================================= */

/* 1. ---------------------------------------------------- TOKENS */
:root {
    /* Dark brand-blue surfaces (hero, footer, ink sections) */
    --ink: #102B4E;
    /* Dark Navy — brand guideline */
    --ink-2: #16345E;
    --ink-3: #234E87;
    /* Blue — brand guideline */

    /* Blue — brand guideline primary */
    --primary: #234E87;
    --primary-600: #1C3F6D;
    --primary-700: #16335A;
    --primary-500: #3E6FA8;
    --primary-050: #EAF1F9;
    --primary-100: #D2E2F3;

    /* Red — brand guideline */
    --accent: #D82128;
    --accent-600: #A01E21;
    /* secondary red — brand guideline */
    --accent-300: #FF8A8D;
    /* red lightened for text/icons on dark blue */
    --accent-050: #FCEAEA;

    /* Secondary palette supplied for the site. */
    --secondary-green-700: #00713B;
    --secondary-green-600: #009A44;
    --secondary-green-500: #35B64A;
    --secondary-mint: #2DB879;
    --secondary-lime: #72BF44;
    --secondary-yellow: #DFE60D;
    --secondary-teal-700: #387E90;
    --secondary-teal-600: #0798A8;
    --secondary-teal-500: #4DAEC0;
    --secondary-cyan: #70B9CF;
    --secondary-cyan-light: #A1D4DE;
    --secondary-cyan-pale: #C2E3E3;
    --secondary-blue-700: #29568F;
    --secondary-blue-600: #3E70A4;
    --secondary-blue-500: #5485B0;
    --secondary-blue-400: #77A1BD;
    --secondary-blue-200: #99B9CD;
    --secondary-blue-100: #C3D6DF;
    --secondary-gray-900: #323232;
    --secondary-gray-700: #5C5C5C;
    --secondary-gray-500: #808080;
    --secondary-gray-300: #A7A7A7;
    --secondary-gray-200: #C2C2C2;
    --secondary-gray-100: #DEDEDE;

    /* Solid secondary surface for section backgrounds and hover states. */
    --secondary: var(--secondary-mint);

    /* Gray + white — brand guideline */
    --tl-gold: #000000;
    /* timeline subtitle text */
    --brand-gray: #939598;
    --brand-gray-light: #DCDDDE;
    --paper: #F5F7FA;
    --surface: #FFFFFF;
    --tint: #DCDDDE;

    /* Black text */
    --heading: #000000;
    --text: #000000;
    --muted: #000000;
    --line: #DCDDDE;
    --line-2: #C7C9CB;

    --font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

    /* Shared reading rhythm and heading-to-copy spacing. */
    --section-copy-leading: 1.7;
    --heading-copy-gap: 2rem;

    --r-xs: 8px;
    --r-sm: 12px;
    --r: 18px;
    --r-lg: 26px;
    --r-xl: 36px;
    --pill: 100px;

    --shadow-sm: 0 2px 10px rgba(9, 20, 36, .06);
    --shadow: 0 18px 44px rgba(9, 20, 36, .10);
    --shadow-lg: 0 34px 80px rgba(9, 20, 36, .16);
    --shadow-primary: 0 20px 44px rgba(22, 67, 121, .30);
    --shadow-accent: 0 20px 44px rgba(211, 35, 38, .30);

    --ease: cubic-bezier(.22, .61, .36, 1);
    --ease-out: cubic-bezier(.16, 1, .3, 1);
    --t: .38s var(--ease);

    --container: 1240px;
    --gap: clamp(1rem, 3vw, 2rem);
    --section-y: clamp(4rem, 9vw, 8rem);
}

/* 2. ------------------------------------------------ BASE/RESET */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: 6rem;
    /* Guard rail only — real overflow is fixed at the source. iOS Safari
       ignores overflow-x on <body> alone and pans the page anyway, so the
       root needs it too. */
    overflow-x: hidden;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

body {
    font-family: var(--font-family);
    margin: 0;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.7;
    text-align: left;
    color: var(--text);
    background: var(--page-background, var(--surface));
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

/* Text and native controls inherit the single site-wide font family. */
h1,
h2,
h3,
h4,
h5,
h6,
p,
button,
input,
select,
textarea {
    font-family: inherit;
}

/* Standalone video-frame preview in home.php uses the shared body styles. */
.nx-frame-preview {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background-color: #f5f5f0;
}

.nx-frame-preview .video-container {
    width: 950px;
    max-width: 95vw;
    display: block;
}

.nx-frame-preview .svg-frame-canvas {
    width: 100%;
    height: auto;
    display: block;
    overflow: hidden;
}

.nx-frame-preview .embedded-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    clip-path: url(#inner-video-shape);
}

img,
svg,
video {
    max-width: 100%;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

ul,
ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

button {
    cursor: pointer;
    border: 0;
    background: none;
}

:focus-visible {
    outline: 3px solid var(--primary);
    outline-offset: 3px;
    border-radius: 4px;
}

/* Arrival flash for smooth-scrolled anchor targets — see smoothAnchors()
   in main.js. rgba(35,78,135,…) is var(--primary)'s own RGB (#234E87);
   an inset box-shadow tints whatever the target already has rather than
   replacing its background outright, so it reads the same over a photo
   section, a gradient, or an nx-section--ink dark section alike. Not
   applied under prefers-reduced-motion — smoothAnchors() skips adding
   the class there, same as it falls back to an instant, non-smooth
   scroll. */
@keyframes nx-anchor-pulse {
    0% {
        box-shadow: inset 0 0 0 9999px rgba(35, 78, 135, .14);
    }

    100% {
        box-shadow: inset 0 0 0 9999px rgba(35, 78, 135, 0);
    }
}

.nx-anchor-flash {
    animation: nx-anchor-pulse 1.4s ease-out;
}

::selection {
    background: var(--primary);
    color: #fff;
}

.nx-container {
    width: min(100% - 2.4rem, var(--container));
    margin-inline: auto;
}

.nx-narrow {
    --container: 900px;
}

.nx-section {
    padding-block: var(--section-y);
    position: relative;
}

.nx-section--paper {
    background: var(--paper);
}

.nx-legal {
    color: var(--text);
    line-height: 1.7;
    padding-top: 60px;
}

.page-terms .nx-legal h1,
.page-privacy .nx-legal h1 {
    padding-bottom: 5rem;
}

.nx-legal p {
    margin: 0 0 1rem;
}

/* 404 — page not found */
.nx-404__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-block: 80px 40px;
}

.nx-404__code {
    font-size: clamp(5rem, 18vw, 10rem);
    font-weight: 700;
    line-height: 1;
    color: var(--primary);
}

.nx-404__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
}

.nx-legal h2 {
    margin: 2.75rem 0 1rem;
    color: var(--primary-700);
    font-size: clamp(1.3rem, 2vw, 1.65rem);
    line-height: 1.3;
}

.nx-legal h3 {
    margin: 1.5rem 0 .75rem;
    color: var(--secondary);
    font-size: 1.05rem;
    line-height: 1.4;
}

.nx-legal__effective,
.nx-legal__updated {
    color: var(--primary-700);
    font-weight: 700;
}

.nx-legal__updated {
    margin-top: 2rem !important;
}

.nx-legal__item {
    margin-bottom: .4rem !important;
    padding-left: 1.25rem;
    position: relative;
}

.nx-legal__item::before {
    background: var(--accent);
    border-radius: 50%;
    content: "";
    height: .35rem;
    left: .25rem;
    position: absolute;
    top: .72rem;
    width: .35rem;
}

.nx-section--surface {
    background: var(--surface);
}

.nx-built-fade {
    background:
        linear-gradient(180deg, var(--paper) 0%, rgba(245, 247, 250, 0) 90px),
        linear-gradient(0deg, var(--paper) 0%, rgba(245, 247, 250, 0) 90px),
        var(--surface);
}

.nx-section--tint {
    background: var(--secondary);
    color: #fff;
}

/* The secondary colour is a dark surface, so shared section copy stays
   legible wherever the alternate section treatment is used. */
.nx-section--tint .nx-title,
.nx-section--tint .nx-subtitle,
.nx-section--tint h1,
.nx-section--tint h2,
.nx-section--tint h3,
.nx-section--tint h4 {
    color: #fff;
}

.nx-section--tint .nx-title em,
.nx-section--tint .nx-pull,
.nx-section--tint .nx-link {
    color: var(--accent-300);
}

.nx-section--tint .nx-lead,
.nx-section--tint .nx-muted,
.nx-section--tint .nx-note {
    color: #D5DEE9;
}

.nx-section--photo {
    position: relative;
    color: var(--text);
    overflow: hidden;
}

.nx-section__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

/* Scroll-to-explore cue (between hero and first section) */
.nx-scrollcue {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: clamp(2.5rem, 3vw, 48px) 1rem 0;
    background: var(--surface);
    text-align: center;
    cursor: pointer;
}

/* Focus pages get this card edge from their content wrapper. Other pages
   use the same edge directly on the cue below their hero. */
:not(.nx-mens-content):not(.nx-page-content)>.nx-scrollcue {
    position: relative;
    z-index: 6;
    margin-top: -60px;
    border-radius: 48px 48px 0 0;
    background: #fff;
    box-shadow: 0 -12px 40px rgba(30, 40, 65, .05);
}

.nx-scrollcue:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: -4px;
}

@media (max-width: 767px) {
    :not(.nx-mens-content):not(.nx-page-content)>.nx-scrollcue {
        margin-top: -40px;
        border-radius: 30px 30px 0 0;
    }
}

.nx-scrollcue__label {
    font-weight: 600;
    font-size: 1.05rem;
    letter-spacing: .01em;
    color: #000;
}

.nx-scrollcue__line {
    position: relative;
    width: 1px;
    height: 30px;
    background: var(--line-2);
    overflow: hidden;
}

.nx-scrollcue__line::after {
    content: "";
    position: absolute;
    left: 0;
    top: -45%;
    width: 100%;
    height: 45%;
    background: linear-gradient(to bottom, transparent, var(--primary));
    animation: nx-scrollcue 1.9s var(--ease) infinite;
}

@keyframes nx-scrollcue {
    0% {
        top: -45%;
    }

    100% {
        top: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nx-scrollcue__line::after {
        animation: none;
    }
}

.nx-section__veil {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11, 34, 68, .48) 0%, rgba(11, 34, 68, .38) 45%, rgba(11, 34, 68, .56) 100%);
    z-index: 1;
}

.nx-section--photo>.nx-container {
    position: relative;
    z-index: 2;
}

.nx-why__head {
    max-width: 35rem;
    text-align: left;
    margin: 0;
}

.nx-why__head .nx-lead,
.nx-why__head .nx-muted {
    margin-left: 0;
    margin-right: 0;
}

.nx-section--photo .nx-title,
.nx-section--photo .nx-why__label,
.nx-section--photo .nx-why__outro {
    color: var(--heading);
}

.nx-section--photo .nx-lead {
    color: var(--text);
}

.nx-section--photo .nx-muted {
    color: var(--muted);
}

.nx-about-teaser.nx-section--photo .nx-title,
.nx-about-teaser.nx-section--photo .nx-lead,
.nx-about-teaser.nx-section--photo .nx-muted {
    color: #fff;
}

.nx-section--ink {
    background: var(--ink);
    color: #EDF1F6;
}

.nx-section--ink .nx-title {
    color: #fff;
}

.nx-center {
    text-align: center;
}

.nx-center-t {
    text-align: center;
}

/* 3. ------------------------------------------------ TYPOGRAPHY */
/* Typography is defined by element, shared by every page and section.
   Fluid heading sizes also handle mobile without section overrides. */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-style: normal;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -.015em;
    color: var(--heading);
    margin: 0;
}

h1 {
    font-size: clamp(2rem, 4.5vw, 4rem);
}

h2 {
    font-size: clamp(1.65rem, 3.7vw, 3rem);
}

h3 {
    font-size: clamp(1.25rem, 2.6vw, 2rem);
}

h4 {
    font-size: clamp(1.125rem, 1.5vw, 1.35rem);
}

h5 {
    font-size: 1.125rem;
}

h6 {
    font-size: 1rem;
}

p {
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: var(--section-copy-leading);
}

.nx-title--nowrap {
    white-space: nowrap;
}

@media (max-width: 480px) {
    .nx-title--nowrap {
        white-space: normal;
    }
}

.nx-title em {
    color: var(--accent);
}

.nx-section--ink .nx-title em {
    color: var(--accent-300);
}

.nx-subtitle {
    margin: 0 0 .6rem;
}

.nx-lead {
    color: var(--text);
    line-height: 1.6;
    margin: var(--heading-copy-gap) 0 0;
}

.nx-section--ink .nx-lead {
    color: #D5DEE9;
}

.nx-muted {
    color: var(--muted);
    line-height: var(--section-copy-leading);
    margin: var(--heading-copy-gap) 0 0;
}

#purpose .nx-split__copy .nx-muted {
    text-align: justify;
    text-justify: inter-word;
}

.nx-muted--light {
    color: #A7B4C6;
}

.nx-longread {
    max-width: 62rem;
    margin: 0 auto;
    color: var(--muted);
    text-align: center;
}

.nx-note {
    color: var(--muted);
}

.nx-note--center {
    text-align: center;
    max-width: 60rem;
    margin-inline: auto;
    margin-top: 2rem;
}

.nx-pull {
    color: var(--primary-700);
    margin-top: 1.2rem;
}

.nx-section--ink .nx-pull {
    color: var(--accent-300);
}

.nx-head {
    max-width: 60rem;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.nx-head--center {
    margin-inline: auto;
    text-align: center;
}

.nx-head--left {
    max-width: 60rem;
    margin-bottom: 2.5rem;
}

.nx-head--wide {
    max-width: 54rem;
}

.nx-head .nx-lead,
.nx-head .nx-muted {
    margin-left: auto;
    margin-right: auto;
}

/* Forced to wrap onto exactly two lines rather than one long line or an
   uneven three, regardless of viewport width. */
#evidence-focus-title {
    margin-inline: auto;
    text-wrap: balance;
}

.nx-head--left .nx-lead,
.nx-head--left .nx-muted {
    margin-left: 0;
}

.nx-link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    color: var(--primary-700);
    position: relative;
}

.nx-link i {
    transition: transform var(--t);
}

.nx-link:hover i {
    transform: translateX(5px);
}

.nx-section--ink .nx-link {
    color: var(--accent-300);
}

.nx-tag {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--primary-700);
    background: var(--primary-050);
    padding: .35rem .7rem;
    border-radius: var(--pill);
}

/* 4. --------------------------------------------------- BUTTONS */
.nx-btn {
    --btn-bg: var(--primary);
    --btn-fg: #fff;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .95rem 1.6rem;
    border-radius: var(--pill);
    font-weight: 600;
    font-size: .98rem;
    line-height: 1;
    background: var(--btn-bg);
    color: var(--btn-fg);
    transition: transform var(--t), box-shadow var(--t), background var(--t), color var(--t), border-color var(--t);
    white-space: nowrap;
    overflow: hidden;
    isolation: isolate;
}

.nx-btn i {
    transition: transform var(--t);
}

.nx-btn:hover {
    transform: translateY(-3px);
}

.nx-btn:hover i {
    transform: translateX(4px);
}

.nx-btn--sm {
    padding: .68rem 1.15rem;
    font-size: .9rem;
}

.nx-btn--lg {
    padding: 1.1rem 2rem;
    font-size: 1.05rem;
}

.nx-btn--block {
    width: 100%;
    justify-content: center;
}

/* Red is the action colour: every primary CTA. Blue carries structure. */
.nx-btn--solid {
    background: linear-gradient(120deg, var(--accent), var(--accent-600));
    color: #fff;
    box-shadow: var(--shadow-accent);
}

.nx-btn--solid::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(120deg, #fff3, transparent 40%);
    transform: translateX(-120%);
    transition: transform .6s var(--ease);
}

.nx-btn--solid:hover::after {
    transform: translateX(120%);
}

.nx-btn--solid:hover {
    background: var(--secondary);
    box-shadow: 0 26px 54px rgba(211, 35, 38, .42);
}

/* Blue solid — for the few CTAs that sit on a red field */
.nx-btn--blue {
    background: linear-gradient(120deg, var(--primary), var(--primary-700));
    color: #fff;
    box-shadow: var(--shadow-primary);
}

.nx-btn--blue:hover {
    background: var(--secondary);
    box-shadow: 0 26px 54px rgba(22, 67, 121, .40);
}

.nx-btn--outline {
    background: transparent;
    color: var(--primary-700);
    box-shadow: inset 0 0 0 1.6px var(--primary);
}

.nx-btn--outline:hover {
    background: var(--secondary);
    color: #fff;
}

.nx-btn--light {
    background: #fff;
    color: var(--heading);
    box-shadow: var(--shadow);
}

.nx-btn--light:hover {
    background: var(--secondary);
    color: #fff;
}

.nx-btn--ghost-light {
    background: rgba(255, 255, 255, .06);
    color: #fff;
    box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .4);
}

.nx-btn--ghost-light:hover {
    background: rgba(255, 255, 255, .14);
    box-shadow: inset 0 0 0 1.5px #fff;
}

/* 5. ------------------------------- CHROME: preloader/progress */
.nx-preloader {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 1.2rem;
    background: var(--ink);
    transition: opacity .5s ease, visibility .5s ease;
}

.nx-preloader.is-done {
    opacity: 0;
    visibility: hidden;
    /* visibility stays hit-testable for the length of its own transition,
       so drop pointer events immediately or the overlay eats the first
       half-second of taps. */
    pointer-events: none;
}

.nx-preloader__mark {
    position: relative;
    width: 76px;
    height: 76px;
}

.nx-preloader__orbit {
    position: absolute;
    inset: 0;
    border: 2px solid transparent;
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: nx-spin 1s linear infinite;
}

.nx-preloader__orbit--2 {
    inset: 12px;
    border-top-color: var(--accent-300);
    animation-duration: 1.5s;
    animation-direction: reverse;
}

.nx-preloader__core {
    position: absolute;
    inset: 30px;
    background: radial-gradient(circle, var(--primary), var(--primary-700));
    border-radius: 50%;
    animation: nx-pulse 1.4s ease-in-out infinite;
}

.nx-preloader__word {
    color: #fff;
    letter-spacing: .3em;
    text-transform: uppercase;
    margin: 0;
    opacity: .85;
}

.nx-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 1600;
    background: transparent;
    pointer-events: none;
}

.nx-progress span {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--primary), var(--accent));
    box-shadow: 0 0 12px rgba(22, 67, 121, .6);
    transition: width .1s linear;
}

.nx-skip {
    position: fixed;
    top: -60px;
    left: 12px;
    z-index: 2100;
    background: var(--primary);
    color: #fff;
    padding: .7rem 1.1rem;
    border-radius: var(--r-xs);
    transition: top .25s;
}

.nx-skip:focus {
    top: 12px;
}

/* 6. ------------------------------------------------------- NAV */
.nx-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1200;
    background: #fff;
    box-shadow: 0 8px 30px rgba(9, 20, 36, .08);
    padding: 1.1rem 0;
    transition: background var(--t), box-shadow var(--t), padding var(--t), transform var(--t);
}

/* Scroll chrome adds this class while the page is moving down. Focus keeps
   the navigation visible for keyboard users. */
.nx-nav.is-hidden:not(:focus-within) {
    transform: translateY(-110%);
}

.nx-nav__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
}

.nx-nav.is-solid {
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(1.4) blur(14px);
    box-shadow: 0 8px 30px rgba(9, 20, 36, .08);
    padding: .7rem 0;
}

/* Brand lockup: logo wordmark on a white plate so the blue/red mark
   stays legible over the dark hero as well as the white scrolled nav. */
.nx-brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
}

.nx-brand__logo {
    display: flex;
    align-items: center;
    flex: none;
    background: #fff;
    border-radius: var(--r-xs);
    padding: .45rem .7rem;
    transition: background var(--t), box-shadow var(--t);
}

.nx-brand__logo img {
    height: 30px;
    width: auto;
    display: block;
}

.nx-brand__sub {
    font-size: .62rem;
    letter-spacing: .3em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--primary);
    padding-left: .7rem;
    border-left: 1px solid var(--line-2);
    transition: color var(--t), border-color var(--t);
}

.nx-nav.is-solid .nx-brand__logo {
    background: transparent;
    box-shadow: none;
}

.nx-nav.is-solid .nx-brand__sub {
    color: var(--primary);
    border-left-color: var(--line-2);
}

.nx-nav__list {
    display: flex;
    align-items: center;
    gap: .3rem;
}

.nx-nav__link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .6rem .95rem;
    border-radius: var(--pill);
    font-weight: 500;
    font-size: .96rem;
    color: var(--text);
    position: relative;
    transition: color var(--t), background var(--t);
}

.nx-nav__link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: .32rem;
    width: 0;
    height: 2px;
    background: var(--accent-300);
    border-radius: 2px;
    transform: translateX(-50%);
    transition: width var(--t);
}

.nx-nav__link:hover::after,
.nx-nav__link.active::after {
    width: 18px;
}

.nx-nav.is-solid .nx-nav__link::after {
    background: var(--accent);
}

.nx-nav.is-solid .nx-nav__link {
    color: var(--text);
}

.nx-nav.is-solid .nx-nav__link:hover,
.nx-nav.is-solid .nx-nav__link.active {
    color: var(--primary-700);
}

.nx-nav__caret {
    font-size: .66rem;
    transition: transform var(--t);
}

.nx-has-drop:hover .nx-nav__caret,
.nx-has-mega:hover .nx-nav__caret,
.nx-has-mega:focus-within .nx-nav__caret {
    transform: rotate(180deg);
}

.nx-nav__actions {
    display: flex;
    align-items: center;
    gap: .8rem;
}

/* Mega dropdown */
.nx-has-drop {
    position: relative;
}

.nx-drop {
    position: absolute;
    top: calc(100% + 14px);
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    width: 460px;
    max-width: 88vw;
    background: #fff;
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-lg);
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--t), transform var(--t);
    border: 1px solid var(--line);
}

.nx-has-drop:hover .nx-drop,
.nx-has-drop:focus-within .nx-drop {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.nx-drop::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 16px;
    height: 16px;
    background: #fff;
    border-left: 1px solid var(--line);
    border-top: 1px solid var(--line);
}

.nx-drop__grid {
    display: grid;
    gap: .5rem;
}

.nx-drop__brand {
    display: flex;
    gap: .85rem;
    align-items: center;
    padding: .8rem;
    border-radius: var(--r-sm);
    transition: background var(--t);
}

.nx-drop__brand:hover {
    background: var(--secondary);
    color: #fff;
}

.nx-drop__brand:hover strong,
.nx-drop__brand:hover small {
    color: #fff;
}

.nx-drop__badge {
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: 12px;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.1rem;
}

.nx-drop__badge--primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-700));
}

.nx-drop__badge--accent {
    background: linear-gradient(135deg, var(--accent), var(--accent-600));
}

.nx-drop__brand strong {
    display: block;
    color: var(--heading);
    font-size: 1.05rem;
}

.nx-drop__brand small {
    color: var(--muted);
    font-size: .84rem;
}

.nx-drop__links {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .7rem;
    padding-top: .8rem;
    border-top: 1px solid var(--line);
}

.nx-drop__links a {
    font-size: .85rem;
    font-weight: 600;
    color: var(--primary-700);
    padding: .4rem .7rem;
    border-radius: var(--pill);
    background: var(--tint);
    transition: background var(--t);
}

.nx-drop__links a:hover {
    background: var(--secondary);
    color: #fff;
}

/* Mega panel, constrained to the content container so its edges line up
   with the brand and the page below. The item is position:static so the
   panel resolves against the fixed .nx-nav rather than the <li>. */
.nx-has-mega {
    position: static;
}

.nx-mega {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 10px);
    width: min(100% - 2.4rem, var(--container));
    margin-inline: auto;
    background: rgba(255, 255, 255, .97);
    backdrop-filter: saturate(1.4) blur(14px);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity var(--t), transform var(--t), visibility var(--t);
}

/* Hover bridges. The pointer has to cross the header's bottom padding and
   the 10px offset to reach the panel, and neither belongs to the <li> — so
   the menu would close mid-travel without these.

   The link strip only exists while the item is open, otherwise it would
   hang below the header and swallow clicks on the page underneath. It is
   self-sustaining: hovering a pseudo-element counts as hovering its host,
   so once the pointer enters the strip the strip stays alive. */
.nx-has-mega:hover>.nx-nav__link::before,
.nx-has-mega:focus-within>.nx-nav__link::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 2.4rem;
}

.nx-mega::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -14px;
    height: 14px;
}

.nx-mega__inner {
    padding: 1.7rem 2rem 1.9rem;
}

.nx-has-mega:hover .nx-mega,
.nx-has-mega:focus-within .nx-mega {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

/* Three even columns with hairline rules between them. Multi-column keeps
   the markup a plain <ul>, so adding links needs no layout change. */
.nx-mega__list {
    columns: 3;
    column-gap: 3.2rem;
    column-rule: 1px solid var(--line);
}

.nx-mega__list li {
    break-inside: avoid;
}

.nx-mega__list a {
    display: block;
    padding: .78rem .2rem;
    font-size: 1rem;
    font-weight: 500;
    color: var(--muted);
    transition: color var(--t), transform var(--t);
}

.nx-mega__list a:hover,
.nx-mega__list a:focus-visible,
.nx-mega__list a.active {
    color: var(--primary-700);
    transform: translateX(5px);
}

/* Burger + mobile */
.nx-burger {
    display: none;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    justify-content: center;
}

.nx-burger span {
    width: 22px;
    height: 2px;
    background: var(--ink);
    border-radius: 2px;
    transition: transform var(--t), opacity var(--t), background var(--t);
}

.nx-nav.is-solid .nx-burger span {
    background: var(--ink);
}

.nx-mobile {
    position: fixed;
    inset: 0;
    z-index: 1500;
    visibility: hidden;
    /* Stay visible until the panel has finished sliding out. */
    transition: visibility 0s linear .45s;
}

.nx-mobile.is-open {
    visibility: visible;
    transition-delay: 0s;
}

/* The scrim sits after the panel in the DOM, so it needs an explicit
   z-index below it — otherwise it paints over the drawer and swallows
   every tap on the menu links. */
.nx-mobile__scrim {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(9, 20, 36, .5);
    opacity: 0;
    transition: opacity var(--t);
    backdrop-filter: blur(2px);
}

.nx-mobile.is-open .nx-mobile__scrim {
    opacity: 1;
}

.nx-mobile__panel {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    height: 100%;
    width: min(400px, 86vw);
    background: var(--ink);
    color: #fff;
    padding: 1.4rem;
    padding-bottom: calc(1.4rem + env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column;
    /* Long menus must scroll inside the drawer instead of overflowing
       off-screen on short phone viewports. */
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform .45s var(--ease-out);
    box-shadow: -30px 0 80px rgba(0, 0, 0, .4);
}

.nx-mobile.is-open .nx-mobile__panel {
    transform: translateX(0);
}

/* Pinned to the top of the scrolling panel so the close button stays
   reachable no matter how far the menu is scrolled. */
.nx-mobile__head {
    position: sticky;
    top: 0;
    z-index: 2;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--ink);
    margin: -1.4rem -1.4rem 1.5rem;
    padding: 1.4rem;
}

.nx-mobile__close {
    flex: none;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-size: 1.2rem;
}

.nx-mobile__list {
    flex: none;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.nx-mobile__list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem .6rem;
    font-size: 1.4rem;
    color: rgba(255, 255, 255, .9);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    transition: color var(--t), padding var(--t);
}

.nx-mobile__list a i {
    opacity: 0;
    transform: translateX(-8px);
    transition: all var(--t);
    color: var(--accent-300);
}

.nx-mobile__list a:hover,
.nx-mobile__list a.active {
    color: #fff;
    padding-left: 1rem;
}

.nx-mobile__list a:hover i,
.nx-mobile__list a.active i {
    opacity: 1;
    transform: translateX(0);
}

/* Touch devices never fire :hover, so show the chevrons by default and
   drop the hover-only indent that would otherwise stick after a tap. */
@media (hover: none) {
    .nx-mobile__list a i {
        opacity: .5;
        transform: none;
    }

    .nx-mobile__list a:hover {
        padding-left: .6rem;
    }

    .nx-mobile__list a.active {
        padding-left: 1rem;
    }

    .nx-mobile__sublist a:hover {
        padding-left: .6rem;
    }
}

.nx-mobile__panel>nav {
    flex: none;
}

/* Sub-links under a mobile menu item (About / Portfolio dropdowns). */
.nx-mobile__sublist {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: .2rem 0 .6rem .9rem;
}

.nx-mobile__sublist a {
    display: block;
    padding: .55rem .6rem;
    font-size: .98rem;
    color: rgba(255, 255, 255, .62);
    border-bottom: 1px solid rgba(255, 255, 255, .05);
    transition: color var(--t), padding-left var(--t);
}

.nx-mobile__sublist a:hover {
    color: #fff;
    padding-left: 1rem;
}

.nx-mobile__foot {
    flex: none;
    margin-top: auto;
    padding-top: 1.5rem;
}

.nx-mobile__promise {
    text-align: center;
    color: var(--accent-300);
    margin-top: 1rem;
}

/* 7. ------------------------------------------------------ HERO */
.nx-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 8rem 0 4rem;
    background: radial-gradient(120% 120% at 80% 0%, var(--ink-3), var(--ink) 55%);
    color: #fff;
    overflow: hidden;
}

.nx-hero__bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.nx-hero__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .42;
}

/* --- Hero intro strip (below video hero) --- */
.nx-hero-intro {
    background: var(--surface);
    padding-bottom: clamp(2.5rem, 4vw, 4rem);
}

.nx-hero-intro.nx-section--paper {
    background: var(--paper);
}

.nx-hero-intro__inner {
    margin: 0 auto;
    text-align: center;
}

.nx-hero-intro__title {
    line-height: 1.12;
    color: var(--heading);
    margin: 0;
    letter-spacing: -.015em;
}

/* Longer quotes (e.g. About page) break at a fixed point into two lines
   instead of the big multi-line display treatment above. */
.nx-hero-intro__title--inline {
    font-size: clamp(1.4rem, 3.2vw, 2.75rem);
}

.nx-hero-intro__text {
    color: var(--muted);
    line-height: 1.7;
    margin: 1.1rem 0 0;
}

.nx-hero-intro__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.8rem;
}

/* --- Video-background hero variant --- */
.nx-hero--video {
    min-height: 100vh;
    padding: 0;
}

@media (min-width: 901px) {

    /* Match the focus hero's total height, including its 88px header offset,
       so the overlapping card and its label sit at the same viewport position. */
    .nx-hero--video {
        min-height: clamp(648px, calc(100svh - 22px), 1018px);
    }
}

.nx-hero--video .nx-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scaleX(-1);
}

.nx-hero--video .nx-hero__inner {
    display: flex;
    justify-content: flex-start;
}

.nx-hero--video .nx-hero__copy {
    max-width: 50%;
    margin: 0;
    text-align: left;
}

.nx-hero--video .nx-hero__title {
    letter-spacing: -.02em;
}

/* --- Full-bleed photographic hero variant --- */
.nx-hero--photo {
    min-height: 94vh;
}

.nx-hero--photo .nx-hero__img {
    opacity: 1;
    object-position: 68% center;
}

.nx-hero--photo .nx-hero__glow--1 {
    opacity: .35;
}

.nx-hero--photo .nx-hero__glow--2,
.nx-hero--photo .nx-blob {
    opacity: .2;
}

.nx-hero--photo .nx-hero__inner {
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
}

.nx-hero--photo .nx-hero__copy {
    max-width: 640px;
}

.nx-hero--photo .nx-hero__visual {
    position: relative;
    min-height: 440px;
    aspect-ratio: auto;
    display: block;
}

.nx-hero--photo .nx-hero__card {
    z-index: 5;
}

.nx-hero--photo .nx-hero__card--1 {
    top: 10%;
    left: 2%;
    right: auto;
}

.nx-hero--photo .nx-hero__card--2 {
    bottom: 14%;
    right: 0;
    left: auto;
}

.nx-hero__leafbadge--float {
    position: absolute;
    z-index: 4;
    bottom: 4%;
    left: 16%;
    box-shadow: var(--shadow-lg);
}

.nx-hero__grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
    background-size: 54px 54px;
    mask-image: radial-gradient(120% 90% at 60% 10%, #000 30%, transparent 75%);
}

.nx-hero__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    opacity: .5;
}

.nx-hero__glow--1 {
    width: 480px;
    height: 480px;
    background: var(--primary);
    top: -140px;
    right: -60px;
}

.nx-hero__glow--2 {
    width: 420px;
    height: 420px;
    background: var(--accent);
    bottom: -160px;
    left: -100px;
    opacity: .38;
}

.nx-blob {
    position: absolute;
    border-radius: 46% 54% 60% 40% / 46% 40% 60% 54%;
    background: linear-gradient(135deg, rgba(22, 67, 121, .5), rgba(211, 35, 38, .25));
    filter: blur(6px);
    opacity: .5;
    animation: nx-morph 16s ease-in-out infinite;
}

.nx-blob--a {
    width: 280px;
    height: 280px;
    top: 14%;
    right: 8%;
}

.nx-blob--b {
    width: 220px;
    height: 220px;
    bottom: 10%;
    left: 6%;
    animation-delay: -6s;
}

.nx-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}

.nx-hero__title {
    line-height: 1.03;
    color: #fff;
    margin: .4rem 0 0;
    letter-spacing: -.025em;
}

.nx-hero__title em {
    color: var(--accent-300);
}

.nx-hero__title-navy {
    color: var(--primary);
}

.nx-hero__title-red {
    color: var(--accent);
}

.nx-hero__lead {
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    color: #fff;
    margin: 1.3rem 0 0;
    font-weight: 500;
}

.nx-hero__text {
    color: #D5DEE9;
    max-width: 34rem;
    margin: 1rem 0 0;
    font-size: 1.06rem;
}

.nx-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    margin-top: 2rem;
}

.nx-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    margin-top: 2.6rem;
    padding-top: 1.8rem;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.nx-hero__chip-num {
    display: block;
    font-size: 1.9rem;
    color: #fff;
    line-height: 1;
}

.nx-hero__chip-label {
    font-size: .82rem;
    color: #A7B4C6;
    letter-spacing: .02em;
}

/* Hero orbit visual */
.nx-hero__visual {
    position: relative;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
}

.nx-orbit {
    position: relative;
    width: min(100%, 440px);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
}

.nx-orbit__ring {
    position: absolute;
    border-radius: 50%;
    border: 1.5px dashed rgba(255, 255, 255, .16);
}

.nx-orbit__ring--1 {
    inset: 0;
    animation: nx-spin 26s linear infinite;
}

.nx-orbit__ring--2 {
    inset: 15%;
    border-style: solid;
    border-color: rgba(22, 67, 121, .35);
    animation: nx-spin 20s linear infinite reverse;
}

.nx-orbit__ring--3 {
    inset: 30%;
    border-color: rgba(211, 35, 38, .3);
    animation: nx-spin 14s linear infinite;
}

.nx-orbit__nucleus {
    position: relative;
    width: 32%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #3B82D9, var(--primary-700));
    display: grid;
    place-items: center;
    box-shadow: 0 0 60px rgba(22, 67, 121, .6), inset 0 0 30px rgba(255, 255, 255, .14);
    z-index: 2;
}

.nx-orbit__leaf {
    width: 44%;
    height: 44%;
    color: #fff;
}

.nx-orbit__dot {
    position: absolute;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 20px var(--accent);
}

.nx-orbit__dot--1 {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

.nx-orbit__dot--2 {
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    background: #fff;
    box-shadow: 0 0 20px #fff;
}

.nx-orbit__dot--3 {
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    background: #2C6FC0;
    box-shadow: 0 0 20px #2C6FC0;
}

.nx-orbit__dot--4 {
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.nx-hero__card {
    position: absolute;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: .7rem;
    background: rgba(14, 34, 60, .72);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--r-sm);
    padding: .8rem 1rem;
    box-shadow: var(--shadow);
}

.nx-hero__card i {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--primary), var(--primary-700));
    color: #fff;
}

.nx-hero__card strong {
    display: block;
    font-size: .92rem;
    color: #fff;
}

.nx-hero__card small {
    color: #BCC7D5;
    font-size: .78rem;
}

.nx-hero__card--1 {
    top: 8%;
    left: -3%;
}

.nx-hero__card--2 {
    bottom: 10%;
    right: -1%;
}

.nx-hero__card--2 i {
    background: linear-gradient(135deg, var(--accent), var(--accent-600));
}

.nx-hero__scroll {
    position: absolute;
    bottom: 1.6rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}

.nx-hero__mouse {
    width: 24px;
    height: 40px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-radius: 14px;
    display: block;
    position: relative;
}

.nx-hero__mouse span {
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 8px;
    background: #fff;
    border-radius: 3px;
    animation: nx-scroll 1.6s ease-in-out infinite;
}

.nx-float {
    animation: nx-float 5s ease-in-out infinite;
}

.nx-float--slow {
    animation-duration: 7s;
    animation-delay: -2s;
}

/* 8. --------------------------------------------------- SUB-HERO */
.nx-subhero {
    position: relative;
    min-height: 46vh;
    display: flex;
    align-items: center;
    padding: 7.5rem 0 2.5rem;
    background: radial-gradient(120% 130% at 85% 0%, var(--ink-3), var(--ink) 60%);
    color: #fff;
    overflow: hidden;
}

.nx-subhero__bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.nx-subhero__inner {
    position: relative;
    z-index: 2;
}

.nx-subhero__crumbwrap {
    position: absolute;
    top: 7.5rem;
    left: 0;
    right: 0;
    z-index: 2;
}

.nx-crumb {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .85rem;
    color: #A7B4C6;
    margin-bottom: 1.2rem;
}

.nx-crumb a {
    color: #A7B4C6;
    transition: color var(--t);
}

.nx-crumb a:hover {
    color: #fff;
}

.nx-crumb i {
    font-size: .66rem;
    opacity: .6;
}

.nx-subhero__kicker {
    display: block;
    font-weight: 700;
    font-size: .82rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--accent-300);
    margin-bottom: .9rem;
}

.nx-subhero__title {
    color: #fff;
    line-height: 1.05;
    letter-spacing: -.02em;
}

.nx-subhero__title em {

    color: var(--accent-300);
}

.nx-subhero__lead {
    color: #fff;
    margin: 1.2rem 0 0;
}

.nx-subhero__text {
    color: #D5DEE9;
    max-width: 42rem;
    margin: 1rem 0 0;
}

.nx-subhero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    margin-top: 2rem;
}

/* 9/10. -------------------------- SHARED SECTION COMPONENTS */

/* Split */
.nx-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: center;
}

.nx-split--reverse .nx-split__media {
    order: 2;
}

.nx-split--reverse .nx-split__copy {
    order: 1;
}

.nx-split__copy .nx-btn {
    margin-top: 1.8rem;
}

.nx-split--text-only {
    grid-template-columns: 1fr;
}

.nx-split--text-only .nx-split__copy {
    max-width: 42rem;
    text-align: left;
}

.nx-figure {
    position: relative;
    aspect-ratio: 4/3.4;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
}

#built .nx-figure,
#purpose .nx-figure {
    border: none;
    box-shadow: none;
}

/* The India map outline in build-in-india.webp sits close to the top
   edge of the source image — center-cropping this container's wider
   aspect ratio was clipping into the map. Crop from the bottom (empty
   table space) instead, so the full map stays visible. */
#built .nx-figure--photo img {
    object-position: top;
}

#purpose .nx-figure {
    border-radius: 0;
}

.nx-figure--plain {
    position: relative;
    aspect-ratio: auto;
    border: none;
    box-shadow: none;
    border-radius: 0;
    overflow: visible;
    background: #fff;
    padding: 1.2rem;
}

.nx-figure--photo.nx-figure--plain img {
    position: static;
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 0;
}

.nx-quality-verified .nx-split {
    align-items: stretch;
}

.nx-quality-verified .nx-split__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.nx-quality-verified .nx-split__media {
    display: flex;
}

.nx-quality-verified .nx-figure--plain {
    display: flex;
    align-items: center;
    width: 100%;
}

.nx-quality-verified .nx-figure--photo.nx-figure--plain img {
    width: auto;
    height: 80%;
    max-width: 100%;
    margin: 0 auto;
}

.nx-figure--about {
    background: linear-gradient(150deg, var(--primary), var(--primary-700));
}

.nx-figure__pattern {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, .18) 0 2px, transparent 2px), radial-gradient(circle at 70% 60%, rgba(255, 255, 255, .12) 0 3px, transparent 3px), linear-gradient(120deg, transparent 40%, rgba(211, 35, 38, .35));
    background-size: 40px 40px, 60px 60px, 100% 100%;
}

.nx-figure__badge {
    position: absolute;
    left: 1.4rem;
    bottom: 1.4rem;
    background: #fff;
    border-radius: var(--r-sm);
    padding: 1rem 1.2rem;
    box-shadow: var(--shadow);
}

.nx-figure__badge-num {
    display: block;
    font-size: 2.2rem;
    color: var(--primary-700);
    line-height: 1;
}

.nx-figure__badge span:last-child {
    font-size: .82rem;
    color: var(--muted);
}

.nx-figure__tag {
    position: absolute;
    top: 1.3rem;
    right: 1.3rem;
    background: rgba(9, 20, 36, .75);
    backdrop-filter: blur(6px);
    color: #fff;
    font-size: .82rem;
    font-weight: 600;
    padding: .55rem .9rem;
    border-radius: var(--pill);
    display: inline-flex;
    gap: .4rem;
    align-items: center;
}

.nx-figure__tag i {
    color: var(--accent-300);
}

.nx-figure--globe {
    background: radial-gradient(circle at 50% 45%, var(--ink-3), var(--ink));
    display: grid;
    place-items: center;
}

.nx-figure__globe {
    width: 62%;
    height: 62%;
    color: rgba(255, 255, 255, .5);
    animation: nx-spin 40s linear infinite;
}

.nx-figure__tag--tr {
    top: 1.3rem;
    right: 1.3rem;
}

.nx-figure__tag--bl {
    top: auto;
    right: auto;
    bottom: 1.3rem;
    left: 1.3rem;
}

/* --- Building the Future: full-bleed video, centered ink overlay --- */
.nx-building {
    position: relative;
    overflow: hidden;
    color: var(--text);
    text-align: center;
    padding-block: clamp(4.5rem, 9vw, 8rem);
}

.nx-building__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.nx-building__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.nx-building__veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .62) 0%, rgba(255, 255, 255, .5) 45%, rgba(255, 255, 255, .66) 100%),
        rgba(255, 255, 255, .34);
}

.nx-building__inner {
    position: relative;
    z-index: 2;
}

.nx-building__copy {
    max-width: 60rem;
    margin-inline: auto;
}

.nx-building .nx-title {
    color: var(--heading);
    margin: 0 0 clamp(1.6rem, 4vw, 2.6rem);
}

.nx-building__p {
    font-size: clamp(1.08rem, 1.5vw, 1.28rem);
    line-height: 1.6;
    color: var(--text);
    margin: 0 auto 1.15rem;
    max-width: 52rem;
}

.nx-building__p:last-child {
    margin-bottom: 0;
}

/* Why / Stats */
/* --- Global Health Challenge: full-bleed video, GSK-style stat cards --- */
.nx-challenge {
    position: relative;
    overflow: hidden;
    padding-block: 0 clamp(4.5rem, 8vw, 7rem);
}

.nx-challenge__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.nx-challenge__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.nx-challenge__veil {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #fff 0%, #fff 30%, rgba(255, 255, 255, 0) 100%);
}

.nx-challenge__inner {
    position: relative;
    z-index: 2;
}

.nx-challenge__topband {
    position: relative;
    z-index: 2;
    width: 100vw;
    left: 50%;
    transform: translateX(-50%);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 82%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 82%, transparent 100%);
    padding-block: clamp(4.5rem, 8vw, 7rem) clamp(4rem, 7vw, 6rem);
}

.nx-why__label {
    text-align: center;
    color: #000;
    letter-spacing: -.01em;
    margin: 0;
}

.nx-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(.9rem, 1.5vw, 1.5rem);
}

.nx-health-carousel.swiper {
    overflow: visible;
    padding-top: .5rem;
}

.nx-health-carousel .swiper-wrapper {
    align-items: stretch;
}

.nx-health-carousel .nx-stat {
    width: 400px;
    min-height: 28rem;
    flex-shrink: 0;
}

.nx-health-carousel__nav {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    width: min(42rem, 100%);
    margin: 2.4rem auto 0;
}

.nx-health-carousel__prev,
.nx-health-carousel__next {
    display: grid;
    flex: none;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    padding: 0;
    color: var(--accent);
    background: transparent;
    border: 0;
    font-size: 1rem;
}

.nx-health-carousel__prev:disabled,
.nx-health-carousel__next:disabled {
    color: var(--line-2);
}

.nx-health-carousel__scrollbar {
    position: relative;
    flex: 1;
    height: 4px;
    overflow: hidden;
    background: rgba(255, 255, 255, .72);
    border-radius: var(--pill);
}

.nx-health-carousel__scrollbar .swiper-scrollbar-drag {
    background: var(--accent);
    border-radius: inherit;
}

@media (max-width: 700px) {
    .nx-health-carousel .nx-stat {
        width: calc(100vw - 3rem);
        min-height: 24rem;
    }

    .nx-health-carousel__nav {
        margin-top: 1.75rem;
    }
}

.nx-stat {
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(10px);
    border: 0;
    border-radius: 12px;
    padding: clamp(1.45rem, 2vw, 2rem);
    text-align: left;
    box-shadow: 0 12px 28px rgba(9, 20, 36, .08);
}

.nx-challenge:not(.nx-challenge--seq) .nx-stat {
    position: relative;
    overflow: hidden;
    grid-column: auto;
    min-height: 20rem;
}

.nx-stat__cat {
    color: var(--primary-700);
    margin: 0 0 2rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.nx-stat__figure {
    color: var(--accent);
    line-height: .95;
    white-space: nowrap;
    font-size: clamp(3.2rem, 5.75vw, 6rem);
}

.nx-stat__text {
    color: var(--text);
    line-height: 1.5;
    margin: 2.15rem 0 0;
}

/* Keep the overview compact; a hover turns the card into a readable detail
   panel without making the five-card layout grow taller. */
.nx-challenge:not(.nx-challenge--seq) .nx-stat {
    transition: background .8s ease-in-out, box-shadow .8s ease-in-out, color .8s ease-in-out;
}

/* The hover detail uses the same soft cross-fade as the reference: this
   remains a rectangular card, with the full description centred on the
   secondary brand colour. */
.nx-challenge:not(.nx-challenge--seq) .nx-stat__detail {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    padding: clamp(1.45rem, 2vw, 2rem);
    color: #fff;
    background: var(--secondary);
    font-size: 1rem;
    line-height: 1.55;
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .8s ease-in-out;
}

/* Homepage standards: an inset light-blue heading band and four moving-image
   medallions that overlap its lower edge. */
.nx-standard-showcase {
    overflow: hidden;
    padding: 0 0 clamp(3.5rem, 6vw, 5.5rem);
    background: white;
}

.nx-standard-showcase__band {
    padding: clamp(2.2rem, 4vw, 3.4rem) 0 clamp(16rem, 22vw, 19rem);
    color: var(--ink);
    text-align: center;
    background: var(--secondary-blue-100);
}

.nx-standard-showcase__band h2 {
    margin: 0 0 2rem;
    color: var(--ink);
    line-height: 1.15;
}

.nx-standard-showcase__band p {
    max-width: 54rem;
    margin: 0 auto;
    color: var(--ink-2);
    line-height: 1.6;
}

.nx-standard-showcase__content {
    margin-top: clamp(-13rem, -15vw, -9rem);
    padding-inline: 2rem;
}

.nx-standard-showcase__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(2rem, 4vw, 4rem);
}

.nx-standard-showcase__point {
    min-width: 0;
    text-align: center;
}

.nx-standard-showcase__video-wrap {
    width: min(100%, 22rem);
    aspect-ratio: 1;
    margin-inline: auto;
    padding: .9rem;
    overflow: hidden;
    border: 3px solid var(--accent);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 10px 24px rgba(9, 20, 36, .12);
}

.nx-standard-showcase__video-wrap video {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.nx-standard-showcase__point h5 {
    margin: 1.35rem 0 0;
    color: var(--ink);
    line-height: 1.45;
}

.nx-company-video {
    padding: clamp(3.5rem, 6vw, 5.5rem) 0;
    background: var(--paper);
}

.nx-company-video__player {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: var(--primary-700);
    box-shadow: 0 18px 42px rgba(9, 20, 36, .16);
}

.nx-glance__title {
    position: relative;
    z-index: 1;
    margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
    color: white !important;
    /* Match the shared site section-heading treatment. */
}

.nx-glance__panel {
    position: relative;
    isolation: isolate;
    min-height: 31rem;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background: #eef1f4 right center / cover no-repeat;
}

.nx-glance__panel::before {
    position: absolute;
    z-index: 0;
    inset: 0 auto 0 0;
    width: 62%;
    content: "";
    background: linear-gradient(90deg, rgba(35, 78, 135, .72) 0%, rgba(35, 78, 135, .5) 58%, rgba(35, 78, 135, 0) 100%);
}

.nx-glance__facts {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 1rem;
    width: min(100%, 28rem);
}

.nx-glance__fact {
    position: relative;
    padding: clamp(1.35rem, 2.5vw, 2.2rem);
    border-radius: 1.1rem;
    font-size: 1rem;
    line-height: 1.2;
}

.nx-glance__fact strong {
    font-size: 1.22em;
    font-weight: 700;
}

.nx-glance__fact--light {
    color: #fff;
    background: var(--accent);
    box-shadow: 0 12px 24px rgba(216, 33, 40, .18);
}

.nx-glance__fact--light::before,
.nx-glance__fact--light::after {
    position: absolute;
    width: 3.6rem;
    height: 3.6rem;
    content: "";
}

.nx-glance__fact--light::before {
    top: 0;
    left: 0;
    border-top: .7rem solid var(--accent);
    border-left: .7rem solid var(--accent);
}

.nx-glance__fact--light::after {
    right: 0;
    bottom: 0;
    border-right: .7rem solid var(--primary);
    border-bottom: .7rem solid var(--primary);
}

.nx-glance__fact--accent {
    color: #fff;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .55);
    box-shadow: none;
    backdrop-filter: blur(4px);
}

.nx-life {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    background: white;
}

.nx-life>.nx-container>h2 {
    margin: 0 0 2.5rem;
    color: #000;
    /* Match the shared site section-heading treatment. */
    text-align: center;
}

.nx-life__tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .6rem;
    max-width: 50rem;
    margin: 0 auto 2rem;
}

.nx-life__tab {
    min-height: 3.2rem;
    padding: .7rem .85rem;
    color: var(--accent);
    background: #fff;
    border: 2px solid var(--accent);
    font-weight: 700;
    font-size: .88rem;
    line-height: 1.2;
    text-align: center;
    transition: background .25s ease, color .25s ease, border-color .25s ease;
}

.nx-life__tab:hover,
.nx-life__tab.is-active {
    color: #fff;
    background: var(--accent);
    border-color: #fff;
}

.nx-life__stage {
    position: relative;
    display: none;
    aspect-ratio: 1881 / 836;
    min-height: 0;
    padding: clamp(2.5rem, 5vw, 4.5rem) clamp(2rem, 8vw, 7rem);
    overflow: hidden;
    background: #e9edf0 center / cover no-repeat;
    border-radius: 1.25rem;
}

.nx-life__stage::before {
    position: absolute;
    inset: 0;
    content: "";
    background: none;
}

.nx-life__stage.is-active {
    display: block;
}

.nx-life__copy {
    position: absolute;
    bottom: clamp(2rem, 4vw, 3.5rem);
    left: clamp(2rem, 8vw, 7rem);
    z-index: 1;
    max-width: 27rem;
}

.nx-life__copy>p {
    display: none;
}

.nx-life__copy h3 {
    display: none;
}

.nx-life__copy h3 em {
    display: none;
}

.nx-life__copy h3 strong {
    display: none;
}

.nx-life__product-sliders {
    margin-top: 1rem;
}

.nx-life__packs {
    display: none;
    align-items: center;
    min-height: 12.5rem;
    padding: 1rem 0;
    overflow: hidden;
    background: rgba(255, 255, 255, .96);
    border-radius: 1rem;
}

.nx-life__packs.is-active {
    display: flex;
}

.nx-life__pack-track {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    width: max-content;
    gap: 3.25rem;
    padding-right: 3.25rem;
    animation: nx-life-pack-scroll 30s linear infinite;
    will-change: transform;
}

.nx-life__packs:hover .nx-life__pack-track,
.nx-life__packs:focus-within .nx-life__pack-track {
    animation-play-state: paused;
}

.nx-life__packs img {
    display: block;
    flex: 0 0 auto;
    width: auto;
    height: 10rem;
    object-fit: contain;
}

/* Everyday wellness: family-led introduction with a two-product
   automatically rotating showcase. */
.nx-wellness-products {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    background: #fff;
}

.nx-wellness-products__head {
    margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.nx-wellness-products__head h2 {
    margin: 0 0 .5rem;
    color: var(--ink);
    line-height: 1.15;
}

.nx-wellness-products__head p {
    margin: 0;
    color: var(--ink-2);
}

.nx-wellness-products__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
}

.nx-wellness-products__family img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: contain;
}

.nx-wellness-products__showcase {
    width: 100%;
    min-width: 0;
    padding: .4rem .25rem 2.5rem;
}

.nx-wellness-products__showcase .swiper-wrapper {
    align-items: stretch;
}

.nx-wellness-products__slide {
    display: flex;
    height: auto;
    overflow: hidden;
    flex-direction: column;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 5px 20px rgba(9, 20, 36, .12);
}

.nx-wellness-products__slide>img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: contain;
    background: #fffdfa;
}

.nx-wellness-products__pagination .swiper-pagination-bullet {
    width: .65rem;
    height: .65rem;
    background: var(--accent);
    opacity: .35;
}

.nx-wellness-products__pagination .swiper-pagination-bullet-active {
    opacity: 1;
}

@keyframes nx-life-pack-scroll {
    to {
        transform: translateX(-50%);
    }
}

.nx-quality-commitment {
    padding: clamp(4.5rem, 8vw, 7rem) 0;
    background: var(--surface);
}

.nx-quality-commitment h2 {
    margin: 0 0 clamp(2.75rem, 5vw, 4.5rem);
    color: var(--heading);
    text-align: center;
}

/* This visual composition benefits from the available horizontal space. */
.nx-quality-commitment .nx-container {
    width: 100%;
    max-width: none;
    padding-inline: clamp(1.2rem, 5vw, 5rem);
}

.nx-quality-commitment__orbit {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr) 300px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    grid-template-areas:
        ". top ."
        "left image right"
        ". bottom .";
    align-items: center;
    justify-items: center;
    column-gap: clamp(1.5rem, 5vw, 6rem);
    row-gap: 1.8rem;
}

.nx-quality-commitment__card--top {
    grid-area: top;
}

.nx-quality-commitment__card--bottom {
    grid-area: bottom;
}

.nx-quality-commitment__column--left {
    grid-area: left;
    align-items: flex-end;
}

.nx-quality-commitment__column--right {
    grid-area: right;
    align-items: flex-start;
}

.nx-quality-commitment__center {
    grid-area: image;
}

.nx-quality-commitment__column {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: clamp(1.8rem, 4vw, 4rem);
}

.nx-quality-commitment__card {
    display: flex;
    align-items: center;
    width: min(125%, 25rem);
    max-width: 25rem;
    gap: .9rem;
    padding: 1rem 1.15rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    box-shadow: var(--shadow-sm);
    transition: transform var(--t), box-shadow var(--t), background var(--t);
}

.nx-quality-commitment__card--left {
    text-align: right;
}

.nx-quality-commitment__card:hover {
    background: var(--secondary);
    box-shadow: var(--shadow);
    transform: translateY(-4px);
}

.nx-quality-commitment__card-copy {
    display: grid;
    gap: .25rem;
    flex: 1;
}

.nx-quality-commitment__card-copy strong {
    color: var(--heading);
    /* font-size: .85rem; */
    line-height: 1.3;
}

.nx-quality-commitment__card-copy span {
    color: var(--muted);
    /* font-size: .74rem; */
    line-height: 1.5;
}

.nx-quality-commitment__card:hover .nx-quality-commitment__card-copy strong,
.nx-quality-commitment__card:hover .nx-quality-commitment__card-copy span {
    color: #fff;
}

.nx-quality-commitment__badge {
    display: grid;
    flex: none;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--primary);
    font-size: 1rem;
    box-shadow: 0 2px 10px rgba(0, 113, 59, .28);
}

.nx-quality-commitment__card:hover .nx-quality-commitment__badge {
    color: var(--secondary);
    background: #fff;
}

.nx-quality-commitment__center {
    position: relative;
    display: grid;
    width: 350px;
    height: 350px;
    place-items: center;
}

.nx-quality-commitment__image {
    position: relative;
    z-index: 1;
    width: 350px;
    height: 350px;
    overflow: hidden;
    border: 5px solid #fff;
    border-radius: 50%;
    box-shadow: var(--shadow);
}

.nx-quality-commitment__image img,
.nx-quality-commitment__image video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.nx-quality-commitment__ring {
    position: absolute;
    inset: -18px;
    border: 2px dashed rgba(0, 113, 59, .28);
    border-radius: 50%;
    animation: nx-quality-orbit 30s linear infinite;
}

.nx-quality-commitment__action {
    display: flex;
    justify-content: center;
    padding-top: clamp(2.75rem, 5vw, 4rem);
}

.nx-quality-commitment__action .nx-btn {
    font-size: .9rem;
}

.nx-quality-commitment__mobile {
    display: none;
}

@keyframes nx-quality-orbit {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 960px) {
    .nx-quality-commitment__orbit {
        grid-template-columns: 1fr;
        grid-template-areas:
            "image"
            "top"
            "left"
            "right"
            "bottom";
        gap: 1rem;
    }

    .nx-quality-commitment__column {
        align-items: center;
        gap: 1rem;
    }

    .nx-quality-commitment__card,
    .nx-quality-commitment__card--top,
    .nx-quality-commitment__card--bottom {
        max-width: 30rem;
    }

    .nx-quality-commitment__card--left {
        flex-direction: row-reverse;
        text-align: left;
    }
}

.nx-careers {
    padding: clamp(3rem, 6vw, 5rem) 0;
    overflow: hidden;
    background: #fff;
}

.nx-careers__panel {
    position: relative;
    min-height: 26rem;
    padding: 2.25rem 0;
}

.nx-careers__image {
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: auto;
    left: 0;
    width: 39%;
    height: 21rem;
    background: center / cover no-repeat;
    transform: scale(1.04);
    transition: transform 1.15s cubic-bezier(.22, .61, .36, 1);
}

.nx-careers__panel:hover .nx-careers__image {
    transform: scale(1.09);
}

.nx-careers__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 69%;
    min-height: 24rem;
    margin-left: auto;
    padding: clamp(2.5rem, 5vw, 4.5rem) clamp(2.25rem, 6vw, 6rem);
    color: #fff;
    background: var(--accent);
}

.nx-careers__content h2 {
    max-width: 32rem;
    margin: 0 0 1rem;
}

.nx-careers__content>span {
    max-width: 33rem;
    margin-bottom: 1.25rem;
    font-size: 1rem;
    line-height: 1.5;
}

.nx-careers__link {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    margin-top: .25rem;
    color: var(--accent);
    background: #fff;
    border-radius: 50%;
    place-items: center;
    text-decoration: none;
    transition: transform .3s ease, background .3s ease, color .3s ease;
}

.nx-careers__link:hover {
    color: #fff;
    background: var(--primary);
    transform: translateX(.35rem);
}

@media (max-width: 760px) {
    .nx-standard-showcase__band {
        padding-bottom: 8.5rem;
    }

    .nx-standard-showcase__content {
        margin-top: -4rem;
    }

    .nx-standard-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem 1.2rem;
    }

    .nx-standard-showcase__video-wrap {
        width: min(100%, 10rem);
    }

    .nx-glance__panel {
        min-height: 0;
        background-position: 70% center;
    }

    .nx-glance__facts {
        width: min(100%, 24rem);
    }

    .nx-life__tabs {
        grid-template-columns: repeat(2, 1fr);
    }

    .nx-life__stage {
        aspect-ratio: 3 / 2;
        min-height: 0;
        padding: 0;
        background-image: var(--nx-life-mobile-image) !important;
        background-position: center;
        background-size: contain;
    }

    .nx-life__copy {
        right: auto;
        bottom: .75rem;
        left: 1.5rem;
    }

    .nx-life__copy .nx-btn {
        width: auto;
        max-width: none;
        min-height: 0;
        padding: .65rem 1.15rem;
        font-size: .82rem;
        white-space: nowrap;
    }

    .nx-life__packs {
        min-height: 10rem;
    }

    .nx-life__pack-track {
        gap: 2rem;
        padding-right: 2rem;
        animation-duration: 24s;
    }

    .nx-life__packs img {
        height: 7.5rem;
    }

    .nx-quality-commitment__action {
        padding-top: 3rem;
    }

    .nx-careers__panel {
        min-height: 0;
        padding: 0;
    }

    .nx-careers__image {
        position: relative;
        width: 100%;
        height: 15rem;
        background-position: center;
    }

    .nx-careers__content {
        width: 100%;
        min-height: 0;
        padding: 2.5rem 1.5rem;
    }
}

/* Staged homepage-careers reveal. */
section.nx-careers.nx-careers--animate .nx-careers__content {
    opacity: 0;
    transform: translateX(3.5rem);
    transition: opacity .7s ease .16s, transform .9s cubic-bezier(.22, .61, .36, 1) .16s;
}

section.nx-careers.nx-careers--animate .nx-careers__image {
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1s cubic-bezier(.22, .61, .36, 1), transform 1.15s cubic-bezier(.22, .61, .36, 1);
}

section.nx-careers.nx-careers--animate.is-revealed .nx-careers__content {
    opacity: 1;
    transform: translateX(0);
}

section.nx-careers.nx-careers--animate.is-revealed .nx-careers__image {
    clip-path: inset(0 0 0 0);
}

@media (prefers-reduced-motion: reduce) {
    section.nx-careers.nx-careers--animate .nx-careers__content {
        opacity: 1;
        transform: none;
        transition: none;
    }

    section.nx-careers.nx-careers--animate .nx-careers__image {
        clip-path: none;
        transition: none;
    }
}

@media (max-width: 420px) {
    .nx-standard-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem .75rem;
    }

    .nx-standard-showcase__video-wrap {
        width: min(100%, 8.5rem);
    }
}

@media (hover: hover) {
    .nx-challenge:not(.nx-challenge--seq) .nx-stat__text {
        display: block;
        max-height: 3em;
        overflow: hidden;
        transition: max-height .65s ease, color .65s ease;
    }

    .nx-challenge:not(.nx-challenge--seq) .nx-stat>.nx-stat__cat,
    .nx-challenge:not(.nx-challenge--seq) .nx-stat>.nx-stat__figure,
    .nx-challenge:not(.nx-challenge--seq) .nx-stat>.nx-stat__text {
        transition: opacity .8s ease-in-out, transform .8s ease-in-out, color .8s ease-in-out;
    }

    .nx-challenge:not(.nx-challenge--seq) .nx-stat:hover {
        background: var(--secondary);
        box-shadow: 0 18px 36px rgba(9, 20, 36, .2);
    }

    .nx-challenge:not(.nx-challenge--seq) .nx-stat:hover>.nx-stat__cat,
    .nx-challenge:not(.nx-challenge--seq) .nx-stat:hover>.nx-stat__figure,
    .nx-challenge:not(.nx-challenge--seq) .nx-stat:hover>.nx-stat__text {
        opacity: 0;
        transform: translateY(-.4rem);
    }

    .nx-challenge:not(.nx-challenge--seq) .nx-stat:hover .nx-stat__detail {
        opacity: 1;
    }
}

@media (max-width: 900px) {
    .nx-challenge:not(.nx-challenge--seq) .nx-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nx-challenge:not(.nx-challenge--seq) .nx-stat,
    .nx-challenge:not(.nx-challenge--seq) .nx-stat:nth-child(4),
    .nx-challenge:not(.nx-challenge--seq) .nx-stat:nth-child(5) {
        grid-column: auto;
    }

    .nx-challenge:not(.nx-challenge--seq) .nx-stat:nth-child(5) {
        grid-column: 1 / -1;
        width: calc((100% - 1.7rem) / 2);
        justify-self: center;
    }
}

@media (max-width: 600px) {
    .nx-challenge:not(.nx-challenge--seq) .nx-stats {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .nx-challenge:not(.nx-challenge--seq) .nx-stat,
    .nx-challenge:not(.nx-challenge--seq) .nx-stat:nth-child(5) {
        grid-column: auto;
        width: 100%;
    }
}

.nx-why__outro {
    max-width: 56rem;
    margin: var(--heading-copy-gap) auto 0;
    text-align: center;

    color: var(--heading);
    line-height: 1.5;
}

/* =============================================================
   Global Health Challenge — Why We Exist variant
   -------------------------------------------------------------
   Everything above is the video-backdrop card grid the home page uses
   and must keep using; this block is opt-in via .nx-challenge--seq on
   the section (templates/section-why.php only) and overrides it into
   the GSK-style treatment: a still image backdrop held by fixed
   attachment, a frosted heading band, and the stat cards on a
   horizontal slider.

   Rules that undo a home-page default are marked "undo" — those are
   load-bearing, not tidying, and dropping one lets the grid back in.
   The card and type rules restate values rather than inheriting them,
   so retuning the home page's cards cannot silently restyle this page.
   ============================================================= */

/* The artwork moves onto the section itself, as the Corriger banner
   sections do: fixed attachment sizes it to the viewport and pins it
   there, so the section scrolls past like a moving window onto it.
   Nothing bleeds out of this section, so the home page's overflow clip
   is dropped rather than inherited — the slider does its own clipping,
   on its viewport, and a second clip here would only put a stray scroll
   container between that viewport and the page.

   The background must stay on the element that scrolls: no transform,
   filter or will-change may be introduced on this section or any
   ancestor, since those make a fixed background fall back to scrolling
   with the box and the effect silently dies. */
.nx-challenge--seq {
    overflow: visible;
    /* undo */
    /* Named so the heading wash can reach back up to the section's top
       edge by cancelling exactly this much padding. */
    --nx-challenge-pad: clamp(4.5rem, 8vw, 7rem);
    padding-block: var(--nx-challenge-pad);
    /* undo */
    background-image: var(--nx-challenge-bg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;
}

/* Guard for the rule above. A transform on this section makes it a
   containing block, at which point the fixed backdrop silently starts
   scrolling with the box. AOS is the likely source — its fade end state
   is transform: translateZ(0) — so this outranks AOS's own selector
   ([data-aos^=fade][data-aos^=fade].aos-animate, 0-3-0) by repeating
   the class to match that specificity and winning on load order. */
.nx-challenge--seq.nx-challenge--seq.nx-challenge--seq {
    transform: none;
}

/* The gap down to the cards is a margin, not padding, so the band's box
   hugs its text — the wash below is drawn on that box, and padding
   would stretch it down through the empty space to the cards. */
.nx-challenge--seq .nx-challenge__topband {
    width: auto;
    /* undo */
    left: auto;
    /* undo */
    transform: none;
    /* undo */
    background: none;
    /* undo */
    -webkit-mask-image: none;
    /* undo */
    mask-image: none;
    /* undo */
    padding-block: 0;
    /* undo */
    margin-bottom: clamp(4rem, 7vw, 6rem);
}

/* White wash behind the heading, so the type stays legible wherever the
   backdrop happens to sit — it is fixed, so what is behind the text
   changes as the page scrolls. It runs from the section's top edge (the
   negative top cancels the padding above it) down past the text. The
   band is a full-width block, so zero inline insets already span the
   section. The block insets are a matched pair, so the wash clears the
   text by the same distance below as above. Flush at the top where it
   meets the section boundary; the mask fades only the last stretch at
   the bottom, which would otherwise rule a hard line across the artwork.
   z-index is negative within the band's own stacking context, so it
   sits under the text but still above the section backdrop. */
.nx-challenge--seq .nx-challenge__topband::before {
    content: "";
    position: absolute;
    inset: calc(var(--nx-challenge-pad) * -1) 0;
    z-index: -1;
    pointer-events: none;
    /* Frosted glass: the blur softens the artwork behind the band, the
       white sits on top of it. The wash is lighter than it would be on
       its own — past roughly .6 the white swamps the blur and the panel
       goes flat. Browsers without backdrop-filter simply get the wash. */
    background: rgba(255, 255, 255, .5);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 88%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 88%, transparent 100%);
}

/* Cards drop out of the home page's five-column grid into one card per
   row, alternating sides down the column — see the nth-child rule
   below. justify-items sets the odd rows; the even ones override it.

   Each row is a viewport tall, so exactly one card is on screen at a
   time: the next only arrives once the one above has cleared the top.
   minmax, not a flat 100vh, so a card that outgrows the viewport (long
   copy, large text setting, a short landscape phone) pushes its own row
   taller instead of being cut off. The gap goes to zero — the rows
   already carry all the space there is — and the card sits centred in
   the empty height rather than at the top of it. */
.nx-challenge--seq .nx-stats {
    grid-template-columns: 1fr;
    /* undo */
    grid-auto-rows: minmax(100vh, auto);
    align-items: center;
    gap: 0;
    justify-items: start;
}

/* Mobile browsers count the collapsing address bar in vh, so a 100vh row
   is taller than what is actually on screen and the card drifts. svh is
   the stable height; the rule above stands where it is unsupported. */
@supports (height: 100svh) {
    .nx-challenge--seq .nx-stats {
        grid-auto-rows: minmax(100svh, auto);
    }
}

/* The slot is the grid item; the card inside it is just the panel. The
   split exists because both need a transform and one element cannot hold
   two: the slot centres itself, the card carries the AOS slide.

   Sticky holds the card at the middle of the screen for the length of its
   row, so it rises into the centre, stays there while the row scrolls,
   and only leaves when the row runs out and the next one takes over —
   rather than drifting past the centre in one continuous move. top plus
   the -50% pullback is what puts the middle of the card on the middle of
   the viewport; a percentage in top would resolve against the row, not
   the card, so it has to be done with the transform.

   The width is held short of the container so the backdrop stays visible
   beside the column instead of being papered over by full-bleed rows, and
   is fixed rather than shrink-wrapped so every card reads the same width
   regardless of how much its own copy runs. */
.nx-challenge--seq .nx-stats .nx-stat__slot {
    position: sticky;
    top: 50vh;
    transform: translateY(-50%);
    width: min(40rem, 100%);
}

/* Card and type styling is restated in full, not inherited: the home
   page's cards are translucent and blurred over its video, which is
   wrong over still artwork, and its figure sits alone rather than
   inline in a sentence.

   min-height gives every card the same floor regardless of copy length —
   Women's Health carries two blocks, Men's Health one short paragraph, and
   without this the column would visibly step in height card to card. A
   shorter card's content is then centred through that floor rather than
   pinned to the top (see align-items on the layout rule below), which is
   what makes the leftover space read as intentional breathing room instead
   of an accident of layout. It is a floor, not a cap: a card whose own
   copy runs past it is left to grow rather than clipped, so nothing is
   ever cut off to force a match. */
.nx-challenge--seq .nx-stats .nx-stat {
    grid-column: 1;
    /* undo */
    grid-row: auto;
    /* undo */
    width: 100%;
    min-height: 25rem;
    background: #fff;
    /* undo */
    backdrop-filter: none;
    /* undo */
    border-color: var(--accent-300);
    padding: clamp(1.6rem, 2.6vw, 2.4rem);
    box-shadow: 0 16px 38px rgba(9, 20, 36, .12);
    box-sizing: border-box;
}

/* The rise, taken from the reference section's own numbers: the card waits
   300px below its resting place and slides up into it over .6s, transform
   only — no fade. A solid card arriving from below reads on its own, and
   fading as well would only blur the moment it lands.

   Both states are gated on .is-reveal, which challengeReveal() in main.js
   puts on the section only once it has an observer running — the same
   opt-in shape the rest of this file uses. Nothing else turns it on, so a
   page without JS never pushes the cards down in the first place rather
   than stranding them 300px low with no way back up.

   .is-in is then flipped per card as it reaches the middle of the screen.
   The classes, not a scroll formula, are what decide: CSS holds the two
   end states and nothing else. */
.nx-challenge--seq.is-reveal .nx-stats .nx-stat {
    transform: translateY(var(--nx-stat-rise, 300px));
    transition: transform .6s ease;
}

/* .is-in lands on the slot, not the card: the slot is what the observer
   watches, because the card's pushed-down state puts it outside the centre
   band by definition. See challengeReveal() in main.js. */
.nx-challenge--seq.is-reveal .nx-stats .nx-stat__slot.is-in .nx-stat {
    transform: translateY(0);
}

/* Every second row swings to the right edge, so the column zigzags and
   the backdrop is uncovered on alternating sides rather than always the
   same one. Text stays left-aligned inside the card either way — only
   the card moves. Below the phone breakpoint the cards go full width
   and there is no room left to swing into, so this quietly stops
   mattering rather than needing to be undone. */
.nx-challenge--seq .nx-stats .nx-stat__slot:nth-child(even) {
    justify-self: end;
}

/* Icon and figure in a fixed-width rail, body copy beside it. The rail is
   sized off the widest figure ("1 in 6", "10-40") rather than left to
   shrink-wrap, so every card's text starts on the same line down the
   column instead of stepping in and out as the figures change width.

   align-items: center is doing double duty. Within the pair it keeps a
   short figure lined up with the first line of body text rather than its
   full paragraph. And because the container's min-height stretches this
   single implicit row to fill the card (align-content: normal computes to
   stretch in Grid), centring here is also what centres the whole
   media+body pair vertically through a card that is taller than its own
   content — the effect the min-height rule above depends on. */
.nx-challenge--seq .nx-stats .nx-stat {
    display: grid;
    grid-template-columns: minmax(0, 7.5rem) minmax(0, 1fr);
    align-items: center;
    gap: clamp(1rem, 2.4vw, 2rem);
}

.nx-challenge--seq .nx-stat__media {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    text-align: center;
}

.nx-challenge--seq .nx-stat__icon {
    font-size: 1.6rem;
    color: var(--primary);
    line-height: 1;
}

.nx-challenge--seq .nx-stat__figure {
    color: var(--heading);
    line-height: 1.1;
    margin: 0;
    white-space: nowrap;
}

.nx-challenge--seq .nx-stat__cat {
    color: var(--primary-700);
    margin: 0 0 .5rem;
    line-height: 1.3;
    text-transform: none;
    /* undo */
    letter-spacing: normal;
    /* undo */
}

/* Sub-heading above a block. Only the two-block card has these, so the
   first one sits tight under the category and later ones open a gap to
   separate themselves from the paragraph before. */
.nx-challenge--seq .nx-stat__lead {
    color: var(--primary-700);
    line-height: 1.3;
    margin: 1.15rem 0 .2rem;
}

.nx-challenge--seq .nx-stat__body>.nx-stat__lead:first-of-type {
    margin-top: 0;
}

.nx-challenge--seq .nx-stat__text {
    line-height: 1.6;
    margin: 0;
    /* undo */
    color: var(--primary-700);
}

.nx-challenge--seq .nx-stat__text+.nx-stat__text {
    margin-top: .7rem;
}

.nx-challenge--seq .nx-stat__text strong {
    font-weight: 700;
    color: var(--heading);
}

/* Citation markers. Superscript on its own drags the line box open and
   makes the paragraph's leading uneven, so the vertical shift is done
   with position instead — see the line-height: 0 trick's usual failure
   mode of clipping descenders. */
.nx-cite {
    font-size: .62em;
    font-weight: 700;
    line-height: 0;
    position: relative;
    top: -.55em;
    margin-left: .1em;
    vertical-align: baseline;
    color: var(--accent);
}

/* Checks */
.nx-checks {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.3rem;
}

.nx-check {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 2rem 1.6rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-check:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
}

.nx-check__num {
    position: absolute;
    top: 1.3rem;
    right: 1.5rem;
    font-size: 2.4rem;
    color: var(--line-2);
    line-height: 1;
}

.nx-check__icon {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--primary-050), #fff);
    color: var(--primary-700);
    font-size: 1.35rem;
    margin-bottom: 1.1rem;
    box-shadow: var(--shadow-sm);
}

.nx-check h3 {
    margin-bottom: .5rem;
}

.nx-check p {
    color: var(--muted);
    margin: 0;
}

.nx-checks--dark .nx-check {
    background: rgba(255, 255, 255, .04);
    border-color: rgba(255, 255, 255, .1);
}

.nx-checks--dark .nx-check h3 {
    color: #fff;
}

.nx-checks--dark .nx-check p {
    color: #BCC7D5;
}

.nx-checks--dark .nx-check__num {
    color: rgba(255, 255, 255, .14);
}

.nx-checks--dark .nx-check__icon {
    background: rgba(22, 67, 121, .2);
    color: #8FBBEC;
}

.nx-check--detail .nx-check__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.nx-check--detail .nx-check__num {
    position: static;
}

.nx-standard__note {
    max-width: 54rem;
    margin: 2.8rem auto 0;
    text-align: center;

    color: var(--primary-700);
}

/* Therapeutic area cards — photo over a tall off-white footer, the name
   pinned to its top and a plus mark pinned to its bottom-right, with the
   space between left open rather than filled. All six sit in a single
   row, so a card is a sixth of the container's width; the footer's fixed
   aspect ratio below is what keeps the empty space proportional to that
   width instead of needing a fixed pixel height that would go wrong at
   other widths.

   align-items: start (not the grid default of stretch) is what makes the
   stagger below possible: stretch would absorb each card's margin-top by
   shrinking the card to fit, so nothing would visibly move. It also means
   there is no second row to collide with — safe to reach for whichever
   offset actually matches the reference, without a row-gap budget to
   protect. */
/* A little extra room under the lead paragraph before the area cards
   start, on top of .nx-head's own margin-bottom above. Scoped to this
   page's intro rather than added to .nx-lead itself, so every other
   page using that class is untouched. */
#standard-intro .nx-lead {
    padding-bottom: clamp(5rem, 2.5vw, 1.8rem);
}

.nx-areacards {
    --nx-area-offset: clamp(.9rem, 1.8vw, 1.6rem);
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: start;
    gap: 1.1rem;
}

/* One row of six is a plain alternation — odd cards down, even cards up
   — with none of the column-vs-row-position problem a wrapped grid would
   raise, since there is only ever one row for a column position to belong
   to. */
.nx-areacards .nx-areacard:nth-child(odd) {
    margin-top: var(--nx-area-offset);
}

.nx-areacards .nx-areacard:nth-child(even) {
    margin-top: calc(-1 * var(--nx-area-offset));
}

.nx-areacard {
    display: block;
    border-radius: var(--r);
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: var(--shadow-sm);
    transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}

.nx-areacard:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
    border-color: var(--accent-300);
}

.nx-areacard__img {
    display: block;
    aspect-ratio: 4 / 3;
    background-color: var(--primary-050);
    background-size: cover;
    background-position: center;
    transition: transform .5s ease;
}

.nx-areacard:hover .nx-areacard__img {
    transform: scale(1.04);
}

/* Title and description stack together at the top; the plus is pushed to
   the bottom edge by its own margin-top: auto rather than by
   justify-content: space-between, since that would have spread three
   children evenly and floated the description away from the title it
   belongs under. Whatever room is left between the text and the plus is
   exactly the empty space the fixed aspect-ratio below was built to
   hold — a short card (little detail text) gets more of it, a long one
   less, and the plus stays flush at the bottom of every card either way. */
.nx-areacard__foot {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* A floor, not a fixed ratio: title + description is now variable-length
       copy that can wrap to more lines at the narrower widths six columns
       produce, and a fixed aspect-ratio here would have clipped a card
       whose text needed more room than that ratio allows. Short cards still
       get the same tall, mostly-empty footer as before; a longer one is
       simply allowed to grow past the floor instead of being cut off. */
    min-height: 11rem;
    padding: 1.4rem 1.5rem;
}

.nx-areacard__title {
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--heading);
}

.nx-areacard__text {
    font-size: .85rem;
    line-height: 1.5;
    color: var(--muted);
    margin-top: .5rem;
}

.nx-areacard__plus {
    align-self: flex-end;
    margin-top: auto;
    width: 2.1rem;
    height: 2.1rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--primary-700);
    font-size: .85rem;
    transition: background var(--t), color var(--t), transform var(--t);
}

.nx-areacard:hover .nx-areacard__plus {
    background: var(--primary);
    color: #fff;
    transform: rotate(90deg);
}

/* Checkpoints, alternating image/text rows — one outer border, a hairline
   divider between rows, no divider after the last one. Reuses the same
   border approach as .nx-checkgrid below (a border owned by the container
   plus one edge per row) but for a single full-width column instead of a
   3-up grid, so it only ever needs a bottom edge per item. */
.nx-ptrows {
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
}

.nx-ptrow {
    display: flex;
    align-items: stretch;
    gap: clamp(1.6rem, 4vw, 3.5rem);
    padding: clamp(1.8rem, 3.5vw, 3rem);
    /* Text alone would only be a few lines tall; this floors the row
       height so the bled photo reads as a proper banner, not a sliver
       that happens to match whichever row has the least copy. */
    min-height: clamp(18rem, 32vw, 24rem);
}

.nx-ptrow:not(:last-child) {
    border-bottom: 1px solid var(--line);
}

/* Odd rows (1st, 3rd, 5th child) keep source order — text, then image, so
   the image lands on the right. Even rows reverse the visual order only;
   the markup stays text-first so a screen reader always hears the title
   and detail before it hears about the photo, regardless of which side
   that photo is sitting on. */
.nx-ptrow:nth-child(even) {
    flex-direction: row-reverse;
}

.nx-ptrow__text {
    flex: 1 1 50%;
    min-width: 0;
}

.nx-ptrow__icon {
    display: block;
    font-size: 1.4rem;
    color: var(--primary);
    margin-bottom: .9rem;
}

.nx-ptrow__text h3 {
    margin: 0 0 .6rem;
    color: var(--heading);
}

.nx-ptrow__text p {
    line-height: 1.65;
    color: var(--muted);
    margin: 0;
}

.nx-ptrow__text p+p {
    margin-top: .6rem;
}

.nx-ptrow__note {
    color: var(--primary-700) !important;
    margin-top: .7rem !important;
}

/* Bled to the row's own edges: the negative margins exactly cancel the
   row's padding, so the photo's edge lands flush on the row's top,
   bottom, and outer side (the container border, or the hairline divider
   between rows) instead of floating inside it. Height comes from
   align-items:stretch on the row rather than aspect-ratio, since the
   box is now sized by the row, not by its own width. border-radius is
   left at 0 — .nx-ptrows' own border-radius + overflow:hidden clips the
   first/last row's photo to match the card's outer rounded corners. */
.nx-ptrow__img {
    flex: 0 0 clamp(14rem, 42%, 22rem);
    background-color: var(--primary-050);
    background-size: cover;
    background-position: center;
    margin-block: calc(-1 * clamp(1.8rem, 3.5vw, 3rem));
    margin-inline-end: calc(-1 * clamp(1.8rem, 3.5vw, 3rem));
}

.nx-ptrow:nth-child(even) .nx-ptrow__img {
    margin-inline-end: 0;
    margin-inline-start: calc(-1 * clamp(1.8rem, 3.5vw, 3rem));
}

/* Checkpoints, hairline variant — a plain bordered table rather than the
   floating, shadowed cards .nx-check/.nx-checks use elsewhere. Margin-top
   separates it from the area cards above; it does not use .nx-head's
   spacing scale since there is no heading here to hang that spacing off. */
.nx-checkgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: clamp(2.5rem, 5vw, 4rem);
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.nx-checkgrid__item {
    padding: clamp(1.4rem, 2.4vw, 1.9rem);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    transition: background var(--t);
}

.nx-checkgrid__item:hover {
    background: var(--primary-050);
}

.nx-checkgrid__icon {
    display: block;
    font-size: 1.5rem;
    color: var(--primary);
    margin-bottom: 1.1rem;
}

.nx-checkgrid__item h3 {
    color: var(--heading);
    margin: 0 0 .4rem;
}

.nx-checkgrid__item p {
    line-height: 1.5;
    color: var(--muted);
    margin: 0;
}

.nx-standard__note--light {
    color: var(--accent-300);
}

/* Steps (home science) */
.nx-steps {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.2rem;
    margin-top: 1rem;
}

.nx-steps__line {
    position: absolute;
    top: 34px;
    left: 8%;
    right: 8%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .25), transparent);
}

.nx-step {
    position: relative;
    text-align: center;
    padding: 0 .5rem;
}

.nx-step__num {
    width: 68px;
    height: 68px;
    margin: 0 auto 1.2rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 1.4rem;
    color: #fff;
    background: linear-gradient(135deg, var(--ink-3), var(--ink));
    border: 1.5px solid rgba(255, 255, 255, .2);
    box-shadow: 0 0 0 8px rgba(22, 67, 121, .08);
    position: relative;
    z-index: 1;
    transition: transform var(--t), border-color var(--t);
}

.nx-step:hover .nx-step__num {
    transform: translateY(-5px);
    border-color: var(--accent);
}

.nx-step h3 {
    color: #fff;
    margin-bottom: .4rem;
}

.nx-step p {
    color: #BCC7D5;
    margin: 0;
}

.nx-science__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 1.5rem;
    margin-top: 3.2rem;
    text-align: left;
}

.nx-science__cta p {

    color: #fff;
    margin: 0;
    max-width: 30rem;
}

/* Portfolio (home) */
.nx-portfolio.nx-section--paper {
    background: var(--surface);
}

.nx-portfolio__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.25fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 4rem);
}

.nx-portfolio__copy {
    max-width: 34rem;
}

.nx-portfolio__copy--center {
    margin-inline: auto;
    text-align: center;
}

@media (max-width: 900px) {
    .nx-portfolio__grid {
        grid-template-columns: 1fr;
    }

    .nx-portfolio__copy {
        max-width: none;
    }
}

/* Brand cards as a responsive carousel */
.nx-portfolio__swiper {
    width: 100%;
    padding-bottom: 3rem;
    overflow: hidden;
}

.nx-portfolio__swiper .swiper-slide {
    display: flex;
}

.nx-portfolio__swiper .nx-brandcard {
    width: 100%;
}

.nx-portfolio__swiper .swiper-pagination {
    bottom: 0;
}

.nx-portfolio__swiper .swiper-pagination-bullet {
    background: var(--line-2);
    opacity: 1;
}

.nx-portfolio__swiper .swiper-pagination-bullet-active {
    background: var(--primary);
}

.nx-portfolio__copy .nx-title {
    color: var(--heading);
}

.nx-portfolio__copy .nx-lead {

    color: var(--heading);
}

.nx-portfolio__copy .nx-muted {
    color: var(--heading);
}

.nx-portfolio__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    align-items: stretch;
    max-width: 920px;
    margin-inline: auto;
}

/* Coloured brand + medical cards */
.nx-brandcard {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: clamp(400px, 32vw, 480px);
    box-shadow: var(--shadow);
}

.nx-brandcard--nuvox {
    background: var(--primary);
}

.nx-brandcard--topup {
    border: 1px solid #E08A2C;
    background: #E08A2C;
}

.nx-brandcard--med {
    border: 1px solid var(--accent);
    background: var(--accent);
}

/* Logo area */
.nx-brandcard__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.6rem;
    min-height: 104px;
}

.nx-brandcard--topup .nx-brandcard__logo {
    background: #fff;
}

.nx-brandcard__logo img {
    max-width: 78%;
    max-height: 62px;
    object-fit: contain;
}

.nx-brandcard--nuvox .nx-brandcard__logo img {
    max-width: 70%;
    max-height: 88px;
}

/* Body */
.nx-brandcard__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 1.5rem 1.6rem 1.8rem;
}

.nx-brandcard__text {
    font-size: clamp(1.15rem, 1.5vw, 1.4rem);
    font-weight: 600;
    line-height: 1.45;
    margin: .2rem 0 0;
}

/* "Learn More" as a themed CTA button */
.nx-brandcard__link {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: auto;
    padding: .7rem 1.35rem;
    border-radius: var(--pill);
    background: #fff;
    font-weight: 700;
    font-size: .92rem;
    box-shadow: 0 8px 20px rgba(9, 20, 36, .16);
    transition: transform var(--t), box-shadow var(--t);
}

.nx-brandcard__link i {
    font-size: .8rem;
    transition: transform var(--t);
}

.nx-brandcard__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(9, 20, 36, .22);
}

.nx-brandcard__link:hover i {
    transform: translateX(4px);
}

/* Body text keeps the theme colour; the CTA text uses the element's theme colour */
.nx-brandcard--nuvox .nx-brandcard__text {
    color: #fff;
}

.nx-brandcard--nuvox .nx-brandcard__link {
    color: var(--primary);
}

.nx-brandcard--topup .nx-brandcard__text {
    color: #3A2408;
}

.nx-brandcard--topup .nx-brandcard__link {
    color: #B4600E;
}

/* Medical / prescribed card */
.nx-brandcard--med {
    position: relative;
    padding-top: 1.5rem;
    overflow: hidden;
}

.nx-brandcard__medhead {
    position: relative;
    padding: 0 1.5rem;
    z-index: 2;
}

.nx-brandcard__medhead h3 {
    color: #fff;
    line-height: 1.2;
    margin: 0 0 1rem;
}

.nx-brandcard__tata {
    display: inline-flex;
    align-items: baseline;
    gap: .1rem;
    background: #fff;
    border-radius: 8px;
    padding: .45rem .8rem;
    font-weight: 800;
    font-size: 1.15rem;
    color: #2B2B2B;
    letter-spacing: .01em;
}

.nx-brandcard__tata b {
    color: var(--accent);
}

.nx-brandcard__doctor {
    position: absolute;
    right: 0;
    bottom: 0;
    height: 100%;
    display: flex;
    align-items: flex-end;
    z-index: 1;
}

.nx-brandcard__doctor img {
    height: 100%;
    width: auto;
    max-width: none;
    object-fit: contain;
    object-position: bottom right;
    display: block;
}

/* Quality — CSS-only tabbed showcase (home) */
.nx-quality.nx-section--tint {
    background: var(--surface);
}

.nx-quality__grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(2rem, 5vw, 3.5rem);
    align-items: center;
}

.nx-quality__intro {
    margin-bottom: 0;
}

.nx-qualitytabs {
    min-width: 0;
}

.nx-qualitytabs__radio {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nx-qualitytabs__card {
    display: grid;
    grid-template-columns: minmax(200px, 260px) 1fr;
    background: var(--surface);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    min-height: 320px;
}

.nx-qualitytabs__nav {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.6rem;
    padding: 2.4rem 2rem;
    border-right: 1px solid var(--line);
}

.nx-qualitytabs__navitem {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--muted);
    cursor: pointer;
    transition: color var(--t);
}

.nx-qualitytabs__navitem:hover {
    color: var(--heading);
}

.nx-qualitytabs__dot {
    width: 8px;
    height: 8px;
    flex: none;
    margin-top: .3rem;
    border-radius: 50%;
    background: var(--line);
    transition: background var(--t), transform var(--t);
}

.nx-qualitytabs__panels {
    position: relative;
    padding: 2.8rem 3rem;
    display: flex;
    align-items: center;
}

.nx-qualitytabs__panel {
    display: none;
    animation: nx-fade-in .4s ease;
}

.nx-qualitytabs__panel h3 {
    line-height: 1.15;
    color: var(--heading);
    margin: 0 0 1rem;
}

.nx-qualitytabs__panel p {
    color: var(--muted);
    line-height: 1.6;
    max-width: 34rem;
    margin: 0;
}

@keyframes nx-fade-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#qtab-0:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="0"],
#qtab-1:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="1"],
#qtab-2:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="2"],
#qtab-3:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="3"],
#qtab-4:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="4"],
#qtab-5:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="5"] {
    color: var(--heading);
}

#qtab-0:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="0"] .nx-qualitytabs__dot,
#qtab-1:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="1"] .nx-qualitytabs__dot,
#qtab-2:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="2"] .nx-qualitytabs__dot,
#qtab-3:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="3"] .nx-qualitytabs__dot,
#qtab-4:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="4"] .nx-qualitytabs__dot,
#qtab-5:checked~.nx-qualitytabs__card .nx-qualitytabs__navitem[data-tab="5"] .nx-qualitytabs__dot {
    background: var(--primary);
    transform: scale(1.3);
}

#qtab-0:checked~.nx-qualitytabs__card .nx-qualitytabs__panels .nx-qualitytabs__panel[data-panel="0"],
#qtab-1:checked~.nx-qualitytabs__card .nx-qualitytabs__panels .nx-qualitytabs__panel[data-panel="1"],
#qtab-2:checked~.nx-qualitytabs__card .nx-qualitytabs__panels .nx-qualitytabs__panel[data-panel="2"],
#qtab-3:checked~.nx-qualitytabs__card .nx-qualitytabs__panels .nx-qualitytabs__panel[data-panel="3"],
#qtab-4:checked~.nx-qualitytabs__card .nx-qualitytabs__panels .nx-qualitytabs__panel[data-panel="4"],
#qtab-5:checked~.nx-qualitytabs__card .nx-qualitytabs__panels .nx-qualitytabs__panel[data-panel="5"] {
    display: block;
}

.nx-quality__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 1.5rem;
    margin-top: 2.8rem;
}

.nx-quality__cta p {

    color: var(--heading);
    margin: 0;
    max-width: 30rem;
}

/* Quality flow */
.nx-flow {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}

.nx-flow__item {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--pill);
    padding: .8rem 1.4rem;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t), border-color var(--t);
}

.nx-flow__item:hover {
    transform: translateX(8px);
    border-color: var(--primary);
}

.nx-flow__dot {
    width: 36px;
    height: 36px;
    flex: none;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--primary), var(--primary-700));
    color: #fff;
    font-weight: 700;
}

.nx-flow__label {
    font-weight: 600;
    color: var(--heading);
}

/* Reach marquee */
.nx-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    margin: 3rem 0;
}

.nx-marquee__track {
    display: flex;
    gap: 3rem;
    width: max-content;
    animation: nx-marquee 26s linear infinite;
}

.nx-marquee:hover .nx-marquee__track {
    animation-play-state: paused;
}

.nx-marquee__item {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    font-size: 1.6rem;
    color: rgba(255, 255, 255, .8);
    white-space: nowrap;
}

.nx-marquee__item i {
    color: var(--accent-300);
    font-size: 1rem;
}

.nx-reach {
    position: relative;
    overflow: hidden;
}

.nx-reach .nx-section__bg img {
    opacity: 1;
}

.nx-reach .nx-container {
    position: relative;
    z-index: 2;
}

.nx-reach__head {
    max-width: 50%;
    text-align: left;
    color: #000;
}

.nx-reach__head .nx-title,
.nx-reach__head .nx-lead,
.nx-reach__head .nx-muted {
    color: #000;
}

.nx-reach__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    text-align: center;
}

.nx-reach__cta--left {
    align-items: flex-start;
    text-align: left;
}

.nx-reach__closing {

    font-size: 1.4rem;
    color: #fff;
    margin: 0;
}

/* Values */
.nx-vals {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.3rem;
}

.nx-val {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 2rem 1.7rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-val:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
}

.nx-val__icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-size: 1.4rem;
    background: linear-gradient(135deg, var(--primary-050), #fff);
    color: var(--primary-700);
    margin-bottom: 1.2rem;
    box-shadow: var(--shadow-sm);
}

.nx-val h3 {
    margin-bottom: .5rem;
}

.nx-val__tag {
    font-weight: 600;
    color: var(--heading);
    margin: 0 0 .6rem;
}

.nx-val__text {
    color: var(--muted);
    font-size: .95rem;
    margin: 0 0 .8rem;
}

.nx-val__closing {

    color: var(--primary-700);
    margin: 0;
}

.nx-vals--dark .nx-val {
    background: rgba(255, 255, 255, .04);
    border-color: rgba(255, 255, 255, .1);
}

.nx-vals--dark .nx-val h3 {
    color: #fff;
}

.nx-vals--dark .nx-val__tag {
    color: #EDF1F6;
}

.nx-vals--dark .nx-val__text {
    color: #A7B4C6;
}

.nx-vals--dark .nx-val__closing {
    color: var(--accent-300);
}

.nx-vals--dark .nx-val__icon {
    background: rgba(22, 67, 121, .18);
    color: #8FBBEC;
}

.nx-values .nx-center {
    margin-top: 2.6rem;
}

/* Values — intro card row (flippable photo / detail cards) */
.nx-valcards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.1rem;
    margin: 3rem 0 0;
    perspective: 1600px;
}

.nx-valflip {
    position: relative;
    flex: 0 1 calc(33.333% - 1.1rem * 2 / 3);
    max-width: calc(33.333% - 1.1rem * 2 / 3);
    min-height: 380px;
    cursor: pointer;
}

.nx-valflip__inner {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 380px;
    transition: transform .7s var(--ease);
    transform-style: preserve-3d;
}

.nx-valflip:hover .nx-valflip__inner,
.nx-valflip:focus-visible .nx-valflip__inner,
.nx-valflip.is-flipped .nx-valflip__inner {
    transform: rotateY(180deg);
}

.nx-valflip__face {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border: 1px solid var(--primary-100);
    box-shadow: var(--shadow-sm);
}

.nx-valflip__front {
    margin: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    gap: 0;
}

.nx-valflip__front img {
    width: 100%;
    flex: 1;
    min-height: 0;
    object-fit: cover;
    box-shadow: var(--shadow-sm);
}

.nx-valflip__front figcaption {
    flex: 0 0 auto;
    text-align: center;
    font-weight: 600;
    color: var(--primary-700);
    font-size: .92rem;
    line-height: 1.35;
    padding: .7rem .6rem;
    border: 1px solid var(--primary-100);
    background: var(--surface);
}

.nx-valflip__back {
    transform: rotateY(180deg);
    background: #fff;
    border: none;
    color: #000;
    justify-content: center;
    padding: 1.8rem;
    text-align: center;
}

.nx-valflip__tag {
    color: #fff;
    margin: 0 0 .8rem;
}

.nx-valflip__text {
    line-height: 1.55;
    color: rgba(255, 255, 255, .9);
    margin: 0 0 .8rem;
}

/* Evidence copy sets the card height so long references are never clipped. */
.nx-evidence-focus .nx-valflip {
    container-type: inline-size;
}

.nx-evidence-focus .nx-valflip__inner {
    display: grid;
}

.nx-evidence-focus .nx-valflip__back {
    position: relative;
    inset: auto;
    min-height: 380px;
    padding: clamp(1rem, 5cqi, 1.5rem);
    overflow: visible;
}

.nx-evidence-focus .nx-valflip__tag {
    font-size: clamp(1.125rem, 5cqi, 1.35rem);
    line-height: 1.3;
    color: var(--ink);
}

.nx-evidence-focus .nx-valflip__text {
    font-size: clamp(.875rem, 4cqi, 1rem);
    line-height: 1.5;
    color: var(--text);
    margin: 0;
}

.nx-valflip__closing {

    color: var(--accent-300);
    margin: 0;
}

@media (max-width: 900px) {
    .nx-valflip {
        flex: 0 1 calc(50% - .55rem);
        max-width: calc(50% - .55rem);
    }
}

@media (max-width: 560px) {
    .nx-valflip {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

/* Values — "Where Our Values Become Action" photo section */
.nx-valuesaction {
    position: relative;
    overflow: hidden;
    min-height: 34rem;
    display: flex;
    align-items: center;
}

.nx-valuesaction .nx-section__bg img {
    object-fit: cover;
    object-position: right center;
    opacity: 1;
}

.nx-valuesaction .nx-container {
    position: relative;
    z-index: 2;
}

.nx-valuesaction__head {
    max-width: 46%;
}

@media (max-width: 900px) {
    .nx-valuesaction__head {
        max-width: 100%;
    }
}

.nx-reachexpand {
    position: relative;
    overflow: hidden;
    min-height: 30rem;
    display: flex;
    align-items: center;
}

.nx-reachexpand .nx-section__bg img {
    object-fit: cover;
    object-position: right center;
    opacity: 1;
}

.nx-reachexpand .nx-container {
    position: relative;
    z-index: 2;
}

.nx-reachexpand__head {
    max-width: 46%;
}

.nx-reachexpand__head .nx-title,
.nx-reachexpand__head .nx-lead {
    color: #000;
}

.nx-reachexpand__text p {
    margin: 0;
}

.nx-reachexpand__text p+p {
    margin-top: .6rem;
}

.nx-reachexpand__closing {
    font-weight: 700;
    font-size: 1.3rem;
    line-height: 1.35;
    color: var(--accent);
    margin: 1.3rem 0 0;
}

@media (max-width: 900px) {
    .nx-reachexpand__head {
        max-width: 100%;
    }
}

/* Resource links */
.nx-reslinks__title {
    margin: 0 0 1.2rem;
}

.nx-reslinks {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

.nx-reslinks__item {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    padding: 1rem 1.3rem;
    font-weight: 600;
    font-size: .95rem;
    color: var(--heading);
    transition: border-color var(--t), color var(--t);
}

.nx-reslinks__item:hover {
    border-color: var(--primary);
    color: var(--primary-700);
}

.nx-reslinks__item--featured {
    grid-row: span 2;
    border-radius: var(--r);
    border-width: 1.5px;
    font-size: 1.05rem;
}

@media (max-width: 900px) {
    .nx-reslinks {
        grid-template-columns: repeat(2, 1fr);
    }

    .nx-reslinks__item--featured {
        grid-row: auto;
    }
}

@media (max-width: 520px) {
    .nx-reslinks {
        grid-template-columns: 1fr;
    }
}

/* Newsroom + careers */
.nx-newsgrid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.nx-news__list {
    display: grid;
    gap: .9rem;
}

.nx-news__item {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 1.3rem 1.6rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-news__item:hover {
    transform: translateX(8px);
    box-shadow: var(--shadow);
}

.nx-news__item p {
    margin: 0;
    color: var(--text);
    flex: 1;
}

.nx-news__item>i {
    color: var(--primary);
    transition: transform var(--t);
}

.nx-news__item:hover>i {
    transform: translateX(5px);
}

.nx-careers {
    margin-top: 3rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2rem, 4vw, 3.4rem);
    color: #fff;
    box-shadow: var(--shadow-primary);
    position: relative;
    overflow: hidden;
}

.nx-careers--left {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    max-width: 50%;
    text-align: left;
}

.nx-careers::after {
    content: "";
    position: absolute;
    top: -40%;
    right: -10%;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, .18), transparent 65%);
}

.nx-news--photo {
    position: relative;
    background: url('../images/sections/career.webp') center / cover no-repeat;
}

.nx-news--photo .nx-careers {
    background: transparent;
    box-shadow: none;
}

.nx-news--photo .nx-careers::after {
    display: none;
}

.nx-careers__copy {
    position: relative;
    max-width: 40rem;
}

.nx-careers__closing {
    color: #000;
    margin-top: .6rem;
}

.nx-careers__title {
    color: #fff;
    margin-bottom: .6rem;
}

.nx-careers__copy p {
    color: rgba(255, 255, 255, .9);
    margin: 0;
}

.nx-news--photo .nx-careers__title {
    color: #000;
}

.nx-news--photo .nx-careers__copy p {
    color: var(--muted);
}

.nx-news--photo .nx-careers__closing {
    margin-top: 1.4rem;
}

.nx-careers--dark {
    background: linear-gradient(120deg, var(--ink-3), var(--ink));
    border: 1px solid rgba(255, 255, 255, .1);
}

/* 11. ------------------------------------------------- ABOUT */
.nx-quotecard {
    background: linear-gradient(150deg, var(--ink-3), var(--ink));
    color: #fff;
    border-radius: var(--r-lg);
    padding: clamp(2rem, 4vw, 3rem);
    position: relative;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.nx-quotecard::before {
    content: "“";
    position: absolute;
    top: -1rem;
    right: 1.5rem;
    font-size: 9rem;
    color: rgba(211, 35, 38, .2);
    line-height: 1;
}

.nx-quotecard__icon {
    width: 48px;
    height: 48px;
    color: var(--accent-300);
    margin-bottom: 1.4rem;
}

.nx-quotecard__text {
    font-size: clamp(1.4rem, 2.6vw, 1.9rem);

    line-height: 1.35;
    color: #fff;
    margin: 0;
    position: relative;
}

.nx-quotecard__by {
    color: #A7B4C6;
    margin: 1.4rem 0 0;
    font-size: .9rem;
    position: relative;
}

/* --- Vision / Mission tabs (About) --- */
.nx-vmtabs__radio {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nx-vmtabs__nav {
    display: flex;
    gap: 2.2rem;
    border-bottom: 1px solid var(--line);
    margin-bottom: 2.4rem;
}

.nx-vmtabs__navitem {
    display: inline-block;
    padding: 0 0 1.1rem;
    margin-bottom: -1px;
    font-size: clamp(1rem, 1.6vw, 1.2rem);
    font-weight: 600;
    color: var(--muted);
    border-bottom: 3px solid transparent;
    cursor: pointer;
    transition: color var(--t), border-color var(--t);
}

.nx-vmtabs__navitem:hover {
    color: var(--heading);
}

.nx-vmtabs__panel {
    display: none;
}

#vmtab-0:checked~.nx-vmtabs__panels [data-panel="0"],
#vmtab-1:checked~.nx-vmtabs__panels [data-panel="1"] {
    display: grid;
}

#vmtab-0:checked~.nx-vmtabs__nav [data-tab="0"],
#vmtab-1:checked~.nx-vmtabs__nav [data-tab="1"] {
    color: var(--heading);
    border-color: var(--primary);
}

.nx-vmtabs__panels [data-panel] {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(1.8rem, 4vw, 3.5rem);
    align-items: center;
}

.nx-vmtabs__media {
    overflow: hidden;
    aspect-ratio: 16 / 11;
}

.nx-vmtabs__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.nx-vmtabs__copy h3 {
    color: var(--heading);
    line-height: 1.15;
    margin: 0 0 1rem;
}

.nx-vmtabs__copy p {
    color: var(--text);
    line-height: 1.7;
    margin: 0;
}

@media (max-width: 720px) {
    .nx-vmtabs__panels [data-panel] {
        grid-template-columns: 1fr;
    }
}

.nx-story-section {
    overflow: hidden;
}

.nx-story-intro {
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.nx-story-intro .nx-head {
    margin-bottom: 1.5rem;
}

.nx-story-intro .nx-figure {
    box-shadow: none;
}

/* --- Story card: copy + three-video strip (About > Our Story) --- */
.nx-storycard {
    display: grid;
    grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
    overflow: hidden;
}

.nx-storycard__copy {
    padding: clamp(1.75rem, 3.5vw, 3rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.nx-storycard__title {
    margin: 0 0 1.1rem;
}

.nx-storycard__text {
    position: relative;
    max-height: 18rem;
    overflow: hidden;
    transition: max-height .45s var(--ease);
}

.nx-storycard.is-open .nx-storycard__text {
    max-height: 80rem;
}

.nx-storycard__text p {
    line-height: 1.6;
    color: var(--text);
    margin: 0 0 .9rem;
}

.nx-storycard__text p:last-child {
    margin-bottom: 0;
}

.nx-storycard__more {
    align-self: flex-start;
    margin-top: 1.4rem;
    padding: .8rem 1.5rem;
    border: 0;
    border-radius: var(--pill);
    background: linear-gradient(120deg, var(--accent), var(--accent-600));
    color: #fff;
    font-weight: 600;
    font-size: .95rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--shadow-accent);
    transition: transform var(--t), box-shadow var(--t);
}

.nx-storycard__more:hover {
    transform: translateY(-2px);
    box-shadow: 0 24px 50px rgba(211, 35, 38, .38);
}

.nx-storycard__media {
    display: flex;
    min-height: 100%;
}

.nx-storycard__panel {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
}

.nx-storycard__panel+.nx-storycard__panel {
    border-left: 2px solid #fff;
}

.nx-storycard__panel video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 900px) {
    .nx-storycard {
        grid-template-columns: 1fr;
    }

    .nx-storycard__media {
        min-height: 260px;
        order: -1;
    }
}

@media (max-width: 560px) {
    .nx-storycard__media {
        min-height: 200px;
    }
}

.nx-figure__scrim--fade-l {
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .7) 22%, rgba(255, 255, 255, 0) 45%);
}

.nx-partnership-section {
    overflow: hidden;
}

.nx-partnership-section .nx-section__bg {
    background-position: right center;
}

.nx-partnership-section .nx-section__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--paper) 0%, var(--paper) 38%, rgba(255, 255, 255, .55) 62%, rgba(255, 255, 255, 0) 100%);
}

.nx-partnership-section>.nx-container {
    position: relative;
    z-index: 1;
}

.nx-partnership-section .nx-split__copy {
    max-width: 42rem;
}

.nx-story {
    max-width: 45rem;
}

.nx-story__p {
    font-size: 1.12rem;
    color: var(--text);
    text-align: justify;
    text-justify: inter-word;
    margin: 0 0 1rem;
}

.nx-story__closing {
    max-width: 46rem;
    margin: 3rem auto 0;
    text-align: center;

    font-size: 1.35rem;
    color: var(--primary-700);
}

/* Certification / accreditation logos — auto-sliding marquee */
.nx-certmarquee {
    overflow: hidden;
    padding-top: clamp(2rem, 4vw, 3rem);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

.nx-certmarquee__track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: nx-certscroll 24s linear infinite;
}

.nx-certmarquee:hover .nx-certmarquee__track {
    animation-play-state: paused;
}

.nx-certmarquee__item {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-inline: clamp(2rem, 5vw, 5rem);
}

.nx-certmarquee__item img {
    height: clamp(88px, 9.5vw, 132px);
    width: auto;
    object-fit: contain;
    display: block;
}

@keyframes nx-certscroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .nx-certmarquee__track {
        animation: none;
    }
}

/* --- Diagonal timeline (About > Our Story) --- */
.nx-tl2 {
    position: relative;
    height: clamp(360px, 40vw, 460px);
    margin-top: 5rem;
}

/* Rising baseline the dots sit on */
.nx-tl2__rail {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 8px 14px rgba(9, 20, 36, .07));
}

/* Tapering grey road */
.nx-tl2__rail polygon {
    fill: #E7EAEF;
}

.nx-tl2__item {
    position: absolute;
    top: 3%;
    width: 25%;
    padding-left: 20px;
}

.nx-tl2__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin-bottom: .8rem;
}

.nx-tl2__label {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    font-size: .9rem;
    color: var(--muted);
    background: #EFEFF1;
    border: 1px solid var(--line-2);
    border-radius: var(--pill);
    padding: .42rem 1rem;
    white-space: nowrap;
}

.nx-tl2__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.nx-tl2__icon img {
    height: 40px;
    width: auto;
    max-width: 84px;
    object-fit: contain;
    display: block;
}

.nx-tl2__title {
    color: var(--heading);
    margin: 0 0 .55rem;
}

.nx-tl2__text {
    line-height: 1.55;
    color: var(--tl-gold);
    margin: 0;
}

/* Vertical stem + ring dot (positions set inline as % of the track) */
.nx-tl2__stem {
    position: absolute;
    width: 2px;
    background: var(--tl-c, var(--primary-700));
    transform: translateX(-50%);
    /* Above the dot's white fill so the line reaches the centre dot */
    z-index: 3;
}

.nx-tl2__dot {
    position: absolute;
    width: 50px;
    height: 25px;
    border-radius: 50%;
    background: #fff;
    /* Level horizontal ellipse lying on the line */
    border: 3px solid var(--tl-c, var(--primary-700));
    transform: translate(-50%, -50%);
    box-shadow: 0 6px 13px rgba(9, 20, 36, .13);
    z-index: 2;
}

/* Filled centre dot (matching oval) */
.nx-tl2__dot::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 17px;
    height: 10px;
    border-radius: 50%;
    background: var(--tl-c, var(--primary-700));
    transform: translate(-50%, -50%);
}

/* Per-milestone colour ramp: navy -> mauve -> red */
.nx-tl2__item--0,
.nx-tl2__stem--0,
.nx-tl2__dot--0,
.nx-tl2m__item--0 {
    --tl-c: var(--ink);
    /* Dark Navy #102B4E */
}

.nx-tl2__item--1,
.nx-tl2__stem--1,
.nx-tl2__dot--1,
.nx-tl2m__item--1 {
    --tl-c: var(--primary);
    /* Blue #234E87 */
}

.nx-tl2__item--2,
.nx-tl2__stem--2,
.nx-tl2__dot--2,
.nx-tl2m__item--2 {
    --tl-c: var(--accent);
}

/* --- Scroll reveal: road draws in, poles drop, dots pop, text rises --- */
.nx-tl2.js-anim .nx-tl2__rail {
    clip-path: inset(0 100% 0 0);
}

.nx-tl2.js-anim .nx-tl2__stem {
    transform: translateX(-50%) scaleY(0);
    transform-origin: top center;
}

.nx-tl2.js-anim .nx-tl2__dot {
    transform: translate(-50%, -50%) scale(0);
}

.nx-tl2.js-anim .nx-tl2__top,
.nx-tl2.js-anim .nx-tl2__title,
.nx-tl2.js-anim .nx-tl2__text {
    opacity: 0;
    transform: translateY(16px);
}

.nx-tl2.js-anim.is-inview .nx-tl2__rail {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.1s var(--ease);
}

.nx-tl2.js-anim.is-inview .nx-tl2__stem {
    transform: translateX(-50%) scaleY(1);
    transition: transform .7s var(--ease);
}

.nx-tl2.js-anim.is-inview .nx-tl2__dot {
    transform: translate(-50%, -50%) scale(1);
    transition: transform .5s cubic-bezier(.34, 1.56, .64, 1);
}

.nx-tl2.js-anim.is-inview .nx-tl2__top,
.nx-tl2.js-anim.is-inview .nx-tl2__title,
.nx-tl2.js-anim.is-inview .nx-tl2__text {
    opacity: 1;
    transform: none;
    transition: opacity .55s var(--ease), transform .55s var(--ease);
}

/* Stagger: poles drop, dots pop, and the text cascades (label -> title -> body) */
.nx-tl2.js-anim.is-inview .nx-tl2__stem--0 {
    transition-delay: .30s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__dot--0 {
    transition-delay: .75s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--0 .nx-tl2__top {
    transition-delay: .25s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--0 .nx-tl2__title {
    transition-delay: .38s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--0 .nx-tl2__text {
    transition-delay: .50s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__stem--1 {
    transition-delay: .50s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__dot--1 {
    transition-delay: .95s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--1 .nx-tl2__top {
    transition-delay: .45s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--1 .nx-tl2__title {
    transition-delay: .58s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--1 .nx-tl2__text {
    transition-delay: .70s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__stem--2 {
    transition-delay: .70s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__dot--2 {
    transition-delay: 1.15s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--2 .nx-tl2__top {
    transition-delay: .65s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--2 .nx-tl2__title {
    transition-delay: .78s;
}

.nx-tl2.js-anim.is-inview .nx-tl2__item--2 .nx-tl2__text {
    transition-delay: .90s;
}

@media (prefers-reduced-motion: reduce) {

    .nx-tl2.js-anim .nx-tl2__rail,
    .nx-tl2.js-anim .nx-tl2__stem,
    .nx-tl2.js-anim .nx-tl2__dot,
    .nx-tl2.js-anim .nx-tl2__top,
    .nx-tl2.js-anim .nx-tl2__title,
    .nx-tl2.js-anim .nx-tl2__text {
        clip-path: none !important;
        transform: none !important;
        opacity: 1 !important;
        transition: none !important;
    }

    /* keep the stem/dot base transforms intact */
    .nx-tl2.js-anim .nx-tl2__stem {
        transform: translateX(-50%) !important;
    }

    .nx-tl2.js-anim .nx-tl2__dot {
        transform: translate(-50%, -50%) !important;
    }
}

/* Stacked variant for small screens */
.nx-tl2m {
    display: none;
    list-style: none;
    margin: 2.75rem 0 0;
    padding: 0;
}

.nx-tl2m__item {
    position: relative;
    padding: 0 0 2rem 1.75rem;
    border-left: 2px solid var(--line);
}

.nx-tl2m__item:last-child {
    padding-bottom: 0;
    border-left-color: transparent;
}

.nx-tl2m__item::before {
    content: "";
    position: absolute;
    left: -9px;
    top: .35rem;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--tl-c, var(--primary-700));
}

/* Filled centre dot (bullseye) */
.nx-tl2m__item::after {
    content: "";
    position: absolute;
    left: -1px;
    top: calc(.35rem + 8px);
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--tl-c, var(--primary-700));
    transform: translate(-50%, -50%);
}

.nx-tl2m__top {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: .6rem;
}

.nx-tl2m__label {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    font-size: .9rem;
    color: var(--muted);
    background: #EFEFF1;
    border: 1px solid var(--line-2);
    border-radius: var(--pill);
    padding: .42rem 1rem;
    white-space: nowrap;
}

.nx-tl2m__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.nx-tl2m__icon img {
    height: 38px;
    width: auto;
    max-width: 80px;
    object-fit: contain;
    display: block;
}

.nx-tl2m__title {
    color: var(--heading);
    margin: 0 0 .4rem;
}

.nx-tl2m__text {
    line-height: 1.55;
    color: var(--tl-gold);
    margin: 0;
}

@media (max-width: 820px) {
    .nx-tl2 {
        display: none;
    }

    .nx-tl2m {
        display: block;
    }
}

.nx-leadership {
    position: relative;
    overflow: hidden;
}

/* Keep the molecule anchored to the right so it stays fully in frame */
.nx-leadership>.nx-section__bg {
    background-position: right center;
    background-repeat: no-repeat;
}

/* Bluish overlay (matches the hero veil, a touch deeper) */
.nx-leadership>.nx-section__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11, 34, 68, .68) 0%, rgba(11, 34, 68, .58) 45%, rgba(11, 34, 68, .76) 100%);
}

.nx-leadership>.nx-container {
    position: relative;
    z-index: 1;
}

/* Founders — heading + flip cards (redesign) */
.nx-leadhead {
    max-width: 34rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.nx-leadhead .nx-title {
    margin: 0 0 .8rem;
    color: #fff;
}

/* Sits under the title rather than above it — see the Leadership block in
   templates/section-about.php. */
.nx-leadhead__eyebrow {
    display: block;
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .78);
}

.nx-founders2 {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    max-width: 640px;
    perspective: 1600px;
}

.nx-fflip {
    position: relative;
    flex: 0 1 calc(50% - .75rem);
    max-width: calc(50% - .75rem);
    cursor: pointer;
    border-radius: var(--r-sm);
}

.nx-fflip:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 3px;
}

.nx-fflip__inner {
    position: relative;
    width: 100%;
    transition: transform .7s var(--ease);
    transform-style: preserve-3d;
}

.nx-fflip:hover .nx-fflip__inner,
.nx-fflip:focus-visible .nx-fflip__inner,
.nx-fflip.is-flipped .nx-fflip__inner {
    transform: rotateY(180deg);
}

/* The front face sits in normal flow so the photo's own ratio sets the card
   height; the back is overlaid on top of it. */
.nx-fflip__face {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border-radius: var(--r-sm);
    background: var(--surface);
    box-shadow: var(--shadow);
}

/* FRONT — photo + red name bar */
/* Matches the founder portraits' native 413x531 so the photo fills the card
   edge to edge with nothing cropped. */
.nx-fflip__photo {
    position: relative;
    flex: 0 0 auto;
    aspect-ratio: 413 / 531;
    background: #fff;
}

.nx-fflip__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

.nx-fflip__initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-weight: 700;
    font-size: 3rem;
    color: var(--primary);
    background: var(--primary-050);
}

.nx-fflip__bar {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .15rem;
    background: var(--accent);
    color: #fff;
    padding: .9rem 1.1rem 1rem;
    text-align: center;
}

.nx-fflip__name {
    font-weight: 700;
    font-size: 1.02rem;
    line-height: 1.2;
}

.nx-fflip__role {
    font-size: .82rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .88);
}

/* BACK — bio */
.nx-fflip__back {
    position: absolute;
    inset: 0;
    transform: rotateY(180deg);
    background: linear-gradient(155deg, var(--primary), var(--primary-700));
    color: #fff;
    justify-content: flex-start;
    padding: 1.6rem 1.5rem;
    overflow-y: auto;
}

.nx-fflip__backname {
    font-weight: 700;
    font-size: 1.15rem;
    margin-bottom: .5rem;
    padding-bottom: .6rem;
    border-bottom: 2px solid var(--accent-300);
}

.nx-fflip__bio {
    line-height: 1.6;
    color: rgba(255, 255, 255, .92);
    margin: .6rem 0 0;
}

@media (max-width: 600px) {
    .nx-founders2 {
        max-width: 100%;
    }

    .nx-fflip {
        flex: 0 1 100%;
        max-width: 320px;
        margin-inline: auto;
    }
}

.nx-founders {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.8rem;
}

.nx-founders--plain {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.nx-founder {
    display: flex;
    gap: 1.6rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 2rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-founder:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
}

.nx-founders--plain .nx-founder {
    display: block;
    background: none;
    border: none;
    padding: 0;
    max-width: 50rem;
    margin-inline: auto;
}

.nx-founders--plain .nx-founder:hover {
    transform: none;
    box-shadow: none;
}

.nx-founder__wrap::after {
    content: '';
    display: table;
    clear: both;
}

.nx-founder__wrap--left .nx-founder__portrait {
    float: left;
    margin: .2rem 1.6rem 1rem 0;
}

.nx-founder__wrap--right .nx-founder__portrait {
    float: right;
    margin: .2rem 0 1rem 1.6rem;
}

.nx-founder__portrait {
    position: relative;
    width: 92px;
    height: 92px;
    flex: none;
}

.nx-founders--plain .nx-founder__portrait {
    width: 250px;
    height: 250px;
}

.nx-founder__initials {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 1.8rem;
    color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--primary-700));
}


.nx-founder__role {
    color: var(--primary-700);
    font-weight: 600;
    margin: .2rem 0 .8rem;
}

.nx-founders--plain .nx-founder__role {
    font-weight: 500;
    font-size: .85rem;
    margin: .2rem 0 .9rem;
}

.nx-founder__bio {
    color: var(--muted);
    font-size: .92rem;
    margin: 0;
    line-height: 1.6;
}

.nx-reachgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.4rem;
}

.nx-reachgrid--2 {
    grid-template-columns: repeat(2, 1fr);
    max-width: 50rem;
    margin: 0 auto;
}

.nx-reachgrid--1 {
    grid-template-columns: 1fr;
    max-width: 40rem;
    margin: 0 auto;
}

.nx-today__mapwrap {
    position: relative;
    max-width: 56rem;
}

.nx-today__mapwrap::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at center, transparent 35%, var(--paper) 72%);
}

.nx-today__map {
    display: block;
    width: 100%;
}

.nx-reachcard {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 2rem 1.8rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-reachcard:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
}

.nx-reachcard h3 {
    margin-bottom: .8rem;
    color: var(--primary-700);
}

.nx-reachcard p {
    color: var(--muted);
    margin: 0 0 .8rem;
}

.nx-marketchips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .7rem;
    margin-top: 2.6rem;
}

.nx-marketchips li {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .6rem 1.1rem;
    border-radius: var(--pill);
    background: var(--surface);
    border: 1px solid var(--line);
    font-weight: 600;
    color: var(--heading);
    font-size: .92rem;
}

.nx-marketchips i {
    color: var(--primary);
}

.nx-strands {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 1.6rem;
}

.nx-strand {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 2.2rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-strand:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
}

.nx-strand__head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.nx-strand__icon {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-size: 1.35rem;
    background: var(--primary-050);
    color: var(--primary-700);
}


.nx-strand__lead {
    color: var(--heading);
    font-weight: 500;
    margin: 0 0 1.3rem;
}

.nx-strand__items {
    display: grid;
    gap: 1rem;
}

.nx-strand__items li {
    padding-left: 1.4rem;
    position: relative;
}

.nx-strand__items li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55rem;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
}

.nx-strand__items strong {
    display: block;
    color: var(--heading);
    font-size: 1.1rem;
    margin-bottom: .2rem;
}

.nx-strand__items span {
    color: var(--muted);
    font-size: .92rem;
}

.nx-nisce-intro .nx-split {
    align-items: stretch;
}

.nx-nisce-intro__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.nx-nisce-intro__copy .nx-title {
    margin-bottom: 1.6rem;
}

.nx-nisce-intro__copy h3 {
    margin: 0 0 1.25rem;
    color: var(--heading);
    line-height: 1.35;
}

.nx-nisce-intro__copy p {
    max-width: 35rem;
    margin: 0;
    color: var(--text);
}

.nx-nisce-intro__media {
    min-height: 19rem;
    border: 1px solid var(--brand-gray);
    border-radius: var(--r-sm);
    background: #eee;
}

.nx-nisce__closing {
    max-width: 50rem;
    margin: 3rem auto 0;
    text-align: center;

    font-size: 1.3rem;
    color: var(--primary-700);
}

/* 12. ---------------------------------------------- SERVICES */
.nx-brandsplit {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 1.4rem;
    margin-top: 3rem;
    flex-wrap: wrap;
}

.nx-brandsplit__item {
    flex: 1;
    min-width: 260px;
    max-width: 420px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 2rem;
    text-align: center;
    transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}

.nx-brandsplit__item:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-lg);
}

.nx-brandsplit__item--primary:hover {
    border-color: var(--primary);
}

.nx-brandsplit__item--accent:hover {
    border-color: var(--accent);
}

.nx-brandsplit__mark {
    width: 68px;
    height: 68px;
    margin: 0 auto 1.2rem;
    border-radius: 18px;
    display: grid;
    place-items: center;
    font-size: 1.7rem;
    color: #fff;
}

.nx-brandsplit__item--primary .nx-brandsplit__mark {
    background: linear-gradient(135deg, var(--primary), var(--primary-700));
}

.nx-brandsplit__item--accent .nx-brandsplit__mark {
    background: linear-gradient(135deg, var(--accent), var(--accent-600));
}

.nx-brandsplit__name {
    display: block;
    font-size: 1.5rem;
    color: var(--heading);
    margin-bottom: .3rem;
}

.nx-brandsplit__tag {
    color: var(--muted);
    font-size: .92rem;
}

.nx-brandsplit__divider {
    align-self: center;
    font-size: 2rem;
    color: var(--line-2);
}

.nx-brandsec__head {
    text-align: center;
    max-width: 60rem;
    margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}

.nx-brandsec__badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 700;
    font-size: .82rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .5rem 1rem;
    border-radius: var(--pill);
    margin-bottom: 1.2rem;
}

.nx-brandsec__badge--primary {
    background: var(--primary-050);
    color: var(--primary-700);
}

.nx-brandsec__badge--accent {
    background: var(--accent-050);
    color: var(--accent-600);
}

.nx-points {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.2rem;
    margin-bottom: 3.5rem;
}

.nx-point {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 1.7rem;
    border-left: 3px solid var(--primary);
    transition: transform var(--t), box-shadow var(--t);
}

.nx-point:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.nx-point h4 {
    margin-bottom: .6rem;
}

.nx-point p {
    color: var(--muted);
    margin: 0 0 .8rem;
}

.nx-point__cite {
    font-size: .78rem;
    color: var(--primary-700);
    font-weight: 600;

}

/* Flip cards */
.nx-flip-hint {
    text-align: center;
    color: var(--muted);
    margin: 0 0 1.6rem;
}

.nx-flip-hint i {
    color: var(--primary);
}

.nx-flips {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.3rem;
    perspective: 1600px;
}

.nx-flips--4 {
    grid-template-columns: repeat(4, 1fr);
}

.nx-flip {
    position: relative;
    min-height: 240px;
    cursor: pointer;
}

.nx-flip__inner {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 240px;
    transition: transform .7s var(--ease);
    transform-style: preserve-3d;
}

.nx-flip:hover .nx-flip__inner,
.nx-flip:focus-visible .nx-flip__inner,
.nx-flip.is-flipped .nx-flip__inner {
    transform: rotateY(180deg);
}

.nx-flip__face {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border-radius: var(--r-lg);
    padding: 1.9rem;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--line);
}

.nx-flip__front {
    background: var(--surface);
}

.nx-flip__icon {
    width: 56px;
    height: 56px;
    border-radius: 15px;
    display: grid;
    place-items: center;
    font-size: 1.4rem;
    background: linear-gradient(135deg, var(--primary), var(--primary-700));
    color: #fff;
    margin-bottom: 1.1rem;
}

.nx-flip--accent .nx-flip__icon {
    background: linear-gradient(135deg, var(--accent), var(--accent-600));
}

.nx-flip__front h4 {
    margin-bottom: .5rem;
}

.nx-flip__front p {
    color: var(--muted);
    margin: 0;
}

.nx-flip__tag {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--accent-600);
    margin-bottom: .3rem;
}

.nx-flip__cue {
    position: absolute;
    bottom: 1.3rem;
    right: 1.5rem;
    color: var(--line-2);
    font-size: 1.1rem;
    animation: nx-pulse 2.5s ease-in-out infinite;
}

.nx-flip__back {
    transform: rotateY(180deg);
    background: linear-gradient(150deg, var(--primary), var(--primary-700));
    color: #fff;
    border: none;
    justify-content: center;
}

.nx-flip--accent .nx-flip__back {
    background: linear-gradient(150deg, var(--accent-600), #8E1518);
}

.nx-flip__backlabel {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
    margin-bottom: .8rem;
}

.nx-flip__products {
    line-height: 1.4;
    color: #fff;
    margin: 0;
}

.nx-flip__back p {
    color: rgba(255, 255, 255, .92);
    margin: 0;
}

.nx-flip__cat {
    margin-top: auto;
    padding-top: 1rem;
    font-size: .82rem;
    color: rgba(255, 255, 255, .75);
}

.nx-trust {
    margin-top: 3.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: clamp(1.8rem, 3.5vw, 2.8rem);
    box-shadow: var(--shadow);
}

.nx-trust__body {
    display: flex;
    gap: 1.4rem;
    align-items: center;
    max-width: 44rem;
}

.nx-trust__icon {
    width: 64px;
    height: 64px;
    flex: none;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-size: 1.6rem;
    background: var(--primary-050);
    color: var(--primary-700);
}

.nx-trust__body h3 {
    margin-bottom: .4rem;
}

.nx-trust__body p {
    color: var(--muted);
    margin: 0;
}

.nx-trust__cta {
    text-align: center;
}

.nx-trust__cta small {
    display: block;
    color: var(--muted);
    font-size: .8rem;
    margin-top: .7rem;
}

.nx-tech {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.3rem;
}

.nx-techcard {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: var(--r);
    padding: 2rem 1.7rem;
    transition: transform var(--t), border-color var(--t), background var(--t);
}

.nx-techcard:hover {
    transform: translateY(-6px);
    border-color: rgba(211, 35, 38, .4);
    background: rgba(255, 255, 255, .06);
}

.nx-techcard__icon {
    width: 56px;
    height: 56px;
    border-radius: 15px;
    display: grid;
    place-items: center;
    font-size: 1.4rem;
    background: rgba(22, 67, 121, .2);
    color: #8FBBEC;
    margin-bottom: 1.2rem;
}

.nx-techcard h3 {
    color: #fff;
    margin-bottom: .5rem;
}

.nx-techcard p {
    color: #A7B4C6;
    margin: 0;
}

.nx-certs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}

.nx-cert {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--pill);
    padding: .9rem 1.5rem;
    font-weight: 600;
    color: var(--heading);
    box-shadow: var(--shadow-sm);
    transition: transform var(--t), border-color var(--t);
}

.nx-cert:hover {
    transform: translateY(-4px);
    border-color: var(--primary);
}

.nx-cert i {
    color: var(--primary);
    font-size: 1.2rem;
}

/* Accordion */
.nx-accordion {
    display: grid;
    gap: .9rem;
}

.nx-acc__item {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    transition: box-shadow var(--t), border-color var(--t);
}

.nx-acc__item.is-open {
    box-shadow: var(--shadow);
    border-color: var(--primary-100);
}

.nx-acc__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    text-align: left;
    padding: 1.3rem 1.6rem;
    font-size: 1.12rem;
    color: var(--heading);
    font-weight: 600;
}

.nx-acc__icon {
    flex: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--primary-050);
    color: var(--primary-700);
    transition: transform var(--t), background var(--t), color var(--t);
    font-size: .82rem;
}

.nx-acc__item.is-open .nx-acc__icon {
    transform: rotate(135deg);
    background: var(--primary);
    color: #fff;
}

.nx-acc__a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s var(--ease);
}

.nx-acc__inner {
    padding: 0 1.6rem 1.4rem;
}

.nx-acc__inner p {
    margin: 0;
    color: var(--muted);
}

/* 13. ---------------------------------------------- RESEARCH */
/* Hairline 4-up strip: cells share one border between them rather than
   floating separately, using the same shared-border trick .nx-checkgrid
   on our-standard.php uses — the grid draws its own top/left edge, each
   step draws only its own right/bottom edge, so no line between two
   adjacent cells is ever drawn twice. */
.nx-flow4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
}

.nx-flow4__step {
    display: block;
    background: var(--surface);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 2rem 1.6rem;
    color: inherit;
    text-decoration: none;
    transition: background var(--t);
}

.nx-flow4__step:hover {
    background: var(--primary-050);
}

/* Solid dark disc with a plain white glyph — no gradient, no ring, unlike
   the number badge this replaces. The step count now reads from the
   label below it instead of being printed inside the icon. */
.nx-flow4__icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--heading);
    color: #fff;
    font-size: 1.1rem;
    margin-bottom: 1.1rem;
}

.nx-flow4__steplabel {
    display: block;
    font-weight: 700;
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--primary);
    margin-bottom: .3rem;
}

.nx-flow4__step h3 {
    margin-bottom: .5rem;
}

.nx-flow4__short {
    color: var(--muted);
    line-height: 1.5;
    margin: 0;
}

/* The single connector for the whole sequence, replacing the old dashed
   backdrop line plus one arrow icon per gap between cards. A plain static
   block below the strip rather than something absolutely positioned over
   it, since there is no longer a row of separate floating cards for it to
   thread between. */
.nx-science-journey {
    position: relative;
    gap: 20px;
    padding: 30px 0 12px;
    border: 0;
    border-radius: 0;
    overflow: visible;
}

.nx-science-journey::before {
    content: '';
    position: absolute;
    top: 6px;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--primary), #a9c9e9 70%, var(--accent));
    transform-origin: left;
}

.nx-science-journey .nx-flow4__step {
    position: relative;
    display: flex;
    flex-direction: column;
    isolation: isolate;
    padding: clamp(24px, 2.5vw, 38px);
    border: 1px solid #dce5ef;
    border-radius: 24px;
    background: linear-gradient(145deg, #fff 25%, #eff5fc);
    box-shadow: 0 12px 32px rgba(24, 62, 106, .06);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.nx-science-journey .nx-flow4__step::before {
    content: '';
    position: absolute;
    top: -31px;
    left: 38px;
    width: 14px;
    height: 14px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--primary);
    box-shadow: 0 0 0 1px #bad0e7;
}

.nx-science-journey .nx-flow4__step:last-child::before {
    background: var(--accent);
}

.nx-science-journey__number {
    position: absolute;
    top: 15px;
    right: 22px;
    z-index: -1;
    font-size: clamp(64px, 6vw, 90px);
    font-weight: 700;
    line-height: 1;
    color: #dce7f3;
    letter-spacing: -.06em;
}

.nx-science-journey .nx-flow4__icon {
    width: 58px;
    height: 58px;
    margin-bottom: 32px;
    border-radius: 18px;
    background: linear-gradient(145deg, #3268a5, #173a64);
    box-shadow: 0 8px 18px #234f7d26, inset 0 1px 0 #ffffff40;
    transition: background .3s ease;
}

.nx-science-journey .nx-flow4__step h3 {
    color: #153857;
}

.nx-science-journey .nx-flow4__short {
    color: #4b6075;
    line-height: 1.7;
    margin-bottom: 28px;
}

.nx-science-journey__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid #dce5ef;
    color: var(--primary);
    font-size: .8rem;
    font-weight: 700;
}

.nx-science-journey__link i {
    transition: transform .3s ease;
}

.nx-science-journey .nx-flow4__step:is(:hover, :focus-visible) {
    transform: none;
    border-color: #86acd4;
    box-shadow: 0 20px 44px #163c6821;
}

.nx-science-journey .nx-flow4__step:focus-visible {
    outline: 3px solid var(--primary);
    outline-offset: 5px;
}

.nx-science-journey .nx-flow4__step:is(:hover, :focus-visible) .nx-flow4__icon {
    background: var(--secondary-green-600);
    transform: none;
}

.nx-science-journey .nx-flow4__step:is(:hover, :focus-visible) .nx-science-journey__link i {
    transform: translateX(4px);
}

@media (prefers-reduced-motion: no-preference) {
    .nx-science-journey.is-visible::after {
        content: '';
        position: absolute;
        top: 3px;
        left: 0;
        width: 60px;
        height: 8px;
        border-radius: 50%;
        pointer-events: none;
        background: linear-gradient(90deg, transparent, #6ca7e3, #e92536);
        box-shadow: 0 0 14px #6ca7e380;
        animation: nx-science-travel 5s linear infinite;
    }

    .nx-science-journey.is-visible .nx-flow4__step::before {
        animation: nx-science-pulse 3s ease-in-out infinite;
        animation-delay: calc(var(--step) * .5s);
    }

    .nx-science-journey.is-visible .nx-science-journey__number {
        animation: nx-science-glow 5s ease-in-out infinite;
        animation-delay: calc(var(--step) * -.8s);
    }

    .nx-science-journey.is-motion-paused::after,
    .nx-science-journey.is-motion-paused .nx-flow4__icon i,
    .nx-science-journey.is-motion-paused .nx-flow4__step::before,
    .nx-science-journey.is-motion-paused .nx-science-journey__number {
        animation-play-state: paused;
    }

    @keyframes nx-science-travel {
        0% {
            left: 0;
            opacity: 0;
        }

        8%,
        92% {
            opacity: 1;
        }

        100% {
            left: calc(100% - 60px);
            opacity: 0;
        }
    }

    @keyframes nx-science-float {

        0%,
        100% {
            transform: translateY(2px) rotate(-5deg);
        }

        50% {
            transform: translateY(-4px) rotate(5deg);
        }
    }

    @keyframes nx-science-pulse {

        0%,
        100% {
            box-shadow: 0 0 0 1px #bad0e7;
        }

        50% {
            box-shadow: 0 0 0 7px #bad0e730, 0 0 16px #3268a54d;
        }
    }

    @keyframes nx-science-glow {

        0%,
        100% {
            opacity: .55;
        }

        50% {
            opacity: 1;
        }
    }

    .nx-science-journey.is-visible::before {
        animation: nx-science-line 1.8s ease both;
    }

    .nx-science-journey.is-visible .nx-flow4__step {
        animation: nx-science-arrive .7s ease backwards;
        animation-delay: calc(var(--step) * .16s);
    }

    @keyframes nx-science-line {
        from {
            transform: scaleX(0);
        }

        to {
            transform: scaleX(1);
        }
    }

    @keyframes nx-science-arrive {
        from {
            opacity: 0;
            transform: translateY(22px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

.nx-science-motion {
    display: block;
    margin: 16px 0 0 auto;
    padding: 8px 14px;
    border: 1px solid #dce5ef;
    border-radius: 30px;
    background: #fff;
    color: var(--primary);
    font: inherit;
    font-size: .78rem;
    cursor: pointer;
}

.nx-science-motion:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .nx-science-motion {
        display: none;
    }
}

@media (max-width: 1100px) {
    .nx-science-journey {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }

    .nx-science-journey::before,
    .nx-science-journey::after,
    .nx-science-journey .nx-flow4__step::before {
        display: none;
    }
}

@media (max-width: 600px) {
    .nx-science-journey {
        grid-template-columns: 1fr;
        padding-top: 8px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .nx-science-journey *,
    .nx-science-journey *::before {
        transition: none !important;
        animation: none !important;
    }
}

.nx-flow4__line {
    display: block;
    height: 3px;
    margin-top: 1.6rem;
    border-radius: 2px;
    background: repeating-linear-gradient(90deg, var(--primary-100) 0 10px, transparent 10px 20px);
}

/* Innovation videos — featured player + thumbnail rail.

   The featured player is one dark card in two panels: a meta panel
   (category kicker + title) and a frame holding the actual <video>. Both
   panels share the card's own padding and radius — the frame's inner
   radius is set a touch smaller than the card's so the video's rounded
   corner nests inside the card's edge rather than the two arcs fighting
   for the same corner. */
.nx-vidfeature {
    display: grid;
    grid-template-columns: minmax(14rem, 30%) 1fr;
    align-items: start;
    gap: 1.6rem;
    margin: 0 auto 1.6rem;
    padding: 1.6rem;
    border-radius: var(--r);
    box-shadow: var(--shadow);
}

/* Edge-to-edge featured player, breaking out of .nx-container rather
   than being capped at the site's max content width. */
.nx-vidfeature--full {
    width: 100%;
    max-width: none;
    margin: 0 0 1.6rem;
    padding: 8.6rem clamp(1.6rem, 5vw, 4rem);
    border-radius: 0;
}

/* Research panels use shared surface/paper classes with coordinated copy and CTAs. */
#innovation-videos .nx-vidfeature {
    padding-block: var(--section-y);
    --panel-heading: #102B4E;
    --panel-copy: #263F52;
    --panel-button: #234E87;
    --panel-button-text: #FFFFFF;
    /* These full-width color bands meet directly, without card gutters
       or shadows tinting the adjacent panel's background. */
    margin-block: 0;
    box-shadow: none;
}

#innovation-videos .nx-vidfeature__meta h3 {
    color: var(--panel-heading);
}

#innovation-videos .nx-vidfeature__meta p {
    color: var(--panel-copy);
}

#innovation-videos .nx-vidfeature__meta .nx-btn {
    color: var(--panel-button-text);
    background: var(--panel-button);
    border-color: var(--panel-button);
}

#innovation-videos .nx-vidfeature__meta .nx-btn:hover {
    color: var(--panel-button);
    background: transparent;
}

#innovation-videos .nx-vidfeature__meta .nx-btn:focus-visible {
    outline: 3px solid var(--panel-heading);
    outline-offset: 4px;
}

/* First full-bleed video row sits flush against the top of the section
   rather than leaving the section's usual top padding above it. */
#innovation-videos {
    padding-top: 0;
}

.nx-vidfeature__meta {
    color: #fff;
}

/* No longer rendered on the card — the kicker label was removed — but
   left here rather than deleted in case it comes back; see the comment on
   science.videos in content-loader.php for why 'category' itself stayed
   in the data either way. */
.nx-vidfeature__cat {
    display: block;
    font-weight: 700;
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--accent-300);
    margin-bottom: .6rem;
}

.nx-vidfeature__meta h3 {
    line-height: 1.15;
    color: #fff;
    margin: 0 0 .8rem;
}

.nx-vidfeature__meta p {
    line-height: 1.6;
    color: #D5DEE9;
    margin: 0 0 1.3rem;
}

.nx-vidfeature__frame {
    border-radius: calc(var(--r) - .5rem);
    overflow: hidden;
}

.nx-vidfeature__player {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

.nx-vidrail {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.1rem;
}

/* Photo-top card, white footer — the same structural pattern
   .nx-areacard on our-standard.php uses, reused here rather than
   invented fresh: image on top, category + title in the footer below.
   The button itself carries no padding/border of its own; the image and
   footer inside it do, the same split .nx-areacard uses so the photo can
   run flush to the card's edge on three sides. */
.nx-vidthumb {
    position: relative;
    display: block;
    width: 100%;
    margin: 0;
    text-align: left;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    padding: 0;
    /* Some engines reserve internal inset space for a <button>'s native
       chrome regardless of padding: 0 — appearance: none is what
       actually removes it, not the padding rule on its own. */
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    font: inherit;
    color: inherit;
    transition: border-color var(--t), box-shadow var(--t), transform var(--t);
}

.nx-vidthumb:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-sm);
}

.nx-vidthumb.is-active {
    border-color: var(--primary);
    box-shadow: 0 0 0 1px var(--primary);
}

.nx-vidthumb__img {
    position: relative;
    display: block;
    width: calc(100% + 2px);
    /* Pull the frame over the card's top inset so no white band remains
       above the thumbnail. The card clips the small overshoot. */
    margin: -13px -1px 0;
    aspect-ratio: 16 / 9;
    background-color: var(--ink);
    background-size: cover;
    background-position: center;
}

/* Play button, centred over the frame — the thumbnail as a whole is the
   click target (it's a <button>), this is only the visual cue that
   clicking it plays something. Hidden on the active card in favour of
   the "Now playing" label below. */
.nx-vidthumb__play {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.nx-vidthumb__play i {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(16, 43, 78, .55);
    color: #fff;
    font-size: .95rem;
    transition: background var(--t), transform var(--t);
}

.nx-vidthumb:hover .nx-vidthumb__play i {
    background: var(--primary);
    transform: scale(1.08);
}

.nx-vidthumb__playing {
    display: none;
    position: absolute;
    inset: 0;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .85rem;
    letter-spacing: .03em;
    color: #fff;
    background: rgba(16, 43, 78, .55);
}

.nx-vidthumb.is-active .nx-vidthumb__play {
    display: none;
}

.nx-vidthumb.is-active .nx-vidthumb__playing {
    display: flex;
}

.nx-vidthumb__foot {
    display: block;
    padding: 1rem 1.1rem 1.2rem;
}

.nx-vidthumb__cat {
    display: block;
    font-weight: 700;
    font-size: .7rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .35rem;
}

.nx-vidthumb__title {
    display: block;
    font-size: .92rem;
    line-height: 1.4;
    color: var(--heading);
    font-weight: 600;
}

.nx-bigquote {
    max-width: 48rem;
    margin: 3.5rem auto 0;
    text-align: center;

    font-size: clamp(1.3rem, 2.6vw, 1.8rem);
    color: var(--primary-700);
    line-height: 1.4;
}

.nx-philosophy {
    max-width: 46rem;
    margin: 0 auto;
    text-align: center;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--r-lg);
    padding: clamp(2rem, 4vw, 3rem);
}

.nx-philosophy__icon {
    width: 56px;
    height: 56px;
    color: var(--accent-300);
    margin: 0 auto 1.4rem;
}

.nx-philosophy h3 {
    color: #fff;
    margin-bottom: 1rem;
}

.nx-philosophy p {
    color: #D5DEE9;
    margin: 0;
}

.nx-philosophy p+p {
    margin-top: .6rem;
}

/* Scientific Evidence — citation rule panel */
.nx-evidence-rule {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 34rem;
    overflow: hidden;
}

.nx-evidence-rule .nx-section__bg img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: right center;
    opacity: 1;
}

.nx-evidence-rule .nx-container {
    position: relative;
    z-index: 2;
}

.nx-evidence-rule__copy {
    max-width: 50%;
}

.nx-evidence-rule__copy h2 {
    max-width: 26rem;
    margin: 0 0 2rem;
    color: var(--heading);
}

.nx-evidence-rule__copy p {
    max-width: 34rem;
    margin: 0;
    color: var(--text);
    line-height: 1.38;
}

.nx-evidence-rule__copy p+p {
    margin-top: .8rem;
}


.nx-areas {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4rem;
}

.nx-area {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 2rem 2rem 2rem 4.4rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-area:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.nx-area__index {
    position: absolute;
    left: 1.6rem;
    top: 2rem;
    font-size: 1.3rem;
    color: var(--primary);
    font-weight: 600;
}

.nx-area h3 {
    margin-bottom: .7rem;
}

.nx-area p {
    color: var(--muted);
    margin: 0;
}

/* Ingredient table */
.nx-tablewrap {
    background: var(--surface);
    border: 1px solid var(--line);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.nx-tabletools {
    padding: 1.2rem 1.4rem;
    border-bottom: 1px solid var(--line);
}

.nx-search {
    display: flex;
    align-items: center;
    gap: .7rem;
    background: var(--tint);
    border-radius: var(--pill);
    padding: .7rem 1.2rem;
    max-width: 420px;
}

.nx-search i {
    color: var(--primary);
}

.nx-search input {
    border: 0;
    background: transparent;
    width: 100%;
    font-size: .95rem;
    color: var(--heading);
    outline: none;
}

.nx-tablescroll {
    overflow-x: auto;
}

.nx-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
}

.nx-table thead th {
    text-align: left;
    padding: 1.1rem 1.4rem;
    font-size: .78rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--primary-700);
    background: var(--primary-050);
    position: sticky;
    top: 0;
}

.nx-table tbody td {
    padding: 1.05rem 1.4rem;
    border-top: 1px solid var(--line);
    color: var(--text);
    font-size: .95rem;
    vertical-align: top;
}

.nx-table tbody tr {
    transition: background var(--t);
}

.nx-table tbody tr:hover {
    background: var(--primary-050);
}

.nx-table tbody td strong {
    color: var(--heading);
    font-weight: 600;
}

.nx-refchip {
    display: inline-block;
    font-size: .8rem;
    font-weight: 600;
    color: var(--primary-700);
    background: var(--primary-050);
    border-radius: var(--pill);
    padding: .25rem .65rem;
    white-space: nowrap;
}

.nx-table tr.is-hidden {
    display: none;
}

/* References */
.nx-refsplit.nx-section--paper {
    background: var(--surface);
    padding-block: clamp(1.5rem, 3vw, 2.5rem);
}

/* --- References split (home): left label, right plain numbered list --- */
.nx-refsplit__grid {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: clamp(5rem, 9vw, 7rem);
    align-items: start;
}

.nx-refsplit__label {
    color: var(--heading);
    margin: 0;
}

.nx-refsplit__list {
    margin: 0;
    padding-left: 1.3rem;
    display: grid;
    gap: .4rem;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.5;
    list-style: decimal;
}

.nx-refsplit__list li {
    padding-left: .3rem;
}

.nx-refs {
    max-width: 60rem;
    margin: 0 auto;
    counter-reset: ref;
    display: grid;
    gap: .5rem;
}

.nx-refs li {
    counter-increment: ref;
    position: relative;
    padding: 1rem 1.2rem 1rem 3.4rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.5;
    transition: border-color var(--t);
}

.nx-refs li::before {
    content: counter(ref);
    position: absolute;
    left: 1rem;
    top: 1rem;
    font-weight: 600;
    color: var(--primary);
    font-size: .95rem;
}

.nx-refs li:hover {
    border-color: var(--primary-100);
}

.nx-qjourney {
    margin-top: 3.5rem;
    text-align: center;
}

.nx-qjourney h3 {
    color: #fff;
    text-align: center;
    margin-bottom: 2rem;
}

.nx-qflow {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .8rem;
    margin-bottom: 3rem;
}

.nx-qflow li {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--pill);
    padding: .7rem 1.3rem;
    color: #fff;
    font-weight: 500;
    font-size: .92rem;
}

.nx-qflow__num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    font-size: .82rem;
}

.nx-commit {
    max-width: 46rem;
    margin: 0 auto;
    text-align: center;
    padding: 2rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.nx-commit h4 {
    color: var(--accent-300);
    margin-bottom: .8rem;
}

.nx-commit p {
    color: #D5DEE9;
    margin: 0;
}

.nx-commit p+p {
    margin-top: .6rem;
}

/* 14. ----------------------------------------------- CONTACT */
.nx-contact {
    display: flex;
    justify-content: center;
}

.nx-contact__form {
    width: 100%;
    max-width: 42rem;
}

/* Reach-us info card + trust panel, given their own spacious section
   below the form rather than squeezed into a narrow sidebar beside it. */
.nx-contactinfo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.5rem, 4vw, 2.5rem);
    align-items: start;
}

.nx-contact__form .nx-title {
    margin-bottom: .8rem;
}

.nx-contact__form .nx-muted {
    line-height: 1.6;
    max-width: 34rem;
}

.nx-form {
    margin-top: 2.6rem;
}

.nx-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4rem;
    /* Grid items default to min-width:auto, so a field can never shrink
       below an input's intrinsic size and the form pushes past narrow
       screens. Opt out at every level of the form grid. */
    min-width: 0;
}

.nx-contact>*,
.nx-field {
    min-width: 0;
}

.nx-field {
    margin-bottom: 1.5rem;
}

.nx-field label {
    display: block;
    font-weight: 600;
    font-size: .92rem;
    color: var(--heading);
    margin-bottom: .55rem;
}

.nx-field__opt {
    color: var(--muted);
    font-weight: 400;
}

.nx-field input,
.nx-field select,
.nx-field textarea {
    width: 100%;
    min-width: 0;
    padding: 1.05rem 1.2rem;
    border: 1.5px solid var(--line-2);
    border-radius: var(--r-sm);
    background: var(--surface);
    font-size: 1rem;
    color: var(--heading);
    transition: border-color var(--t), box-shadow var(--t);
}

.nx-field textarea {
    resize: vertical;
    min-height: 150px;
}

.nx-field input:focus,
.nx-field select:focus,
.nx-field textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(22, 67, 121, .12);
}

.nx-field.is-invalid input,
.nx-field.is-invalid select,
.nx-field.is-invalid textarea {
    border-color: #C1121F;
    box-shadow: 0 0 0 4px rgba(193, 18, 31, .12);
}

.nx-field__error {
    display: none;
    color: #C1121F;
    font-size: .82rem;
    margin-top: .4rem;
}

.nx-field.is-invalid .nx-field__error {
    display: block;
}

.nx-check-inline {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-bottom: 1.8rem;
    color: var(--muted);
    font-size: .92rem;
    cursor: pointer;
}

.nx-check-inline input {
    margin-top: .25rem;
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    flex: none;
}

.nx-field__req {
    color: var(--accent);
}

/* Preferred-contact-method radio group — styled as a plain fieldset so
   it reads correctly to assistive tech (legend = label) without
   inheriting <fieldset>'s default border/padding chrome. */
.nx-field--radios {
    border: none;
    padding: 0;
    margin: 0 0 1.5rem;
}

.nx-field--radios legend {
    padding: 0;
    font-weight: 600;
    font-size: .92rem;
    color: var(--heading);
    margin-bottom: .6rem;
}

.nx-radiogroup {
    display: flex;
    gap: 1.6rem;
}

.nx-radio {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .95rem;
    color: var(--text);
    cursor: pointer;
}

.nx-radio input {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
}

.nx-form__status {
    margin: 1.2rem 0 0;
}

.nx-form__status.is-ok {
    color: var(--primary-700);
}

.nx-form__status.is-err {
    color: #C1121F;
}

.nx-infocard {
    background: linear-gradient(150deg, var(--ink-3), var(--ink));
    color: #fff;
    border-radius: var(--r-lg);
    padding: 2.8rem;
    box-shadow: var(--shadow-lg);
}

.page-contact .nx-infocard h3 {
    color: #fff;
    margin-bottom: 1.8rem;
}

.nx-infolist {
    display: grid;
    gap: 1.3rem;
    margin-bottom: 2rem;
}

.nx-infolist li {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    font-size: 1.02rem;
}

/* Email addresses are one unbreakable token — let them wrap rather than
   push the column past the edge of a small phone. */
.nx-infolist a {
    overflow-wrap: anywhere;
}

.nx-infolist__ic {
    width: 46px;
    height: 46px;
    flex: none;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .08);
    color: var(--accent-300);
}

.nx-infolist a,
.nx-infolist span {
    color: #EDF1F6;
}

.nx-infolist a:hover {
    color: #fff;
}

.nx-social {
    display: flex;
    gap: .6rem;
}

.nx-social a {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    transition: background var(--t), transform var(--t);
}

.nx-social a:hover {
    background: var(--secondary);
    transform: translateY(-3px);
}

.nx-social--dark a {
    background: rgba(255, 255, 255, .08);
}

/* Contact page — reassurance panel under the info card: privacy,
   response time, and the emergency-services note, kept quiet (plain
   border, no shadow) so it reads as a footnote rather than a CTA. */
.nx-trustcard {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 1.8rem;
}

.nx-trustcard__row {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
}

.nx-trustcard__row+.nx-trustcard__row {
    margin-top: 1rem;
}

.nx-trustcard__ic {
    flex: none;
    width: 30px;
    text-align: center;
    color: var(--primary);
    font-size: .95rem;
    margin-top: .15rem;
}

.nx-trustcard__row p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.nx-trustcard__link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.2rem;
    font-weight: 600;
    font-size: .85rem;
    color: var(--primary);
}

.nx-trustcard__link:hover {
    color: var(--primary-700);
}

/* Contact page — "Who to contact" cards. Same restrained card language
   as the rest of the site (thin border, minimal shadow-on-hover only)
   rather than a heavier boxed-shadow treatment. */
.nx-contactcards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.3rem;
}

.nx-contactcard {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 1.8rem 1.7rem;
    transition: transform var(--t), box-shadow var(--t);
}

.nx-contactcard:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
}

.nx-contactcard__ic {
    width: 52px;
    height: 52px;
    flex: none;
    border-radius: 12px;
    display: grid;
    place-items: center;
    font-size: 1.2rem;
    margin-bottom: 1.1rem;
    background: var(--primary-050);
    color: var(--primary-700);
}

.nx-contactcard h3 {
    color: var(--heading);
    margin: 0 0 .5rem;
}

.nx-contactcard p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
    flex: 1;
}

.nx-contactcard__cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.2rem;
    font-weight: 600;
    font-size: .88rem;
    color: var(--primary);
    transition: gap var(--t), color var(--t);
}

.nx-contactcard__cta i {
    font-size: .78rem;
    transition: transform var(--t);
}

.nx-contactcard__cta:hover {
    color: var(--primary-700);
}

.nx-contactcard__cta:hover i {
    transform: translateX(3px);
}

/* 15. -------------------------------------- FOOTER + KEYFRAMES */
.nx-footer {
    background: var(--ink);
    color: #D5DEE9;
    position: relative;
}

/* Blue CTA band anchored by a red block on the right edge. */
.nx-footer__cta {
    background: linear-gradient(120deg, var(--primary), var(--primary-700));
    position: relative;
    overflow: hidden;
}

.nx-footer__cta::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 26%;
    background: var(--accent);
    clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%);
}

.nx-footer__cta-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2.5rem, 5vw, 4rem) 0;
    position: relative;
    z-index: 1;
}

.nx-footer__cta-title {
    color: #fff;
    font-size: clamp(1.8rem, 3.6vw, 2.8rem);
    margin: .4rem 0 .6rem;
}

.nx-footer__cta-text {
    color: rgba(255, 255, 255, .9);
    margin: 0;
    max-width: 40rem;
}

.nx-footer__cta-lead {
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
    margin: 0 0 .8rem;
    max-width: 40rem;
}

.nx-footer__cta-text+.nx-footer__cta-text {
    margin-top: .8rem;
}

/* Hope. Health. Happiness. — full-height promise band (home) */
.nx-promise {
    background: url('../images/hero/promise.webp') center / cover no-repeat;
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    padding-block: var(--section-y);
    position: relative;
    overflow: hidden;
}

.nx-promise__copy {
    max-width: 50%;
    margin-bottom: 1.8rem;
}

.nx-promise__title {
    color: #000;
    font-size: clamp(1.9rem, 3.7vw, 3rem);
    margin: .4rem 0 .6rem;
}

.nx-promise__lead {
    font-size: 1.2rem;
    font-weight: 600;
    color: #000;
    margin: 0 0 .8rem;
    max-width: 40rem;
}

.nx-promise__text {
    color: #000;
    margin: 0;
    max-width: 40rem;
}

.nx-promise__text+.nx-promise__text {
    margin-top: .8rem;
}

.nx-footer__main {
    display: grid;
    grid-template-columns: 1.3fr 2fr;
    gap: clamp(2rem, 5vw, 4rem);
    padding: clamp(3rem, 6vw, 5rem) 0 3rem;
}

.nx-brand--light .nx-brand__sub {
    color: rgba(255, 255, 255, .82);
    border-left-color: rgba(255, 255, 255, .28);
}

.nx-footer__tagline {
    color: #A7B4C6;
    margin: 1.4rem 0;
    max-width: 32rem;
}

.nx-footer__cols {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr);
    gap: 1.6rem;
}

.nx-footer__col ul+h6 {
    margin-top: 2rem;
}

.nx-footer__col h6,
.nx-footer__col h5 {
    color: #fff;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 1.2rem;
}

.nx-footer__col ul {
    display: grid;
    gap: .7rem;
}

.nx-footer__col a,
.nx-footer__col span {
    color: #A7B4C6;
    font-size: .92rem;
    transition: color var(--t);
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

.nx-footer__col a:hover {
    color: #fff;
}

.nx-footer__col i {
    color: var(--accent-300);
    font-size: .82rem;
}

.nx-footer__bar {
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.nx-footer__bar-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.6rem 0;
}

.nx-footer__bar p {
    margin: 0;
    color: #8C99AA;
}

.nx-footer__bar ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1.4rem;
}

.nx-footer__bar a {
    color: #8C99AA;
    font-size: .86rem;
    transition: color var(--t);
}

.nx-footer__bar a:hover {
    color: #fff;
}

.nx-totop {
    position: fixed;
    right: 1.4rem;
    bottom: 1.4rem;
    z-index: 1100;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    display: grid;
    place-items: center;
    box-shadow: var(--shadow-accent);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity var(--t), transform var(--t), background var(--t);
}

.nx-totop.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nx-totop:hover {
    background: var(--secondary);
    transform: translateY(-4px);
}

/* Keyframes */
@keyframes nx-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes nx-pulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(.8);
        opacity: .7;
    }
}

@keyframes nx-float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-14px);
    }
}

@keyframes nx-scroll {
    0% {
        opacity: 0;
        transform: translate(-50%, -6px);
    }

    40% {
        opacity: 1;
    }

    80%,
    100% {
        opacity: 0;
        transform: translate(-50%, 12px);
    }
}

@keyframes nx-marquee {
    to {
        transform: translateX(-50%);
    }
}

@keyframes nx-morph {

    0%,
    100% {
        border-radius: 46% 54% 60% 40% / 46% 40% 60% 54%;
    }

    50% {
        border-radius: 60% 40% 42% 58% / 55% 58% 42% 45%;
    }
}

/* =============================================================
   IMAGERY LAYER — real photography (added for reference-style look)
   ============================================================= */

/* --- Home hero: framed photo + rotating ring + leaf badge --- */
.nx-hero__visual {
    aspect-ratio: auto;
}

.nx-hero__photo {
    position: relative;
    width: min(100%, 460px);
    aspect-ratio: 4/5;
    margin-inline: auto;
}

.nx-hero__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 28px;
    position: relative;
    z-index: 2;
    box-shadow: 0 40px 90px rgba(0, 0, 0, .45);
}

.nx-hero__photoring {
    position: absolute;
    inset: -20px;
    border: 1.5px dashed rgba(255, 255, 255, .28);
    border-radius: 42px;
    z-index: 1;
    animation: nx-spin 44s linear infinite;
}

.nx-hero__photoring--2 {
    inset: -6px;
    border: 2px solid rgba(211, 35, 38, .5);
    border-radius: 34px;
    animation: none;
}

.nx-hero__leafbadge {
    position: absolute;
    z-index: 3;
    bottom: -22px;
    left: -22px;
    width: 76px;
    height: 76px;
    border-radius: 20px;
    background: linear-gradient(135deg, var(--accent), var(--accent-600));
    display: grid;
    place-items: center;
    box-shadow: var(--shadow);
}

.nx-hero__leafbadge svg {
    width: 40px;
    height: 40px;
    color: #fff;
}

/* --- Sub-hero plain background: framed hero video (About + all other
   inner pages). Sits on --surface with a fixed band height so the lens
   frame fills it consistently across pages. Phones override this — see
   responsive.css. */
.nx-subhero--plain {
    min-height: 70vh;
    padding: 9rem 0 4.5rem;
    background: var(--surface);
    color: var(--text);
}

/* Navy veil (same colour the home hero video uses) washed over the whole
   inner-page hero banner — sits above the background/video, below the text. */
.nx-subhero--plain .nx-subhero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(11, 34, 68, .48) 0%, rgba(11, 34, 68, .38) 45%, rgba(11, 34, 68, .56) 100%);
}

.nx-subhero--plain .nx-hero__grid,
.nx-subhero--plain .nx-blob,
.nx-subhero--plain .nx-subhero__motif {
    display: none;
}

.nx-subhero--plain .nx-crumb,
.nx-subhero--plain .nx-crumb a {
    color: var(--muted);
}

.nx-subhero--plain .nx-crumb a:hover {
    color: var(--ink);
}

.nx-subhero--plain .nx-subhero__kicker {
    color: var(--accent);
}

.nx-subhero--plain .nx-subhero__title {
    color: var(--ink);
}

.nx-subhero--plain .nx-subhero__title em {
    color: var(--accent);
}

.nx-subhero--plain .nx-subhero__lead,
.nx-subhero--plain .nx-subhero__text {
    color: var(--muted);
}

.nx-subhero__motif {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 56%;
    overflow: visible;
    pointer-events: none;
}

/* Red bow: the right-hand arc of a tall ellipse (its border drawn, then the
   left half clipped away) makes a smooth ")" that bulges right. Pushing the
   ellipse up past the top edge lifts the bulge high and leans the curve —
   no path data, no SVG. */
.nx-subhero__motif-wave {
    position: absolute;
    top: -13%;
    bottom: -4%;
    left: -22%;
    width: 43%;
    border: clamp(6px, .62vw, 9px) solid var(--accent);
    border-radius: 50%;
    clip-path: inset(0 0 0 50%);
}

/* Grey arrow: a rounded-left rectangle with its right side left open, plus two
   round-capped bars that run from the open top/bottom corners to a shared tip.
   The drop-shadow paints the offset second line of the double outline. */
.nx-subhero__motif-arrow {
    position: absolute;
    top: 2.5%;
    bottom: 2.5%;
    right: 1%;
    /* fixed aspect keeps the arrow's proportions — and its converging tip —
       identical no matter how wide/short the banner gets. */
    aspect-ratio: .5 / 1;
    filter: drop-shadow(4px 5px 0 #AAADB2);
}

.nx-subhero__motif-body {
    position: absolute;
    inset: 0 24% 0 0;
    border: clamp(2px, .2vw, 3px) solid var(--line-2);
    border-right: 0;
    border-radius: 30px 0 0 30px;
}

.nx-subhero__motif-arm {
    position: absolute;
    left: 76%;
    width: 102.5%;
    height: clamp(2px, .2vw, 3px);
    background: var(--line-2);
    border-radius: 999px;
    transform-origin: 0 50%;
}

.nx-subhero__motif-arm--top {
    top: 0;
    transform: rotate(76.6deg);
}

.nx-subhero__motif-arm--bottom {
    top: 100%;
    transform: rotate(-76.6deg);
}

/* --- Sub-hero curve pair (plain white banners, e.g. About Us) ---
   Two nested arcs: each is the right-hand border of a tall ellipse with
   the left half clipped away, leaving a smooth ")" that bulges outward
   in the middle and tapers to a point top and bottom. The wrapper's
   aspect-ratio keeps that taper consistent no matter how tall the
   banner is, so nothing needs to be tuned per page. */
.nx-subhero__curves {
    position: absolute;
    top: 50%;
    right: 6%;
    width: clamp(200px, 20vw, 340px);
    aspect-ratio: 1 / 1.6;
    transform: translateY(-50%);
    pointer-events: none;
}

.nx-subhero__curve {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    clip-path: inset(0 0 0 50%);
}

/* Red curve: thicker stroke, sits further left/outward. */
.nx-subhero__curve--red {
    left: -58%;
    width: 62%;
    border: clamp(7px, .8vw, 11px) solid var(--accent);
}

/* Grey curve: thinner stroke, echoes the same shape, offset to the right. */
.nx-subhero__curve--grey {
    left: -18%;
    width: 58%;
    top: 6%;
    bottom: 6%;
    border: clamp(2px, .22vw, 3px) solid var(--line-2);
}

/* --- Video hero framed by an inline SVG (see includes/hero-section.php) ---
   The footage lives in a <foreignObject> and is clipped to a smooth lens
   shape (#nxInnerVideoShape); a white card fills the SVG behind it, with a
   red accent curve on the left and a grey one on the right. viewBox is
   1000x600, so the frame keeps a 5:3 ratio. */
.nx-subhero__framevideo {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    aspect-ratio: 965 / 600;
    pointer-events: none;
}

.nx-framesvg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: hidden;
}

/* The <video> sits inside the <foreignObject>; this clip-path cuts it to the
   same lens outline as #nxInnerVideoShape so the white card and accent
   curves show through on either side. */
.nx-framesvg__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    clip-path: url(#nxInnerVideoShape);
}

/* --- Sub-hero photo background --- */
.nx-subhero__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.nx-subhero--photo .nx-subhero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(22, 51, 90, .78) 0%, rgba(22, 51, 90, .5) 40%, rgba(22, 51, 90, 0) 65%),
        linear-gradient(180deg, rgba(22, 51, 90, .48) 0%, rgba(22, 51, 90, .38) 45%, rgba(22, 51, 90, .56) 100%);
}

.nx-subhero--photo .nx-hero__grid {
    opacity: .5;
}

:is(.page-about, .page-research, .page-scientific-evidence) .nx-hero--video .nx-hero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
            rgba(255, 255, 255, .88) 0%,
            rgba(255, 255, 255, .72) 32%,
            rgba(255, 255, 255, .32) 52%,
            rgba(255, 255, 255, 0) 72%);
}

:is(.page-about, .page-research, .page-scientific-evidence) .nx-hero__crumbwrap {
    position: absolute;
    z-index: 3;
    top: clamp(6.5rem, 9vw, 8rem);
    left: 0;
    right: 0;
}

:is(.page-about, .page-research, .page-scientific-evidence) .nx-hero__crumbwrap .nx-crumb,
:is(.page-about, .page-research, .page-scientific-evidence) .nx-hero__crumbwrap .nx-crumb a {
    color: var(--primary);
}

:is(.page-about, .page-research, .page-scientific-evidence) .nx-hero__crumbwrap .nx-crumb a:hover {
    color: var(--accent);
}

:is(.page-about, .page-research, .page-scientific-evidence) .nx-hero--video .nx-hero__copy {
    transform: translateY(clamp(5rem, 10vh, 7.5rem));
}

.page-about .nx-about-intro {
    padding: clamp(1.75rem, 3vw, 3rem) 0 clamp(6rem, 10vw, 10rem);
}

.page-about .nx-about-intro__text {
    margin: clamp(1.5rem, 2.5vw, 2.25rem) 0 0;
    color: #49515a;
    line-height: 1.45;
}

.page-about .nx-about-formulations {
    overflow: hidden;
    padding: clamp(3.5rem, 6vw, 6.5rem) 0;
}

.page-about .nx-about-formulations__bg {
    display: block;
    width: 112%;
    max-width: none;
    height: auto;
    min-width: 0;
    mix-blend-mode: multiply;
}

.page-about .nx-about-formulations__inner {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: clamp(2rem, 4vw, 4.5rem);
}

.page-about .nx-about-formulations__text {
    width: auto;
    max-width: 31rem;
    margin: 0;
    color: var(--primary);
    line-height: 1.3;
    letter-spacing: -.03em;
}

.page-about .nx-purpose-vision {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #fff;
}

.page-about .nx-purpose-vision__image,
.page-about .nx-purpose-vision__copy {
    min-height: clamp(290px, 31vw, 480px);
}

.page-about .nx-purpose-vision__image {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.page-about .nx-purpose-vision__image--purpose {
    background-image: url('../images/about/mission.webp');
}

.page-about .nx-purpose-vision__image--vision {
    background-image: url('../images/about/vision.webp');
}

.page-about .nx-purpose-vision__copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: clamp(2rem, 4vw, 4rem);
    text-align: center;
}

.page-about .nx-purpose-vision__copy h2 {
    margin: 0 0 1rem;
    color: #e00000;
    line-height: 1.1;
}

.page-about .nx-purpose-vision__copy h3 {
    margin: 0 0 .75rem;
    color: #050505;
    line-height: 1.2;
}

.page-about .nx-purpose-vision__copy p {
    margin: 0;
    color: #050505;
    line-height: 1.55;
}

.page-about .nx-about-wellness {
    padding: clamp(2rem, 4vw, 4.5rem) 0 clamp(2.5rem, 5vw, 5rem);
    background: var(--secondary-blue-100);
    color: #06156b;
}

.page-about .nx-about-wellness__media {
    overflow: hidden;
    border-radius: 4px;
    background: #10172c;
    aspect-ratio: 16 / 6.75;
}

.page-about .nx-about-wellness__media video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-about .nx-about-wellness__copy {
    display: grid;
    grid-template-columns: minmax(250px, 1.0fr) minmax(0, 2fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
    padding-top: clamp(2rem, 3.5vw, 3.5rem);
}

.page-about .nx-about-wellness__copy h2 {
    margin: 0;
    color: #07166e;
    line-height: 1.08;
    letter-spacing: -.03em;
}

#about-wellness-title {
    color: var(--primary);
}

.page-about .nx-about-wellness__copy p {
    margin: 0;
    color: var(--primary);
    line-height: 1.75;
}

.page-about .nx-about-footprint {
    padding: clamp(3rem, 6vw, 6rem) 0;
}

.page-about .nx-about-footprint__inner>h2 {
    margin: 0 0 clamp(1.75rem, 7vw, 5rem);
    color: #171717;
    line-height: 1.12;
}

.page-about .nx-about-footprint__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(2rem, 7vw, 8rem);
}

.page-about .nx-about-footprint__stat {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.page-about .nx-about-footprint__stat strong {
    color: var(--accent);
    font-size: clamp(3.2rem, 5.75vw, 6rem);
    font-weight: 400;
    line-height: .95;
    letter-spacing: -.055em;
}

.page-about .nx-about-footprint__stat span {
    margin-top: 1rem;
    color: #171717;
    font-size: clamp(.9rem, 1.15vw, 1.1rem);
    font-weight: 600;
    line-height: 1.35;
}

.page-about .nx-about-journey {
    padding: clamp(5rem, 8vw, 8rem) 0 clamp(4rem, 8vw, 8rem);
    background: #fff;
}

.page-about .nx-about-journey__inner>h2 {
    margin: 0;
    line-height: 1.15;
}

.page-about .nx-core-values {
    padding-bottom: clamp(4rem, 7vw, 7rem);
    background: #fff;
}

.page-about .nx-core-values__head {
    padding: clamp(2.5rem, 4vw, 4rem) 0 clamp(8rem, 13vw, 12rem);
    background: #155b9b;
    color: #fff;
    text-align: center;
}

.page-about .nx-core-values__head h2 {
    margin: 0 0 1.25rem;
    color: #fff;
}

.page-about .nx-core-values__head p {
    margin: 0;
    color: #fff;
    line-height: 1.5;
}

.page-about .nx-core-values__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3px;
    margin-top: clamp(-8rem, -9vw, -6rem);
    perspective: 1400px;
}

.page-about .nx-value-flip {
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    aspect-ratio: .62 / 1;
    cursor: pointer;
    perspective: 1000px;
}

.page-about .nx-value-flip__inner {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    transition: transform .7s cubic-bezier(.2, .7, .2, 1);
    transform-style: preserve-3d;
}

.page-about .nx-value-flip:hover .nx-value-flip__inner,
.page-about .nx-value-flip:focus-visible .nx-value-flip__inner,
.page-about .nx-value-flip.is-flipped .nx-value-flip__inner {
    transform: rotateY(180deg);
}

.page-about .nx-value-flip__face {
    position: absolute;
    inset: 0;
    display: flex;
    overflow: hidden;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.page-about .nx-value-flip__front {
    align-items: flex-end;
    justify-content: center;
    background: #0b647f;
}

.page-about .nx-value-flip__front img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-about .nx-value-flip__shade {
    position: absolute;
    inset: 35% 0 0;
    background: linear-gradient(180deg, transparent, rgba(0, 137, 162, .9));
}

.page-about .nx-value-flip__front strong {
    position: relative;
    z-index: 1;
    margin-bottom: 1.5rem;
    color: rgba(255, 255, 255, .7);
    font-size: clamp(1.7rem, 3vw, 3.3rem);
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}

.page-about .nx-value-flip__back {
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(1.25rem, 2.5vw, 2.5rem);
    border-radius: 8px;
    background: #f5f5f5;
    color: #333;
    text-align: left;
    transform: rotateY(180deg);
}

.page-about .nx-value-flip__icon {
    display: grid;
    place-items: center;
    width: clamp(70px, 8vw, 110px);
    aspect-ratio: 1;
    margin-bottom: 1.5rem;
    border-radius: 50%;
    background: #f9b83f;
    color: #fff;
    font-size: clamp(1.8rem, 3vw, 3rem);
}

.page-about .nx-value-flip__back strong {
    margin-bottom: .8rem;
    color: #333;
    font-size: clamp(1.15rem, 1.5vw, 1.45rem);
    font-weight: 800;
}

.page-about .nx-value-flip__text {
    color: #666;
    font-size: clamp(.9rem, 1.15vw, 1.05rem);
    font-weight: 500;
    line-height: 1.55;
}

.page-about .nx-about-certifications {
    position: relative;
    overflow: hidden;
    padding: clamp(3.25rem, 5vw, 5.5rem) 0;
    background:
        radial-gradient(circle at 12% 15%, rgba(210, 10, 30, .055), transparent 25%),
        radial-gradient(circle at 88% 85%, rgba(9, 44, 98, .07), transparent 28%),
        linear-gradient(180deg, #fff 0%, #f7f9fc 100%);
    border-block: 1px solid rgba(9, 44, 98, .08);
}

.page-about .nx-about-certifications__slider {
    padding-top: 0;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}

.page-about .nx-about-certifications .nx-certmarquee__track {
    animation-duration: 28s;
}

.page-about .nx-about-certifications .nx-certmarquee__item {
    position: relative;
    min-width: calc(20vw - 1.5rem);
    min-height: clamp(140px, 12vw, 180px);
    margin: .75rem;
    padding: clamp(1.5rem, 2.5vw, 2.5rem);
    overflow: hidden;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(9, 44, 98, .1);
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(9, 28, 58, .07);
    transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}

.page-about .nx-about-certifications .nx-certmarquee__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 18%;
    width: 64%;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--accent), transparent);
    opacity: .75;
}

.page-about .nx-about-certifications .nx-certmarquee__item:hover {
    transform: translateY(-6px);
    border-color: rgba(210, 10, 30, .24);
    box-shadow: 0 20px 42px rgba(9, 28, 58, .13);
}

.page-about .nx-about-certifications .nx-certmarquee__item img {
    height: clamp(72px, 8vw, 112px);
    max-width: 100%;
    filter: saturate(.92);
    transition: transform .35s ease, filter .35s ease;
}

.page-about .nx-about-certifications .nx-certmarquee__item:hover img {
    transform: scale(1.055);
    filter: saturate(1.08);
}

.page-about .nx-founder-bands {
    padding: clamp(3.5rem, 6vw, 6rem) 0;
    background: #f8f6fa;
}

.page-about .nx-founder-bands h2 {
    margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
    color: #050505;
    line-height: 1.1;
    text-align: center;
    letter-spacing: -.035em;
}

.page-about .nx-founder-slider {
    padding-bottom: 2.75rem;
}

.page-about .nx-founder-band {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .95fr);
    align-items: center;
    gap: clamp(2.5rem, 6vw, 6rem);
    height: auto;
    background: transparent;
}

.page-about .nx-founder-band__portrait {
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border-radius: 16px;
    background: #fff;
}

.page-about .nx-founder-band img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.page-about .nx-founder-band__copy {
    color: #080808;
}

.page-about .nx-founder-band blockquote {
    margin: 0;
    color: #080808;
    font-size: clamp(1.35rem, 2.15vw, 2rem);
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: -.03em;
}

.page-about .nx-founder-band__copy>p {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin: 1.25rem 0 0;
    color: var(--secondary-blue-700);
    ;
}

.page-about .nx-founder-band__copy>p strong {
    color: var(--secondary-blue-700);
    font-size: 1.25rem;
    font-weight: 500;
}

.page-about .nx-founder-band__copy>p span {
    font-size: .95rem;
}

.page-about .nx-founder-slider__pagination .swiper-pagination-bullet-active {
    background: var(--primary);
}

.page-about .nx-about-careers {
    position: relative;
    min-height: clamp(520px, 66vw, 800px);
    overflow: hidden;
    background: #fff;
}

.page-about .nx-about-careers__bg {
    position: absolute;
    inset: 0;
    background: url('../images/about/together.webp') center / cover no-repeat;
}

.page-about .nx-about-careers__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-height: clamp(520px, 66vw, 800px);
}

.page-about .nx-about-careers__copy {
    width: min(45%, 590px);
    color: var(--primary);
}

.page-about .nx-about-careers__eyebrow {
    display: block;
    margin-bottom: 1rem;
    color: var(--primary);
    font-size: .95rem;
    font-weight: 800;
    text-transform: uppercase;
}

.page-about .nx-about-careers h2 {
    margin: 0 0 1.75rem;
    color: var(--primary);
    line-height: .98;
    letter-spacing: -.045em;
}

.page-about .nx-about-careers h2 .nx-about-careers__change {
    color: #d20a1e;
    font-style: normal;
}

.page-about .nx-about-careers h3 {
    margin: 0 0 1.25rem;
    color: var(--primary);
    line-height: 1.4;
}

.page-about .nx-about-careers p {
    max-width: 30rem;
    margin: 0;
    color: #202836;
    line-height: 1.7;
}

/* Desktop Careers follows Corriger's about-services composition. */
@media (min-width: 992px) {
    .page-about .nx-about-careers {
        min-height: 0;
    }

    .page-about .nx-about-careers__bg {
        background-attachment: fixed;
        background-position: center;
    }

    .page-about .nx-about-careers__bg::after {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, rgba(255, 255, 255, .98) 0%, rgba(255, 255, 255, .94) 40%, rgba(255, 255, 255, .7) 48%, transparent 62%);
    }

    .page-about .nx-about-careers__inner {
        width: min(85%, 1620px);
        align-items: flex-start;
    }

    .page-about .nx-about-careers__copy {
        width: 50%;
        max-width: 760px;
    }

    .page-about .nx-about-careers h2 {
        line-height: 1.18;
        letter-spacing: -.02em;
    }

    .page-about .nx-about-careers h3 {
        line-height: 1.5;
    }

    .page-about .nx-about-careers p {
        max-width: 70%;
        line-height: 1.8;
    }
}

.page-about .nx-about-nisce {
    position: relative;
    min-height: clamp(500px, 55vw, 720px);
    overflow: hidden;
    background: #18253a;
}

.page-about .nx-about-nisce__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-about .nx-about-nisce__veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(66, 46, 8, .58) 0%, rgba(128, 91, 18, .34) 46%, rgba(255, 214, 112, .14) 100%),
        linear-gradient(180deg, rgba(255, 225, 145, .18) 0%, rgba(255, 211, 92, .08) 55%, rgba(77, 50, 5, .28) 100%);
}

.page-about .nx-about-nisce__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 46% 54%;
    align-items: center;
    min-height: clamp(500px, 55vw, 720px);
}

.page-about .nx-about-nisce__mark {
    position: relative;
    display: block;
    width: min(36vw, 500px);
    max-width: 100%;
    height: auto;
}

.page-about .nx-about-nisce__copy {
    color: #fff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}

.page-about .nx-about-nisce__copy h2 {
    margin: 0 0 1.1rem;
    color: #fff;
}

.page-about .nx-about-nisce__name {
    margin: 0 0 1.35rem;
    color: #fff;
    line-height: 1.3;
}

.page-about .nx-about-nisce__statement {
    margin: 0;
    color: #fff;
    line-height: 1.45;
}

/* --- Science section background video --- */
.nx-science {
    position: relative;
    overflow: hidden;
}

.nx-science__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.nx-science__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 65% center;
}

.nx-science__veil {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #fff 0%, #fff 20%, rgba(255, 255, 255, 0) 100%);
}

.nx-science__head {
    max-width: 40%;
    color: #000;
}

.nx-science__head .nx-title,
.nx-science__head .nx-lead,
.nx-science__head .nx-muted {
    color: #000;
}

.nx-science__inner {
    position: relative;
    z-index: 2;
}

/* --- Section background photo (ink sections) --- */
.nx-has-bg {
    position: relative;
    overflow: hidden;
}

.nx-has-bg>.nx-container {
    position: relative;
    z-index: 2;
}

.nx-section__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.nx-section__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .5;
}

.nx-section__bg--soft img {
    opacity: .16;
}

/* Dark text on photo-background ink sections (no overlay veil) */
.nx-has-bg {
    color: var(--text);
}

.nx-has-bg .nx-title {
    color: var(--heading);
}

.nx-has-bg .nx-title em {
    color: var(--accent);
}

.nx-has-bg .nx-lead {
    color: var(--text);
}

.nx-has-bg .nx-muted {
    color: var(--muted);
}

.nx-has-bg .nx-pull {
    color: var(--primary-700);
}

.nx-has-bg .nx-link {
    color: var(--primary);
}

.nx-has-bg .nx-muted--light {
    color: var(--muted);
}

.nx-has-bg .nx-marquee__item {
    color: var(--text);
}

.nx-has-bg .nx-reach__closing {
    color: var(--heading);
}

.nx-has-bg .nx-techcard {
    background: rgba(0, 0, 0, .03);
    border-color: rgba(0, 0, 0, .1);
}

.nx-has-bg .nx-techcard h3 {
    color: var(--heading);
}

.nx-has-bg .nx-techcard p {
    color: var(--muted);
}

.nx-has-bg .nx-philosophy {
    background: rgba(0, 0, 0, .03);
    border-color: rgba(0, 0, 0, .12);
}

.nx-has-bg .nx-philosophy h3 {
    color: var(--heading);
}

.nx-has-bg .nx-philosophy p {
    color: var(--text);
}

.nx-has-bg .nx-btn--ghost-light {
    background: rgba(0, 0, 0, .03);
    color: var(--primary);
    box-shadow: inset 0 0 0 1.5px var(--primary);
}

.nx-has-bg .nx-btn--ghost-light:hover {
    background: var(--primary);
    color: #fff;
}

/* --- Photo figures (about teaser, partnerships) --- */
.nx-figure--photo img,
.nx-figure--photo video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nx-figure__scrim {
    position: absolute;
    inset: 0;
}

/* --- Brand banner (services) --- */
.nx-brandbanner {
    position: relative;
    height: clamp(200px, 30vw, 340px);
    border-radius: var(--r-lg);
    overflow: hidden;
    margin-bottom: 3.2rem;
    box-shadow: var(--shadow);
}

.nx-brandbanner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nx-brandbanner__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(10, 95, 83, .9), rgba(10, 95, 83, .25) 70%, transparent);
}

.nx-brandbanner--accent .nx-brandbanner__scrim {
    background: linear-gradient(100deg, rgba(150, 112, 44, .9), rgba(181, 137, 58, .25) 70%, transparent);
}

.nx-brandbanner__cap {
    position: absolute;
    left: 1.6rem;
    bottom: 1.3rem;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: #fff;
    font-weight: 600;
    font-size: .92rem;
    background: rgba(0, 0, 0, .28);
    border: 1px solid rgba(255, 255, 255, .2);
    padding: .55rem 1.1rem;
    border-radius: var(--pill);
    backdrop-filter: blur(6px);
}

.nx-brandbanner__cap i {
    color: #fff;
}

/* --- Founder photos (about) --- */
.nx-founder__portrait img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: 50%;
    border: 4px solid var(--primary-100);
    z-index: 1;
}

/* =============================================================
   REFERENCE-INSPIRED SECTIONS
   Keyword marquee Â· Our Services Â· About upgrade Â· Our Benefits
   ============================================================= */

/* --- Hero keyword marquee strip --- */
.nx-keystrip {
    background: var(--ink);
    overflow: hidden;
    padding: 1.05rem 0;
    border-block: 1px solid rgba(255, 255, 255, .08);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.nx-keystrip__track {
    display: inline-flex;
    align-items: center;
    gap: 2.2rem;
    white-space: nowrap;
    width: max-content;
    animation: nx-marquee 32s linear infinite;
}

.nx-keystrip:hover .nx-keystrip__track {
    animation-play-state: paused;
}

.nx-keystrip__word {
    font-weight: 600;
    font-size: clamp(1.25rem, 2.4vw, 2rem);
    color: #fff;
    letter-spacing: -.01em;
}

.nx-keystrip__word:nth-child(4n+3) {
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, .5);
}

.nx-keystrip__star {
    color: var(--accent);
    font-size: .78rem;
}

/* --- Our Services (focus-area cards) --- */
/* --- Condition support slider (Lilly-style: full-bleed photo cards, centered active slide) --- */
.nx-condslider__swiper {
    overflow: visible;
    padding: .5rem .25rem 1rem;
}

.nx-condslider__swiper .swiper-wrapper {
    align-items: center;
}

.nx-cond {
    width: 50vw;
    max-width: 950px;
    height: clamp(280px, 24vw, 460px);
    flex-shrink: 0;
    transition: height var(--t);
}

.nx-cond.swiper-slide-active {
    height: clamp(340px, 31vw, 590px);
}

.nx-cond__link {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: var(--r-lg);
    overflow: hidden;
    background: var(--ink) center / cover no-repeat;
    transition: transform var(--t);
}

.nx-cond__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11, 34, 68, 0) 40%, rgba(11, 34, 68, .82) 100%);
}

.nx-cond__body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1.8rem 1.8rem 2rem;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.nx-cond__title {
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    font-weight: 600;
    color: #fff;
    line-height: 1.1;
}

.nx-cond__cta {
    color: #fff;
    font-weight: 600;
    font-size: .95rem;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}

.nx-condslider__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.4rem;
    margin-top: 1.6rem;
}

.nx-condslider__prev,
.nx-condslider__next {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--surface);
    border: 1px solid var(--line);
    color: var(--heading);
    transition: background var(--t), color var(--t), border-color var(--t);
}

.nx-condslider__prev:hover,
.nx-condslider__next:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.nx-condslider__count {
    font-weight: 600;
    color: var(--muted);
    font-size: .92rem;
    min-width: 5.5rem;
    text-align: center;
}

.nx-condslider__cur {
    color: var(--heading);
}

/* --- Stories (Philips-style card carousel) --- */
.nx-stories__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2.4rem;
}

.nx-stories__nav {
    display: flex;
    align-items: center;
    gap: .9rem;
    flex-shrink: 0;
}

.nx-stories__prev,
.nx-stories__next {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--surface);
    border: 1px solid var(--line);
    color: var(--heading);
    transition: background var(--t), color var(--t), border-color var(--t);
}

.nx-stories__prev:hover,
.nx-stories__next:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.nx-stories__prev.swiper-button-disabled,
.nx-stories__next.swiper-button-disabled {
    opacity: .35;
    pointer-events: none;
}

.nx-stories__swiper {
    overflow: hidden;
    margin: 0 -.25rem;
    padding: .25rem;
}

.nx-stories__swiper .swiper-wrapper {
    align-items: stretch;
}

.nx-stories__swiper .swiper-slide {
    height: auto;
    display: flex;
}

.nx-story {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--paper);
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    position: relative;
    transition: box-shadow .45s cubic-bezier(.4, 0, .2, 1);
}

.nx-story:hover {
    box-shadow: 0 16px 48px rgba(10, 35, 66, .22);
}

.nx-story__media {
    position: relative;
    display: block;
    height: 220px;
    flex-shrink: 0;
    overflow: hidden;
}

.nx-story__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s cubic-bezier(.4, 0, .2, 1);
    will-change: transform;
}

.nx-story:hover .nx-story__media img {
    transform: scale(1.08);
}

.nx-story__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 20%, rgba(22, 51, 90, .72) 65%, rgba(22, 51, 90, 1) 100%);
    opacity: 0;
    transition: opacity .45s cubic-bezier(.4, 0, .2, 1);
    pointer-events: none;
}

.nx-story:hover .nx-story__media::after {
    opacity: 1;
}

.nx-story__body {
    padding: 1.5rem 1.25rem 1.75rem;
    flex: 1;
    background: var(--primary-700);
    transition: background .45s cubic-bezier(.4, 0, .2, 1);
}

.nx-story__tag {
    display: block;
    font-size: .8rem;

    font-weight: 500;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .75);
    line-height: 1.3;
    margin-bottom: .6rem;
}

.nx-story__subtitle {
    display: block;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
    margin-bottom: .9rem;
}

.nx-story__text {
    display: block;
    font-size: .9rem;
    color: rgba(255, 255, 255, .82);
    line-height: 1.65;
    margin: 0 0 .7rem;
}

.nx-story__text:last-child {
    margin-bottom: 0;
}

/* --- Quality in Practice (vertical journey timeline) --- */
.nx-qtimeline__list {
    display: flex;
    flex-direction: column;
    align-items: center;
    list-style: none;
    margin: clamp(2.5rem, 6vw, 4.5rem) 0 0;
    padding: 0;
}

.nx-qtimeline__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
}

.nx-qtimeline__item:not(:last-child) {
    padding-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.nx-qtimeline__item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 44px;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: repeating-linear-gradient(180deg, var(--line) 0 6px, transparent 6px 12px);
    transform: translateX(-50%);
}

.nx-qtimeline__dot {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--primary-700);
    display: grid;
    place-items: center;
    box-shadow: 0 8px 20px rgba(22, 51, 90, .28);
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    transition: transform var(--t), background var(--t);
}

.nx-qtimeline__item:hover .nx-qtimeline__dot {
    background: var(--primary);
    transform: scale(1.08);
}

.nx-qtimeline__num {
    font-weight: 700;
    font-size: 1rem;
    color: #fff;
}

.nx-qtimeline__label {
    margin-top: .9rem;

    font-weight: 600;
    font-size: clamp(1.05rem, 1.6vw, 1.3rem);
    color: var(--primary-700);
    max-width: 20rem;
    line-height: 1.4;
}

/* --- Our Commitment (photo banner + certification strip) --- */
.nx-commitbanner {
    position: relative;
    min-height: clamp(420px, 48vw, 600px);
    padding-block: 0;
    margin-bottom: clamp(2.5rem, 6vw, 4rem);
}

.nx-commitbanner .nx-section__bg {
    background-position: center right;
}

.nx-commitbanner .nx-section__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, var(--ink) 0%, var(--ink) 34%, rgba(16, 43, 78, .86) 48%, rgba(16, 43, 78, .3) 68%, rgba(16, 43, 78, 0) 100%);
}

.nx-commitbanner__inner {
    position: absolute;
    inset: 0;
    z-index: 1;
    margin-block: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-bottom: clamp(2.5rem, 6vw, 4rem);
}

.nx-commitbanner__copy {
    position: relative;
    max-width: 34rem;
}

.nx-commitbanner__title {
    line-height: 1.25;
    color: #fff;
    margin-bottom: 1.2rem;
}

.nx-commitbanner__text {
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, .82);
    max-width: 30rem;
}

.nx-commitbanner__text p {
    margin: 0;
}

.nx-commitbanner__text p+p {
    margin-top: .6rem;
}

.nx-commitbanner__certs {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: clamp(1.5rem, 4vw, 3rem);
    width: 100%;
    max-width: 56rem;
    background: var(--accent);
    padding: 1.5rem clamp(1.5rem, 4vw, 2.75rem);
}

.nx-commitbanner__certs-label {
    font-weight: 700;
    font-size: 1.05rem;
    color: #fff;
    white-space: nowrap;
}

.nx-commitbanner__certs-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: clamp(1.25rem, 3vw, 2.25rem);
    list-style: none;
    margin: 0;
    padding: 0;
}

.nx-commitbanner__certs-list li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
}

.nx-commitbanner__certs-list i {
    font-size: 1.5rem;
    color: #fff;
}

.nx-commitbanner__certs-list span {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #fff;
}

@media (max-width: 720px) {
    .nx-commitbanner .nx-section__bg::after {
        background: linear-gradient(180deg, var(--ink) 0%, var(--ink) 38%, rgba(16, 43, 78, .88) 55%, rgba(16, 43, 78, .4) 100%);
    }

    .nx-commitbanner__certs {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
}

/* --- About upgrade: decorative shapes, badge, feature list --- */
.nx-about-media {
    position: relative;
}

.nx-about-media .nx-figure {
    position: relative;
    z-index: 2;
}

.nx-shape {
    position: absolute;
    z-index: 1;
    pointer-events: none;
}

.nx-shape--dots {
    width: 130px;
    height: 130px;
    top: -22px;
    left: -22px;
    background-image: radial-gradient(var(--primary) 2px, transparent 2px);
    background-size: 16px 16px;
    opacity: .22;
    border-radius: 8px;
}

.nx-shape--ring {
    width: 120px;
    height: 120px;
    right: -26px;
    bottom: 54px;
    border: 2px dashed var(--accent);
    border-radius: 50%;
    opacity: .5;
    animation: nx-spin 30s linear infinite;
}

.nx-about-badge {
    position: absolute;
    z-index: 3;
    right: -12px;
    bottom: -18px;
    background: #fff;
    border-radius: var(--r);
    padding: 1.1rem 1.4rem;
    box-shadow: var(--shadow-lg);
    text-align: center;
    border: 1px solid var(--line);
}

.nx-about-badge__num {
    display: block;
    font-size: 2.1rem;
    color: var(--primary-700);
    line-height: 1;
}

.nx-about-badge__label {
    font-size: .78rem;
    color: var(--muted);
}

.nx-featlist {
    display: grid;
    gap: 1.1rem;
    margin: 1.6rem 0 2rem;
}

.nx-featlist li {
    display: flex;
    gap: 1.1rem;
    align-items: flex-start;
}

.nx-featlist__n {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    font-weight: 600;
    color: var(--primary-700);
    background: var(--primary-050);
    font-size: 1.05rem;
}

.nx-featlist strong {
    display: block;
    color: var(--heading);
    font-size: 1.1rem;
    margin-bottom: .15rem;
}

.nx-featlist p {
    margin: 0;
    color: var(--muted);
}

/* --- Our Benefits (why-choose-us) --- */
.nx-benefits.nx-section--paper {
    background: #FFFFFF;
}

.nx-benefits__head {
    margin-bottom: 2.2rem;
}

.nx-benefits__head .nx-title {
    margin: 0;
}

.nx-benefits__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}

.nx-benefit {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.5rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 1.7rem;
    min-height: 160px;
    transition: border-color var(--t), box-shadow var(--t);
}

.nx-benefit:hover {
    border-color: var(--accent);
    box-shadow: var(--shadow);
}

.nx-benefit__title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--heading);
    margin: 0;
}

.nx-benefit__link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .92rem;
    font-weight: 600;
    color: var(--accent);
}

.nx-benefit__link i {
    font-size: .8rem;
    transition: transform var(--t);
}

.nx-benefit:hover .nx-benefit__link i {
    transform: translateX(4px);
}

.nx-benefits .nx-standard__note {
    margin-top: 2.8rem;
}

/* Reduced motion */
.nx-reduced-motion * {
    animation: none !important;
    transition: none !important;
}

.nx-reduced-motion [data-aos] {
    opacity: 1 !important;
    transform: none !important;
}

/* =============================================================
   16. BRAND COLOUR ROTATION
   Both logo colours carry the page: every second card, step and
   badge in a grid flips from brand blue to brand red, so red is
   structural rather than a garnish. :nth-of-type keeps the count
   correct in grids that also hold a decorative line element.
   ============================================================= */

/* Icon badges on light sections */
.nx-check:nth-of-type(even) .nx-check__icon,
.nx-val:nth-of-type(even) .nx-val__icon {
    background: linear-gradient(135deg, var(--accent-050), #fff);
    color: var(--accent-600);
}

/* Icon badges on dark sections */
.nx-checks--dark .nx-check:nth-of-type(even) .nx-check__icon,
.nx-vals--dark .nx-val:nth-of-type(even) .nx-val__icon,
.nx-techcard:nth-of-type(even) .nx-techcard__icon {
    background: rgba(211, 35, 38, .22);
    color: var(--accent-300);
}

/* Solid numbered / filled marks */
.nx-flow4__step:nth-of-type(even) .nx-flow4__num,
.nx-flow li:nth-of-type(even) .nx-flow__dot {
    background: linear-gradient(135deg, var(--accent), var(--accent-600));
}

/* Outlined / ringed marks */
.nx-step:nth-of-type(even):hover .nx-step__num {
    border-color: var(--accent);
}

/* Contact options tiles */
.nx-contactcard:nth-of-type(even) .nx-contactcard__ic {
    background: var(--accent-050);
    color: var(--accent-600);
}

/* Stat rules alternate direction so the pair reads as one system */
.nx-stat:nth-of-type(even)::before {
    background: linear-gradient(90deg, var(--accent), var(--primary));
}

/* Homepage careers feature — scoped to avoid the legacy news-card styles. */
section.nx-careers {
    display: block;
    margin-top: 0;
    padding: clamp(3rem, 6vw, 5rem) 0;
    color: initial;
    background: var(--paper);
    box-shadow: none;
    overflow: visible;
}

section.nx-careers::after {
    display: none;
}

/* Let this feature use more of the viewport than the standard reading-width
   container, while preserving a comfortable edge gutter. */
section.nx-careers .nx-container {
    width: min(100% - 2.4rem, 1440px);
}

section.nx-careers .nx-careers__panel {
    position: relative;
    min-height: 30rem;
    padding: 2.5rem 0;
}

section.nx-careers .nx-careers__image {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    width: 39%;
    height: 25rem;
}

section.nx-careers .nx-careers__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 69%;
    min-height: 28rem;
    margin-left: auto;
    padding: clamp(2.5rem, 5vw, 4.5rem) clamp(2.25rem, 6vw, 6rem) clamp(2.5rem, 5vw, 4.5rem) clamp(10rem, 13vw, 14rem);
    color: #fff;
    background: var(--accent);
}

section.nx-careers .nx-careers__content h2 {
    color: #fff;
}

section.nx-careers .nx-careers__content>span {
    color: #fff;
}

@media (max-width: 760px) {
    section.nx-careers .nx-careers__panel {
        min-height: 0;
        padding: 0;
    }

    section.nx-careers .nx-careers__image {
        position: relative;
        width: 100%;
        height: 15rem;
    }

    section.nx-careers .nx-careers__content {
        width: 100%;
        min-height: 0;
        padding: 2.5rem 1.5rem;
    }
}

/* Three-stage scroll composition: full image, reduced image, final careers panel. */
section.nx-careers.nx-careers--scroll {
    height: 280vh;
    padding: 0;
}

section.nx-careers.nx-careers--scroll .nx-careers__sticky {
    position: sticky;
    top: 0;
    display: grid;
    min-height: 100vh;
    place-items: center;
}

section.nx-careers.nx-careers--scroll .nx-careers__panel {
    width: 100%;
    height: min(74vh, 34rem);
    min-height: 26rem;
    padding: 0;
}

section.nx-careers.nx-careers--scroll .nx-careers__image {
    z-index: 2;
    top: 0;
    left: 0;
    opacity: 1;
    clip-path: inset(0);
    visibility: visible;
    background-position: center;
    transform: none;
    transition: none;
    will-change: width, height;
}

section.nx-careers.nx-careers--scroll .nx-careers__content {
    z-index: 1;
    min-height: 82%;
    opacity: 0;
    transform: translateX(2rem);
    transition: none;
    will-change: opacity, transform;
}

@media (max-width: 760px) {
    section.nx-careers.nx-careers--scroll {
        height: auto;
        padding: 3rem 0;
    }

    section.nx-careers.nx-careers--scroll .nx-careers__sticky {
        position: static;
        display: block;
        min-height: 0;
    }

    section.nx-careers.nx-careers--scroll .nx-careers__panel {
        height: auto;
    }

    section.nx-careers.nx-careers--scroll .nx-careers__image,
    section.nx-careers.nx-careers--scroll .nx-careers__content {
        width: 100%;
        height: auto;
        opacity: 1;
        transform: none;
    }
}

/* =============================================================
   Global light-surface type system
   ============================================================= */
main :is(h1, h2, h3, h4, .nx-title, .nx-subtitle) {
    color: #000;
}

main :is(p, .nx-lead, .nx-muted, .nx-note, .nx-longread) {
    color: #000;
}

main .nx-why__label+.nx-why__outro {
    margin-top: var(--heading-copy-gap);
}

/* Men's Health photo banner. */
.nx-mens-hero {
    position: sticky;
    top: 0;
    isolation: isolate;
    overflow: hidden;
    height: clamp(560px, calc(100svh - 110px), 930px);
    margin-top: 88px;
    background: #dce8c5;
}

.nx-mens-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

:is(.page-focus, .page-contact) .nx-mens-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .96) 20%, rgba(255, 255, 255, .8) 36%, rgba(255, 255, 255, .42) 50%, rgba(255, 255, 255, .12) 62%, transparent 74%);
    pointer-events: none;
}

.nx-mens-hero__crumbwrap {
    position: absolute;
    top: clamp(24px, 3vw, 48px);
    left: 0;
    right: 0;
    z-index: 2;
}

.nx-mens-hero__crumbwrap .nx-crumb,
.nx-mens-hero__crumbwrap .nx-crumb a {
    color: var(--primary);
}

.nx-mens-hero__crumbwrap .nx-crumb a:hover {
    color: var(--accent);
}

.nx-mens-hero__content {
    position: absolute;
    inset: 35% 0 auto;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0;
    box-sizing: border-box;
}

:is(.page-focus, .page-contact) .nx-mens-hero__title {
    margin: 0;
    color: var(--primary);
    line-height: 1.03;
    letter-spacing: -.025em;
    text-align: left;
    max-width: 50%;
}

@media (max-width: 767px) {
    :is(.page-focus, .page-contact) .nx-mens-hero__title {
        max-width: 100%;
    }
}

.nx-contact-hero {
    position: relative;
    background: var(--primary-100);
}

.page-contact .nx-contact-hero .nx-mens-hero__title {
    max-width: 100%;
    white-space: nowrap;
}

.page-contact .nx-contact-hero .nx-mens-hero__title span {
    display: inline;
}

.nx-mens-hero__title span {
    display: block;
}

.nx-mens-hero__title-accent {
    color: var(--accent);
}

.page-mens-health {
    overflow-x: clip;
}

.page-focus-editorial {
    overflow-x: clip;
}

.nx-focus-page-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.nx-focus-context {
    margin-top: clamp(32px, 4vw, 56px);
}

.nx-focus-editorial .nx-mens-standard__layout {
    grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
}

.nx-focus-editorial .nx-mens-standard__overlay {
    max-width: 88%;
}

.nx-focus-editorial .nx-mens-products__grid,
.page-mens-health .nx-mens-products__grid {
    display: flex;
    flex-wrap: wrap;
}

.nx-focus-editorial .nx-mens-products__card,
.page-mens-health .nx-mens-products__card {
    flex: 0 1 300px;
    min-width: 0;
}

.nx-focus-editorial .nx-topic-flip__back {
    overflow-y: auto;
}

@media (max-width: 767px) {
    .nx-focus-editorial .nx-mens-standard__layout {
        grid-template-columns: 1fr;
    }

    .nx-focus-editorial .nx-mens-standard__panel {
        min-height: 350px;
    }

    .nx-focus-editorial .nx-mens-standard__overlay {
        max-width: 100%;
    }

    .nx-focus-editorial .nx-topic-flip__back {
        padding: 16px 12px;
        font-size: 14px;
    }

    .nx-focus-editorial .nx-topic-flip__back strong {
        font-size: 18px;
    }
}

.nx-mens-content,
.nx-page-content {
    position: relative;
    z-index: 6;
    margin-top: -60px;
    border-radius: 48px 48px 0 0;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 -12px 40px rgba(30, 40, 65, .05);
}

.nx-page-content {
    overflow: clip;
}

main>.nx-pinned-hero {
    position: sticky;
    top: 0;
    isolation: isolate;
}

/* Clip sideways overflow without creating a scrolling ancestor that disables
   the banner's sticky position (overflow-x: hidden also makes overflow-y auto). */
@supports (overflow: clip) {

    html,
    body {
        overflow-x: clip;
    }
}

.nx-mens-content>#formulations {
    background: #fff;
    padding-block: clamp(48px, 5vw, 80px);
}

.nx-mens-intro {
    padding: 0 0 clamp(32px, 4vw, 64px);
    background: var(--surface);
    text-align: center;
}

.nx-mens-graph {
    margin-top: clamp(32px, 4vw, 56px);
    margin-bottom: 0;
    border-radius: 12px;
    padding: clamp(8px, 2vw, 24px);
}

.nx-mens-graph svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.nx-mens-graph__window {
    fill: var(--primary-050);
}

.nx-mens-graph__guide {
    fill: none;
    stroke: var(--primary-500);
    stroke-width: 1;
    stroke-dasharray: 3 3;
    opacity: .65;
}

.nx-mens-graph__axis {
    fill: none;
    stroke: #000;
    stroke-width: 1.5;
}

.nx-mens-graph__curve {
    fill: none;
    stroke: var(--accent);
    stroke-width: 2.2;
    stroke-linecap: round;
}

.nx-mens-graph__labels {
    fill: var(--primary-600);
    font-weight: 400;
    font-size: 11px;
    line-height: normal;
}

.nx-womens-graph__annotation,
.nx-mens-graph__annotation {
    fill: var(--primary-600);
    font-weight: 700;
    font-size: 10px;
    line-height: normal;
}

.nx-mens-graph__markers {
    fill: var(--primary-600);
}

.nx-daily-graph__dot {
    fill: none;
    stroke: var(--line);
    stroke-width: 1.2;
}

.nx-daily-graph__dot--filled {
    fill: var(--primary);
    stroke: var(--primary);
}

@media (prefers-reduced-motion: no-preference) {
    .nx-mens-graph.is-ready .nx-daily-graph__dot {
        opacity: 0;
    }

    .nx-mens-graph.is-drawing .nx-daily-graph__dot {
        animation: nx-daily-dot-reveal .35s ease-out var(--dot-delay) forwards;
    }
}

@keyframes nx-daily-dot-reveal {
    to {
        opacity: 1;
    }
}

.nx-mens-graph__bar--women {
    fill: var(--accent);
}

.nx-mens-graph__bar--men {
    fill: var(--primary);
}

.nx-mens-graph__bar-label {
    fill: #fff;
    font-weight: 700;
    font-size: 10px;
    line-height: normal;
}

@media (prefers-reduced-motion: no-preference) {
    .nx-mens-graph.is-ready .nx-mens-graph__bar {
        clip-path: inset(0 100% 0 0) fill-box;
    }

    .nx-mens-graph.is-drawing .nx-mens-graph__bar {
        animation: nx-graph-bar-draw 2.6s ease-in-out forwards;
    }
}

@keyframes nx-graph-bar-draw {
    to {
        clip-path: inset(0 0 0 0) fill-box;
    }
}

.nx-mens-graph.is-ready :is(.nx-mens-graph__curve, .nx-mens-graph__axis) {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}

.nx-mens-graph.is-ready .nx-mens-graph__guide {
    clip-path: inset(0 0 100% 0) stroke-box;
}

.nx-mens-graph.is-drawing :is(.nx-mens-graph__curve, .nx-mens-graph__axis) {
    animation: nx-graph-draw 2.6s ease-in-out forwards;
}

.nx-mens-graph.is-drawing .nx-mens-graph__guide {
    animation: nx-graph-guide-draw 2.6s ease-in-out forwards;
}

@keyframes nx-graph-draw {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes nx-graph-guide-draw {
    to {
        clip-path: inset(0 0 0 0) stroke-box;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nx-mens-graph.is-ready :is(.nx-mens-graph__curve, .nx-mens-graph__axis) {
        stroke-dashoffset: 0;
        animation: none;
    }

    .nx-mens-graph.is-ready .nx-mens-graph__guide {
        clip-path: none;
        animation: none;
    }
}

.nx-mens-support {
    padding: 0;
    width: 100%;
    background: var(--ink);
}

.nx-mens-standard {
    background: var(--primary-100);
}

main .nx-mens-standard .nx-title,
main .nx-mens-standard .nx-head .nx-lead {
    color: #000;
}

.nx-mens-standard .nx-head .nx-lead {
    margin: var(--heading-copy-gap) auto 0;
    max-width: 1000px;
}

.nx-mens-standard__layout {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 28px;
}

.nx-mens-standard__tabs {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
}

.nx-mens-standard__tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border: 1px solid var(--accent);
    border-radius: 8px;
    background: var(--surface);
    color: var(--accent);
    text-align: left;
    font-weight: 600;
    font-size: 16px;
    line-height: normal;
    cursor: pointer;
    transition: background .25s, color .25s;
}

.nx-mens-standard__tab[aria-selected="true"] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--surface);
}

.nx-mens-standard__tab:hover {
    border-color: var(--accent);
}

.nx-mens-standard__panels {
    min-width: 0;
}

.nx-mens-standard__panel {
    position: relative;
    aspect-ratio: 2.1 / 1;
    overflow: hidden;
    border-radius: 12px;
    background: var(--paper);
}

.nx-mens-standard__panel::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(35, 78, 135, .58);
    content: '';
    pointer-events: none;
}

.nx-mens-standard__panel:not([hidden]) {
    animation: nx-standard-reveal .4s ease;
}

.nx-mens-standard__panel img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nx-mens-standard__overlay {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    max-width: 72%;
    margin: 0;
    padding: 28px 32px;
    color: #fff !important;
    line-height: 1.16;
}

@keyframes nx-standard-reveal {
    from {
        opacity: .25;
    }

    to {
        opacity: 1;
    }
}

@media (max-width: 767px) {
    .nx-mens-standard__layout {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .nx-mens-standard__tabs {
        flex-direction: row;
        overflow-x: auto;
        padding-bottom: 4px;
        gap: 8px;
    }

    .nx-mens-standard__tab {
        flex-shrink: 0;
        padding: 12px 16px;
        font-size: 14px;
    }

    .nx-mens-standard__tab span {
        display: none;
    }

    .nx-mens-standard__panel {
        aspect-ratio: 4 / 3;
    }

    .nx-mens-standard__overlay {
        max-width: 92%;
        padding: 18px 20px;
        line-height: 1.25;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nx-mens-standard__panel:not([hidden]) {
        animation: none;
    }
}

.nx-mens-products {
    background: var(--surface);
}

.nx-mens-products .nx-head .nx-lead {
    margin: var(--heading-copy-gap) auto 0;
    max-width: 760px;
}

.nx-mens-products__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 300px));
    justify-content: center;
    gap: clamp(16px, 2.5vw, 32px);
    margin-top: clamp(32px, 5vw, 56px);
}

.nx-mens-products__card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(9, 20, 36, .08);
}

.nx-mens-products__card img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: contain;
    object-position: center;
    background: #fff;
}

.nx-mens-products__card h3 {
    margin: 0;
    padding: 14px 18px 18px;
    color: var(--ink);
    line-height: 1.2;
}

.nx-mens-topics {
    padding: clamp(48px, 7vw, 100px) 0;
    background: var(--surface);
}

.nx-mens-topics__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
}

.nx-mens-topics__video {
    position: relative;
    align-self: stretch;
    min-height: clamp(520px, 48vw, 720px);
    overflow: hidden;
    border-radius: 0;
    background: var(--surface);
}

.nx-mens-topics__video::after {
    position: absolute;
    inset: 0 0 0 auto;
    width: 3px;
    background: var(--surface);
    content: '';
    pointer-events: none;
}

.nx-mens-topics__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: clamp(28px, 4vw, 52px);
    padding-right: clamp(16px, 3vw, 48px);
}

.nx-mens-topics__intro {
    max-width: none;
    text-align: center;
}

.nx-mens-topics__intro .nx-lead {
    margin: var(--heading-copy-gap) auto 0;
    max-width: 1000px;
}

.nx-mens-topics__carousel,
.nx-mens-topics__viewport {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
}

.nx-mens-topics__viewport {
    height: clamp(420px, 40vw, 580px);
}

.nx-mens-topics__video img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

.nx-mens-topics__track {
    display: flex;
    height: 100%;
    transition: transform .8s cubic-bezier(.22, .61, .36, 1);
}

.nx-mens-topics__slide {
    flex: 0 0 50%;
    min-width: 0;
    height: 100%;
    padding: 0 2px;
}

.nx-topic-flip {
    display: block;
    border: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    perspective: 1200px;
}

.nx-topic-flip__inner {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    transform-style: preserve-3d;
    transition: transform .7s ease;
}

.nx-topic-flip.is-flipped .nx-topic-flip__inner {
    transform: rotateY(180deg);
}

.nx-topic-flip__front,
.nx-topic-flip__back {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
    border-radius: 0;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.nx-topic-flip__front img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

.nx-topic-flip__shade {
    position: absolute;
    inset: 35% 0 0;
    background: linear-gradient(180deg, transparent, rgba(0, 137, 162, .9));
}

.nx-topic-flip__caption {
    position: absolute;
    bottom: 24px;
    left: 50%;
    color: rgba(255, 255, 255, .7);
    font-size: clamp(18px, 2vw, 30px);
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    transform: translateX(-50%) rotate(180deg);
    white-space: nowrap;
}

.nx-topic-flip__back {
    transform: rotateY(180deg);
    padding: clamp(18px, 2vw, 28px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
    background: #f5f5f5;
    color: #333;
    font-size: 16px;
    line-height: 1.5;
}

.nx-topic-flip__back strong {
    font-size: clamp(20px, 1.5vw, 26px);
    line-height: 1.15;
}

.nx-topic-flip__hint {
    font-size: 13px;
    opacity: .8;
}

.nx-mens-topics__controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    padding-top: 20px;
    color: var(--primary);
}

.nx-mens-topics__controls button {
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    color: var(--primary);
    cursor: pointer;
    font-size: 22px;
}

@media (max-width: 767px) {
    .nx-mens-topics__layout {
        grid-template-columns: 1fr;
    }

    .nx-mens-topics__video {
        min-height: 420px;
    }

    .nx-mens-topics__intro {
        text-align: center;
    }

    .nx-mens-topics__intro .nx-lead {
        margin-right: auto;
        margin-left: auto;
    }

    .nx-mens-topics__content {
        padding-right: 0;
    }

    .nx-mens-topics__slide {
        padding: 0 2px;
    }

    .nx-focus-editorial .nx-mens-products__grid,
    .page-mens-health .nx-mens-products__grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 560px;
        gap: 14px;
        margin-right: auto;
        margin-left: auto;
    }

    .nx-focus-editorial .nx-mens-products__card,
    .page-mens-health .nx-mens-products__card {
        flex: none;
    }

    .nx-focus-editorial .nx-mens-products__card img,
    .page-mens-health .nx-mens-products__card img {
        aspect-ratio: 4 / 3;
    }

    .nx-focus-editorial .nx-mens-products__card h3,
    .page-mens-health .nx-mens-products__card h3 {
        padding: 10px 10px 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nx-topic-flip__inner {
        transition: none;
    }
}

.nx-mens-support__layout {
    width: 100%;
}

.nx-mens-support__portrait {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: 100%;
    height: 100svh;
    min-height: 540px;
    background: var(--ink);
}

.nx-mens-support__portrait>img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    inset: 0;
}

.nx-focus-editorial--reproductive-wellness .nx-mens-support__portrait>img {
    object-position: center bottom;
}

.nx-mens-support__portrait::after {
    content: '';
    position: absolute;
    inset: 50% 0 0;
    background: linear-gradient(transparent, var(--ink));
    z-index: 1;
}

.nx-mens-stats {
    position: absolute;
    z-index: 3;
    inset: 0;
    overflow: hidden;
}

.nx-mens-stats__track,
.nx-mens-stats__group {
    position: absolute;
    inset: 0;
}

.nx-mens-stats__card {
    position: absolute;
    left: 50%;
    top: 0;
    width: clamp(250px, 22vw, 380px);
    min-height: 180px;
    padding: 28px;
    border: 1px solid var(--primary-500);
    border-radius: 18px;
    background: var(--primary-100);
    color: var(--accent);
    box-shadow: 0 14px 35px rgba(16, 43, 78, .2);
    will-change: transform, opacity;
}

.nx-mens-stats__card:nth-child(1) {
    transform: translate(-50%, 60vh);
}

.nx-mens-stats__card:nth-child(2) {
    transform: translate(-160%, 24vh) scale(.76);
}

.nx-mens-stats__card:nth-child(3) {
    transform: translate(60%, 24vh) scale(.76);
}

.nx-mens-stats__card>strong {
    display: block;
    font-size: clamp(28px, 2.6vw, 42px);
    line-height: 1.1;
}

main .nx-mens-stats__card p {
    color: var(--text);
    line-height: 1.4;
    margin: 26px 0 0;
}

.nx-mens-stats__pause {
    position: absolute;
    z-index: 4;
    right: 24px;
    bottom: 24px;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 30px;
    padding: 10px 18px;
    background: var(--ink);
    color: var(--surface);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
}

@media (max-width: 767px) {
    .nx-mens-support__portrait {
        height: 480px;
        min-height: 0;
    }

    .nx-mens-stats__card {
        width: 190px;
        padding: 18px;
        min-height: 155px;
    }

    main .nx-mens-stats__card p {
        margin-top: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nx-mens-stats__pause {
        display: none;
    }
}

.nx-mens-intro p {
    margin: var(--heading-copy-gap) auto 0;
    max-width: 850px;
    line-height: var(--section-copy-leading);
}

@media (max-width: 767px) {
    .nx-mens-hero {
        height: 640px;
        height: min(700px, 82svh);
        min-height: 560px;
        margin-top: 76px;
    }

    .nx-mens-hero__image {
        object-position: 75% center;
    }

    .nx-mens-content,
    .nx-page-content {
        margin-top: -40px;
        border-radius: 30px 30px 0 0;
    }
}

@media (prefers-reduced-motion: reduce) {

    .nx-mens-hero,
    main>.nx-pinned-hero {
        position: relative;
    }
}

/* Dark or image-led surfaces retain light copy for contrast. */
main :is(.nx-section--ink, .nx-hero, .nx-life, .nx-careers, .nx-commitbanner, .nx-promise, .nx-has-bg) :is(h1, h2, h3, h4, .nx-title, .nx-subtitle, p, .nx-lead, .nx-muted, .nx-note, .nx-longread) {
    color: #fff;
}

main .nx-life>.nx-container>h2 {
    color: #000;
}

/* Home-page section headings share one semantic level and type scale. The
   hero-intro statement intentionally retains its separate treatment. */
.page-home main .nx-home-heading {
    line-height: 1.12;
}