body {
    background-color: attr(data-page-bg-color);
}

/* ═══════════════════════════════════════════════════════════════════════════
   button overrides
   ═══════════════════════════════════════════════════════════════════════════ */

.button-wrap a.button:not(:only-child) {
    margin-right: 16px;
}

.button-wrap a.button:not(:only-child):last-child {
    margin-right: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   partners-logos
   ═══════════════════════════════════════════════════════════════════════════ */

.partners-logos {
    background-color: #fff;
}

/* ── __grid (desktop ≥992px) ───────────────────────────────────────────── */

.partners-logos__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.partners-logos__grid-item {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 152px;
    border-radius: 6px;
    padding: 0;
    margin: 0;
    background: #fff;
    position: relative;
}

li.partners-logos__grid-item:nth-child(-n+6):after {
  content: '';
  display: block;
  width: calc(100% + 12px);
  height: 1px;
  position: absolute;
  bottom: 0;
  border: none;
  background: #d6d6d6;
  left: 0px;
}

li.partners-logos__grid-item:before {
    content: '';
    height: calc(100% + 12px);
    width: 1px;
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    background: #d6d6d6;
}

li.partners-logos__grid-item:nth-child(6):before,
li.partners-logos__grid-item:last-child:before {
    display: none;
}

.partners-logos__grid-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    max-width: 200px;
}

@media (min-width: 992px) and (max-width: 1320px) {
    .partners-logos__grid-img {
        max-width: 120px;
    }
}

/* ── __marquee (mobile <992px) ─────────────────────────────────────────── */

.partners-logos__marquee {
    display: none;
    flex-direction: column;
    gap: 12px;
}

.partners-logos__marquee-row {
    position: relative;
    overflow: hidden;
}

.partners-logos__marquee-row::before,
.partners-logos__marquee-row::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 72px;
    z-index: 2;
    pointer-events: none;
}
.partners-logos__marquee-row::before {
    left: 0;
    background: linear-gradient(to right, var(--partners-logos-bg, #fff) 0%, transparent 100%);
}
.partners-logos__marquee-row::after {
    right: 0;
    background: linear-gradient(to left, var(--partners-logos-bg, #fff) 0%, transparent 100%);
}

.partners-logos__marquee-track {
    display: flex;
    gap: 12px;
    width: max-content;
    will-change: transform;
}

.partners-logos__marquee-row--ltr .partners-logos__marquee-track {
    animation: partners-logos-ltr 22s linear infinite;
}
.partners-logos__marquee-row--rtl .partners-logos__marquee-track {
    animation: partners-logos-rtl 22s linear infinite;
}
.partners-logos__marquee-row:hover .partners-logos__marquee-track {
    animation-play-state: paused;
}

@keyframes partners-logos-ltr {
    from { transform: translateX(-50%); }
    to   { transform: translateX(0); }
}
@keyframes partners-logos-rtl {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.partners-logos__marquee-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 152px;
    height: 88px;
    flex-shrink: 0;
    border: 1px solid #E8E8E8;
    border-radius: 6px;
    padding: 16px 14px;
    background: #fff;
}

.partners-logos__marquee-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

/* ── Breakpoint toggle ─────────────────────────────────────────────────── */

@media (max-width: 991px) {
    .partners-logos__grid    { display: none; }
    .partners-logos__marquee { display: flex; }
}




/* ═══════════════════════════════════════════════════════════════════════════
   partners-split-info overrides
   ═══════════════════════════════════════════════════════════════════════════ */

.partners-split-info .text.h3-as-h4 p {
    font-size: 0.9rem;
    color: var(--text-gray-color, #6e6e6e);
}

/* ── Breakpoint toggle ─────────────────────────────────────────────────── */

@media (max-width: 991px) {
    .partners-split-info.section-three .button-wrap {
        flex-flow: column wrap;
    }

    .partners-split-info.section-three .button-wrap a.button {
        margin-right: 0;
        margin-bottom: 12px;
    }

    .partners-split-info.section-three .flex-row {
        flex-wrap: wrap;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   partners-testimonials
   ═══════════════════════════════════════════════════════════════════════════ */

.partners-testimonials {
    background-color: #fff;
}

/* ── __header ──────────────────────────────────────────────────────────── */

.partners-testimonials__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 32px;
}

.partners-testimonials__header-text {
    flex: 1;
    min-width: 0;
}

.partners-testimonials__heading {
    margin: 0 0 8px;
    font-size: 1.5rem;
    color: var(--green-color, #004734);
}
.partners-testimonials__heading p,
.partners-testimonials__heading h2,
.partners-testimonials__heading h3 {
    margin: 0;
}

.partners-testimonials__subtext {
    margin: 0;
    color: #555;
}
.partners-testimonials__subtext p {
    margin: 0;
}

/* ── __nav ─────────────────────────────────────────────────────────────── */

.partners-testimonials__nav {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}

.partners-testimonials__nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid #D0D0D0;
    border-radius: 50%;
    background: #fff;
    color: #1E1E1E;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.partners-testimonials__nav-btn:hover:not(:disabled) {
    background: #1E1E1E;
    border-color: #1E1E1E;
    color: #fff;
}
.partners-testimonials__nav-btn:disabled {
    opacity: 0.35;
    cursor: default;
}

/* ── __carousel ────────────────────────────────────────────────────────── */

.partners-testimonials__carousel {
    overflow: hidden;
}

.partners-testimonials__track {
    display: flex;
    gap: 24px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

/* ── __slide + __card ──────────────────────────────────────────────────── */

.partners-testimonials__slide {
    flex-shrink: 0;
}

.partners-testimonials__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 32px;
    border: 1px solid #E8E8E8;
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
}

.partners-testimonials__card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
}

.partners-testimonials__card-logo {
    flex-shrink: 0;
    max-width: 120px;
    max-height: 40px;
}
.partners-testimonials__card-logo img {
    max-width: 100%;
    max-height: 40px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.partners-testimonials__card-tag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #fff;
    white-space: nowrap;
    flex-shrink: 0;
}

.partners-testimonials__card-quote {
    flex: 1;
    margin: 0 0 20px;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
    color: #1E1E1E;
}

.partners-testimonials__card-author-wrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: auto;
}

.partners-testimonials__card-author {
    font-size: 13px;
    font-weight: 600;
    color: #1E1E1E;
    display: block;
}

.partners-testimonials__card-position {
    font-size: 12px;
    color: #777;
    display: block;
}

/* ── Mobile (<991px) ───────────────────────────────────────────────────── */

@media (max-width: 991px) {
    .partners-testimonials__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        margin-bottom: 24px;
    }
    .partners-testimonials__card {
        padding: 24px;
    }
    .partners-testimonials__card-quote {
        font-size: 15px;
    }
}

/* ─────────────────────────────────────────────────────────────────────────── */

section.section-video-bg-text-cta.has-video.font-black.font-weight-default.font-heading-default {
  max-width: calc(100vw - 200px);
  margin: 0 auto;
  border-radius: 6px;
  overflow: hidden;
}

section.section-video-bg-text-cta.has-video.font-black.font-weight-default.font-heading-default:after {
  content: '';
  background: linear-gradient(270deg, rgba(0, 71, 52, 0.00) 0%, #004734 100%);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

section.section-video-bg-text-cta.has-video .banner-video-wrap {
  max-height: 580px;
  overflow: hidden;
}

section.section-video-bg-text-cta.has-video .content {
  z-index: 2
}

section.section-video-bg-text-cta.has-video .overlay-banner-inner {
  background: transparent;
  border: none;
}

section.section-video-bg-text-cta.has-video .overlay-banner:after {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════════════════
   partners-join
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Section wrapper: full-bleed dark card with right-side background image */

.partners-join {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background-color: #1e1e1e;
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    color: #fff;
    /* min-height keeps the card at roughly the Figma spec height */
    min-height: 400px;
}

/* ── ::before: gradient overlay that fades the bg image into the dark base  */
/* Solid dark on the left (content area), transparent toward the right edge  */

.partners-join::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        #1e1e1e 35%,
        rgba( 30, 30, 30, 0.85 ) 55%,
        rgba( 30, 30, 30, 0.15 ) 100%
    );
    pointer-events: none;
    z-index: 1;
}

/* ── __video: absolutely-positioned full-cover video background ─────────── */

.partners-join__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center right;
    z-index: 0;
}

.partners-join__video--mobile {
    display: none;
}

/* When a mobile video is present, swap at <992px */
@media ( max-width: 991px ) {
    .has-mobile-video .partners-join__video--desktop {
        display: none;
    }
    .has-mobile-video .partners-join__video--mobile {
        display: block;
    }
}

/* ── __content: left-aligned copy, constrained to ~45% of the card width ── */

.partners-join__content {
    position: relative;
    z-index: 1;
    max-width: 45%;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── __icon: small logotype / brand mark above the heading ─────────────── */

.partners-join__icon {
    line-height: 0;
}

.partners-join__icon img {
    height: 36px;
    width: auto;
    display: block;
}

/* ── __heading ──────────────────────────────────────────────────────────── */

.partners-join__heading {
    color: #fff;
}

.partners-join__heading h1,
.partners-join__heading h2,
.partners-join__heading h3,
.partners-join__heading p {
    color: inherit;
    margin: 0;
    font-size: 2.25rem;       /* ~36px */
    line-height: 1.22;
    letter-spacing: -0.03125rem; /* -0.5px */
    font-weight: 700;
}

/* ── __body ─────────────────────────────────────────────────────────────── */

.partners-join__body {
    margin: 0;
    font-size: 0.875rem;      /* 14px */
    line-height: 1.571;       /* 22px */
    color: rgba( 255, 255, 255, 0.85 );
}

/* ── __quote (optional pull-quote / testimonial) ───────────────────────── */

.partners-join__quote {
    margin: 0;
    padding: 20px 24px;
    border-left: 3px solid #2ECC8B;
    background-color: rgba( 255, 255, 255, 0.06 );
    border-radius: 0 6px 6px 0;
}

.partners-join__quote-text {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.6;
    color: rgba( 255, 255, 255, 0.8 );
    font-style: italic;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media ( max-width: 991px ) {
    .partners-join {
        background-position: center center;
        min-height: 0;
        max-width: 95vw;
    }

    /* On mobile the gradient darkens the whole section so text stays readable */
    .partners-join::before {
        background: rgba( 30, 30, 30, 0.75 );
    }

    .partners-join__content {
        max-width: 100%;
    }

    .partners-join__heading p {
        font-size: 1.75rem;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   partners-faq
   ═══════════════════════════════════════════════════════════════════════════ */

.partners-faq {
    background-color: #fff;
}

/* ── __heading ──────────────────────────────────────────────────────────── */

.partners-faq__heading {
    margin-bottom: 40px;
}

.partners-faq__heading h1,
.partners-faq__heading h2,
.partners-faq__heading h3,
.partners-faq__heading p {
    margin: 0;
}

.partners-faq__heading h2,
.partners-faq__heading h3 {
    font-size: 1.5rem;
    color: var(--green-color, #004734);
}

/* ── __list ─────────────────────────────────────────────────────────────── */

.partners-faq__list {
    display: flex;
    flex-direction: column;
    border-top: 1px solid #E8E8E8;
}

/* ── __item ─────────────────────────────────────────────────────────────── */

.partners-faq__item {
    border-bottom: 1px solid #E8E8E8;
}

/* ── __trigger (the clickable question row) ─────────────────────────────── */

.partners-faq__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 24px 0;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    color: inherit;
}

.partners-faq__trigger:focus-visible {
    outline: 2px solid #2ECC8B;
    outline-offset: 2px;
    border-radius: 2px;
}

.partners-faq__question {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.4;
    color: #1e1e1e;
    flex: 1 1 0;
    font-family: 'Albert Sans', sans-serif;
}

/* ── __icon: chevron-down rotates 180° to chevron-up when open ──────────── */

.partners-faq__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1a1a1a;
    transition: color 0.25s ease, transform 0.25s ease;
    border: 1px solid var(--light-gray-color);
    border-radius: 6px;
    padding: 6px;
}

.partners-faq__trigger[aria-expanded="true"] .partners-faq__icon {
    transform: rotate( 180deg );
    color: #2ECC8B;
}

/* ── __panel (answer area) ──────────────────────────────────────────────── */

.partners-faq__panel {
    overflow: hidden;
    /* height animated via JS scrollHeight; starts at 0 when hidden */
}

.partners-faq__panel[hidden] {
    display: block !important; /* override UA hidden so CSS transition works */
    height: 0;
    visibility: hidden;
}

.partners-faq__answer {
    padding-bottom: 24px;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: #444;
}

.partners-faq__answer p {
    margin: 0 0 12px;
    font-size: 0.9rem;
}
.partners-faq__answer p:last-child { margin-bottom: 0; }

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media ( max-width: 767px ) {
    .partners-faq__question {
        font-size: 0.9375rem;
    }

    .partners-faq__trigger {
        padding: 20px 0;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   breadcrumbs (shared component — template-components/breadcrumbs.php)
   ═══════════════════════════════════════════════════════════════════════════ */

.breadcrumbs {
    margin: 0 0 24px;
}

.breadcrumbs__list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.breadcrumbs__item {
    display: flex;
    align-items: center;
    font-size: 0.8125rem;  /* 13px */
    line-height: 1;
    margin-bottom: 0;
}

.breadcrumbs__separator {
    margin: 0 6px;
    opacity: 0.5;
    font-size: 0.75rem;
}

.breadcrumbs__link {
    color: inherit;
    text-decoration: none;
    opacity: 0.75;
    transition: opacity 0.2s ease;
}
.breadcrumbs__link:hover {
    opacity: 1;
}

.breadcrumbs__home-icon {
    display: block;
    width: 14px;
    height: auto;
}

.breadcrumbs__label {
    opacity: 0.75;
}

.breadcrumbs__item--current .breadcrumbs__label {
    opacity: 1;
    font-weight: 500;
}


/* ═══════════════════════════════════════════════════════════════════════════
   partners-hero
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Section wrapper ─────────────────────────────────────────────────────── */

.partners-hero {
    position: relative;
    overflow: hidden;
    /* Image fallback via CSS custom properties set as inline style */
    background-color: #0d1b14;  /* deep dark green base */
    background-image: var( --hero-bg-desktop );
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    color: #fff;
    min-height: 700px;
    display: flex;
    flex-direction: column;
}

/* ── ::before — gradient overlay: dark-left → transparent-right ─────────── */

.partners-hero:not(.no-bg-overlay)::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba( 13, 27, 20, 0.80 ) 0%,
        rgba( 13, 27, 20, 0.70 ) 40%,
        rgba( 13, 27, 20, 0.40 ) 70%,
        rgba( 13, 27, 20, 0.20 ) 100%
    );
    pointer-events: none;
    z-index: 1;
}

/* ── Background video ────────────────────────────────────────────────────── */

.partners-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center right;
    z-index: 0;
}

/* Desktop-only video: show always unless a mobile video exists */
.partners-hero__video--mobile {
    display: none;
}

/* When a mobile video is present, swap at <992px */
@media ( max-width: 991px ) {
    .has-mobile-video .partners-hero__video--desktop {
        display: none;
    }
    .has-mobile-video .partners-hero__video--mobile {
        display: block;
    }
}

/* ── __inner: full-height flex wrapper that sits above overlay ───────────── */

.partners-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1 1 auto;
    padding-top: 60px;
    padding-bottom: 60px;
}

/* ── __content: constrained copy column on the left ─────────────────────── */

.partners-hero__content {
    max-width: 640px;
    display: flex;
    flex-direction: column;
    gap: 36px;
}

/* ── __heading ───────────────────────────────────────────────────────────── */

.partners-hero__heading {
    margin: 0;
    font-size: clamp( 2rem, 4vw, 48px );   /* ~32–48px, fluid */
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #fff;
}

/* ── __text ──────────────────────────────────────────────────────────────── */

.partners-hero__text {
    margin: 0;
    font-size: clamp(0.75rem, 1.2rem, 16px);
    line-height: 1.65;
    color: rgba( 255, 255, 255, 0.80 );
    max-width: 620px;
}

/* ── __cta-wrap / __cta ──────────────────────────────────────────────────── */

.partners-hero__cta-wrap {
    margin-top: 4px;
}

/* ── Breadcrumbs inside hero — inherit white colour ─────────────────────── */

.partners-hero .breadcrumbs {
    margin: 0 auto;
    padding-top: 36px;
    z-index: 2;
    height: auto;
}

.partners-hero .breadcrumbs__link,
.partners-hero .breadcrumbs__label,
.partners-hero .breadcrumbs__separator {
    color: #fff;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media ( max-width: 991px ) {
    /* Image fallback: mobile variant if provided */
    .partners-hero {
        background-image: var( --hero-bg-mobile, var( --hero-bg-desktop ) );
        background-position: center center;
        min-height: 460px;
    }

    /* Full-width gradient on mobile — darken entire section for readability */
    .partners-hero::before {
        background: rgba( 13, 27, 20, 0.72 );
    }

    .partners-hero__content {
        max-width: 100%;
    }

    .partners-hero__heading {
        font-size: clamp( 1.75rem, 7vw, 2.25rem );
    }

    .partners-hero .breadcrumbs {
        padding-left: 12px;
        padding-right: 12px;
    }
}

@media ( max-width: 575px ) {
    .partners-hero__inner {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   partners-cta
   ═══════════════════════════════════════════════════════════════════════════ */

.partners-cta {
    position: relative;
    overflow: hidden;
    background-color: #004734;
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    border-radius: 6px;
    margin-bottom: 60px;
}

/* Left-to-right gradient overlay — same pattern as partners-join */
.partners-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        -90deg,
        rgba(0, 71, 52, 0) 0%,
        rgba(0, 71, 52, 1) 60%
    );
    z-index: 1;
    pointer-events: none;
}

/* ── Background videos ──────────────────────────────────────────────────── */

.partners-cta__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center right;
    z-index: 0;
}

.partners-cta__video--mobile {
    display: none;
}

/* Mobile video swap */
@media (max-width: 991px) {
    .partners-cta.has-mobile-video .partners-cta__video--desktop {
        display: none;
    }
    .partners-cta.has-mobile-video .partners-cta__video--mobile {
        display: block;
    }
    /* Mobile image fallback when no video */
    .partners-cta:not(.has-mobile-video) {
        background-image: var(--cta-bg-mobile, var(--cta-bg-desktop));
    }

    .partners-cta {
        max-width: 95vw;
    }
}

/* ── Inner layout ───────────────────────────────────────────────────────── */

.partners-cta__inner {
    position: relative;
    z-index: 2;
    padding-top: clamp(48px, 6vw, 80px);
    padding-bottom: clamp(48px, 6vw, 80px);
}

/* ── Logo / icon mark ───────────────────────────────────────────────────── */

.partners-cta__logo {
    margin-bottom: 24px;
}

.partners-cta__logo img {
    display: block;
    height: 32px;
    width: auto;
}

/* ── Heading ────────────────────────────────────────────────────────────── */

.partners-cta__heading {
    margin-bottom: 32px;
}

.partners-cta__heading h1,
.partners-cta__heading h2,
.partners-cta__heading h3,
.partners-cta__heading p {
    color: #ffffff;
    font-size: clamp(2rem, 3.5vw, 2.5rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.5px;
    margin: 0;
}

/* ── Bottom row: text + buttons, space-between ──────────────────────────── */

.partners-cta__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.partners-cta__text {
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0;
    max-width: 600px;
}

.partners-cta__buttons {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

/* ── Mobile ─────────────────────────────────────────────────────────────── */

@media (max-width: 767px) {
    .partners-cta__bottom {
        flex-flow: column wrap;
        align-items: flex-start;
        gap: 24px;
    }

    .partners-cta__text {
        max-width: 100%;
    }

    .partners-cta__buttons {
        flex-shrink: unset;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   platform-pain-points
   Section: 3 icon-card columns. "The visibility gap is the real risk."
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-pain-points {
    padding: 80px 0;
    background: #f5f5f5;
}

.platform-pain-points__overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1A5244;
    margin: 0 0 28px;
    text-align: center;
}

.platform-pain-points__heading {
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: clamp(1.9rem, 3.2vw, 44px);
    font-weight: 700;
    text-align: center;
    margin: 0 0 32px;
    color: #1e1e1e;
}

.platform-pain-points__text {
    text-align: center;
    font-size: clamp(0.75rem, 2rem, 16px);
    line-height: clamp(1rem, 2.25rem, 26px);;
    color: #5a5a5a;
    margin: 0 auto 60px;
    max-width: 640px;
}

.platform-pain-points__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 100px;
}

.platform-pain-points__item {
    /* padding: 0 48px; */
    position: relative;
}

.platform-pain-points__item:after {
    position: absolute;
    right: -50px;
    top: 0;
    height: 100%;
    width: 1px;
    background: #e0e0e0;
    content: '';
}

.platform-pain-points__item:first-child {
    padding-left: 0;
}

.platform-pain-points__item:last-child {
    border-right: none;
    padding-right: 0;
}

.platform-pain-points__item:last-child::after {
    display: none;
}

.platform-pain-points__icon {
    margin-bottom: 24px;
}

.platform-pain-points__icon img {
    width: 156px;
    height: auto;
    object-fit: contain;
}

.platform-pain-points__item-title {
    font-size: clamp(0.85rem, 1.2rem, 20px);
    font-weight: 500;
    color: #1e1e1e;
    margin: 0 0 12px;
}

.platform-pain-points__item-body {
    font-size: 1rem;
    font-size: clamp(0.75rem, 1rem, 16px);
    line-height: 1.65;
    color: #5a5a5a;
    margin: 0;
}

@media (max-width: 767px) {
    .platform-pain-points__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .platform-pain-points__item {
        padding: 0;
        border-right: none;
        border-bottom: 1px solid #e0e0e0;
        padding-bottom: 40px;
    }

    .platform-pain-points__item:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   platform-stats
   Section: Overline + H2 + body. White card with 3 metric cells + dividers.
   Card overlaps the next section with a translateY lift.
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-stats {
    padding: 80px 0 0;
    background: #f5f5f5;
    position: relative;
    z-index: 2;
}

.platform-stats.offset-bottom {
    padding: 80px 0 0;
}

.platform-stats.offset-top {
    padding: 0;
}

.platform-stats.offset-none {
    padding: 80px 0 0;
}

.platform-stats__overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 16px;
    text-align: center;
}

.platform-stats__heading {
    text-align: center;
    margin-bottom: 20px;
}

.platform-stats__heading h1,
.platform-stats__heading h2,
.platform-stats__heading h3,
.platform-stats__heading p {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
    color: #1e1e1e;
    line-height: 1.2;
    margin: 0;
}

.platform-stats__body {
    text-align: center;
    font-size: 1rem;
    line-height: 1.6;
    color: #5a5a5a;
    margin: 0 auto 48px;
    max-width: 640px;
}

.platform-stats__card {
    background: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: stretch;
    position: relative;
    box-shadow: 0 4px 32px rgba(0, 0, 0, 0.08);
}

.platform-stats.offset-bottom .platform-stats__card {
    transform: translateY(40px);
}

.platform-stats.offset-top .platform-stats__card {
    transform: translateY(-40px);
}

.platform-stats__cell {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 52px 32px;
    gap: 12px;
}

.platform-stats__number {
    font-size: clamp(1.5rem, 2.5rem, 45px);
    font-weight: 700;
    color: #004734;
    line-height: 1;
}

.platform-stats__label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #5a5a5a;
    text-align: center;
}

.platform-stats__divider {
    width: 1px;
    background: #e0e0e0;
    align-self: stretch;
    margin: 32px 0;
}

@media (max-width: 767px) {
    .platform-stats__card {
        flex-direction: column;
        transform: none;
    }

    .platform-stats__divider {
        width: auto;
        height: 1px;
        margin: 0 32px;
        align-self: auto;
    }

    .platform-stats__cell {
        padding: 40px 32px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   platform-cta-strip
   Narrow full-width band. Heading left. 2 buttons right. Dot-pattern slab left.
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-cta-strip {
    position: relative;
    overflow: hidden;
    padding: 40px 0;
    min-height: 320px;
    display: flex;
    align-items: center;
}

.platform-cta-strip__slab {
    position: absolute;
    top: 0;
    right: 0;
    width: 1020px;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.18);
    background-image: radial-gradient(circle, rgba(255, 255, 255, 0.15) 1px, transparent 1px);
    background-size: 12px 12px;
    border-radius: 0 16px 16px 0;
    width: 100%;
}

.platform-cta-strip__slab:after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 50%;
    background: linear-gradient(270deg, #004734 60%, transparent);
    height: 100%;
}

.platform-cta-slab-overlay {
    height: 100%;
    position: absolute;
    width: 100vw;
    background: url(../img/cta-slab-overlay.svg) no-repeat left center / cover;
}

@media (min-width: 1800px) {
    .platform-cta-slab-overlay {
        background-size: 100%;
    }
}

.platform-cta-strip__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.platform-cta-strip__heading {
    font-size: clamp(.85rem, 1.5vw, 36px);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.25;
    margin: 0;
    flex: 1;
    margin-bottom: 20px;
}

.platform-cta-strip__description {
    font-size: clamp(0.5rem, 1vw, 12px);
    font-weight: 400;
    color: #ffffff;
    line-height: 18px;
    margin: 0;
    flex: 1;
}

.platform-cta-strip__buttons {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

.platform-cta-strip__btn--secondary {
    color: #ffffff;
    font-size: 0.9375rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    opacity: 0.9;
    transition: opacity 0.2s ease;
}

.platform-cta-strip__btn--secondary:hover {
    opacity: 1;
}

@media (max-width: 991px) {
    .platform-cta-strip__inner {
        position: relative;
        z-index: 2;
    }

    .platform-cta-slab-overlay {
        background-position: center center;
    }
}

@media (max-width: 767px) {
    .platform-cta-strip__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .platform-cta-strip__slab {
        /* display: none; */
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   platform-testimonial
   Mint-tinted BG with optional bg-image at low opacity. Centered pull-quote.
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-testimonial {
    padding: 80px 0;
    background-color: #d6ede8;
    background-size: cover;
    background-position: center right;
    background-blend-mode: luminosity;
    text-align: center;
    margin: 72px auto;
}

.platform-testimonial__overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 32px;
}

.platform-testimonial__quote {
    font-size: clamp(1.125rem, 2vw, 24px);
    font-weight: 500;
    color: #1e1e1e;
    line-height: clamp(1.25rem, 2.2vw, 32px);
    margin: 0 auto 32px;
    max-width: 860px;
    quotes: none;
}

.platform-testimonial__divider {
    border: none;
    border-top: 1px solid rgba(0, 71, 52, 0.25);
    margin: 0 auto 24px;
    max-width: 860px;
}

.platform-testimonial__attribution {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.platform-testimonial__author {
    font-size: 1rem;
    font-weight: 600;
    color: #1e1e1e;
}

.platform-testimonial__role {
    font-size: 0.875rem;
    color: #5a5a5a;
}

.platform-testimonial__logo {
    margin-top: 1.25rem;
    display: flex;
    justify-content: center;
}

.platform-testimonial__logo img {
    max-height: 40px;
    width: auto;
    object-fit: contain;
}

/* ═══════════════════════════════════════════════════════════════════════════
   platform-empathy
   Row A: 2-col problem statement. Row B: centered resolution text.
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-empathy {
    background: #f5f5f5;
}

.platform-empathy__row-a > .container {
    padding: 80px 0;
    border-bottom: 1px solid #e0e0e0;
}

.platform-empathy__problem {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}

.platform-empathy__problem-heading h1,
.platform-empathy__problem-heading h2,
.platform-empathy__problem-heading h3,
.platform-empathy__problem-heading p {
    font-size: clamp(1.875rem, 3.5vw, 2.5rem);
    font-weight: 700;
    color: #1e1e1e;
    line-height: 1.15;
    margin: 0;
}

.platform-empathy__problem-right {
    padding-top: 8px;
}

.platform-empathy__problem-sub {
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--text-gray-color);
    margin: 0 0 16px;
    line-height: 140%;
}

.platform-empathy__problem-body {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: #5a5a5a;
    margin: 0;
}

.platform-empathy__row-b {
    padding: 80px 0;
    text-align: center;
}

.platform-empathy__row-b.no-problem-row {
    padding-bottom: 0px;
}

.platform-empathy__row-b.left--align {
    text-align: left;
}

.platform-empathy__row-b.two--cols .platform-empathy__res-body {
    columns: 2;
    column-gap: 24px;
    break-inside: avoid;
    max-width: unset;
}

.platform-empathy__res-overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 16px;
}

.platform-empathy__res-heading {
    margin-bottom: 24px;
}

.platform-empathy__res-heading h1,
.platform-empathy__res-heading h2,
.platform-empathy__res-heading h3,
.platform-empathy__res-heading p {
    font-size: clamp(1.875rem, 3.5vw, 2.75rem);
    font-weight: 700;
    color: #1e1e1e;
    line-height: 1.2;
    margin: 0;
}

.platform-empathy__res-body {
    font-size: 1rem;
    line-height: 1.7;
    color: #5a5a5a;
    margin: 0 auto;
    max-width: 650px;
}

@media (max-width: 991px) {
    section.platform-empathy > div {
        padding: 40px 24px;
    }

    section.platform-empathy > div.platform-empathy__row-b.no-problem-row {
        padding-bottom: 0;
    }

    .platform-empathy__row-b.two--cols .platform-empathy__res-body {
        columns: 1;
    }
}

@media (max-width: 767px) {
    .platform-empathy__problem {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   platform-resources
   "More from our resources:" heading + browse link + 2 bordered post rows.
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-resources {
    padding: 80px 0;
    background: #f5f5f5;
}

.platform-resources__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
    gap: 24px;
}

.platform-resources__heading {
    font-size: clamp(1.375rem, 2vw, 1.75rem);
    font-weight: 700;
    color: #1e1e1e;
    margin: 0;
}

.platform-resources__browse {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1e1e1e;
    text-decoration: none;
    border: 1px solid #d0d0d0;
    padding: 8px 16px 8px 24px;
    border-radius: 6px;
    white-space: nowrap;
    flex-shrink: 0;
    transition: border-color 0.2s ease, color 0.2s ease;
    position: relative;
    background: #fff;
}

.platform-resources__browse:before {
    content: '';
    position: absolute;
    left: 6px;
    top: 50%;
    background: url(../img/subdir-browse-icon-outlined.svg) no-repeat center center / cover;
    height: 16px;
    width: 16px;
    transform: translateY(-50%);
}

.platform-resources__browse:hover {
    border-color: #004734;
    color: #004734;
}

.platform-resources__list {
    display: flex;
    flex-direction: column;
    border-radius: 0px;
    overflow: hidden;
}

.platform-resources__post {
    /* display: grid; */
    grid-template-columns: 2fr 3fr;
    border-bottom: 1px solid #e0e0e0;
    padding: 40px 0;
    grid-gap: 132px;
    display: flex;
    justify-content: center;
}

.platform-resources__post:last-child {
    border-bottom: none;
}

.platform-resources__post-image {
    overflow: hidden;
    aspect-ratio: 16/9;
    width: 427px;
    height: auto;
}

.platform-resources__post-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    aspect-ratio: 16/9;
}

.platform-resources__post-content {
    padding: 40px 40px 40px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 538px;
}

.platform-resources__post-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.platform-resources__post-tag {
    font-size: 0.75rem;
    font-weight: 600;
    color: #1e1e1e;
    background: #f0f0f0;
    padding: 4px 10px;
    border-radius: 4px;
    border: 1px solid #d0d0d0;
}

.platform-resources__post-author {
    font-size: clamp(0.5rem, 1rem, 12px);
    color: #5a5a5a;
}

.platform-resources__post-title {
    font-size: clamp(1rem, 1.5rem, 24px);
    font-weight: 500;
    color: rgba(0,0,0,0.87);
    line-height: 32px;
    margin: 0;
}

.platform-resources__post-excerpt {
    font-size: clamp(0.7rem, 1rem, 14px);
    line-height: 22px;
    font-weight: 400;
    color: #5a5a5a;
    margin: 0;
    flex: 1;
}

.platform-resources__post-link {
    font-size: clamp(0.5rem, 1rem, 16px);
    font-weight: 600;
    color: #ff4801;
    line-height: 14.4px;
    text-decoration: none;
    width: fit-content;
    transition: opacity 0.2s ease;
}

.platform-resources__post-link:hover {
    opacity: 0.8;
}

@media (max-width: 991px) {
    .platform-resources__header {
        flex-flow: column wrap;
        align-items: flex-start;
    }
}

@media (max-width: 767px) {
    .platform-resources__post {
        grid-template-columns: 1fr;
        flex-flow: column wrap;
        grid-gap: 32px;
    }

    .platform-resources__post-image img {
        min-height: 200px;
    }

    .platform-resources__post-content {
        padding: 28px 24px;
    }
}


/* ============================================================
   PLATFORM – SHOWCASE
   ============================================================ */

.platform-showcase {
    padding: 100px 0 0;
    text-align: center;
    overflow: hidden;
    margin-top: -100px;
    background: #f5f5f5;
}

.platform-showcase .container {
    /* min-height: 1250px; */
    border-radius: 12px;
}

.platform-showcase .container img {
    object-fit: cover;
    border-radius: 8px;
    width: 100%;
    height: 100%;
}

.platform-showcase.no-text-elems .container {
    /* min-height: 950px; */
}

.platform-showcase:not(.no-text-elems) .container {
    position: relative;
}

.platform-showcase-info {
    padding-top: 120px;
    max-width: 732px;
    margin: 0 auto;
}

.platform-showcase-info.hide-top-logotype {
    padding-top: 64px;
}

.platform-showcase__overline {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #4ade9a;
    margin: 0 0 16px;

    color: var(--text-disabled, #BCBCBC);
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    line-height: 16px; /* 133.333% */
    letter-spacing: 2px;
    text-transform: uppercase;
}

.platform-showcase__heading h3 {
    color: #ffffff;
    margin: 0 0 20px;
    color: var(--white-color);
    text-align: center;
    font-size: 36px;
    font-weight: 700;
    line-height: 44px; /* 122.222% */
    letter-spacing: -0.5px;
}

.platform-showcase__heading h1,
.platform-showcase__heading h2,
.platform-showcase__heading h3 {
    font-size: clamp(32px, 4vw, 36px);
    font-weight: 700;
    color: #ffffff;
    margin: 0;
}

.platform-showcase__body {
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.75);
    max-width: 648px;
    margin: 36px auto 48px;
}

.platform-showcase__image-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.platform-showcase__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px 12px 0 0;
}

.platform-showcase__footer {
    padding: 24px 60px;
    position: absolute;
}

.platform-showcase.overlay_bottom_left .platform-showcase__footer {
    bottom: 20px;
    left: 0;
}

.platform-showcase.overlay_top_right .platform-showcase__footer {
    top: 20px;
    right: 0;
}

.platform-showcase.overlay_bottom_right .platform-showcase__footer {
    bottom: 20px;
    right: 0;
}

.platform-showcase.overlay_top_left .platform-showcase__footer {
    top: 20px;
    left: 0;
}

.platform-showcase .ol-bw-logotype {
    margin-bottom: 29px;
}

.platform-showcase .ol-bw-logotype-full {
    margin-bottom: 12px;
    text-align: left;
}

.platform-showcase__sub-label {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.45);
    letter-spacing: 0.06em;
}

.platform-showcase.platform-showcase:not(.no-text-elems) .platform-showcase-info {
    margin: 0 auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
}

.platform-showcase.platform-showcase:not(.no-text-elems) .platform-showcase-info .ol-bw-logotype {
    max-width: 39px;
    height: auto;
    margin: 0 auto 29px;
}

@media (min-width: 1600px) {
    .platform-showcase .container {
        background-position: bottom -100px center !important;
    }
}

@media (min-width: 1850px) {
    .platform-showcase .container {
        background-position: bottom -180px center !important;
    }
}

@media (max-width: 991px) {
    .platform-showcase {
        padding-top: 100px;
    }

    .platform-showcase .container img.platform-showcase__image {
        display: none;
    }

    .platform-showcase:not(.no-text-elems) .container {
        min-height: 1250px;
        background-image: var(--bg-image);
        background-size: cover;
        background-position: center;
    }

    .platform-showcase.platform-showcase:not(.no-text-elems) .platform-showcase-info {
        position: relative;
    }
}

@media (max-width: 767px) {
    /* .platform-showcase {
        padding: 60px 0 0;
    } */
    .platform-showcase__image-wrap {
        padding: 0 20px;
    }

    .platform-showcase-info {
        padding-top: 70px;
    }

    .platform-showcase .container {
        background-position: center bottom -40px;
    }
}


/* ============================================================
   PLATFORM – FEATURED CAPABILITY
   ============================================================ */

.platform-featured-capability {
    background-color: #fff;
    padding: 80px 0;
    overflow: hidden;
}

.platform-featured-capability .container {
    background: #004734;
    border-radius: 12px;
    padding-top: 90px;
}

.platform-featured-capability__grid {
    display: grid;
    grid-template-columns: 335px 1fr 0.8fr;
    gap: 48px;
    align-items: flex-start;
    padding-left: 60px;
}

.platform-featured-capability__heading {
    color: #ffffff;
}

.platform-featured-capability__heading h1,
.platform-featured-capability__heading h2,
.platform-featured-capability__heading h3 {
    font-size: clamp(28px, 3.5vw, 48px);
    font-weight: 700;
    color: #ffffff;
    margin: 0;
    line-height: 1.15;
}

.platform-featured-capability__heading h3 {
    font-size: clamp(24px, 3vw, 36px);
}

.platform-featured-capability__overline {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    margin: 0 0 16px;
}

.platform-featured-capability__body {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--white-color);
    margin: 0 0 42px;
}

.platform-featured-capability__checklist {
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.platform-featured-capability__check-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.9rem;
    color: var(--white-color);
    line-height: 1.5;
}

.platform-featured-capability__check-icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    border-radius: 50%;
    position: relative;
}

.platform-featured-capability__check-icon::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    background: url(../img/platform-white-check.svg) center center no-repeat;
}

.platform-featured-capability__cta {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--white-color);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.platform-featured-capability__cta:hover {
    text-decoration: underline;
}

.platform-featured-capability__col--image {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}

.platform-featured-capability__image {
    display: block;
    max-width: 100%;
    height: auto;
}

@media (max-width: 991px) {
    .platform-featured-capability__grid {
        grid-template-columns: 1fr 1fr;
        padding-left: 0;
    }
    .platform-featured-capability__col--image {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575px) {
    .platform-featured-capability__grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PLATFORM – HOW IT WORKS
   ============================================================ */

.platform-how-it-works {
    background-color: #f5f5f5;
    padding: 50px 0 50px;
    text-align: center;
}

.platform-how-it-works__overline {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    line-height: 16px;
    text-transform: uppercase;
    color: #1A5244;
    margin: 0 0 24px;
}

.platform-how-it-works__heading {
    margin: 0 0 27px;
}

.platform-how-it-works__heading h1,
.platform-how-it-works__heading h2,
.platform-how-it-works__heading h3 {
    font-size: clamp(28px, 3.5vw, 36px);
    font-weight: 700;
    color: #1e1e1e;
    margin: 0;
}

.platform-how-it-works__heading h3 {
    line-height: 44px;
    letter-spacing: -0.5px;;
}

.platform-how-it-works__body {
    font-size: 16px;
    line-height: 26px;
    color: #6e6e6e;
    max-width: 720px;
    margin: 0 auto 60px;
}

/* ---- Diagram grid ---- */

.platform-how-it-works__diagram {
    display: grid;
    /*
     * Centre column is fixed at 340px (the circle image diameter).
     * Side columns share the remaining space equally.
     */
    grid-template-columns: 1fr 340px 1fr;
    gap: 0;
    align-items: start;
    position: relative;
}

/* ---- Orthogonal connector lines (aria-hidden div, z-index: -1) ---- *
 *
 *  ::before  — three-sided bracket (top + left + right, no bottom)
 *              The horizontal top-line sits at ~44 % of image height (≈150 px).
 *              The left/right verticals drop 88 px to the bubble centres.
 *
 *              left/right use calc( (100% – 340px) / 4 ) which always equals
 *              the horizontal midpoint of each side column, regardless of the
 *              container width. This keeps the connector corners aligned with
 *              the centred bubbles inside those columns.
 *
 *  ::after   — vertical line from image bottom (340 px) down 56 px to step-2 bubble.
 */

.platform-how-it-works__connectors {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: -1;
}

.platform-how-it-works__connectors::before {
    content: '';
    position: absolute;
    top: 150px;
    left: calc((100% - 340px) / 4);
    right: calc((100% - 340px) / 4);
    height: 88px;
    border-top: 1px solid #c7d1cc;
    border-left: 1px solid #c7d1cc;
    border-right: 1px solid #c7d1cc;
    border-bottom: none;
}

.platform-how-it-works__connectors::after {
    content: '';
    position: absolute;
    top: 340px;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 56px;
    background: #c7d1cc;
}

/* ---- Step columns ---- */

.platform-how-it-works__step--1,
.platform-how-it-works__step--3 {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    /*
     * Push content down so bubble centre lands at y = 238 px
     * (150 px horizontal-line + 88 px drop).
     * 238 – 16 (half of 32 px bubble) = 222 px.
     */
    padding-top: 222px;
}

.platform-how-it-works__center {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.platform-how-it-works__step--2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-top: 56px; /* matches ::after height so bubble sits at line end */
}

/* ---- Numbered bubble ---- */

.platform-how-it-works__bubble {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: #004734;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    flex-shrink: 0;
    margin-bottom: 37px;
    position: relative;
    z-index: 1; /* sits above the connector lines */
}

/* ---- Center image ---- */

.platform-how-it-works__image-wrap {
    width: 340px;
    height: 340px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    position: relative;
    z-index: 1; /* paints on top of the connector lines in the image area */
}

.platform-how-it-works__image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ---- Step text ---- */

.platform-how-it-works__step-title {
    font-size: 24px;
    font-weight: 500;
    line-height: 32px;
    color: #1a5244;
    margin: 0 0 16px;
    text-align: left;
    max-width: 300px;
}

.platform-how-it-works__step-body {
    font-size: 16px;
    line-height: 26px;
    color: #6e6e6e;
    margin: 0;
    max-width: 310px;
    text-align: left;
}

/* ---- Responsive ---- */

/* Mobile duplicate image: hidden on desktop, shown first on mobile */
.platform-how-it-works__image-wrap--mobile {
    display: none;
}

@media (max-width: 991px) {
    .platform-how-it-works__diagram {
        grid-template-columns: 1fr;
    }
    .platform-how-it-works__connectors {
        display: none;
    }
    .platform-how-it-works__step--1,
    .platform-how-it-works__step--3 {
        padding-top: 0;
        padding-bottom: 40px;
    }
    .platform-how-it-works__center {
        padding-bottom: 40px;
    }
    .platform-how-it-works__step--2 {
        padding-top: 0;
    }
    /* Show the mobile-first duplicate, hide the nested desktop one */
    .platform-how-it-works__image-wrap--mobile {
        display: flex;
        justify-content: center;
        margin: 0 auto 40px;
        width: 240px;
        height: 240px;
    }
    .platform-how-it-works__center .platform-how-it-works__image-wrap:not(.platform-how-it-works__image-wrap--mobile) {
        display: none;
    }
    .platform-how-it-works__step-title,
    .platform-how-it-works__step-body {
        max-width: 100%;
    }
}


/* ============================================================
   PLATFORM – DEEP FEATURES
   ============================================================ */

.platform-deep-features {
    background-color: #f5f5f5;
    padding: 40px 0;
}

.platform-deep-features__row {
    padding: 60px 0;
}

.platform-deep-features__row:last-child {
    border-bottom: none;
}

.platform-deep-features__inner {
    gap: 136px;
    align-items: center;
    display: flex;
    justify-content: center;
}

.platform-deep-features__row--image-right .platform-deep-features__inner {
    direction: rtl;
}

.platform-deep-features__row--image-right .platform-deep-features__inner > * {
    direction: ltr;
}

.platform-deep-features__image-wrap {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
    max-width: 536px;
    padding: 25px;
    background: #ffffff;
}

.platform-deep-features__image {
    display: block;
    width: 100%;
    height: auto;
}

.platform-deep-features__content {
    max-width: 424px;
}

.platform-deep-features__pre_overline {
    color: #1e1e1e;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px; /* 150% */
    margin-bottom: 24px;
    padding: 3px 8px;
    border: 1px solid #d6d6d6;
    border-radius: 4px;
    display: inline-block;
}

.platform-deep-features__overline {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 14px;
}

.platform-deep-features__heading {
    margin: 0 0 16px;
}

.platform-deep-features__heading h1,
.platform-deep-features__heading h2,
.platform-deep-features__heading h3 {
    font-size: clamp(24px, 2.8vw, 32px);
    font-weight: 700;
    color: var(--dark-gray-color);
    margin: 0;
}

.platform-deep-features__body p,
.platform-deep-features__body ul li {
    font-size: clamp(0.75rem, 1rem, 16px);
    line-height: 1.7;
    color: var(--text-gray-color);
    margin: 0;
}

.platform-deep-features__body ul {
    margin-top: 24px;
    padding-left: 20px;
}

@media (max-width: 767px) {
    .platform-deep-features__inner {
        grid-template-columns: 1fr;
        gap: 32px;
        flex-flow: column wrap;
    }
    .platform-deep-features__row--image-right .platform-deep-features__inner {
        direction: ltr;
    }
}


/* ============================================================
   PLATFORM – RESOURCE PROMO
   ============================================================ */

.platform-resource-promo {
    overflow: hidden;
    margin: 0 auto;
    background: #f5f5f5;
}

.platform-resource-promo__split.container.container-wide {
    position: relative;
    overflow: hidden;
}

.platform-resource-promo__split-bg {
    position: absolute;
    right: 0;
    background: url(../img/split-promo-overlay.svg) no-repeat right center / cover;
    width: 100%;
    height: 100%;
}

.platform-resource-promo__split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 560px;
    position: relative;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
}

.platform-resource-promo__left {
    background-color: #ffffff;
    display: flex;
    align-items: center;
}

.platform-resource-promo__left-inner {
    padding-left: 114px;
}

.platform-resource-promo__overline {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    line-height: 16px;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 16px;
}

.platform-resource-promo__heading {
    margin: 0 0 32px;
}

.platform-resource-promo__heading h1,
.platform-resource-promo__heading h2,
.platform-resource-promo__heading h3 {
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 700;
    color: #111;
    margin: 0;
}

.platform-resource-promo__heading h2 {
    line-height: 120%;
    letter-spacing: -0.5px;
    color: #1e1e1e;
}

.platform-resource-promo__body {
    font-size: 14px;
    line-height: 22px;
    font-weight: 500;
    color: #6e6e6e;
    margin: 0 0 32px;
}

.platform-resource-promo__cta {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
}

.platform-resource-promo__cta:before {
    content: '';
    display: inline-block;
    width: 24px;
    height: 24px;
    background: url(../img/file-dl-icon-outlined.svg) center center no-repeat;
    flex-shrink: 0;
}

.platform-resource-promo__right {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* .platform-resource-promo__doc-wrap {
    padding: 0 40px;
    padding-top: 60px;
} */

.platform-resource-promo__doc-image {
    display: block;
    max-width: 310px;
    height: auto;
    filter: drop-shadow(0 16px 40px rgba(0, 0, 0, 0.25));
}

.platform-resource-promo__watermark {
    position: absolute;
    bottom: 40px;
    right: 32px;
    width: 38px;
    height: 29px;
}

@media (max-width: 991px) {
    .platform-resource-promo__split {
        grid-template-columns: 1fr;
    }
    .platform-resource-promo__left-inner {
        padding: 60px 40px;
    }
    .platform-resource-promo__right {
        min-height: 320px;
    }

    .platform-resource-promo__split-bg {
        background-image: none;
    }
}


/* ============================================================
   PLATFORM – FEATURE TABS
   ============================================================ */

.platform-tabs {
    background-color: #ffffff;
    padding: 80px 0;
}

.platform-tabs__layout {
    display: grid;
    grid-template-columns: 3fr 1fr;
    gap: 40px;
    align-items: start;
}

.platform-tabs__headers {
    display: flex;
    gap: 0;
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 0;
}

.platform-tabs__header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 24px;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #555;
    transition: color 0.2s, border-color 0.2s;
    margin-bottom: -1px;
}

.platform-tabs__header:hover {
    color: #004734;
}

.platform-tabs__header--active {
    color: #004734;
    border-bottom-color: #004734;
}

.platform-tabs__header-icon img {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

.platform-tabs__panels {
    padding-top: 4px;
}

.platform-tabs__panel {
    display: none;
    animation: tabsFadeIn 0.25s ease;
}

.platform-tabs__panel--active {
    display: block;
}

@keyframes tabsFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.platform-tabs__sub-features {
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.platform-tabs__sub-feature {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #333;
    line-height: 1.5;
    padding: 10px 16px;
    border-radius: 6px;
    background-color: #f5f7f5;
}

.platform-tabs__sub-feature::before {
    content: '';
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: #004734;
}

.platform-tabs__card {
    background-color: #f5f5f5;
    border-radius: 12px;
    overflow: hidden;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.platform-tabs__card-tag {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background-color: #ff4801;
    color: #ffffff;
    padding: 4px 10px;
    border-radius: 4px;
    align-self: flex-start;
}

.platform-tabs__card-title {
    font-size: 16px;
    font-weight: 700;
    color: #111;
    line-height: 1.3;
}

.platform-tabs__card-title h1,
.platform-tabs__card-title h2,
.platform-tabs__card-title h3 {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    margin: 0;
}

.platform-tabs__card-image-wrap img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 6px;
}

.platform-tabs__card-link {
    font-size: 13px;
    font-weight: 600;
    color: #004734;
    text-decoration: none;
}

.platform-tabs__card-link:hover {
    text-decoration: underline;
}

@media (max-width: 991px) {
    .platform-tabs__layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .platform-tabs__headers {
        flex-direction: column;
        border-bottom: none;
        border-left: 2px solid #e0e0e0;
    }
    .platform-tabs__header {
        border-bottom: none;
        border-left: 3px solid transparent;
        margin-bottom: 0;
        margin-left: -2px;
    }
    .platform-tabs__header--active {
        border-left-color: #004734;
        border-bottom-color: transparent;
    }
}


/* ============================================================
   PLATFORM – FEATURE ROWS
   ============================================================ */

.platform-feature-rows {
    background-color: #f5f5f5;
    padding: 80px 0;
}

.platform-feature-rows__layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 60px;
    align-items: start;
}

.platform-feature-rows__sidebar {
    position: sticky;
    top: 100px;
}

.logged-in .platform-feature-rows__sidebar {
    top: 140px;
}

.platform-feature-rows__nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.platform-feature-rows__nav-item {
    border-bottom: 1px solid var(--light-gray-color);
    transition: border-color 0.2s;
}

.platform-feature-rows__nav-link {
    display: block;
    padding: 10px 16px;
    text-decoration: none;
    transition: color 0.2s, font-weight 0.1s;
    position: relative;

    color: var(--text-gray-color, #6E6E6E);
    font-size: 18px;
    font-weight: 500;
    line-height: 24px; /* 133.333% */
}

.platform-feature-rows__nav-item--active .platform-feature-rows__nav-link {
    color: var(--dark-gray-color);
    font-size: 18px;
    font-weight: 500;
    line-height: 24px; /* 133.333% */
}

.platform-feature-rows__nav-item--active .platform-feature-rows__nav-link::before {
    content: '';
    position: absolute;
    left: -9px;
    top: 50%;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: var(--main-color);
}

.platform-feature-rows__panels {
    display: flex;
    flex-direction: column;
    gap: 128px;
}

.platform-feature-rows__panel {
    scroll-margin-top: 100px;
    position: relative;
}

.platform-feature-rows__panel:not(:last-child):after {
    content: '';
    position: absolute;
    bottom: -64px;
    left: 0;
    width: 100%;
    height: 1px;
    background: #d6d6d6;
}

.platform-feature-rows__screenshot-wrap {
    border: 1.5px solid #d6d6d6;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 32px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.platform-feature-rows__screenshot {
    display: block;
    width: 100%;
    height: auto;
}

.platform-feature-rows__panel-title {
    font-size: clamp(22px, 2.5vw, 2rem);
    font-weight: 700;
    color: #111;
    margin: 0 0 24px;
}

.platform-feature-rows__panel-body p,
.platform-feature-rows__panel-body li {
    font-size: 16px;
    line-height: 1.7;
    color: var(--text-gray-color);
    margin: 0;
    max-width: 540px;
}

.platform-feature-rows__panel-body ul {
    padding-left: 24px;
    margin-top: 24px;
}

@media (max-width: 991px) {
    .platform-feature-rows__layout {
        grid-template-columns: 1fr;
    }
    .platform-feature-rows__sidebar {
        position: static;
        display: none;
    }
}


/* ============================================================
   CPE – SECTION INTRO
   ============================================================ */

.cpe-section-intro {
    padding: 80px 0;
    text-align: center;
}

.cpe-section-intro__overline {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 16px;
}

.cpe-section-intro__heading {
    margin: 0 0 24px;
}

.cpe-section-intro__heading h1,
.cpe-section-intro__heading h2,
.cpe-section-intro__heading h3 {
    font-size: clamp(28px, 3.5vw, 40px);
    font-weight: 700;
    color: #111;
    margin: 0;
    line-height: 1.15;
}

.cpe-section-intro__body {
    font-size: 17px;
    line-height: 1.7;
    color: #555;
    max-width: 680px;
    margin: 0 auto;
}

@media (max-width: 767px) {
    .cpe-section-intro {
        padding: 56px 0;
    }
}


/* ============================================================
   PLATFORM – OUTCOME PILLARS
   ============================================================ */

.platform-outcome-pillars {
    background-color: #f5f5f5;
    padding: 80px 0 96px;
}

.platform-outcome-pillars__overline {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 16px;
}

.platform-outcome-pillars__heading {
    margin: 0 0 20px;
}

.platform-outcome-pillars__heading h1,
.platform-outcome-pillars__heading h2,
.platform-outcome-pillars__heading h3 {
    font-size: clamp(28px, 3.5vw, 44px);
    font-weight: 700;
    color: #111;
    margin: 0;
    line-height: 1.15;
}

.platform-outcome-pillars__body {
    font-size: 16px;
    line-height: 1.7;
    color: #555;
    margin: 0 0 64px;
    columns: 2;
    break-inside: avoid;
    max-width: 80%;
}

.platform-outcome-pillars__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 48px;
}

.platform-outcome-pillars__pillar {
    display: flex;
    flex-direction: column;
    position: relative;
}

.platform-outcome-pillars__illustration {
    width: 160px;
    margin-bottom: 28px;
}

.platform-outcome-pillars__illustration img {
    width: 100%;
    height: auto;
    display: block;
}

.platform-outcome-pillars__pillar-title {
    font-size: 1.5rem;
    font-weight: 500;
    color: #1A5244;
    margin: 0 0 12px;
    line-height: 1.3;
}

.platform-outcome-pillars__pillar-body {
    font-size: 15px;
    line-height: 1.65;
    color: #6e6e6e;
    margin: 0;
}

.platform-outcome-pillars__pillar:not(:last-child):after {
    content: '';
    width: 1px;
    height: 100%;
    position: absolute;
    right: -10px;
    top: 0;
    background: #d6d6d6;
}

@media (min-width: 992px) {
    .platform-outcome-pillars__pillar-title {
        min-height: 2lh;
    }
}

@media (max-width: 991px) {
    .platform-outcome-pillars__body {
        columns: 1;
        max-width: unset;
    }
}

@media (max-width: 767px) {
    .platform-outcome-pillars__grid {
        grid-template-columns: 1fr;
        gap: 48px 0;
    }
}


/* ============================================================
   PLATFORM – TESTIMONIALS CAROUSEL
   ============================================================ */

.platform-tc {
    background-color: #f5f5f5;
    padding: 80px 0 64px;
    overflow: hidden; /* clips the 3rd card that bleeds off screen right */
}

/*
 * Track outer: full-section-width element whose left padding mirrors the
 * container-wide left inset so card 1 aligns with the container grid.
 * (container-wide = 86rem with 1rem padding each side; left auto margin =
 *  max(0, (100vw - 86rem) / 2), so total left inset = that + 1rem)
 */
.platform-tc__track-outer {
    margin-bottom: 28px;
    padding-left: max(1rem, calc((100vw - 86rem) / 2 + 1rem));
}

/*
 * Track: flex row. Cards have a fixed viewport-relative width so 2 fit
 * fully and the 3rd peeks off the right edge of the section.
 */
.platform-tc__track {
    display: flex;
    gap: 24px;
    align-items: stretch;
}

/*
 * Cards that are not the active centre and not the two adjacent
 * ones are hidden. JS manages which indices are visible via
 * the data-tc-index attribute; CSS just handles the visual state.
 */
.platform-tc__card {
    /*
     * Width formula guarantees exactly 3 full cards + ~40% peek at any desktop
     * viewport. Derived from: visible_area = min(50vw+600px, 100vw-88px) where
     *   50vw+600px applies when viewport ≥ container-wide (1376px) — accounts for
     *   the centred container's left-edge offset.
     *   100vw-88px applies for narrower viewports with flat 16px padding.
     * Dividing by 3.4 (3 full cards + 0.4 peek) gives each card's width.
     */
    flex: 0 0 calc(min(50vw + 600px, 100vw - 88px) / 3.4);
    background: #ffffff;
    border-radius: 8px;
    padding: 140px 36px 36px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 320px;
    transition: background 0.25s ease, border-color 0.25s ease;
}

.platform-tc__card--active {
    background: #2a2a2a;
    border-color: #2a2a2a;
}

.platform-tc__card--active .platform-tc__quote {
    color: #ffffff;
}

.platform-tc__card--active .platform-tc__author {
    color: #ffffff;
}

.platform-tc__card--active .platform-tc__role {
    color: rgba(255,255,255,0.6);
}

/* Invert logos on dark card */
.platform-tc__card--active .platform-tc__logo {
    filter: brightness(0) invert(1);
}

/* Hidden cards (not in the current window of 3) */
.platform-tc__card[aria-hidden="true"] {
    display: none;
}

.platform-tc__quote {
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: 1.65;
    color: #1e1e1e;
    margin: 0 0 32px;
    font-style: normal;
    flex: 1;
}

.platform-tc__card-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-flow: column wrap;
}

.platform-tc__author {
    font-size: 14px;
    font-weight: 700;
    color: #111;
    margin: 0 0 4px;
}

.platform-tc__role {
    font-size: 13px;
    color: #888;
    margin: 0;
    line-height: 1.4;
}

.platform-tc__logo-wrap {
    flex-shrink: 0;
    display: flex;
    flex-flow: row;
    justify-content: space-between;
    width: 100%;
}

.platform-tc__logo {
    max-height: 36px;
    width: auto;
    height: auto;
    display: block;
    max-width: 100px;
    object-fit: contain;
}

.platform-tc .platform-tc__slide-index span {
    color: #6e6e6e;
    font-size: 12px;
    font-weight: 400;
    line-height: 18px;
}

/* Controls: two arrow buttons, no counter */
.platform-tc__controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.platform-tc__nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid #d6d6d6;
    border-radius: 6px;
    background: transparent;
    cursor: pointer;
    color: #333;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    padding: 10px;
}

.platform-tc__nav:hover {
    background: #004734;
    border-color: #004734;
    color: #fff;
}

.platform-tc__nav:disabled {
    opacity: 0.35;
    cursor: default;
}

@media (max-width: 991px) {
    .platform-tc__card {
        padding-top: 60px;
    }
}

@media (max-width: 767px) {
    .platform-tc__track-outer {
        padding-left: 1rem;
    }
    .platform-tc__card {
        flex: 0 0 calc(100vw - 2rem - 48px); /* nearly full width with margins */
    }
    /* On mobile only one card is active/visible */
    .platform-tc__card[aria-hidden="true"] {
        display: none;
    }
    .platform-tc__card[aria-hidden="false"],
    .platform-tc__card--active {
        display: flex;
    }
}


/* ============================================================
   PLATFORM – HOW IT WORKS: GRID VARIANT (CPE)
   ============================================================ */

/* Tag chips row below the intro body */
.platform-how-it-works__tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    list-style: none;
    margin: 24px auto 60px;
    padding: 0;
    max-width: 850px;
}

.platform-how-it-works__tag {
    display: inline-block;
    border: 1px solid #c8d4cf;
    border-radius: 4px;
    padding: 6px 16px;
    font-size: 12px;
    color: #333;
    line-height: 18px;
    white-space: nowrap;
    margin: 0;
    font-weight: 500;
    background: #EEF5F3;
}

/* 3-col grid container */
.platform-how-it-works__grid-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 100px;
}

/* Vertical dividers between columns */
.platform-how-it-works__grid-step {
    padding: 48px 40px 48px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* border-right: 1px solid #e4e9e6; */
    position: relative;
}

.platform-how-it-works__grid-step:after {
    position: absolute;
    right: -50px;
    top: 0;
    height: 100%;
    width: 1px;
    background: #e0e0e0;
    content: '';
}

.platform-how-it-works__grid-step:last-child {
    border-right: none;
}

.platform-how-it-works__grid-step:last-child:after {
    display: none;
}

/* Step illustration image */
.platform-how-it-works__step-illustration {
    width: 156px;
    margin-bottom: 28px;
    flex-shrink: 0;
}

.platform-how-it-works__step-illustration img {
    width: 100%;
    height: auto;
    display: block;
}

/* Text-only variant: overline shown in place of the illustration when step_image is empty */
.platform-how-it-works__step-overline {
    margin: 0 0 19px;
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a5244;
}

/* Grid variant: step title inherits the green from Figma */
.platform-how-it-works__grid-step .platform-how-it-works__step-title {
    color: #1a5244;
}

/* Per-step green tag chips below the step body */
.platform-how-it-works__step-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
}

.platform-how-it-works__step-tag {
    display: inline-block;
    background: #eef5f3;
    border: 1px solid #004734;
    border-radius: 4px;
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    color: #004734;
    white-space: nowrap;
    margin: 0;
}

@media (max-width: 767px) {
    .platform-how-it-works__grid-steps {
        grid-template-columns: 1fr;
    }
    .platform-how-it-works__grid-step {
        border-right: none;
        border-bottom: 1px solid #e4e9e6;
        padding: 36px 0;
    }
    .platform-how-it-works__grid-step:last-child {
        border-bottom: none;
    }
    .platform-how-it-works__tags {
        justify-content: flex-start;
    }
}


/* ============================================================
   BLOCK: platform-capability-cards
   Dark-green featured capability cards in a 2-col grid.
   --full spans both columns: heading/body/CTA left, rotated
   "FEATURED CAPABILITY" overline on the right edge, logotype
   bottom-right. --square fits 2 per row: heading + CTA only.
   Optional per-card ACF background_image overrides default art.
   ============================================================ */

.platform-capability-cards {
    padding: 80px 0;
    background-color: #f5f5f5;
}

.platform-capability-cards__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.platform-capability-cards__card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #004734 url(../img/cap-cards-bg.svg) no-repeat center center / cover;
    border-radius: 16px;
    overflow: hidden;
    color: #ffffff;
}

.platform-capability-cards__card:nth-child(even) {
    background: #004734 url(../img/cap-cards-bg-alt.svg) no-repeat center center / cover;
}

/* Full-width card (default) */
.platform-capability-cards__card--full {
    grid-column: 1 / -1;
    min-height: 496px;
    padding: 64px 140px 64px clamp(40px, 8.7%, 115px);
    transition: 200ms ease all;
}

/* Small square card — 2 per row */
.platform-capability-cards__card--square {
    justify-content: flex-end;
    min-height: 407px;
    padding: 56px;
    transition: 200ms ease all;
}

.platform-capability-cards__card.platform-capability-cards__card--full,
.platform-capability-cards__card.platform-capability-cards__card--square {
    background-size: 100%;
}

.platform-capability-cards__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    max-width: 480px;
}

.platform-capability-cards__icon-wrap {
    display: inline-block;
    border-radius: 10px;
}

.platform-capability-cards__icon-wrap img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.platform-capability-cards__heading {
    font-size: clamp(28px, 3vw, 36px);
    font-weight: 700;
    letter-spacing: -0.5px;
    line-height: 122%;
    color: rgba(255, 255, 255, 0.6);
    margin: 0;
    max-width: 440px;
    transition: 200ms ease color;
    position: relative;
    display: inline;
}

.platform-capability-cards__heading:after {
    content: "";
    display: inline-block;
    width: 32px;
    height: 32px;
    background-image: url('../img/arrow-up-right.svg');
    background-size: contain;
    background-repeat: no-repeat;
    margin-left: 10px;
    vertical-align: middle;
    opacity: 0;
    transition: 200ms ease all;
    bottom: -16px;
    position: absolute;
}

.platform-capability-cards__body {
    font-size: 16px;
    line-height: 162%;
    color: rgba(255, 255, 255, 0.6);
    margin: 0;
    max-width: 42ch;
    transition: 200ms ease color;
}

.platform-capability-cards__card:hover .platform-capability-cards__heading,
.platform-capability-cards__card:hover .platform-capability-cards__body {
    color: #fff;
}

.platform-capability-cards__card:hover {
    background-size: 115%;
}

.platform-capability-cards__card a.platform-capability-cards__cta--inline {
    text-decoration: none;
}

.platform-capability-cards__card .platform-capability-cards__heading {
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0% 100%;
    background-repeat: no-repeat;
    background-size: 0% 2px;
    transition: background-size .3s; 
}

.platform-capability-cards__card:hover .platform-capability-cards__heading {
    background-size: 100% 2px;
}
.platform-capability-cards__card:hover .platform-capability-cards__heading:after {
    opacity: 1;
    bottom: 2px;
}

/* Rotated overline along the right edge of the full card */
.platform-capability-cards__overline {
    position: absolute;
    top: 69px;
    right: 48px;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #ffffff;
    white-space: nowrap;
    user-select: none;
}

.platform-capability-cards__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: #ff4801;
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 20px;
    border-radius: 6px;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.2s ease, opacity 0.2s ease;
    margin-top: 8px;
}

.platform-capability-cards__cta:hover {
    background-color: #e03e00;
    color: #ffffff;
}

/* Gray logotype pinned bottom-right of the full card */
.platform-capability-cards__logotype {
    position: absolute;
    right: 56px;
    bottom: 64px;
    height: 25px;
    width: auto;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991px) {
    .platform-capability-cards__grid {
        grid-template-columns: 1fr;
    }
    .platform-capability-cards__card--full {
        grid-column: auto;
        min-height: 0;
        padding: 48px 32px 72px;
    }
    .platform-capability-cards__card--square {
        min-height: 340px;
        padding: 48px 32px;
    }
    .platform-capability-cards__card--full:before,
    .platform-capability-cards__card--square:before {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        background: rgba(0,0,0,0.5);
        z-index: 1;
    }
    .platform-capability-cards__overline,
    .platform-capability-cards__content,
    .platform-capability-cards__heading,
    .platform-capability-cards__body,
    .platform-capability-cards__cta,
    .platform-capability-cards__logotype {
        z-index: 2;
    }
    .platform-capability-cards__heading,
    .platform-capability-cards__body {
        color: #fff;
    }
    /* Rotated overline becomes a static label above the heading */
    .platform-capability-cards__overline {
        position: static;
        writing-mode: horizontal-tb;
        transform: none;
        margin: 0 0 20px;
    }
    .platform-capability-cards__logotype {
        right: 32px;
        bottom: 32px;
    }

    .platform-capability-cards__card.platform-capability-cards__card--full,
    .platform-capability-cards__card.platform-capability-cards__card--square {
        background-size: cover;
    }
}

@media (max-width: 575px) {
    .platform-capability-cards {
        padding: 56px 0;
    }
    .platform-capability-cards__card--full {
        padding: 40px 24px 64px;
    }
    .platform-capability-cards__card--square {
        min-height: 300px;
        padding: 40px 24px;
    }
}


/* ============================================================
   BLOCK: platform-comparison
   With OneLayer vs Without OneLayer side-by-side comparison table.
   Centre "With" column has an elevated white card spanning all rows.
   ============================================================ */

.platform-comparison {
    padding: 80px 0;
    background-color: #f5f5f5;
}

.platform-comparison__table {
    position: relative;
    display: grid;
    grid-template-columns: 30% 35% 35%;
    grid-auto-rows: auto;
}

/* Elevated white card behind the "With OneLayer" centre column */
.platform-comparison__with-bg {
    position: absolute;
    top: 0;
    left: 30%;
    width: 35%;
    height: 100%;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
    pointer-events: none;
    z-index: 0;
}

/* All cells sit above the background card */
.platform-comparison__cell,
.platform-comparison__row {
    position: relative;
    z-index: 1;
}

/* ── Header row ─────────────────────────────────────────── */
.platform-comparison__row--header {
    display: contents; /* lets header cells participate in the parent grid */
}

.platform-comparison__cell--label {
    padding: 28px 24px 20px 0;
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #e4e9e6;
}

.platform-comparison__cell--with-hd {
    padding: 28px 32px 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid #e4e9e6;
}

.platform-comparison__with-prefix {
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1e1e1e;
}

.platform-comparison__hd-logo {
    height: 24px;
    width: auto;
}

.platform-comparison__cell--without-hd {
    padding: 28px 32px 20px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1e1e1e;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #e4e9e6;
}

/* ── Data rows ──────────────────────────────────────────── */
.platform-comparison__row:not(.platform-comparison__row--header) {
    display: contents; /* each .row's children flow into the parent grid columns */
}

.platform-comparison__cell--label {
    padding: 32px 24px 32px 0;
    border-bottom: 1px solid #e4e9e6;
    font-size: 14px;
    font-weight: 500;
    color: #1e1e1e;
    line-height: 22px;
    vertical-align: middle;
}

.platform-comparison__cell--with,
.platform-comparison__cell--without {
    padding: 28px 32px;
    border-bottom: 1px solid #e4e9e6;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    flex-flow: column wrap;
}

.platform-comparison__cell--with {
    color: #004734;
}

.platform-comparison__cell--without {
    color: #888;
}

/* Remove bottom border on last data row */
.platform-comparison__row:last-child .platform-comparison__cell--label,
.platform-comparison__row:last-child .platform-comparison__cell--with,
.platform-comparison__row:last-child .platform-comparison__cell--without {
    border-bottom: none;
}

.platform-comparison__icon {
    flex-shrink: 0;
    margin-top: 2px;
    margin-bottom: 12px;
}

.platform-comparison__cell--without .platform-comparison__icon {
    transform: rotate(90deg);
}

.platform-comparison__cell-text {
    font-size: 14px;
    line-height: 22px;
    color: #6e6e6e;
    font-weight: 400;
}

.platform-comparison__cell--with .platform-comparison__cell-text {
    font-weight: 500;
    color: #346C5D;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 767px) {
    .platform-comparison__table {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .platform-comparison__with-bg {
        display: none;
    }
    /* Stack each row's 3 cells vertically */
    .platform-comparison__row--header {
        display: none; /* hide header on mobile; context comes from cells */
    }
    .platform-comparison__row:not(.platform-comparison__row--header) {
        display: block;
        border: 1px solid #e4e9e6;
        border-radius: 12px;
        overflow: hidden;
        margin-bottom: 16px;
        background: #ffffff;
    }
    .platform-comparison__cell--label {
        background: #f7f8f6;
        padding: 14px 20px;
        font-weight: 700;
        font-size: 13px;
        border-bottom: 1px solid #e4e9e6;
    }
    .platform-comparison__cell--with,
    .platform-comparison__cell--without {
        padding: 16px 20px;
        border-bottom: 1px solid #f0f3f1;
    }
    .platform-comparison__row:not(.platform-comparison__row--header) .platform-comparison__cell--without {
        border-bottom: none;
    }
}


/* ============================================================
   PLATFORM – PRODUCT DEMO
   section-platform_product_demo.php | group_6845a0b1c2d3e
   ============================================================ */

.platform-product-demo {
    padding: 80px 0;
    background: #ffffff;
}

.platform-product-demo__intro {
    max-width: 680px;
    margin: 0 auto 48px;
    text-align: center;
}

.platform-product-demo__overline {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 16px;
}

.platform-product-demo__heading {
    font-size: clamp(28px, 3.5vw, 42px);
    font-weight: 700;
    line-height: 1.2;
    color: #0d1a14;
    margin: 0 0 20px;
}

.platform-product-demo__body {
    font-size: 16px;
    line-height: 1.65;
    color: #4a5550;
    margin: 0;
}

.platform-product-demo__panel {
    margin: 0;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 8px 48px rgba(0, 0, 0, 0.10);
    background: #f0f3f1;
    line-height: 0;
}

.platform-product-demo__image {
    width: 100%;
    height: auto;
    display: block;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 767px) {
    .platform-product-demo {
        padding: 56px 0;
    }
    .platform-product-demo__intro {
        text-align: left;
        margin-bottom: 32px;
    }
    .platform-product-demo__panel {
        border-radius: 12px;
    }
}


/* ============================================================
   PLATFORM – TRANSFORMATION CARDS
   section-platform_transformation_cards.php | group_6845b1c2d3e4f
   ============================================================ */

.platform-transformation-cards {
    padding: 96px 0;
    background: #f7f8f6;
}

.platform-transformation-cards__overline {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #004734;
    margin: 0 0 16px;
}

.platform-transformation-cards__heading {
    font-size: clamp(28px, 3.5vw, 46px);
    font-weight: 700;
    line-height: 1.15;
    color: #0d1a14;
    max-width: 700px;
    margin: 0 0 24px;
}

.platform-transformation-cards__body {
    font-size: 16px;
    line-height: 1.65;
    color: #4a5550;
    max-width: 580px;
    margin: 0 0 64px;
}

.platform-transformation-cards__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border: 1px solid #dde4df;
    border-radius: 16px;
    overflow: hidden;
}

.platform-transformation-cards__card {
    padding: 48px 44px;
    border-right: 1px solid #dde4df;
    border-bottom: 1px solid #dde4df;
    background: #ffffff;
}

/* Remove right border on even cards (right column) */
.platform-transformation-cards__card:nth-child(even) {
    border-right: none;
}

/* Remove bottom border on last two cards (bottom row) */
.platform-transformation-cards__card:nth-last-child(-n+2) {
    border-bottom: none;
}

.platform-transformation-cards__card-title {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
    color: #0d1a14;
    margin: 0 0 12px;
}

.platform-transformation-cards__card-body {
    font-size: 15px;
    line-height: 1.65;
    color: #4a5550;
    margin: 0;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 767px) {
    .platform-transformation-cards {
        padding: 64px 0;
    }
    .platform-transformation-cards__grid {
        grid-template-columns: 1fr;
        border-radius: 12px;
    }
    .platform-transformation-cards__card {
        padding: 32px 28px;
        border-right: none;
    }
    /* Restore bottom border on all cards except the very last */
    .platform-transformation-cards__card:nth-last-child(-n+2) {
        border-bottom: 1px solid #dde4df;
    }
    .platform-transformation-cards__card:last-child {
        border-bottom: none;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   platform-trusted-by
   Static logo grid with centered overline. No animation.
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-trusted-by {
    background: #f5f5f5;
    padding: 48px 0;
}

.platform-trusted-by__overline {
    text-align: center;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #6b7280;
    margin: 0 0 32px;
}

.platform-trusted-by__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 40px 56px;
}

.platform-trusted-by__logo img {
    max-height: 36px;
    width: auto;
    object-fit: contain;
}

@media (max-width: 767px) {
    .platform-trusted-by__logos {
        gap: 28px 36px;
    }
    .platform-trusted-by__logo img {
        max-height: 28px;
    }
}


/* ============================================================
   PLATFORM – IMAGE
   section-platform_image.php | group_6848a0b1c2d3e
   ============================================================ */

.platform-image {
    padding: 80px 0;
    background: #f5f5f5;
}

.platform-image__panel {
    margin: 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 40px 8px rgba(0, 0, 0, 0.08);
    background: #f5f5f5;
}

.platform-image__img {
    display: block;
    width: 100%;
    height: auto;
}

.platform-image__img--mobile {
    display: none;
}

@media (max-width: 991px) {
    .platform-image {
        padding: 56px 0;
    }
    .platform-image__img--has-mobile {
        display: none;
    }
    .platform-image__img--mobile {
        display: block;
    }
}


/* ============================================================
   PLATFORM – INTEGRATIONS
   section-platform_integrations.php | group_6849a0b1c2d3e
   Card overlaps the adjacent section via translateY, mirroring
   the platform-stats offset-top / offset-bottom / offset-none.
   ============================================================ */

.platform-integrations {
    padding: 80px 0;
    position: relative;
    z-index: 2;
}

.platform-integrations.offset-top {
    padding: 0 0 80px;
}

.platform-integrations.offset-bottom {
    padding: 80px 0 0;
}

.platform-integrations.offset-top .platform-integrations__card {
    transform: translateY(-90px);
    margin-bottom: -120px;
}

.platform-integrations.offset-bottom .platform-integrations__card {
    transform: translateY(40px);
}

.platform-integrations__card {
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.07);
    overflow: hidden;
}

.platform-integrations__header {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 24px 37px;
    border-bottom: 1px solid #d6d6d6;
}

.platform-integrations__heading {
    flex: 1;
    font-size: 20px;
    font-weight: 500;
    line-height: 28px;
    color: #1e1e1e;
    margin: 0;
}

.platform-integrations__browse {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    background: #ffffff;
    border: 1.5px solid #d6d6d6;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #1e1e1e;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.2s ease;
}

.platform-integrations__browse:hover {
    border-color: #1e1e1e;
    color: #1e1e1e;
}

.platform-integrations__grid {
    display: flex;
    align-items: stretch;
    gap: 24px;
    padding: 20px 48px;
}

.platform-integrations__divider {
    width: 1px;
    background: #d6d6d6;
    flex-shrink: 0;
}

.platform-integrations__col {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    padding: 32px 0;
    min-width: 0;
}

.platform-integrations__logo {
    height: 40px;
    width: auto;
    max-width: 160px;
    object-fit: contain;
}

.platform-integrations__desc {
    font-size: 14px;
    line-height: 22px;
    color: #6e6e6e;
    margin: 0;
    flex: 1;
}

.platform-integrations__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 14px;
    background: #ff4801;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    color: #ffffff;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease;
}

.platform-integrations__cta:hover {
    background: #d93c00;
    color: #ffffff;
}

@media (max-width: 991px) {
    .platform-integrations {
        padding: 56px 0;
    }

    .platform-integrations.offset-top {
        padding: 0 0 56px;
    }

    .platform-integrations.offset-bottom {
        padding: 56px 0 0;
    }

    .platform-integrations__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 24px;
    }

    .platform-integrations__grid {
        flex-direction: column;
        gap: 0;
        padding: 0 24px;
    }

    .platform-integrations__divider {
        width: 100%;
        height: 1px;
    }

    .platform-integrations__col {
        gap: 20px;
        padding: 24px 0;
    }
}


/* ============================================================
   PLATFORM – THREAT CARDS
   section-platform_threat_cards.php | group_684ba0b1c2d3e
   ============================================================ */

.platform-threat-cards {
    padding: 96px 0;
    background: #f5f5f5;
}

.platform-threat-cards__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    align-items: stretch;
}

/* Heading + intro copy occupy the first two cells of row one */
.platform-threat-cards__intro {
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px 0;
    align-items: center;
}

.platform-threat-cards__heading {
    font-size: clamp(28px, 3vw, 36px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.5px;
    color: #1e1e1e;
    margin: 0 0 18px;
}

.platform-threat-cards__body {
    font-size: 16px;
    line-height: 1.6;
    color: #6e6e6e;
    max-width: 420px;
    margin: 0;
}

.platform-threat-cards__card {
    background: #ffffff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    padding: 24px;
    display: flex;
    flex-direction: column;
}

.platform-threat-cards__card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 32px;
}

.platform-threat-cards__card-category {
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a5244;
}

.platform-threat-cards__card-severity {
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    color: #ff4801;
    background: #fff4f0;
    border: 1px solid #ff4801;
    border-radius: 4px;
    padding: 3px 8px;
    white-space: nowrap;
    flex-shrink: 0;
}

.platform-threat-cards__card-title {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    color: #1e1e1e;
    margin: 0 0 16px;
}

.platform-threat-cards__card-body {
    font-size: 13px;
    line-height: 1.55;
    color: #6e6e6e;
    margin: 0;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 1199px) {
    /* Tablet: 2 cards per row, intro becomes a full-width first row */
    .platform-threat-cards__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .platform-threat-cards__intro {
        padding: 0 0 8px;
    }
}

@media (max-width: 767px) {
    /* Mobile: single column */
    .platform-threat-cards {
        padding: 64px 0;
    }

    .platform-threat-cards__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .platform-threat-cards__intro {
        grid-column: span 1;
        align-items: flex-start;
    }

    .platform-threat-cards__card-header {
        margin: 0 0 24px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   platform-subscription-cta (pre-footer)
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-subscription-cta {
    padding: 64px 0;
}

.platform-subscription-cta--attached {
    padding-bottom: 0;
}

.platform-subscription-cta__card {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background-color: #3a3a3a;
    padding: 72px 48px;
    text-align: center;
}

.platform-subscription-cta--attached .platform-subscription-cta__card {
    border-radius: 8px 8px 0 0;
}

.platform-subscription-cta__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.07;
    pointer-events: none;
}

.platform-subscription-cta__content {
    position: relative;
    max-width: 620px;
    margin: 0 auto;
}

.platform-subscription-cta__heading {
    font-size: clamp(1.75rem, 3.2vw, 2.25rem);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.22;
    letter-spacing: -0.5px;
    margin: 0 0 16px;
}

.platform-subscription-cta__body {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
    margin: 0 0 32px;
}

.platform-subscription-cta__buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.platform-subscription-cta__btn--secondary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    padding: 10px 18px;
    opacity: 0.9;
    transition: opacity 0.2s ease;
}

.platform-subscription-cta__btn--secondary:hover {
    opacity: 1;
}

.platform-subscription-cta__btn--secondary svg {
    flex-shrink: 0;
}

@media (max-width: 767px) {
    .platform-subscription-cta:not(.platform-subscription-cta--attached) {
        padding: 48px 0;
    }

    .platform-subscription-cta__card {
        padding: 48px 24px;
    }

    .platform-subscription-cta__buttons {
        flex-direction: column;
        width: 100%;
    }

    .platform-subscription-cta__btn--primary,
    .platform-subscription-cta__btn--secondary {
        width: 100%;
        justify-content: center;
    }
}


/* ============================================================
   PLATFORM – LOGOS CAROUSEL
   section-platform_logos_carousel.php | group_684fa0b1c2d3e
   Infinite auto-scrolling logo row, vignette-faded at both edges.
   Pure CSS animation — no JS.
   ============================================================ */

.platform-logos-carousel {
    background: #f5f5f5;
    padding: 48px 0;
}

.platform-logos-carousel__overline {
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.125em;
    text-transform: uppercase;
    color: #1a5244;
    margin: 0 0 32px;
}

.platform-logos-carousel__viewport {
    position: relative;
    overflow: hidden;
}

.platform-logos-carousel__fade {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 112px;
    z-index: 2;
    pointer-events: none;
}

.platform-logos-carousel__fade--left {
    left: 0;
    background: linear-gradient(to right, #f5f5f5, rgba(245, 245, 245, 0));
}

.platform-logos-carousel__fade--right {
    right: 0;
    background: linear-gradient(to left, #f5f5f5, rgba(245, 245, 245, 0));
}

.platform-logos-carousel__track {
    display: flex;
    width: max-content;
    animation: platform-logos-carousel-scroll var(--plc-duration, 30s) linear infinite;
}

.platform-logos-carousel__viewport:hover .platform-logos-carousel__track {
    animation-play-state: paused;
}

.platform-logos-carousel__group {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-shrink: 0;
    padding-right: 24px;
}

.platform-logos-carousel__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    flex-shrink: 0;
}

.platform-logos-carousel__logo img {
    max-height: 40px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

@keyframes platform-logos-carousel-scroll {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .platform-logos-carousel__track {
        animation: none;
    }
}

@media (max-width: 767px) {
    .platform-logos-carousel__fade {
        width: 48px;
    }

    .platform-logos-carousel__logo {
        width: 96px;
    }

    .platform-logos-carousel__logo img {
        max-height: 32px;
    }
}


/* ============================================================
   PLATFORM – ECOSYSTEM SCHEMATIC
   section-platform_ecosystem_schematic.php | group_6a87f369a001
   White bordered card: category/row timeline (icon + connector line
   + partner logos per row) with a sticky dark-green CTA panel.
   No JS.
   ============================================================ */

.platform-ecosystem-schematic {
    padding: 80px 0;
    background: #f5f5f5;
}

.platform-ecosystem-schematic__card {
    background: #ffffff;
    border: 1px solid var(--light-gray-color, #d6d6d6);
    border-radius: 8px;
    box-shadow: 0 4px 40px 8px rgba(0, 0, 0, 0.05);
    /* overflow: hidden; */
}

.platform-ecosystem-schematic__header {
    padding: 24px 40px;
    border-bottom: 1px solid var(--light-gray-color, #d6d6d6);
}

.platform-ecosystem-schematic__heading {
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--dark-gray-color, #1e1e1e);
    margin: 0;
}

.platform-ecosystem-schematic__body {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 40px;
    align-items: stretch; /* sidebar cell stretches to match .main's full height */
    padding: 40px;
    padding-left: 134px; /* 40px + 94px to align with the icon column's left edge */
}

.platform-ecosystem-schematic__main {
    display: flex;
    flex-direction: column;
    gap: 40px;
    min-width: 0;
    position: relative;
}

/* Single connector line threaded behind the icon column for the full height of the
   diagram — every row, across every category, reads as one continuous schematic.
   (244px = label-col width 220px + row gap 24px; +70px centres it in the 140px icon-col) */
.platform-ecosystem-schematic__main::before {
    content: '';
    position: absolute;
    top: 0;
    /* --main--merged (see MERGE BLOCK below) overrides this: when the first
       2 categories render as the hardcoded branching diagram, this line
       only needs to cover 3GPP UE (lane A) downward — Non-3GPP sits on an
       offset lane with no icon on this centerline, so starting at 0 would
       show a line floating above nothing. */
    bottom: 0;
    left: 314px;
    width: 1px;
    background: var(--light-gray-color, #d6d6d6);
    z-index: 0;
}

.platform-ecosystem-schematic__main--merged::before {
    top: 256px;
}

.platform-ecosystem-schematic__category-title {
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--green-color);
    margin: 0 0 8px;
}

.platform-ecosystem-schematic__rows {
    display: flex;
    flex-direction: column;
    position: relative;
}

.platform-ecosystem-schematic__row {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 144px;
    /* border-top: 1px solid var(--light-gray-color, #d6d6d6); */
}

.platform-ecosystem-schematic__row:first-child {
    border-top: none;
}

.platform-ecosystem-schematic__row-label-col {
    width: 220px;
    flex-shrink: 0;
    padding-left: 16px;
    border-left: 1px solid var(--light-gray-color, #d6d6d6);
    align-self: stretch;
    display: flex;
    align-items: center;
    padding-left: 60px;
    margin-bottom: 32px;
}

.platform-ecosystem-schematic__row-label {
    color: var(--orange-color);
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.6;
}

.platform-ecosystem-schematic__row-icon-col {
    width: 140px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 0;
}

/* Usually one icon; a row can stack more where the Figma schematic shows several
   device/node icons for that row (e.g. the "Devices" category) */
.platform-ecosystem-schematic__row-icon-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 1;
}

.platform-ecosystem-schematic__row-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    background: #ffffff;
    flex-shrink: 0;
}

.platform-ecosystem-schematic__row-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.platform-ecosystem-schematic__row-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 32px;
    flex: 1;
    min-width: 0;
    max-width: 298px;
    margin-right: 0;
    margin-left: auto; /* push the logos to the right edge of the row, leaving a gap between them and the icon column */
}

.platform-ecosystem-schematic__logo {
    height: 26px;
    width: auto;
    max-width: 110px;
    object-fit: contain;
}

.platform-ecosystem-schematic__row-logos--tags {
    gap: 8px;
}

/* es_content_mode = tags: same chip style as .platform-how-it-works__step-tag */
.platform-ecosystem-schematic__row-tag {
    display: inline-block;
    background: #eef5f3;
    border: 1px solid var(--green-color);
    border-radius: 4px;
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    color: var(--green-color);
    white-space: nowrap;
    margin: 0;
}

/* Background fills the stretched grid cell (matches .main's full height —
   see .body align-items:stretch) so the green card never runs out before the
   diagram does. The sticky behaviour lives on -inner instead, so the visible
   content hugs the top of the viewport while scrolling without being
   clipped to its own (much shorter) natural content height. */
.platform-ecosystem-schematic__sidebar {
    background: var(--green-color);
    border-radius: 0;
    margin: -40px -40px -40px 0;
}

@media (max-width: 1250px) {
    .platform-ecosystem-schematic__sidebar {
        margin: -40px 0 0 0;
        transform: translateX(40px);
    }
}

@media (min-width: 1161px) and (max-width: 1250px) {
    .platform-ecosystem-schematic__sidebar {
        transform: translateX(40px);
    }
}

@media (min-width: 992px) and (max-width: 1160px) {
    .platform-ecosystem-schematic__sidebar {
        display: none;
    }
}

.platform-ecosystem-schematic__sidebar-inner {
    position: sticky;
    top: 100px;
    padding: 32px;
}

.logged-in .platform-ecosystem-schematic__sidebar-inner {
    top: 140px;
}

.platform-ecosystem-schematic__sidebar-mark {
    display: block;
    margin-bottom: 24px;
}

.platform-ecosystem-schematic__sidebar-text {
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0 0 32px;
}

.platform-ecosystem-schematic__sidebar-btn {
    display: inline-block;
    width: 100%;
    text-align: center;
}

/* ------------------------------------------------------------
   MERGE BLOCK — hardcoded branching diagram for the first 2
   categories (e.g. Devices + RAN & Edge on Integrations).
   Enabled per-instance via `es_merge_first_two`.

   Fixed-pixel absolute layout inside .merge-diagram (548x612) —
   same column widths as the generic rows above (label 220 / gap
   24 / icon-col 140) so tags/lines line up across the whole
   diagram, not just within the merge block:
     lane A (x=314) = the standard centerline above, shared with
       the generic continuous line so the two read as one thread.
     lane B (x=478) = offset lane used only by Non-3GPP + the 2nd
       (right) 3GPP UE icon, joined into lane A by a right-angle
       connector (vertical drop + horizontal merge) — not a
       diagonal — turning exactly at RAN's row top, where lane A's
       own continuous line is already present.
   Desktop-only (fixed pixels don't reflow); hidden <=991px in
   favour of .merge-mobile, a plain stacked fallback that reuses
   the generic .row/.row-icon-stack/.row-logos markup as-is.
   ------------------------------------------------------------ */

.platform-ecosystem-schematic__merge {
    display: flex;
    align-items: center;
    gap: 40px;
}

.platform-ecosystem-schematic__merge-diagram {
    position: relative;
    width: 548px;
    height: 612px;
    flex-shrink: 0;
}

.platform-ecosystem-schematic__merge-title {
    position: absolute;
    left: 0;
    width: 220px;
    margin: 0;
}

.platform-ecosystem-schematic__merge-title--devices {
    top: 0;
}

.platform-ecosystem-schematic__merge-title--ran {
    top: 396px;
}

.platform-ecosystem-schematic__merge-label {
    position: absolute;
    left: 0;
    width: 220px;
    height: 180px;
    padding-left: 16px;
    border-left: 1px solid var(--light-gray-color, #d6d6d6);
    display: flex;
    align-items: center;
}

.platform-ecosystem-schematic__merge-label--non3gpp {
    top: 36px;
}

.platform-ecosystem-schematic__merge-label--3gppue {
    top: 236px;
    height: 160px;
}

.platform-ecosystem-schematic__merge-label--ran {
    top: 432px;
}

.platform-ecosystem-schematic__merge-icon {
    position: absolute;
    width: 120px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    z-index: 1;
}

.platform-ecosystem-schematic__merge-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.platform-ecosystem-schematic__merge-icon--non3gpp {
    left: 418px;
    top: 66px;
}

.platform-ecosystem-schematic__merge-icon--3gppue-a {
    left: 254px;
    top: 246px;
}

.platform-ecosystem-schematic__merge-icon--3gppue-b {
    left: 418px;
    top: 246px;
}

.platform-ecosystem-schematic__merge-icon--ran {
    left: 254px;
    top: 462px;
}

/* Right-angle connector: 3GPP UE's right icon (lane B) drops straight down,
   then turns and merges horizontally into lane A right where RAN's row
   begins — lane A itself (below) is already the continuous centerline, so
   the horizontal segment just needs to touch it, no 3rd segment required. */
.platform-ecosystem-schematic__merge-line-b {
    position: absolute;
    left: 477.5px;
    top: 366px;
    width: 1px;
    height: 66px;
    background: var(--light-gray-color, #d6d6d6);
    z-index: 0;
}

.platform-ecosystem-schematic__merge-line-turn {
    position: absolute;
    left: 314px;
    top: 431.5px;
    width: 164px;
    height: 1px;
    background: var(--light-gray-color, #d6d6d6);
    z-index: 0;
}

.platform-ecosystem-schematic__merge-items {
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    gap: 8px 12px;
    flex: 1;
    min-width: 0;
    max-width: 253px;
    margin-right: 0;
    margin-left: auto;
}

.platform-ecosystem-schematic__merge-mobile {
    display: none;
}

a.button.negative.platform-ecosystem-schematic__sidebar-btn {
    font-size: 12px;
    line-height: 1;
    padding: 8px 14px;
    border-radius: 4px;
    color: #000;
}

a.button.negative.platform-ecosystem-schematic__sidebar-btn:hover {
    color: #fff;
}

p.platform-ecosystem-schematic__sidebar-text {
    font-size: 16px;
    line-height: 26px;
}

.platform-ecosystem-schematic__row-label-col.platform-ecosystem-schematic__merge-label.platform-ecosystem-schematic__merge-label--non3gpp:before,
.platform-ecosystem-schematic__row-label-col.platform-ecosystem-schematic__merge-label.platform-ecosystem-schematic__merge-label--3gppue:before {
    content: '';
    height: 1px;
    width: 32px;
    background: #d6d6d6;
    position: absolute;
    left: 0;
    top: 0;
    display: block;
}

.platform-ecosystem-schematic__row-label-col.platform-ecosystem-schematic__merge-label.platform-ecosystem-schematic__merge-label--3gppue:after,
.platform-ecosystem-schematic__row-label-col.platform-ecosystem-schematic__merge-label.platform-ecosystem-schematic__merge-label--non3gpp:after {
    content: '';
    height: 1px;
    width: 32px;
    background: #d6d6d6;
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
}

span.platform-ecosystem-schematic__row-icon.platform-ecosystem-schematic__merge-icon.platform-ecosystem-schematic__merge-icon--non3gpp:after {
    content: '';
    background: #d6d6d6;
    width: 1px;
    height: 120px;
    position: absolute;
    top: 100%;
}

@media (max-width: 1450px) {
    .platform-ecosystem-schematic__body {
        padding-left: 34px;
    }
}

@media (max-width: 991px) {
    .platform-ecosystem-schematic__body {
        grid-template-columns: 1fr;
    }

    .platform-ecosystem-schematic__sidebar-inner {
        position: static;
    }

    /* The connector line can't thread the reflowed rows (label now sits on its
       own line, so the icon column no longer keeps a fixed x) — drop it, the
       way the <=767 rules already did. */
    .platform-ecosystem-schematic__main::before {
        opacity: 0;
    }

    /* Rows wrap: the label takes its own line, then the icon + the partner
       list share the next line. */
    .platform-ecosystem-schematic__row {
        flex-wrap: wrap;
        align-items: flex-start;
        row-gap: 16px;
        padding: 24px 0;
        min-height: 0;
    }

    .platform-ecosystem-schematic__row:first-child {
        padding-top: 0;
    }

    .platform-ecosystem-schematic__row-label-col {
        width: 100%;
        align-self: auto;
        border-left: none;
        padding-left: 0;
        margin-bottom: 0;
    }

    .platform-ecosystem-schematic__row-icon-col {
        justify-content: flex-start;
    }

    /* Was `width: 100%` + `padding-left: 290px`, which fought the base
       `max-width: 298px` / `margin-left: auto` and crushed the chips into
       ~8px of usable width (they clipped one glyph per line at the card
       edge). Let the partner list flex beside the icon instead. */
    .platform-ecosystem-schematic__row-logos {
        max-width: none;
        margin-left: 0;
        padding-left: 0;
        align-self: flex-start;
        padding-top: 6px;
    }

    .platform-ecosystem-schematic__merge {
        display: block;
    }

    .platform-ecosystem-schematic__merge-diagram,
    .platform-ecosystem-schematic__merge-items {
        display: none;
    }

    .platform-ecosystem-schematic__merge-mobile {
        display: block;
    }

    .platform-ecosystem-schematic__sidebar {
        transform: translateX(0px);
    }
}

@media (max-width: 767px) {
    .platform-ecosystem-schematic__body {
        padding: 24px;
        gap: 24px;
    }

    .platform-ecosystem-schematic__header {
        padding: 20px 24px;
    }

    .platform-ecosystem-schematic__row-label-col {
        width: 100%;
        border-left: none;
        padding-left: 0;
    }

    /* Phones: the partner list drops below the icon at full width
       (the tablet rule above keeps it beside the icon). */
    .platform-ecosystem-schematic__row-logos {
        width: 100%;
        flex-basis: 100%;
        padding-left: 0;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   platform-scenarios
   Section: 3 text columns with vertical dividers. Per-column overline +
   heading + body, no icons (cf. platform-pain-points).
   Figma: Network architectures 455/456, node 1-1002.
   ═══════════════════════════════════════════════════════════════════════════ */

.platform-scenarios {
    padding: 80px 0;
    background: #f5f5f5;
}

.platform-scenarios__overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1A5244;
    margin: 0 0 28px;
    text-align: center;
}

.platform-scenarios__heading {
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: clamp(1.9rem, 3.2vw, 44px);
    font-weight: 700;
    text-align: center;
    margin: 0 0 24px;
    color: #1e1e1e;
}

.platform-scenarios__text {
    text-align: center;
    font-size: 1rem;
    line-height: 1.6;
    color: #5a5a5a;
    margin: 0 auto 60px;
    max-width: 640px;
}

.platform-scenarios__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 64px;
}

.platform-scenarios__item {
    /* padding: 0 48px; */
    position: relative;
}

.platform-scenarios__item::after {
    position: absolute;
    right: -32px;
    top: 0;
    height: 100%;
    width: 1px;
    background: #e0e0e0;
    content: '';
}

.platform-scenarios__item:first-child {
    padding-left: 0;
}

.platform-scenarios__item:last-child {
    padding-right: 0;
}

.platform-scenarios__item:last-child::after {
    display: none;
}

.platform-scenarios__item-overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1A5244;
    margin: 0 0 19px;
}

.platform-scenarios__item-title {
    font-size: clamp(1.375rem, 2vw, 28px);
    line-height: 1.28;
    font-weight: 700;
    color: #1e1e1e;
    margin: 0 0 19px;
}

.platform-scenarios__item-body {
    font-size: 1rem;
    line-height: 1.65;
    color: #6e6e6e;
    margin: 0;
}

@media (max-width: 991px) {
    .platform-scenarios__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .platform-scenarios__item {
        padding: 0 0 40px;
    }

    .platform-scenarios__item::after {
        right: 0;
        left: 0;
        top: auto;
        bottom: 0;
        width: 100%;
        height: 1px;
    }

    .platform-scenarios__item:last-child {
        padding-bottom: 0;
    }
}


/* ============================================================
   PLATFORM – CAPABILITY CAROUSEL
   section-platform_capability_carousel.php | group_6a905858a001
   Two-col header + full-bleed horizontal scroll row of media
   cards. Cards play a muted video on hover/focus, reveal body
   copy, and swap a green + for an orange arrow (all CSS).
   JS module platformCapabilityCarousel(): hover play-pause +
   mouse drag-to-scroll. Selector: [data-capability-carousel].
   ============================================================ */

.platform-capability-carousel {
    padding: 80px 0;
    background: #f5f5f5; /* fallback — the pcc_bg_color field sets background-color inline */
    overflow: hidden;
}

/* ── Header: heading left, body right, tag chip under the heading ── */
.platform-capability-carousel__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px 80px;
    align-items: start;
    margin-bottom: 48px;
}

.platform-capability-carousel__overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1a5244;
    margin: 0 0 20px;
}

.platform-capability-carousel__heading {
    font-size: clamp(1.9rem, 3.4vw, 2.75rem);
    line-height: 1.15;
    font-weight: 700;
    color: #1e1e1e;
    margin: 0;
}

.platform-capability-carousel__tag {
    display: inline-block;
    background: #eef5f3;
    border: 1px solid #004734;
    border-radius: 4px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    color: #004734;
    margin: 28px 0 0;
}

.platform-capability-carousel__body {
    font-size: clamp(0.75rem, 1.5rem, 16px);
    line-height: clamp(1rem, 2rem, 26px);
    color: #5a5a5a;
    margin: 0;
}

/* ── Scroller: full-bleed, first card aligned to container-medium ── */
.platform-capability-carousel__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-left: max(1rem, calc((100vw - 69rem) / 2 + 1rem));
    /* Match the leading padding so scroll-snap lands card 1 on the container
       edge instead of eating the inset and jamming it to the screen edge on
       load (bites hardest on the instances with the most cards). */
    scroll-padding-left: max(1rem, calc((100vw - 69rem) / 2 + 1rem));
}

.platform-capability-carousel__viewport::-webkit-scrollbar {
    display: none;
}

.platform-capability-carousel__viewport.is-dragging {
    scroll-snap-type: none;
    cursor: grabbing;
    user-select: none;
}

.platform-capability-carousel__track {
    display: flex;
    gap: 24px;
    width: max-content;
    padding-right: 1.5rem;
}

.platform-capability-carousel__card {
    position: relative;
    flex: 0 0 min(312px, 78vw);
    height: 400px;
    border-radius: 6px;
    overflow: hidden;
    isolation: isolate;
    background: #1e1e1e;
    scroll-snap-align: start;
    text-decoration: none;
    color: #ffffff;
    display: block;
}

.platform-capability-carousel__media,
.platform-capability-carousel__poster,
.platform-capability-carousel__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.platform-capability-carousel__video {
    opacity: 0;
    transition: opacity 0.5s ease;
}

.platform-capability-carousel__card:hover .platform-capability-carousel__video,
.platform-capability-carousel__card:focus-visible .platform-capability-carousel__video {
    opacity: 1;
}

.platform-capability-carousel__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(12, 17, 15, 0.15) 0%, rgba(12, 17, 15, 0.5) 52%, rgba(12, 17, 15, 0.85) 100%);
    transition: background 0.4s ease;
}

.platform-capability-carousel__card:hover .platform-capability-carousel__scrim,
.platform-capability-carousel__card:focus-visible .platform-capability-carousel__scrim {
    background: linear-gradient(180deg, rgba(12, 17, 15, 0.08) 0%, rgba(12, 17, 15, 0.45) 52%, rgba(12, 17, 15, 0.9) 100%);
}

.platform-capability-carousel__icon {
    position: absolute;
    top: 39px;
    left: 43px;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    display: grid;
    place-items: center;
    background: #004734;
    color: #ffffff;
    transition: background 0.35s ease;
}

.platform-capability-carousel__card:hover .platform-capability-carousel__icon,
.platform-capability-carousel__card:focus-visible .platform-capability-carousel__icon {
    background: #ff4801;
}

.platform-capability-carousel__icon svg {
    position: absolute;
    width: 18px;
    height: 18px;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.platform-capability-carousel__icon-arrow {
    opacity: 0;
    transform: translate(-3px, 3px);
}

.platform-capability-carousel__card:hover .platform-capability-carousel__icon-plus,
.platform-capability-carousel__card:focus-visible .platform-capability-carousel__icon-plus {
    opacity: 0;
    transform: translate(3px, -3px);
}

.platform-capability-carousel__card:hover .platform-capability-carousel__icon-arrow,
.platform-capability-carousel__card:focus-visible .platform-capability-carousel__icon-arrow {
    opacity: 1;
    transform: none;
}

.platform-capability-carousel__content {
    position: absolute;
    left: 43px;
    right: 24px;
    bottom: 40px;
}

.platform-capability-carousel__card-title {
    font-size: 20px;
    line-height: 28px;
    font-weight: 500;
    color: #ffffff;
    margin: 0;
}

.platform-capability-carousel__card-body {
    font-size: 12px;
    line-height: 18px;
    color: rgba(255, 255, 255, 0.82);
    margin: 0;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: opacity 0.4s ease, max-height 0.4s ease, margin-top 0.4s ease;
}

.platform-capability-carousel__card:hover .platform-capability-carousel__card-body,
.platform-capability-carousel__card:focus-visible .platform-capability-carousel__card-body {
    max-height: 160px;
    opacity: 1;
    margin-top: 12px;
}

/* ── Prev / next arrows: right-aligned, own row under the header ── */
.platform-capability-carousel__nav {
    grid-column: 1 / -1;
    justify-self: end;
    display: flex;
    gap: 8px;
    margin-top: 4px;
}

.platform-capability-carousel__arrow {
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 1px solid #d6d6d6;
    border-radius: 6px;
    background: transparent;
    color: #1e1e1e;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.platform-capability-carousel__arrow:hover {
    background: #ededed;
}

.platform-capability-carousel__arrow:focus-visible {
    outline: 2px solid #004734;
    outline-offset: 2px;
}

.platform-capability-carousel__arrow:disabled {
    opacity: 0.4;
    cursor: default;
}

.platform-capability-carousel__arrow svg {
    display: block;
    width: 16px;
    height: 16px;
}

/* ── Scroll-bar indicator: aligned to container-medium, below the scroller ── */
.platform-capability-carousel__scrollbar {
    position: relative;
    height: 7px;
    margin-top: 40px;
    border-radius: 999px;
    background: #d6d6d6;
    cursor: pointer;
}

.platform-capability-carousel__scrollbar-thumb {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 30%;
    border-radius: 999px;
    background: #bcbcbc;
    cursor: grab;
}

.platform-capability-carousel__scrollbar-thumb:active {
    cursor: grabbing;
}

/* When every card already fits, the arrows + bar are redundant. */
.platform-capability-carousel.is-static .platform-capability-carousel__nav,
.platform-capability-carousel.is-static .platform-capability-carousel__scrollbar {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .platform-capability-carousel__video,
    .platform-capability-carousel__scrim,
    .platform-capability-carousel__icon,
    .platform-capability-carousel__icon svg,
    .platform-capability-carousel__card-body {
        transition: none;
    }
}

@media (max-width: 991px) {
    .platform-capability-carousel {
        padding: 56px 0;
    }
    .platform-capability-carousel__head {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 36px;
    }
    .platform-capability-carousel__tag {
        margin-top: 20px;
    }
    .platform-capability-carousel__viewport {
        padding-left: 1.6rem;
        padding-right: 1.6rem;
        scroll-padding-left: 1.6rem;
    }
    .platform-capability-carousel__scrollbar {
        margin-top: 28px;
    }
}


/* ============================================================
   PLATFORM – ECOSYSTEM LIST
   section-platform_ecosystem_list.php | group_6a905858b001
   Centered header + vertical rows of [isometric icon] [orange
   label] [wrapping partner logos]. One 1px connector line runs
   behind the icon column threading every row. No JS.
   ============================================================ */

.platform-ecosystem-list {
    padding: 80px 0;
    background: #f5f5f5;
}

.platform-ecosystem-list__head {
    max-width: 640px;
    margin: 0 auto 56px;
    text-align: center;
}

.platform-ecosystem-list__overline {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1a5244;
    margin: 0 0 16px;
}

.platform-ecosystem-list__heading {
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: 1.2;
    font-weight: 700;
    color: #1e1e1e;
    margin: 0;
}

.platform-ecosystem-list__text {
    font-size: 1rem;
    line-height: 1.6;
    color: #5a5a5a;
    margin: 16px 0 0;
}

.platform-ecosystem-list__rows {
    position: relative;
}

.platform-ecosystem-list__row {
    display: grid;
    grid-template-columns: 88px minmax(140px, 260px) 1fr;
    align-items: center;
    column-gap: 24px;
    min-height: 92px;
    padding: 14px 0;
}

.platform-ecosystem-list__icon {
    position: relative;
    z-index: 1;
    width: 72px;
}

.platform-ecosystem-list__icon:after {
    content: '';
    width: 1px;
    height: 100%;
    position: absolute;
    right: -18px;
    top: 0;
    background: #d6d6d6;
}

.platform-ecosystem-list__icon img {
    display: block;
    width: 100%;
    height: auto;
}

.platform-ecosystem-list__label {
    color: #ff4801;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.4;
    margin: 0;
}

.platform-ecosystem-list__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 28px;
}

.platform-ecosystem-list__logo {
    height: 27px;
    width: auto;
    max-width: 118px;
    object-fit: contain;
}

@media (max-width: 767px) {
    .platform-ecosystem-list {
        padding: 56px 0;
    }
    .platform-ecosystem-list__row {
        grid-template-columns: 48px 1fr;
        column-gap: 14px;
        row-gap: 14px;
        min-height: 0;
        padding: 20px 0;
    }
    .platform-ecosystem-list__icon {
        width: 48px;
    }
    .platform-ecosystem-list__logos {
        grid-column: 1 / -1;
        gap: 14px 22px;
    }
    .platform-ecosystem-list__rows::before {
        left: 23px;
        top: 38px;
        bottom: 38px;
        opacity: 0;
    }
}


/* ============================================================
   PLATFORM – IMAGE : offset option
   pi_offset (top/bottom) overlaps the panel onto the adjacent
   section ~48px, mirroring platform-stats / platform-integrations.
   ============================================================ */

.platform-image.offset-top,
.platform-image.offset-bottom {
    position: relative;
    z-index: 3;
}

.platform-image.offset-top {
    padding-top: 0;
}

.platform-image.offset-bottom {
    padding-bottom: 0;
}

.platform-image.offset-top .platform-image__panel {
    transform: translateY(-48px);
    margin-bottom: -48px;
}

.platform-image.offset-bottom .platform-image__panel {
    transform: translateY(48px);
    margin-top: -48px;
}

@media (max-width: 991px) {
    .platform-image.offset-top {
        padding-top: 56px;
    }
    .platform-image.offset-bottom {
        padding-bottom: 56px;
    }
    .platform-image.offset-top .platform-image__panel,
    .platform-image.offset-bottom .platform-image__panel {
        transform: none;
        margin-top: 0;
        margin-bottom: 0;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   homepage-testimonial-carousel
   section-homepage_testimonial_carousel.php | group_6a918e68a001
   Carousel sibling of platform-testimonial. Mint card (#c0ddd6, radius 4px),
   fixed top-left overline + top-right "NN / NN" counter, a 72px arrow rail on
   each side, a bottom progress bar. Per slide: optional right-bleeding bg
   photo, centered pull-quote → divider → author / role → logo *or* chip. The
   card height animates to the active slide's natural height.
   JS module homepageTestimonialCarousel(). Selector: [data-htc-carousel].
   Figma: CON-430 Home Page, node 1-577 (variants 1:1158 / 1:1177 / 1:1195).
   ═══════════════════════════════════════════════════════════════════════════ */

.homepage-testimonial-carousel {
    margin: 72px auto;
}

.homepage-testimonial-carousel__card {
    position: relative;
    background-color: #c0ddd6;
    border-radius: 4px;
    overflow: hidden;
}

/* ── Header: overline + counter ─────────────────────────────────────────── */
.homepage-testimonial-carousel__header {
    position: absolute;
    top: 32px;
    left: 112px;
    right: 112px;
    z-index: 3;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    pointer-events: none;
}

.homepage-testimonial-carousel__overline,
.homepage-testimonial-carousel__counter {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1e1e1e;
}

.homepage-testimonial-carousel__counter {
    flex: none;
    letter-spacing: 0.14em;
    font-variant-numeric: tabular-nums;
}

/* ── Viewport + slides ─────────────────────────────────────────────────── */
.homepage-testimonial-carousel__viewport {
    position: relative;
    margin: 0 72px;
    overflow: hidden;
    transition: height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.homepage-testimonial-carousel__track {
    position: relative;
}

.homepage-testimonial-carousel__slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 440px;
    box-sizing: border-box;
    padding: 104px 24px 68px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease;
}

.homepage-testimonial-carousel__slide.is-active {
    position: relative;
    opacity: 1;
    visibility: visible;
}

/* Right-bleeding background photo, faded toward the centre. */
.homepage-testimonial-carousel__photo {
    position: absolute;
    inset: 0 0 0 auto;
    width: 62%;
    background-size: cover;
    background-position: center right;
    opacity: 0.2;
    mix-blend-mode: darken;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 55%);
            mask-image: linear-gradient(to right, transparent 0%, #000 55%);
}

.homepage-testimonial-carousel__content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 820px;
}

/* Wider-quote toggle (htc_wide_quote): ~20% wider quote column. Capped by the
   viewport width on tablet / mobile where width:100% already takes over. */
.homepage-testimonial-carousel__card--wide-quote .homepage-testimonial-carousel__content {
    max-width: 984px;
}

.homepage-testimonial-carousel__quote {
    margin: 0;
    font-size: clamp(1.125rem, 1.5vw, 1.5rem);
    line-height: 1.34;
    font-weight: 500;
    color: #1e1e1e;
    quotes: none;
}

.homepage-testimonial-carousel__divider {
    border: none;
    border-top: 1px solid rgba(0, 71, 52, 0.2);
    margin: 32px auto;
    width: 100%;
}

.homepage-testimonial-carousel__attribution {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.homepage-testimonial-carousel__author {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.6;
    color: #1e1e1e;
}

.homepage-testimonial-carousel__role {
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.55;
    color: #1e1e1e;
}

.homepage-testimonial-carousel__logo {
    display: flex;
    justify-content: center;
    margin-top: 4px;
}

.homepage-testimonial-carousel__logo img {
    max-height: 40px;
    width: auto;
    object-fit: contain;
}

.homepage-testimonial-carousel__chip {
    display: inline-block;
    margin-top: 4px;
    background: #eef5f3;
    border: 1px solid #004734;
    border-radius: 4px;
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    color: #004734;
    white-space: nowrap;
}

/* ── Arrow rails ───────────────────────────────────────────────────────── */
.homepage-testimonial-carousel__arrow {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 4;
    width: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    background: transparent;
    color: #1e1e1e;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.homepage-testimonial-carousel__arrow--prev {
    left: 0;
    border-right: 1px solid rgba(0, 71, 52, 0.18);
}

.homepage-testimonial-carousel__arrow--next {
    right: 0;
    border-left: 1px solid rgba(0, 71, 52, 0.18);
}

.homepage-testimonial-carousel__arrow:hover {
    background-color: rgba(0, 71, 52, 0.06);
}

.homepage-testimonial-carousel__arrow:focus-visible {
    outline: 2px solid #004734;
    outline-offset: -4px;
}

.homepage-testimonial-carousel__arrow[disabled] {
    opacity: 0.35;
    cursor: default;
}

.homepage-testimonial-carousel__arrow[disabled]:hover {
    background-color: transparent;
}

.homepage-testimonial-carousel__arrow svg {
    display: block;
}

/* ── Bottom progress bar ───────────────────────────────────────────────── */
.homepage-testimonial-carousel__progress {
    position: absolute;
    left: 72px;
    right: 72px;
    bottom: 0;
    z-index: 4;
    height: 7px;
    background: #d9d9d9;
}

.homepage-testimonial-carousel__progress-fill {
    display: block;
    width: 0;
    height: 100%;
    background: #bcbcbc;
    transition: width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Tablet / mobile ───────────────────────────────────────────────────── */
@media (max-width: 991px) {
    .homepage-testimonial-carousel {
        margin: 48px auto;
    }

    .homepage-testimonial-carousel__header {
        top: 24px;
        left: 56px;
        right: 56px;
    }

    .homepage-testimonial-carousel__viewport {
        margin: 0 44px;
    }

    .homepage-testimonial-carousel__slide {
        min-height: 400px;
        padding: 84px 8px 60px;
    }

    .homepage-testimonial-carousel__arrow {
        width: 44px;
    }

    .homepage-testimonial-carousel__arrow--prev {
        border-right: none;
    }

    .homepage-testimonial-carousel__arrow--next {
        border-left: none;
    }

    .homepage-testimonial-carousel__photo {
        width: 78%;
    }

    .homepage-testimonial-carousel__progress {
        left: 44px;
        right: 44px;
    }
}

@media (max-width: 600px) {
    .homepage-testimonial-carousel__header {
        left: 44px;
        right: 44px;
        gap: 10px;
    }

    .homepage-testimonial-carousel__overline {
        font-size: 0.6875rem;
        letter-spacing: 0.12em;
    }

    .homepage-testimonial-carousel__counter {
        font-size: 0.6875rem;
    }

    .homepage-testimonial-carousel__slide {
        padding: 80px 4px 56px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .homepage-testimonial-carousel__viewport,
    .homepage-testimonial-carousel__slide,
    .homepage-testimonial-carousel__progress-fill {
        transition: none;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE – TEXT & IMAGE
   section-homepage_text_image.php | group_6a9198a0a001
   Centered overline + heading + body, optional image (above/below the text,
   text-column / 300px / full width) and optional CTA button.
   Figma: 9sLVglnObK7zL6DyaOANep node 1-579; apiBRO4WxQTK8xx5doyMtl node 2-614.
   ═══════════════════════════════════════════════════════════════════════════ */

.homepage-text-image {
    padding: 80px 0;
    text-align: center;
}

.homepage-text-image__overline {
    margin: 0 0 24px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1A5244;
}

.homepage-text-image__heading {
    max-width: 40.5rem;
    margin: 0 auto 24px;
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: clamp(1.9rem, 3.2vw, 44px);
    font-weight: 700;
    letter-spacing: -0.5px;
    color: #1e1e1e;
}

.homepage-text-image__body {
    max-width: 40.5rem;
    margin: 0 auto;
    font-size: 1rem;
    line-height: 1.65;
    color: #6e6e6e;
}

.homepage-text-image__figure {
    margin: 40px auto 0;
}

/* position — above vs below the text */
.homepage-text-image__figure--top {
    margin: 0 auto 40px;
}

/* size — text-column width (default) / 300px cap / full container width */
.homepage-text-image__figure--column {
    max-width: 40.5rem;
}

.homepage-text-image__figure--constrained {
    max-width: 300px;
}

.homepage-text-image__figure--full {
    max-width: 100%;
}

.homepage-text-image__img {
    display: inline-block;
    max-width: 100%;
    height: auto;
    vertical-align: top;
}

.homepage-text-image__figure--full .homepage-text-image__img {
    width: 100%;
}

.homepage-text-image__cta-wrap {
    margin-top: 32px;
}

@media (max-width: 991px) {
    .homepage-text-image {
        padding: 56px 0;
    }

    .homepage-text-image__figure {
        margin-top: 32px;
    }

    .homepage-text-image__figure--top {
        margin: 0 auto 32px;
    }

    .homepage-text-image__cta-wrap {
        margin-top: 24px;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE – KEY GRID
   section-homepage_key_grid.php | group_6a919bd5a001
   Centered header, then a white panel of repeater cells laid out two per row
   (text left, illustration right) with 1px cross divider lines between cells.
   Figma: 9sLVglnObK7zL6DyaOANep node 1-585.
   ═══════════════════════════════════════════════════════════════════════════ */

.homepage-key-grid {
    padding: 80px 0;
}

.homepage-key-grid__head {
    max-width: 640px;
    margin: 0 auto 56px;
    text-align: center;
}

.homepage-key-grid__overline {
    margin: 0 0 24px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1A5244;
}

.homepage-key-grid__heading {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: clamp(1.9rem, 3.2vw, 44px);
    font-weight: 700;
    letter-spacing: -0.5px;
    color: #1e1e1e;
}

.homepage-key-grid__text {
    margin: 16px auto 0;
    max-width: 620px;
    font-size: 1rem;
    line-height: 1.6;
    color: #6e6e6e;
}

.homepage-key-grid__panel {
    background: #ffffff;
}

.homepage-key-grid__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.homepage-key-grid__item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 56px 54px;
}

.homepage-key-grid__item:nth-child(odd):not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 1px;
    height: 100%;
    background: #e0e0e0;
}

.homepage-key-grid__item:not(:nth-last-child(-n+2))::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #e0e0e0;
}

.homepage-key-grid__item-text {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 300px;
}

.homepage-key-grid__item-title {
    margin: 0 0 16px;
    font-size: clamp(1.375rem, 2vw, 28px);
    line-height: 1.28;
    font-weight: 700;
    color: #004734;
}

.homepage-key-grid__item-body {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.57;
    color: #6e6e6e;
}

.homepage-key-grid__item-media {
    flex: 0 0 auto;
}

.homepage-key-grid__item-media img {
    display: block;
    width: auto;
    height: auto;
    max-width: 160px;
    max-height: 150px;
}

@media (max-width: 991px) {
    .homepage-key-grid {
        padding: 56px 0;
    }

    .homepage-key-grid__grid {
        grid-template-columns: 1fr;
    }

    .homepage-key-grid__item {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 36px 20px;
    }

    .homepage-key-grid__item::before,
    .homepage-key-grid__item::after {
        content: none !important;
    }

    .homepage-key-grid__item:not(:last-child) {
        border-bottom: 1px solid #e0e0e0;
    }

    .homepage-key-grid__item-text {
        max-width: none;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE – ICON GRID
   section-homepage_icon_grid.php | group_6a919bd5b001
   Centered header, then icon-led text columns four across with 1px vertical
   divider lines between them (cf. platform-pain-points / platform-scenarios).
   Figma: 9sLVglnObK7zL6DyaOANep node 1-609.
   ═══════════════════════════════════════════════════════════════════════════ */

.homepage-icon-grid {
    padding: 80px 0;
}

.homepage-icon-grid__head {
    max-width: 680px;
    margin: 0 auto 56px;
    text-align: center;
}

.homepage-icon-grid__overline {
    margin: 0 0 24px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1A5244;
}

.homepage-icon-grid__heading {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: clamp(1.9rem, 3.2vw, 44px);
    font-weight: 700;
    letter-spacing: -0.5px;
    color: #1e1e1e;
}

.homepage-icon-grid__text {
    margin: 16px auto 0;
    max-width: 640px;
    font-size: 1rem;
    line-height: 1.6;
    color: #6e6e6e;
}

.homepage-icon-grid__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 48px;
}

.homepage-icon-grid__item {
    position: relative;
    padding: 0 32px;
}

.homepage-icon-grid__item::after {
    content: '';
    position: absolute;
    right: -24px;
    top: 0;
    width: 1px;
    height: 100%;
    background: #e0e0e0;
}

.homepage-icon-grid__item:first-child {
    padding-left: 0;
}

.homepage-icon-grid__item:last-child {
    padding-right: 0;
}

.homepage-icon-grid__item:last-child::after {
    display: none;
}

.homepage-icon-grid__icon {
    display: block;
    margin: 0 0 24px;
}

.homepage-icon-grid__icon img {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.homepage-icon-grid__item-title {
    margin: 0 0 12px;
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 500;
    color: #004734;
}

.homepage-icon-grid__item-body {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.57;
    color: #6e6e6e;
}

@media (max-width: 991px) {
    .homepage-icon-grid {
        padding: 56px 0;
    }

    .homepage-icon-grid__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 48px;
    }

    .homepage-icon-grid__item,
    .homepage-icon-grid__item:first-child,
    .homepage-icon-grid__item:last-child {
        padding: 0 24px;
    }

    .homepage-icon-grid__item:nth-child(odd) {
        padding-left: 0;
    }

    .homepage-icon-grid__item:nth-child(even) {
        padding-right: 0;
    }

    .homepage-icon-grid__item:nth-child(even)::after,
    .homepage-icon-grid__item:last-child::after {
        display: none;
    }
}

@media (max-width: 600px) {
    .homepage-icon-grid__grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .homepage-icon-grid__item,
    .homepage-icon-grid__item:first-child,
    .homepage-icon-grid__item:last-child {
        padding: 32px 0;
    }

    .homepage-icon-grid__item::after {
        content: none;
    }

    .homepage-icon-grid__item:not(:last-child) {
        border-bottom: 1px solid #e0e0e0;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE – INDUSTRIES CAROUSEL
   section-homepage_industries_carousel.php | group_6a919bd5c001
   Header (heading + arrow nav) in container-medium, then a full-bleed
   horizontal scroller of image cards (title + body always visible below the
   image) with a draggable scroll bar below. Lighter sibling of
   platform-capability-carousel — no hover text reveal.
   JS module homepageIndustriesCarousel(). Selector: [data-industries-carousel].
   Figma: 9sLVglnObK7zL6DyaOANep node 1-633.
   ═══════════════════════════════════════════════════════════════════════════ */

.homepage-industries-carousel {
    padding: 80px 0;
    overflow: hidden;
}

.homepage-industries-carousel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px 40px;
    margin-bottom: 40px;
}

.homepage-industries-carousel__head-main {
    max-width: 46rem;
}

.homepage-industries-carousel__overline {
    margin: 0 0 16px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1A5244;
}

.homepage-industries-carousel__heading {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: clamp(1.9rem, 3.2vw, 44px);
    font-weight: 700;
    letter-spacing: -0.5px;
    color: #1e1e1e;
}

.homepage-industries-carousel__body {
    margin: 16px 0 0;
    font-size: 1rem;
    line-height: 1.6;
    color: #5a5a5a;
}

.homepage-industries-carousel__nav {
    display: flex;
    gap: 8px;
    flex: none;
}

.homepage-industries-carousel__arrow {
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 1px solid #d6d6d6;
    border-radius: 6px;
    background: transparent;
    color: #1e1e1e;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.homepage-industries-carousel__arrow:hover {
    background: #ededed;
}

.homepage-industries-carousel__arrow:focus-visible {
    outline: 2px solid #004734;
    outline-offset: 2px;
}

.homepage-industries-carousel__arrow:disabled {
    opacity: 0.4;
    cursor: default;
}

.homepage-industries-carousel__arrow svg {
    display: block;
    width: 16px;
    height: 16px;
}

.homepage-industries-carousel__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-left: max(1rem, calc((100vw - 69rem) / 2 + 1rem));
}

.homepage-industries-carousel__viewport::-webkit-scrollbar {
    display: none;
}

.homepage-industries-carousel__viewport.is-dragging {
    scroll-snap-type: none;
    cursor: grabbing;
    user-select: none;
}

.homepage-industries-carousel__track {
    display: flex;
    gap: 24px;
    width: max-content;
    padding-right: 1.5rem;
}

.homepage-industries-carousel__card {
    flex: 0 0 min(312px, 78vw);
    scroll-snap-align: start;
    display: block;
    text-decoration: none;
    color: inherit;
}

.homepage-industries-carousel__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 312 / 388;
    border-radius: 8px;
    overflow: hidden;
    background: #e9edec;
    isolation: isolate;
}

.homepage-industries-carousel__poster,
.homepage-industries-carousel__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.homepage-industries-carousel__video {
    opacity: 0;
    transition: opacity 0.5s ease;
}

.homepage-industries-carousel__card:hover .homepage-industries-carousel__video,
.homepage-industries-carousel__card:focus-visible .homepage-industries-carousel__video {
    opacity: 1;
}

.homepage-industries-carousel__card-title {
    margin: 16px 0 0;
    font-size: 1.5rem;
    line-height: 1.33;
    font-weight: 500;
    color: #1e1e1e;
}

.homepage-industries-carousel__card-body {
    margin: 12px 0 0;
    font-size: 0.875rem;
    line-height: 1.57;
    color: #6e6e6e;
}

.homepage-industries-carousel__scrollbar {
    position: relative;
    height: 6px;
    margin-top: 40px;
    border-radius: 999px;
    background: #d9d9d9;
    cursor: pointer;
}

.homepage-industries-carousel__scrollbar-thumb {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 30%;
    border-radius: 999px;
    background: #868686;
    cursor: grab;
}

.homepage-industries-carousel__scrollbar-thumb:active {
    cursor: grabbing;
}

.homepage-industries-carousel.is-static .homepage-industries-carousel__nav,
.homepage-industries-carousel.is-static .homepage-industries-carousel__scrollbar {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .homepage-industries-carousel__video {
        transition: none;
    }
}

@media (max-width: 991px) {
    .homepage-industries-carousel {
        padding: 56px 0;
    }

    .homepage-industries-carousel__head {
        flex-direction: column;
        margin-bottom: 28px;
    }

    .homepage-industries-carousel__viewport {
        padding-left: 1.6rem;
    }

    .homepage-industries-carousel__scrollbar {
        margin-top: 28px;
    }

    .homepage-industries-carousel__card-title {
        font-size: 1.25rem;
    }

    .homepage-industries-carousel__card {
        scroll-snap-align: center;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE – CEO NOTES
   section-homepage_ceo_notes.php | group_6a919bd5d001
   White rounded card (soft shadow) on the section background. Centered
   pull-quote, then author name / role and a logo (falls back to the OneLayer
   logotype). Figma: 9sLVglnObK7zL6DyaOANep node 1-648.
   ═══════════════════════════════════════════════════════════════════════════ */

.homepage-ceo-notes {
    padding: 80px 0;
}

.homepage-ceo-notes__card {
    margin: 0;
    padding: 88px 96px 72px;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 40px 8px rgba(0, 0, 0, 0.08);
    text-align: center;
}

.homepage-ceo-notes__quote {
    margin: 0 auto;
    max-width: 56rem;
    font-size: clamp(1.25rem, 2.4vw, 1.5rem);
    line-height: 1.35;
    font-weight: 500;
    color: #1e1e1e;
}

.homepage-ceo-notes__author {
    margin: 40px auto 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.homepage-ceo-notes__author-name {
    font-size: 1rem;
    line-height: 1.6;
    font-weight: 500;
    color: #1e1e1e;
}

.homepage-ceo-notes__author-role {
    font-size: 0.875rem;
    line-height: 1.57;
    color: #6e6e6e;
}

.homepage-ceo-notes__logo {
    margin-top: 20px;
}

.homepage-ceo-notes__logo img {
    display: block;
    height: 30px;
    width: auto;
    margin: 0 auto;
}

@media (max-width: 991px) {
    .homepage-ceo-notes {
        padding: 56px 0;
    }

    .homepage-ceo-notes__card {
        padding: 56px 24px;
    }

    .homepage-ceo-notes__quote {
        font-size: 1.125rem;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE – LOGOS
   section-homepage_logos.php | group_6a919bd5e001
   Optional centered header, then a centered wrapping row of logos. narrow
   container, no JS. Figma: 9sLVglnObK7zL6DyaOANep node 1-690.
   ═══════════════════════════════════════════════════════════════════════════ */

.homepage-logos {
    padding: 80px 0;
}

.homepage-logos__head {
    max-width: 40.5rem;
    margin: 0 auto 48px;
    text-align: center;
}

.homepage-logos__overline {
    margin: 0 0 24px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1A5244;
}

.homepage-logos__heading {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 36px);
    line-height: clamp(1.9rem, 3.2vw, 44px);
    font-weight: 700;
    letter-spacing: -0.5px;
    color: #1e1e1e;
}

.homepage-logos__text {
    margin: 16px auto 0;
    font-size: 1rem;
    line-height: 1.6;
    color: #6e6e6e;
}

.homepage-logos__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 34px 40px;
}

.homepage-logos__logo {
    flex: 0 0 auto;
}

.homepage-logos__logo img {
    display: block;
    width: auto;
    height: 36px;
    max-width: 148px;
    object-fit: contain;
}

.homepage-logos__cta-wrap {
    margin-top: 40px;
    text-align: center;
}

.homepage-logos__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    background: #ffffff;
    border: 1.5px solid #d6d6d6;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: #1e1e1e;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.2s ease;
}

.homepage-logos__cta:hover {
    border-color: #1e1e1e;
    color: #1e1e1e;
}

@media (max-width: 767px) {
    .homepage-logos {
        padding: 56px 0;
    }

    .homepage-logos__logos {
        gap: 28px 32px;
    }

    .homepage-logos__logo img {
        height: 28px;
        max-width: 120px;
    }

    .homepage-logos__cta-wrap {
        margin-top: 32px;
    }
}

/* ============================================================================
   RESOURCE HUB
   resource_listing flex block (group_6a91c234a001) + shared .resource-card
   used by the block, template-parts/resource/related.php and lobby.php.
   Figma: cuy3R8WvXTvWMHuHB0WbeB — hub 792-5528, events 1435-1262, PR 1438-2417,
   blogs 792-5755, webinars 898-5418.
   ========================================================================== */

.resource-listing {
    padding: 64px 0;
}

.resource-listing.has-divider > .container {
    border-top: 1px solid #d9d9d9;
    padding-top: 56px;
}

/* ---- header row ---- */
.resource-listing__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
}

.resource-listing__overline {
    display: block;
    margin-bottom: 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a5244;
}

.resource-listing__heading {
    margin: 0;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    color: #1e1e1e;
}

.resource-listing__browse {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    background: #ffffff;
    border: 1.5px solid #d6d6d6;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #1e1e1e;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.2s ease;
}

.resource-listing__browse:hover {
    border-color: #1e1e1e;
    color: #1e1e1e;
}

/* ---- grids ---- */
.resource-listing__grid {
    display: grid;
    gap: 24px 24px;
}

.resource-listing--grid_3 .resource-listing__grid,
.resource-listing--webinars .resource-listing__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.resource-listing--grid_4 .resource-listing__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.resource-listing--list_2col .resource-listing__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 64px;
}

/* ---- featured (1 lead + stack) ---- */
.resource-listing__featured {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    gap: 44px;
    align-items: start;
}

.resource-listing__stack {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

/* ============================================================================
   .resource-card — every variant
   ========================================================================== */

.resource-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

.resource-card__media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    overflow: hidden;
    background: #e9ece9;
    margin-bottom: 18px;
}

.resource-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.resource-card:hover .resource-card__media img {
    transform: scale(1.04);
}

.resource-card__media-empty {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e9ece9, #d9e0db);
}

.resource-card__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.resource-card__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.resource-card__chip {
    display: inline-block;
    background: #eef5f3;
    border: 1px solid #004734;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    color: #004734;
    white-space: nowrap;
}

.resource-card__topic {
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a5244;
}

.resource-card__title {
    margin: 0;
    font-size: 21px;
    line-height: 1.3;
    font-weight: 700;
    color: #1e1e1e;
    text-decoration: none;
    transition: color 0.2s ease;
}

a.resource-card__title:hover,
.resource-card:hover .resource-card__title {
    color: #004734;
}

.resource-card__excerpt {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: #6e6e6e;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.resource-card__byline {
    margin-top: 2px;
    font-size: 13px;
    font-weight: 500;
    color: #ff4801;
}

/* ---- grid_4 : tighter ---- */
.resource-listing--grid_4 .resource-card__title {
    font-size: 18px;
}

/* ---- webinars ---- */
.resource-card--webinar .resource-card__body {
    gap: 12px;
}

.resource-card__badge {
    position: absolute;
    top: 12px;
    right: 12px;
    background: #ff4801;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 4px 8px;
    border-radius: 3px;
}

.resource-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 20px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    color: #ffffff;
    transition: filter 0.2s ease;
}

.resource-card__cta--register { background: #ff4801; }
.resource-card__cta--watch    { background: #004734; }
.resource-card__cta:hover     { filter: brightness(0.92); color: #ffffff; }

.resource-card--webinar .resource-card__byline {
    color: #ff4801;
}

/* ---- list_2col text rows ---- */
.resource-card--row {
    display: grid;
    grid-template-columns: 93px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.resource-card--row .resource-card__row-media {
    width: 93px;
    height: 52px;
    border-radius: 4px;
    overflow: hidden;
    background: #e9ece9;
    flex: none;
}

.resource-card--row .resource-card__row-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.resource-card__row-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.resource-card__row-meta {
    font-size: 13px;
    line-height: 1.4;
    color: #6e6e6e;
}

.resource-card__row-title {
    font-size: 17px;
    line-height: 1.35;
    font-weight: 700;
    color: #1e1e1e;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s ease;
}

.resource-card--row:hover .resource-card__row-title {
    color: #004734;
}

.resource-card__row-excerpt {
    font-size: 13px;
    line-height: 1.55;
    color: #6e6e6e;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---- featured lead ---- */
.resource-card--lead .resource-card__media {
    aspect-ratio: 16 / 9;
    margin-bottom: 20px;
}

.resource-card--lead .resource-card__title {
    font-size: clamp(24px, 1rem + 1.6vw, 32px);
    line-height: 1.22;
}

.resource-card--lead .resource-card__excerpt {
    -webkit-line-clamp: 2;
}

/* ---- featured mini rows ---- */
.resource-card--mini {
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.resource-card--mini .resource-card__mini-media {
    aspect-ratio: 16 / 9;
    border-radius: 6px;
    overflow: hidden;
    background: #e9ece9;
}

.resource-card--mini .resource-card__mini-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.resource-card--mini:hover .resource-card__mini-media img {
    transform: scale(1.04);
}

.resource-card__mini-text {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.resource-card--mini .resource-card__meta {
    gap: 8px;
}

.resource-card--mini .resource-card__byline {
    margin-top: 0;
    font-size: 12px;
}

.resource-card__mini-title {
    font-size: 16px;
    line-height: 1.35;
    font-weight: 700;
    color: #1e1e1e;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s ease;
}

.resource-card--mini:hover .resource-card__mini-title {
    color: #004734;
}

/* ---- list_row (used by lobby.php) ---- */
.resource-card--list-row {
    grid-template-columns: 1fr 2fr;
    align-items: center;
    gap: 28px;
    padding-bottom: 32px;
    border-bottom: 1px solid #e2e2e2;
}

.resource-card--list-row .resource-card__row-media {
    width: 425px;
    height: 239px;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
}

.resource-card--list-row .resource-card__row-title {
    font-size: 20px;
    -webkit-line-clamp: 2;
}

/* ============================================================================
   RESOURCE HUB — responsive
   ========================================================================== */

@media (max-width: 1199px) {
    .resource-listing--grid_4 .resource-listing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .resource-listing {
        padding: 48px 0;
    }

    .resource-listing.has-divider > .container {
        padding-top: 44px;
    }

    .resource-listing__heading {
        font-size: 26px;
    }

    .resource-listing--grid_3 .resource-listing__grid,
    .resource-listing--webinars .resource-listing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .resource-listing__featured {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }
}

@media (max-width: 767px) {
    .resource-listing__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .resource-listing--grid_3 .resource-listing__grid,
    .resource-listing--grid_4 .resource-listing__grid,
    .resource-listing--webinars .resource-listing__grid,
    .resource-listing--list_2col .resource-listing__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }

    .resource-card--list-row {
        grid-template-columns: 120px minmax(0, 1fr);
        gap: 16px;
    }

    .resource-card--list-row .resource-card__row-media {
        width: 120px;
        height: 78px;
    }

    .resource-card--list-row .resource-card__row-title {
        font-size: 17px;
    }
}

@media (max-width: 480px) {
    .resource-card--mini {
        grid-template-columns: 120px minmax(0, 1fr);
        gap: 14px;
    }
}

/* ============================================================================
   RESOURCE HUB — opt-in single templates (.resource-single)
   template-parts/resource/single-{article,webinar,press_release,whitepaper}.php
   Only rendered when a post's `post_new_layout` toggle is on.
   ========================================================================== */

.resource-single {
    padding: 36px 0 84px;
    background: #f5f5f5;
}

.resource-single__crumbs {
    font-size: 14px;
    line-height: 1.5;
    color: #6e6e6e;
    margin-bottom: 28px;
}

.resource-single__crumbs a {
    color: #6e6e6e;
    text-decoration: none;
}

.resource-single__crumbs a:hover {
    color: #004734;
}

.resource-single__head {
    max-width: 820px;
    margin-bottom: 44px;
}

.resource-single__head--center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.resource-single__eyebrow {
    display: block;
    margin: 0 0 16px;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a5244;
}

.resource-single__title {
    margin: 0;
    font-size: clamp(30px, 1.8rem + 2vw, 46px);
    line-height: 1.12;
    font-weight: 700;
    color: #1e1e1e;
}

.resource-single__standfirst {
    margin: 20px 0 0;
    font-size: 19px;
    line-height: 1.55;
    color: #6e6e6e;
    max-width: 40em;
}

.resource-single__head--center .resource-single__standfirst {
    margin-left: auto;
    margin-right: auto;
}

.resource-single__hero {
    margin: 0 0 48px;
    border-radius: 12px;
    overflow: hidden;
}

.resource-single__hero img {
    display: block;
    width: 100%;
    height: auto;
}

/* ---- two-column layout: sticky rail + body ---- */
.resource-single__layout {
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr);
    gap: 56px;
    align-items: start;
}

.resource-single__rail-inner {
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.logged-in.admin-bar .resource-single__rail-inner {
    top: 140px;
}

.resource-single__author {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 14px;
}

.resource-single__avatar img {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    margin-bottom: 8px;
}

.resource-single__author-name {
    font-weight: 600;
    color: #1e1e1e;
}

.resource-single__author-role {
    font-size: 12px;
    color: #6e6e6e;
}

.resource-single__date {
    margin-top: 4px;
    font-size: 13px;
    color: #6e6e6e;
}

.resource-single__body {
    min-width: 0;
    max-width: 720px;
}

/* ---- article body (the_content + wysiwyg blocks) ---- */
.resource-single__content {
    font-size: 16px;
    line-height: 1.75;
    color: #333333;
}

.resource-single__content > * {
    margin: 0 0 1.15em;
}

.resource-single__content p {
    font-size: 16px;
    line-height: 26px;
    font-family: 'Inter', sans-serif;
    -webkit-font-smoothing: antialiased;
}

.resource-single__content > *:last-child {
    margin-bottom: 0;
}

.resource-single__content h2,
.resource-single__subhead {
    font-size: 23px;
    font-weight: 700;
    line-height: 1.3;
    color: #004734;
    margin: 1.9em 0 0.6em;
}

.resource-single__content h2 {
    color: #004734;
    font-family: 'Maison', sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 32px; /* 133.333% */   
}

.resource-single__subhead {
    margin-top: 40px;
}

.resource-single__content h3 {
    font-size: 18px;
    font-weight: 700;
    color: #1e1e1e;
    margin: 1.6em 0 0.5em;
}

.resource-single__content a {
    color: #004734;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.resource-single__content ul,
.resource-single__content ol {
    padding-left: 1.3em;
}

.resource-single__content li {
    margin: 0 0 0.5em;
}

.resource-single__content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.resource-single__content blockquote {
    margin: 1.5em 0;
    padding: 0.2em 0 0.2em 1.2em;
    border-left: 3px solid #004734;
    color: #1e1e1e;
    font-size: 18px;
}

/* ---- tags + share ---- */
.resource-single__tags,
.resource-single__share--foot {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 44px;
    padding-top: 22px;
    border-top: 1px solid #e2e2e2;
}

.resource-single__tags-label {
    font-size: 14px;
    font-weight: 600;
    color: #1e1e1e;
}

.resource-single__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.resource-single__chip {
    display: inline-block;
    background: #eef5f3;
    border: 1px solid #004734;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    color: #004734;
    text-decoration: none;
    white-space: nowrap;
}

.resource-single__chip:hover {
    background: #004734;
    color: #ffffff;
}

.resource-single__share--foot {
    align-items: center;
}

.resource-single__share .icon-sharing-links {
    display: flex;
    align-items: center;
    gap: 12px;
}

.resource-single__share .icon-sharing-links a {
    color: #6e6e6e;
    line-height: 0;
}

.resource-single__share .icon-sharing-links a:hover {
    color: #004734;
}

/* ---- author bio card ---- */
.resource-single__bio {
    display: flex;
    gap: 28px;
    background: #004734;
    color: #ffffff;
    border-radius: 12px;
    padding: 40px;
    margin-top: 48px;
}

.resource-single__bio-avatar img {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    display: block;
}

.resource-single__bio-name {
    display: block;
    font-size: 18px;
    font-weight: 700;
}

.resource-single__bio-role {
    display: block;
    font-size: 13px;
    opacity: 0.82;
    margin-bottom: 12px;
}

.resource-single__bio-copy {
    margin: 0.5em 0 0;
    font-size: 14px;
    line-height: 1.6;
    opacity: 0.92;
}

/* ---- press release specifics ---- */
.resource-single__pr-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    margin-top: 20px;
    font-size: 14px;
    color: #6e6e6e;
}

.resource-single__share--inline .icon-sharing-links {
    gap: 10px;
}

.resource-single--pr .resource-single__hero {
    max-width: 940px;
    margin: 0 auto 48px;
}

.resource-single__body--wide {
    max-width: 760px;
    margin: 0 auto;
}

/* ---- webinar specifics ---- */
.resource-single__webinar-cta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 28px;
}

.resource-single__webinar-state {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #6e6e6e;
}

.resource-single__webinar-state.is-upcoming {
    color: #ff4801;
}

.resource-single__webinar-card {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    padding: 44px;
    margin: 40px 0;
    display: flex;
    flex-direction: column;
    gap: 28px;
    min-height: 300px;
    color: #ffffff;
}

.resource-single__webinar-card--register { background: #0c3f30; }
.resource-single__webinar-card--watch    { background: #a5401f; }

.resource-single__webinar-card-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.26;
    mix-blend-mode: luminosity;
}

.resource-single__webinar-card-title {
    position: relative;
    font-size: clamp(22px, 1.4rem + 1.2vw, 32px);
    line-height: 1.2;
    font-weight: 700;
    max-width: 60%;
}

.resource-single__speakers {
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.resource-single__speaker {
    display: flex;
    align-items: center;
    gap: 12px;
}

.resource-single__speaker-photo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.resource-single__speaker-name {
    display: block;
    font-size: 14px;
    font-weight: 600;
}

.resource-single__speaker-role {
    display: block;
    font-size: 12px;
    opacity: 0.82;
}

.resource-single__rail-speakers {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.resource-single__rail-speakers li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
}

.resource-single__rail-speakers img {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex: none;
}

.resource-single__rail-speakers strong {
    display: block;
    color: #1e1e1e;
    font-size: 13px;
}

.resource-single__rail-speakers em {
    font-style: normal;
    color: #6e6e6e;
}

/* ---- whitepaper specifics ---- */
.resource-single__wp-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ff4801;
    border-radius: 16px;
    padding: 48px;
    margin: 28px 0 48px;
    min-height: 300px;
}

.resource-single__wp-kicker {
    position: absolute;
    top: 20px;
    right: 20px;
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 4px;
}

.resource-single__wp-cover {
    max-height: 320px;
    width: auto;
    max-width: 100%;
    border-radius: 4px;
    box-shadow: 0 22px 50px rgba(0, 0, 0, 0.28);
}

.resource-single__wp-intro {
    font-size: 17px;
    line-height: 1.65;
    color: #333333;
    margin: 0 0 8px;
}

.resource-single__gate {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    background: #ffffff;
    border: 1px solid #e2e2e2;
    border-radius: 16px;
    padding: 48px;
    margin-top: 56px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}

.resource-single__gate-heading {
    margin: 0 0 16px;
    font-size: 26px;
    font-weight: 700;
    color: #004734;
}

.resource-single__gate-points {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: #6e6e6e;
}

.resource-single__gate-placeholder {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.resource-single__gate-placeholder input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #d6d6d6;
    border-radius: 4px;
    font: inherit;
    background: #f7f7f7;
    color: #6e6e6e;
}

.resource-single__gate-placeholder button {
    margin-top: 4px;
    align-self: flex-start;
    opacity: 0.55;
    cursor: not-allowed;
}

.resource-single__gate-note {
    font-size: 12px;
    color: #9a9a9a;
}

.resource-single__gate-note a {
    color: #ff4801;
}

/* ---- related block spacing (reuses .resource-listing) ---- */
.resource-related {
    /* margin-top: 24px; */
}

/* ============================================================================
   RESOURCE SINGLE — responsive
   ========================================================================== */

@media (max-width: 991px) {
    .resource-single__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .resource-single__rail-inner {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 16px 24px;
        padding-bottom: 20px;
        border-bottom: 1px solid #e2e2e2;
    }

    .resource-single__author {
        flex-direction: row;
        align-items: center;
        gap: 10px;
    }

    .resource-single__avatar img {
        width: 40px;
        height: 40px;
        margin-bottom: 0;
    }

    .resource-single__rail-speakers {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .resource-single__body {
        max-width: none;
    }

    .resource-single__gate {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
        padding: 32px;
    }

    .resource-single__webinar-card-title {
        max-width: 100%;
    }
}

@media (max-width: 600px) {
    .resource-single {
        padding: 24px 0 64px;
    }

    .resource-single__webinar-card,
    .resource-single__wp-hero {
        padding: 28px;
    }

    .resource-single__bio {
        flex-direction: column;
        gap: 18px;
        padding: 28px;
    }
}

/* ============================================================================
   RESOURCE HUB — category lobby (.resource-lobby)
   template-parts/resource/lobby.php — opt-in per category
   ========================================================================== */

.resource-lobby {
    padding: 36px 0 84px;
}

.resource-lobby__head {
    margin-bottom: 40px;
}

.resource-lobby__head-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.resource-lobby__title {
    margin: 0;
    font-size: clamp(30px, 1.8rem + 2vw, 44px);
    line-height: 1.14;
    font-weight: 700;
    color: #1e1e1e;
    max-width: 16em;
}

.resource-lobby__intro {
    margin: 16px 0 0;
    font-size: 18px;
    line-height: 1.55;
    color: #6e6e6e;
    max-width: 40em;
}

.resource-lobby__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
}

.resource-lobby__layout.has-filters {
    grid-template-columns: 200px minmax(0, 1fr);
}

.resource-lobby__filters ul {
    list-style: none;
    margin: 0;
    padding: 0;
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.logged-in.admin-bar .resource-lobby__filters ul {
    top: 140px;
}

.resource-lobby__filters a {
    display: block;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 14px;
    color: #6e6e6e;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.resource-lobby__filters a:hover {
    background: #eef5f3;
    color: #004734;
}

.resource-lobby__list {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.resource-lobby__more {
    margin-top: 40px;
    text-align: center;
}

.resource-lobby__empty {
    color: #6e6e6e;
}

.resource-card__row-cat {
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a5244;
}

@media (max-width: 991px) {
    .resource-lobby__layout.has-filters {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .resource-lobby__filters ul {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 6px;
    }

    .resource-lobby__head-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
}


/* ============================================================
   "Wider text" toggles
   Opt-in per-section modifiers that widen a centered intro
   paragraph by ~20% (max-width 640 → 768px) for longer copy.
   platform_stats           → platform_stats_wide_body
   platform_pain_points     → platform_pain_points_wide_text
   platform_ecosystem_list  → pel_wide_text
   All default off; the stat card / section widths are unchanged.
   ============================================================ */

.platform-stats__body--wide {
    max-width: 768px;
}

.platform-pain-points__text--wide {
    max-width: 768px;
}

.platform-ecosystem-list--wide-text .platform-ecosystem-list__head {
    max-width: 768px;
}

/* ==========================================================================
   section-nine — HubSpot form embed
   Rendered in place of the Contact Form 7 form when a HubSpot Form ID is set
   on the section (Theme Settings → HubSpot holds the Portal ID / Region).
   HubSpot loads its own form stylesheet; these rules only nudge fit + spacing
   so the embed sits correctly inside the gray .form-wrap card.
   ========================================================================== */
.section-nine__hubspot {
    width: 100%;
}
.section-nine__hubspot .hs-form,
.section-nine__hubspot form.hs-form {
    width: 100%;
}
.section-nine__hubspot .hs-form-field {
    margin-bottom: 1rem;
}
.section-nine__hubspot .hs-input:not([type="checkbox"]):not([type="radio"]),
.section-nine__hubspot textarea.hs-input,
.section-nine__hubspot select.hs-input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.section-nine__hubspot ul.inputs-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.section-nine__hubspot .hs-button {
    cursor: pointer;
    margin-top: 0.5rem;
}
.section-nine__hubspot .hs-error-msg,
.section-nine__hubspot .hs-error-msgs label {
    color: #c0392b;
}
.section-nine__hubspot .submitted-message {
    font-size: 0.95rem;
    line-height: 1.5;
}


/* ============================================================================
   FACELIFT SECTIONS — Style-tab controls (background colour + Y padding)
   ----------------------------------------------------------------------------
   one_layer_section_style() / one_layer_section_padding_vars() (functions.php)
   print --sec-pt / --sec-pb / --sec-pt-m / --sec-pb-m inline on a section's
   <section> tag, but ONLY for the padding fields an editor actually filled in.
   A blank field prints nothing, the [style*=] guard below fails to match, and
   the section keeps the padding baked into its own rules above. The desktop
   props apply at every width; the -m props take over at <=991px.

   These rules carry the 0,2,0 weight of ".block[attr]" and sit last in the
   file, so an explicit override also wins over the offset variants
   (.platform-stats / -image / -integrations .offset-*). Set a manual padding
   OR an offset on those three, not both.
   ============================================================================ */

/* -- vertical padding lives on the <section> root -------------------------- */
:is(
    .platform-tabs, .platform-pain-points, .platform-stats, .platform-showcase,
    .platform-feature-rows, .platform-featured-capability, .platform-how-it-works,
    .platform-cta-strip, .platform-testimonial, .platform-empathy,
    .platform-deep-features, .platform-resource-promo, .platform-resources,
    .cpe-section-intro, .platform-tc, .platform-outcome-pillars,
    .platform-capability-cards, .platform-comparison, .platform-product-demo,
    .platform-transformation-cards, .platform-trusted-by, .platform-image,
    .platform-integrations, .platform-threat-cards, .platform-subscription-cta,
    .platform-logos-carousel, .platform-scenarios, .platform-ecosystem-schematic,
    .platform-capability-carousel, .platform-ecosystem-list, .homepage-text-image,
    .homepage-key-grid, .homepage-icon-grid, .homepage-industries-carousel,
    .homepage-ceo-notes, .homepage-logos
)[style*="--sec-pt:"] { padding-top: var(--sec-pt); }

:is(
    .platform-tabs, .platform-pain-points, .platform-stats, .platform-showcase,
    .platform-feature-rows, .platform-featured-capability, .platform-how-it-works,
    .platform-cta-strip, .platform-testimonial, .platform-empathy,
    .platform-deep-features, .platform-resource-promo, .platform-resources,
    .cpe-section-intro, .platform-tc, .platform-outcome-pillars,
    .platform-capability-cards, .platform-comparison, .platform-product-demo,
    .platform-transformation-cards, .platform-trusted-by, .platform-image,
    .platform-integrations, .platform-threat-cards, .platform-subscription-cta,
    .platform-logos-carousel, .platform-scenarios, .platform-ecosystem-schematic,
    .platform-capability-carousel, .platform-ecosystem-list, .homepage-text-image,
    .homepage-key-grid, .homepage-icon-grid, .homepage-industries-carousel,
    .homepage-ceo-notes, .homepage-logos
)[style*="--sec-pb:"] { padding-bottom: var(--sec-pb); }

/* -- vertical padding lives on an inner wrapper (older Partners blocks) ---- */
:is(.partners-faq, .partners-join, .partners-logos, .partners-testimonials)[style*="--sec-pt:"] > [class*="section-padding"],
.partners-cta[style*="--sec-pt:"] .partners-cta__inner,
.partners-hero[style*="--sec-pt:"] .partners-hero__inner { padding-top: var(--sec-pt); }

:is(.partners-faq, .partners-join, .partners-logos, .partners-testimonials)[style*="--sec-pb:"] > [class*="section-padding"],
.partners-cta[style*="--sec-pb:"] .partners-cta__inner,
.partners-hero[style*="--sec-pb:"] .partners-hero__inner { padding-bottom: var(--sec-pb); }

/* -- the testimonial carousel spaces itself with margin, not padding ------- */
.homepage-testimonial-carousel[style*="--sec-pt:"] { margin-top: var(--sec-pt); }
.homepage-testimonial-carousel[style*="--sec-pb:"] { margin-bottom: var(--sec-pb); }

@media (max-width: 991px) {

    :is(
        .platform-tabs, .platform-pain-points, .platform-stats, .platform-showcase,
        .platform-feature-rows, .platform-featured-capability, .platform-how-it-works,
        .platform-cta-strip, .platform-testimonial, .platform-empathy,
        .platform-deep-features, .platform-resource-promo, .platform-resources,
        .cpe-section-intro, .platform-tc, .platform-outcome-pillars,
        .platform-capability-cards, .platform-comparison, .platform-product-demo,
        .platform-transformation-cards, .platform-trusted-by, .platform-image,
        .platform-integrations, .platform-threat-cards, .platform-subscription-cta,
        .platform-logos-carousel, .platform-scenarios, .platform-ecosystem-schematic,
        .platform-capability-carousel, .platform-ecosystem-list, .homepage-text-image,
        .homepage-key-grid, .homepage-icon-grid, .homepage-industries-carousel,
        .homepage-ceo-notes, .homepage-logos
    )[style*="--sec-pt-m:"] { padding-top: var(--sec-pt-m); }

    :is(
        .platform-tabs, .platform-pain-points, .platform-stats, .platform-showcase,
        .platform-feature-rows, .platform-featured-capability, .platform-how-it-works,
        .platform-cta-strip, .platform-testimonial, .platform-empathy,
        .platform-deep-features, .platform-resource-promo, .platform-resources,
        .cpe-section-intro, .platform-tc, .platform-outcome-pillars,
        .platform-capability-cards, .platform-comparison, .platform-product-demo,
        .platform-transformation-cards, .platform-trusted-by, .platform-image,
        .platform-integrations, .platform-threat-cards, .platform-subscription-cta,
        .platform-logos-carousel, .platform-scenarios, .platform-ecosystem-schematic,
        .platform-capability-carousel, .platform-ecosystem-list, .homepage-text-image,
        .homepage-key-grid, .homepage-icon-grid, .homepage-industries-carousel,
        .homepage-ceo-notes, .homepage-logos
    )[style*="--sec-pb-m:"] { padding-bottom: var(--sec-pb-m); }

    :is(.partners-faq, .partners-join, .partners-logos, .partners-testimonials)[style*="--sec-pt-m:"] > [class*="section-padding"],
    .partners-cta[style*="--sec-pt-m:"] .partners-cta__inner,
    .partners-hero[style*="--sec-pt-m:"] .partners-hero__inner { padding-top: var(--sec-pt-m); }

    :is(.partners-faq, .partners-join, .partners-logos, .partners-testimonials)[style*="--sec-pb-m:"] > [class*="section-padding"],
    .partners-cta[style*="--sec-pb-m:"] .partners-cta__inner,
    .partners-hero[style*="--sec-pb-m:"] .partners-hero__inner { padding-bottom: var(--sec-pb-m); }

    .homepage-testimonial-carousel[style*="--sec-pt-m:"] { margin-top: var(--sec-pt-m); }
    .homepage-testimonial-carousel[style*="--sec-pb-m:"] { margin-bottom: var(--sec-pb-m); }
}
