/* Reusable layout primitives */
.container--narrow {
    max-width: 64rem;
}

.container--wide {
    max-width: 96rem;
}

.section-shell--white {
    background: var(--surface-white);
    color: var(--text-primary);
}

.section-shell--muted {
    background: var(--surface-muted);
    color: var(--text-primary);
}

.section-shell--dark-2 {
    background: var(--surface-dark-2);
    color: var(--text-on-dark);
}

.section-shell--compact {
    padding-block: clamp(3rem, 5vw, 5rem);
}

.section-shell--spacious {
    padding-block: clamp(5.5rem, 10vw, 10rem);
}

.layout-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 2rem);
}

.layout-grid--split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

.cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--cluster-gap, 1rem);
}

.stack {
    display: flex;
    flex-direction: column;
    gap: var(--stack-gap, 1.5rem);
}

/* Reusable typography */
.heading-group {
    max-width: 48rem;
}

.heading-group--center {
    margin-inline: auto;
    text-align: center;
}

.heading-group__body {
    max-width: 42rem;
    color: var(--text-secondary);
}

.heading-group--center .heading-group__body {
    margin-inline: auto;
}

.section-shell--dark .heading-group__body,
.section-shell--dark-2 .heading-group__body {
    color: var(--text-on-dark-muted);
}

.body-copy {
    max-width: 68ch;
    color: var(--text-secondary);
}

.meta-text {
    font-size: 0.8125rem;
    line-height: 1.4;
}

/* Reusable controls */
.button {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    box-shadow: 0 1px 2px rgb(4 3 21 / 8%);
    transform: translateZ(0);
    transition:
        background-color var(--transition-fast),
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        color var(--transition-fast),
        translate var(--transition-fast);
}

.button--primary,
.button--primary:visited,
.primary-navigation .button--primary,
.primary-navigation .button--primary:visited {
    color: #ffffff;
}

.button--primary:hover,
.button--primary:focus-visible,
.primary-navigation .button--primary:hover,
.primary-navigation .button--primary:focus-visible {
    color: #ffffff;
}

.button::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: rgb(255 255 255 / 12%);
    content: "";
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.button:hover::before {
    opacity: 1;
}

.button:active {
    translate: 0 1px;
}

.button__icon,
.text-link__icon {
    flex: 0 0 auto;
    transition: translate var(--transition-fast);
}

.button__icon {
    display: inline-grid;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    margin-right: -0.35rem;
    background: rgb(255 255 255 / 14%);
    border: 1px solid rgb(255 255 255 / 16%);
    border-radius: 999px;
    font-size: 0.9rem;
}

.button:hover .button__icon,
.text-link:hover .text-link__icon {
    translate: 0.2rem 0;
}

.button--secondary {
    min-width: 3rem;
}

.button--secondary .button__icon {
    background: var(--surface-soft);
    border-color: var(--line-light);
}

.navigation-cta.button {
    min-height: 2.875rem;
    gap: 0.8rem;
    padding: 0.45rem 0.5rem 0.45rem 1rem;
    border-color: rgb(255 255 255 / 12%);
    box-shadow:
        0 1px 2px rgb(4 3 21 / 10%),
        0 8px 22px rgb(227 36 77 / 18%);
    white-space: nowrap;
}

.navigation-cta.button:hover {
    background: #c91f43;
    box-shadow:
        0 1px 2px rgb(4 3 21 / 10%),
        0 10px 26px rgb(227 36 77 / 24%);
    translate: 0 -1px;
}

.navigation-cta.button:active {
    box-shadow: 0 3px 10px rgb(227 36 77 / 18%);
    translate: 0 0;
}

.navigation-cta .button__icon {
    background: rgb(255 255 255 / 16%);
}

/* Reusable media */
.responsive-media {
    margin: 0;
}

.responsive-media picture {
    display: block;
}

.responsive-media img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-media);
}

.responsive-media--cover img {
    height: 100%;
    object-fit: cover;
}

.responsive-media--contained {
    padding: clamp(1rem, 3vw, 2rem);
    background: var(--surface-soft);
    border: 1px solid var(--line-light);
    border-radius: var(--radius-media);
}

.responsive-media figcaption {
    margin-top: 0.75rem;
    color: var(--text-muted);
    font-size: 0.8125rem;
}

/* Breadcrumbs */
.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
    color: var(--text-muted);
    font-size: 0.8125rem;
    list-style: none;
}

.breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.breadcrumbs li:not(:last-child)::after {
    color: var(--line-dark);
    content: "/";
}

.breadcrumbs a {
    text-decoration: none;
}

.breadcrumbs a:hover {
    color: var(--action-coral);
}

@media (max-width: 64rem) {
    .layout-grid {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .layout-grid--three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .layout-grid,
    .layout-grid--split,
    .layout-grid--three {
        grid-template-columns: 1fr;
    }

    .button-group--stack-mobile {
        align-items: stretch;
        flex-direction: column;
    }

    .button-group--stack-mobile .button {
        width: 100%;
    }
}

/* Homepage custom solutions statement */
.custom-solutions-statement {
    overflow: clip;
    padding-block: clamp(3.25rem, 5vw, 5rem);
    background: var(--surface-soft);
    border-block: 1px solid var(--line-light);
}

.custom-solutions-statement__grid {
    display: grid;
    grid-template-columns: minmax(18rem, 1.1fr) minmax(38rem, 2.5fr) minmax(13rem, 0.8fr);
    align-items: stretch;
    gap: clamp(2rem, 4vw, 4rem);
}

.custom-solutions-statement__intro {
    padding-right: clamp(1rem, 2vw, 2rem);
    border-right: 1px solid var(--line-light);
}

.custom-solutions-statement__intro .eyebrow {
    max-width: 23rem;
    margin-bottom: 1rem;
    line-height: 1.45;
}

.custom-solutions-statement__intro h2 {
    max-width: 30rem;
    margin: 0;
    font-size: clamp(1.2rem, 1.7vw, 1.65rem);
    line-height: 1.28;
    letter-spacing: -0.025em;
}

.solution-workflow {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: start;
    gap: 1.25rem;
    margin: 0;
    padding: 0.7rem 0 0;
    list-style: none;
}

.solution-workflow::before {
    position: absolute;
    top: 1.43rem;
    right: 8%;
    left: 8%;
    height: 1px;
    background: var(--line-light);
    content: "";
}

.solution-workflow li {
    position: relative;
    z-index: 1;
}

.solution-workflow__marker {
    display: grid;
    width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    margin-bottom: 1rem;
    background: var(--surface-soft);
    border: 1px solid var(--brand-coral);
    border-radius: 50%;
}

.solution-workflow__marker::after {
    width: 0.35rem;
    height: 0.35rem;
    background: var(--brand-coral);
    border-radius: 50%;
    content: "";
}

.solution-workflow strong,
.solution-workflow span:not(.solution-workflow__marker) {
    display: block;
}

.solution-workflow strong {
    margin-bottom: 0.45rem;
    color: var(--text-primary);
    font-size: 0.92rem;
}

.solution-workflow span:not(.solution-workflow__marker) {
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.55;
}

.custom-solutions-statement__cta {
    display: flex;
    min-height: 10rem;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 1.5rem;
    background: var(--brand-navy);
    border-radius: var(--radius-panel);
    box-shadow: 0 18px 45px rgb(4 3 21 / 14%);
    color: var(--text-on-dark);
}

.custom-solutions-statement__cta p {
    margin: 0 0 0.3rem;
    color: inherit;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
}

.custom-solutions-statement__cta > span {
    margin-bottom: 1.25rem;
    color: var(--text-on-dark-muted);
    font-size: 0.82rem;
    line-height: 1.5;
}

.custom-solutions-statement__cta .text-link,
.custom-solutions-statement__cta .text-link:visited {
    color: var(--brand-coral);
}

/* Homepage product ecosystem */
.product-ecosystem {
    isolation: isolate;
    padding-block: clamp(4.5rem, 6vw, 6rem);
}

.product-ecosystem::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(circle at 83% 55%, rgb(253 45 80 / 9%), transparent 19rem),
        linear-gradient(90deg, transparent 0 72%, rgb(255 255 255 / 2%) 72% 100%);
    content: "";
}

.product-ecosystem__layout {
    display: grid;
    grid-template-columns: minmax(14rem, 0.7fr) minmax(0, 2.3fr);
    align-items: stretch;
    gap: clamp(2.5rem, 5vw, 5rem);
}

.product-ecosystem__heading {
    position: relative;
    z-index: 2;
    align-self: center;
}

.product-ecosystem__heading .section-heading {
    max-width: 10ch;
    margin-bottom: 1.5rem;
    font-size: clamp(2rem, 3.3vw, 3.3rem);
}

.product-ecosystem__heading .text-link,
.product-ecosystem__heading .text-link:visited {
    color: var(--brand-coral);
}

.product-catalogue {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-block: 1px solid var(--line-dark);
}

.product-catalogue__item {
    display: flex;
    min-height: 17rem;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    padding: clamp(1.5rem, 2.5vw, 2.25rem);
    border-left: 1px solid var(--line-dark);
    transition: background-color var(--transition-fast), translate var(--transition-fast);
}

.product-catalogue__item:last-child {
    border-right: 1px solid var(--line-dark);
}

.product-catalogue__item:nth-child(even) {
    translate: 0 1.25rem;
}

.product-catalogue__item:hover,
.product-catalogue__item:focus-within {
    background: var(--surface-dark-2);
}

.product-catalogue__identity {
    display: grid;
    gap: 1.5rem;
}

.product-catalogue__mark {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: var(--radius-control);
    color: var(--brand-navy);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 800;
}

.product-catalogue__item--mint .product-catalogue__mark { background: #9ce7c5; }
.product-catalogue__item--amber .product-catalogue__mark { background: #ffc66d; }
.product-catalogue__item--coral .product-catalogue__mark { background: #ff748d; }
.product-catalogue__item--future .product-catalogue__mark { background: #ff9f6d; }

.product-catalogue__identity p {
    margin: 0 0 0.55rem;
    color: var(--text-on-dark);
    font-family: var(--font-heading);
    font-size: clamp(1.15rem, 1.5vw, 1.4rem);
    font-weight: 700;
    letter-spacing: -0.025em;
}

.product-catalogue__identity div > span {
    display: block;
    max-width: 18ch;
    color: var(--text-on-dark-muted);
    font-size: 0.88rem;
    line-height: 1.55;
}

.product-catalogue__item .text-link,
.product-catalogue__item .text-link:visited {
    color: var(--brand-coral);
}

.product-ecosystem__orbit {
    position: absolute;
    z-index: 0;
    right: -4rem;
    bottom: -6rem;
    width: 20rem;
    height: 20rem;
    border: 1px solid rgb(255 255 255 / 7%);
    border-radius: 50%;
}

.product-ecosystem__orbit::before,
.product-ecosystem__orbit::after {
    position: absolute;
    inset: 3rem;
    border: 1px solid rgb(255 255 255 / 6%);
    border-radius: inherit;
    content: "";
}

.product-ecosystem__orbit::after { inset: 6rem; }

.product-ecosystem__orbit span,
.product-ecosystem__orbit i {
    position: absolute;
    width: 0.45rem;
    height: 0.45rem;
    background: var(--brand-coral);
    border-radius: 50%;
    box-shadow: 0 0 1.25rem rgb(253 45 80 / 75%);
}

.product-ecosystem__orbit span { top: 2rem; left: 8rem; }
.product-ecosystem__orbit i:nth-child(2) { top: 8rem; left: 3rem; }
.product-ecosystem__orbit i:nth-child(3) { top: 7rem; right: 2.5rem; }

@media (max-width: 68rem) {
    .product-ecosystem__layout {
        grid-template-columns: 1fr;
    }

    .product-ecosystem__heading .section-heading {
        max-width: 14ch;
    }

    .product-catalogue {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .product-catalogue__item,
    .product-catalogue__item:nth-child(even) {
        min-height: 14rem;
        border: 1px solid var(--line-dark);
        translate: none;
    }
}

@media (max-width: 36rem) {
    .product-catalogue {
        grid-template-columns: 1fr;
        border: 0;
    }

    .product-catalogue__item,
    .product-catalogue__item:nth-child(even) {
        min-height: auto;
        flex-direction: row;
        align-items: flex-end;
        gap: 1.5rem;
        padding-inline: 0;
        border-width: 1px 0 0;
    }

    .product-catalogue__item:last-child {
        border-right: 0;
        border-bottom: 1px solid var(--line-dark);
    }

    .product-catalogue__identity {
        gap: 1rem;
    }

    .product-catalogue__item .text-link {
        flex: 0 0 auto;
        margin-bottom: 0.15rem;
    }
}

/* Homepage company evolution */
.company-evolution {
    isolation: isolate;
}

.company-evolution__glow {
    position: absolute;
    z-index: -1;
    top: -12rem;
    left: -10rem;
    width: 34rem;
    height: 34rem;
    background: radial-gradient(circle, rgb(253 45 80 / 12%), transparent 68%);
    pointer-events: none;
}

.company-evolution__layout {
    display: grid;
    grid-template-columns: minmax(20rem, 0.85fr) minmax(40rem, 1.55fr);
    align-items: center;
    gap: clamp(4rem, 8vw, 8rem);
}

.company-evolution__heading .section-heading {
    max-width: 13ch;
}

.company-evolution__heading > p:not(.eyebrow) {
    max-width: 36rem;
    color: var(--text-on-dark-muted);
}

.company-evolution__heading .text-link,
.company-evolution__heading .text-link:visited {
    margin-top: 1rem;
    color: var(--brand-coral);
}

.company-timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.company-timeline::before {
    position: absolute;
    top: 3.85rem;
    right: 10%;
    left: 10%;
    height: 1px;
    background: var(--line-dark);
    content: "";
}

.company-timeline li {
    position: relative;
    z-index: 1;
    padding-inline: clamp(0.75rem, 2vw, 1.75rem);
}

.company-timeline__date {
    display: block;
    min-height: 2.4rem;
    color: var(--text-on-dark);
    font-family: var(--font-heading);
    font-size: 0.82rem;
    font-weight: 700;
}

.company-timeline__marker {
    display: block;
    width: 0.75rem;
    height: 0.75rem;
    margin-block: 1rem 1.75rem;
    background: var(--brand-coral);
    border: 0.22rem solid var(--surface-dark);
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--brand-coral);
}

.company-timeline h3 {
    min-height: 2.7rem;
    margin: 0 0 0.65rem;
    color: var(--text-on-dark);
    font-size: 1rem;
    line-height: 1.3;
}

.company-timeline p {
    margin: 0;
    color: var(--text-on-dark-muted);
    font-size: 0.8rem;
    line-height: 1.55;
}

@media (max-width: 68rem) {
    .company-evolution__layout {
        grid-template-columns: 1fr;
    }

    .company-evolution__heading .section-heading {
        max-width: 16ch;
    }
}

@media (max-width: 48rem) {
    .company-timeline {
        grid-template-columns: 1fr;
    }

    .company-timeline::before {
        top: 0.5rem;
        right: auto;
        bottom: 0.5rem;
        left: 0.37rem;
        width: 1px;
        height: auto;
    }

    .company-timeline li {
        display: grid;
        grid-template-columns: 1rem minmax(5.5rem, 0.35fr) 1fr;
        gap: 1rem;
        padding: 0 0 2.5rem;
    }

    .company-timeline__date {
        min-height: 0;
        padding-top: 0.05rem;
    }

    .company-timeline__marker {
        grid-column: 1;
        grid-row: 1;
        margin: 0;
    }

    .company-timeline li > div {
        grid-column: 3;
        grid-row: 1;
    }

    .company-timeline h3 {
        min-height: 0;
    }
}

@media (max-width: 28rem) {
    .company-timeline li {
        grid-template-columns: 1rem 1fr;
    }

    .company-timeline__date {
        grid-column: 2;
        margin-bottom: 0.4rem;
        color: var(--brand-coral);
    }

    .company-timeline li > div {
        grid-column: 2;
        grid-row: 2;
    }
}

/* Homepage leadership */
.leadership {
    background: var(--surface-white);
}

.leadership__intro {
    display: grid;
    grid-template-columns: minmax(20rem, 1.2fr) minmax(18rem, 0.8fr);
    align-items: end;
    gap: 2rem 6rem;
    margin-bottom: clamp(3rem, 6vw, 6rem);
}

.leadership__intro .section-heading {
    max-width: 15ch;
    margin-bottom: 0;
}

.leadership__intro > p {
    max-width: 31rem;
    margin: 0;
    color: var(--text-secondary);
}

.leadership__profiles {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    align-items: start;
    gap: clamp(3rem, 8vw, 8rem);
}

.leadership-profile {
    display: grid;
    grid-template-columns: minmax(13rem, 1fr) minmax(12rem, 0.82fr);
    align-items: end;
    gap: clamp(1.5rem, 3vw, 3rem);
}

.leadership-profile--operations {
    margin-top: clamp(4rem, 9vw, 9rem);
}

.leadership-profile__media {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background:
        linear-gradient(145deg, transparent 0 56%, rgb(253 45 80 / 11%) 56% 100%),
        var(--surface-soft);
    border: 1px solid var(--line-light);
}

.leadership-profile--operations .leadership-profile__media {
    background:
        linear-gradient(35deg, transparent 0 60%, rgb(4 3 21 / 6%) 60% 100%),
        #f4ecee;
}

.leadership-profile__media::before {
    position: absolute;
    z-index: -1;
    right: -26%;
    bottom: -15%;
    width: 88%;
    aspect-ratio: 1;
    border: 1px solid rgb(253 45 80 / 25%);
    border-radius: 50%;
    content: "";
}

.leadership-profile__media span {
    position: absolute;
    bottom: 1.5rem;
    left: 1.5rem;
    color: var(--brand-navy);
    font-family: var(--font-heading);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
    letter-spacing: -0.08em;
}

.leadership-profile__media--portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.leadership-profile__media--portrait::before {
    display: none;
}

.leadership-profile__media i {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 0.55rem;
    height: 0.55rem;
    background: var(--brand-coral);
    border-radius: 50%;
}

.leadership-profile__media i + i {
    top: 2.5rem;
    background: var(--brand-navy);
}

.leadership-profile__identity {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line-light);
}

.leadership-profile__identity > span {
    color: var(--brand-coral);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.leadership-profile__identity h3 {
    margin: 0.8rem 0 0.45rem;
    font-size: clamp(1.65rem, 3vw, 2.5rem);
    letter-spacing: -0.04em;
}

.leadership-profile__identity p {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.95rem;
}

.leadership-profile__identity .leadership-profile__role {
    color: var(--text-primary);
    font-weight: 600;
}

.leadership-profile__biography {
    display: grid;
    gap: 0.85rem;
    margin-top: 1.35rem;
}

.leadership-profile__biography p {
    line-height: 1.7;
}

.leadership-profile__biography strong {
    color: var(--text-primary);
}

.leadership-profile__bio-details summary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-primary);
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 700;
    list-style: none;
}

.leadership-profile__bio-details summary::-webkit-details-marker {
    display: none;
}

.leadership-profile__bio-details summary span {
    color: var(--brand-coral);
    transition: transform 180ms ease;
}

.leadership-profile__bio-details[open] summary span {
    transform: rotate(90deg);
}

.leadership-profile__bio-details > div {
    display: grid;
    gap: 0.85rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line-light);
}

@media (max-width: 68rem) {
    .leadership__profiles {
        gap: 3rem;
    }

    .leadership-profile {
        grid-template-columns: 1fr;
    }

    .leadership-profile__media {
        aspect-ratio: 5 / 4;
    }
}

@media (max-width: 48rem) {
    .leadership__intro,
    .leadership__profiles {
        grid-template-columns: 1fr;
    }

    .leadership__intro {
        gap: 1.5rem;
    }

    .leadership-profile {
        grid-template-columns: minmax(8rem, 0.75fr) minmax(10rem, 1.25fr);
    }

    .leadership-profile--operations {
        margin-top: 0;
    }

    .leadership-profile__media {
        aspect-ratio: 4 / 5;
    }
}

@media (max-width: 30rem) {
    .leadership-profile {
        grid-template-columns: 1fr;
    }

    .leadership-profile__media {
        aspect-ratio: 16 / 10;
    }
}

/* Homepage final CTA */
.final-cta {
    isolation: isolate;
    overflow: hidden;
}

.final-cta__layout {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(22rem, 1.15fr) minmax(20rem, 0.85fr);
    align-items: end;
    gap: clamp(3rem, 8vw, 8rem);
}

.final-cta .section-heading {
    max-width: 12ch;
    margin: 0;
    font-size: clamp(3rem, 6vw, 5.75rem);
}

.final-cta__content {
    padding-bottom: 0.5rem;
}

.final-cta__content p {
    max-width: 37rem;
    margin: 0 0 2rem;
    color: var(--text-on-dark-muted);
    font-size: clamp(1.05rem, 1.5vw, 1.2rem);
}

.final-cta__signal {
    position: absolute;
    right: -7rem;
    bottom: -11rem;
    width: 30rem;
    height: 30rem;
    border: 1px solid rgb(253 45 80 / 18%);
    border-radius: 50%;
}

.final-cta__signal::before,
.final-cta__signal::after {
    position: absolute;
    inset: 4rem;
    border: 1px solid rgb(253 45 80 / 13%);
    border-radius: inherit;
    content: "";
}

.final-cta__signal::after { inset: 8rem; }

.final-cta__signal i {
    position: absolute;
    z-index: 2;
    width: 0.5rem;
    height: 0.5rem;
    background: var(--brand-coral);
    border-radius: 50%;
    box-shadow: 0 0 1.5rem rgb(253 45 80 / 80%);
}

.final-cta__signal i:nth-child(1) { top: 4rem; left: 8rem; }
.final-cta__signal i:nth-child(2) { top: 13rem; left: 2.5rem; }
.final-cta__signal i:nth-child(3) { top: 9rem; right: 3rem; }

@media (max-width: 48rem) {
    .final-cta__layout {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 2rem;
    }

    .final-cta .section-heading {
        font-size: clamp(2.8rem, 13vw, 4.5rem);
    }
}

/* Homepage project proof */
.project-proof {
    border-block: 1px solid var(--line-light);
}

.project-proof__layout {
    display: grid;
    grid-template-columns: minmax(18rem, 0.68fr) minmax(38rem, 1.6fr);
    align-items: center;
    gap: clamp(4rem, 8vw, 8rem);
}

.project-proof__heading h2 {
    max-width: 13ch;
    margin: 0 0 1.25rem;
    font-size: clamp(2rem, 3.5vw, 3.4rem);
    line-height: 1.05;
    letter-spacing: -0.045em;
}

.project-proof__heading > p:not(.eyebrow) {
    max-width: 30rem;
    color: var(--text-secondary);
}

.project-proof__heading .text-link {
    margin-top: 0.75rem;
}

.project-proof__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--line-light);
    border-left: 1px solid var(--line-light);
    list-style: none;
}

.project-proof__list a {
    position: relative;
    display: grid;
    min-height: 9.5rem;
    align-content: space-between;
    padding: 1.5rem;
    border-right: 1px solid var(--line-light);
    border-bottom: 1px solid var(--line-light);
    color: var(--text-primary);
    text-decoration: none;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.project-proof__list a:hover,
.project-proof__list a:focus-visible {
    background: var(--brand-navy);
    color: var(--text-on-dark);
}

.project-proof__list span {
    color: var(--brand-coral);
    font-size: 0.68rem;
    font-weight: 700;
}

.project-proof__list strong {
    max-width: 18ch;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    line-height: 1.35;
}

.project-proof__list i {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    color: var(--text-muted);
    font-style: normal;
}

.project-proof__list a:hover i,
.project-proof__list a:focus-visible i {
    color: var(--brand-coral);
}

@media (max-width: 68rem) {
    .project-proof__layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 48rem) {
    .project-proof__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 30rem) {
    .project-proof__list {
        grid-template-columns: 1fr;
        border-left: 0;
    }

    .project-proof__list a {
        min-height: 6.5rem;
        padding-inline: 0;
        border-right: 0;
    }
}

/* Homepage AI and automation */
.ai-automation {
    background: var(--surface-white);
}

.ai-automation__layout {
    display: grid;
    grid-template-columns: minmax(19rem, 0.8fr) minmax(35rem, 1.55fr);
    gap: clamp(3rem, 7vw, 7rem);
}

.ai-automation__heading {
    align-self: center;
}

.ai-automation__heading .section-heading {
    max-width: 11ch;
}

.ai-automation__heading > p:not(.eyebrow) {
    max-width: 34rem;
    color: var(--text-secondary);
}

.ai-automation__heading .text-link {
    margin-top: 1rem;
}

.ai-workflow {
    position: relative;
    display: grid;
    grid-template-columns: minmax(10rem, 0.8fr) minmax(14rem, 1.15fr) minmax(11rem, 0.9fr);
    align-items: center;
    gap: clamp(2rem, 4vw, 4rem);
    min-height: 25rem;
    padding: clamp(2rem, 4vw, 3.5rem);
    background:
        linear-gradient(var(--line-light) 1px, transparent 1px),
        linear-gradient(90deg, var(--line-light) 1px, transparent 1px),
        var(--surface-soft);
    background-size: 2rem 2rem;
    border: 1px solid var(--line-light);
    border-radius: var(--radius-media);
}

.ai-workflow__input,
.ai-workflow__review {
    position: relative;
    z-index: 2;
    padding: 1.5rem;
    background: white;
    border: 1px solid var(--line-light);
    border-radius: var(--radius-panel);
    box-shadow: 0 15px 35px rgb(4 3 21 / 8%);
}

.ai-workflow__input > span,
.ai-workflow__review > span,
.ai-workflow__engine-label {
    color: var(--brand-coral);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.ai-workflow__input strong,
.ai-workflow__review strong {
    display: block;
    margin-block: 0.65rem 1.25rem;
    font-family: var(--font-heading);
    font-size: 1rem;
}

.ai-workflow__input i {
    display: block;
    width: 100%;
    height: 0.45rem;
    margin-top: 0.55rem;
    background: var(--surface-muted);
    border-radius: 2rem;
}

.ai-workflow__input i:nth-of-type(2) { width: 74%; }
.ai-workflow__input i:nth-of-type(3) { width: 52%; }

.ai-workflow__engine {
    position: relative;
    z-index: 2;
    padding: 1.5rem;
    background: var(--brand-navy);
    border: 1px solid var(--line-dark);
    border-radius: var(--radius-panel);
    box-shadow: 0 22px 50px rgb(4 3 21 / 19%);
}

.ai-workflow__roles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.ai-workflow__roles > span {
    display: grid;
    grid-template-columns: 1.65rem 1fr;
    align-items: center;
    gap: 0.55rem;
    color: var(--text-on-dark);
    font-size: 0.75rem;
    font-weight: 600;
}

.ai-workflow__roles i {
    display: grid;
    width: 1.65rem;
    height: 1.65rem;
    place-items: center;
    background: rgb(253 45 80 / 14%);
    border: 1px solid rgb(253 45 80 / 35%);
    border-radius: 50%;
    color: var(--brand-coral);
    font-size: 0.58rem;
    font-style: normal;
}

.ai-workflow__review div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.ai-workflow__review div i {
    width: 1.5rem;
    height: 1.5rem;
    background: var(--surface-muted);
    border: 2px solid white;
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--line-light);
}

.ai-workflow__review div i + i { margin-left: -0.8rem; }

.ai-workflow__review div b {
    color: var(--text-secondary);
    font-size: 0.68rem;
}

.ai-workflow__connector {
    position: absolute;
    z-index: 3;
    top: 50%;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    background: white;
    border: 1px solid var(--line-light);
    border-radius: 50%;
    color: var(--brand-coral);
    translate: -50% -50%;
}

.ai-workflow__connector--one { left: 30.5%; }
.ai-workflow__connector--two { left: 69%; }

.ai-use-cases {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--line-light);
    list-style: none;
}

.ai-use-cases li {
    padding: 2rem clamp(1.25rem, 2.5vw, 2.25rem);
    border-right: 1px solid var(--line-light);
}

.ai-use-cases li:first-child { padding-left: 0; }
.ai-use-cases li:last-child { border-right: 0; }

.ai-use-cases span {
    display: block;
    margin-bottom: 0.8rem;
    color: var(--brand-coral);
    font-size: 0.7rem;
    font-weight: 700;
}

.ai-use-cases strong {
    font-family: var(--font-heading);
    font-size: 1.05rem;
}

.ai-use-cases p {
    margin: 0.5rem 0 0;
    color: var(--text-muted);
    font-size: 0.85rem;
}

@media (max-width: 68rem) {
    .ai-automation__layout {
        grid-template-columns: 1fr;
    }

    .ai-automation__heading .section-heading {
        max-width: 14ch;
    }
}

@media (max-width: 48rem) {
    .ai-workflow {
        grid-template-columns: 1fr;
        min-height: auto;
        gap: 2.75rem;
    }

    .ai-workflow__connector {
        left: 50%;
        rotate: 90deg;
    }

    .ai-workflow__connector--one { top: 31.5%; }
    .ai-workflow__connector--two { top: 68%; }

    .ai-use-cases {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ai-use-cases li:nth-child(2) { border-right: 0; }
    .ai-use-cases li:nth-child(3),
    .ai-use-cases li:nth-child(4) { border-top: 1px solid var(--line-light); }
    .ai-use-cases li:nth-child(3) { padding-left: 0; }
}

@media (max-width: 30rem) {
    .ai-workflow {
        padding: 1.25rem;
    }

    .ai-use-cases {
        grid-template-columns: 1fr;
    }

    .ai-use-cases li,
    .ai-use-cases li:nth-child(3) {
        padding-inline: 0;
        border-top: 1px solid var(--line-light);
        border-right: 0;
    }
}

/* Homepage delivery process */
.delivery-process {
    border-block: 1px solid var(--line-light);
}

.delivery-process__heading {
    display: grid;
    grid-template-columns: minmax(17rem, 1fr) minmax(20rem, 0.8fr);
    align-items: end;
    gap: 2rem 5rem;
    margin-bottom: clamp(3rem, 5vw, 5rem);
}

.delivery-process__heading .section-heading {
    margin: 0;
}

.delivery-process__heading > p {
    max-width: 32rem;
    margin: 0;
    color: var(--text-secondary);
}

.process-timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.process-timeline::before {
    position: absolute;
    top: 3.42rem;
    right: 9%;
    left: 9%;
    height: 1px;
    background: var(--line-light);
    content: "";
}

.process-timeline li {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    padding-inline: clamp(0.75rem, 2vw, 2rem);
    text-align: center;
}

.process-timeline__number {
    margin-bottom: 0.8rem;
    color: var(--text-muted);
    font-size: 0.7rem;
    font-weight: 700;
}

.process-timeline__icon {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    place-content: center;
    grid-auto-flow: column;
    gap: 0.2rem;
    margin-bottom: 1.4rem;
    background: var(--surface-soft);
    border: 1px solid var(--brand-coral);
    border-radius: 50%;
}

.process-timeline__icon i {
    display: block;
    width: 0.38rem;
    height: 0.38rem;
    background: var(--brand-coral);
    border-radius: 50%;
}

.process-timeline h3 {
    margin: 0 0 0.55rem;
    font-size: 1rem;
    letter-spacing: -0.02em;
}

.process-timeline p {
    max-width: 18ch;
    margin: 0;
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

.delivery-process__link {
    display: flex;
    justify-content: center;
    margin-top: clamp(2.5rem, 4vw, 4rem);
}

@media (max-width: 48rem) {
    .delivery-process__heading {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .process-timeline {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .process-timeline::before {
        top: 1.65rem;
        right: auto;
        bottom: 1.65rem;
        left: 1.62rem;
        width: 1px;
        height: auto;
    }

    .process-timeline li {
        grid-template-columns: 3.25rem 1fr;
        justify-items: start;
        gap: 0 1.25rem;
        padding: 0 0 2rem;
        text-align: left;
    }

    .process-timeline__number {
        position: absolute;
        top: 1rem;
        left: -2.2rem;
        margin: 0;
    }

    .process-timeline__icon {
        grid-row: 1 / span 2;
        margin: 0;
    }

    .process-timeline p {
        max-width: 34rem;
    }

    .delivery-process__link {
        justify-content: flex-start;
        padding-left: 4.5rem;
    }
}

@media (max-width: 24rem) {
    .process-timeline__number {
        display: none;
    }
}

/* Homepage technology partnerships */
.technology-partnerships {
    background: var(--surface-white);
}

.technology-partnerships__layout {
    display: grid;
    grid-template-columns: minmax(19rem, 0.78fr) minmax(38rem, 1.45fr);
    align-items: center;
    gap: clamp(4rem, 8vw, 8rem);
}

.technology-partnerships__heading .section-heading {
    max-width: 11ch;
}

.technology-partnerships__heading > p:not(.eyebrow) {
    max-width: 34rem;
    color: var(--text-secondary);
}

.technology-partnerships__heading .text-link {
    margin-top: 1rem;
}

.partnership-modes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--line-light);
    border-left: 1px solid var(--line-light);
}

.partnership-modes article {
    position: relative;
    display: grid;
    grid-template-columns: 3.25rem 1fr;
    gap: 1.25rem;
    min-height: 13rem;
    align-content: center;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border-right: 1px solid var(--line-light);
    border-bottom: 1px solid var(--line-light);
    transition: background-color var(--transition-fast);
}

.partnership-modes article:hover,
.partnership-modes article:focus-within {
    background: var(--surface-soft);
}

.partnership-modes__number {
    position: absolute;
    top: 1rem;
    right: 1rem;
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 700;
}

.partnership-modes__symbol {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    place-content: center;
    grid-auto-flow: column;
    gap: 0.2rem;
    border: 1px solid var(--brand-coral);
    border-radius: 50%;
}

.partnership-modes__symbol i {
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    background: var(--brand-coral);
    border-radius: 0.1rem;
}

.partnership-modes h3 {
    margin: 0 0 0.55rem;
    font-size: clamp(1rem, 1.35vw, 1.2rem);
}

.partnership-modes p {
    max-width: 23ch;
    margin: 0;
    color: var(--text-muted);
    font-size: 0.84rem;
    line-height: 1.55;
}

@media (max-width: 62rem) {
    .technology-partnerships__layout {
        grid-template-columns: 1fr;
    }

    .technology-partnerships__heading .section-heading {
        max-width: 14ch;
    }
}

@media (max-width: 36rem) {
    .partnership-modes {
        grid-template-columns: 1fr;
    }

    .partnership-modes article {
        min-height: 11rem;
        padding-inline: 1.25rem;
    }
}

@media (max-width: 75rem) {
    .custom-solutions-statement__grid {
        grid-template-columns: minmax(15rem, 0.8fr) minmax(32rem, 2fr);
    }

    .custom-solutions-statement__cta {
        grid-column: 1 / -1;
        min-height: auto;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 1rem 2rem;
    }

    .custom-solutions-statement__cta p,
    .custom-solutions-statement__cta > span {
        margin: 0;
    }

    .custom-solutions-statement__cta .text-link {
        margin-left: auto;
    }
}

@media (max-width: 52rem) {
    .custom-solutions-statement__grid {
        grid-template-columns: 1fr;
    }

    .custom-solutions-statement__intro {
        padding: 0 0 2rem;
        border-right: 0;
        border-bottom: 1px solid var(--line-light);
    }

    .solution-workflow {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 0;
    }

    .solution-workflow::before {
        top: 1rem;
        right: auto;
        bottom: 1rem;
        left: 0.72rem;
        width: 1px;
        height: auto;
    }

    .solution-workflow li {
        display: grid;
        grid-template-columns: 1.5rem 1fr;
        gap: 1rem;
        padding-bottom: 1.5rem;
    }

    .solution-workflow li:last-child {
        padding-bottom: 0;
    }

    .solution-workflow__marker {
        margin: 0;
    }

    .custom-solutions-statement__cta {
        grid-column: auto;
        flex-direction: column;
        align-items: flex-start;
    }

    .custom-solutions-statement__cta .text-link {
        margin: 0;
    }
}

/* Homepage EduCaid flagship */
.flagship {
    isolation: isolate;
    min-height: 46rem;
    display: grid;
    align-items: center;
    padding-block: clamp(5rem, 8vw, 8rem);
}

.flagship__glow {
    position: absolute;
    z-index: -1;
    top: -18rem;
    right: -12rem;
    width: 46rem;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgb(253 45 80 / 17%), transparent 67%);
    pointer-events: none;
}

.flagship__grid {
    grid-template-columns: minmax(18rem, 0.72fr) minmax(32rem, 1.28fr);
    gap: clamp(4rem, 7vw, 8rem);
}

.flagship__content {
    max-width: 31rem;
}

.flagship .section-heading {
    margin-bottom: 0.85rem;
    font-size: clamp(3rem, 5vw, 4.75rem);
}

.flagship__tagline {
    margin-bottom: 1.5rem;
    font-family: Manrope, Arial, sans-serif;
    font-size: clamp(1.3rem, 2vw, 1.65rem);
    line-height: 1.25;
}

.flagship__actions {
    margin-top: 2rem;
}

.flagship__ownership {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin: 2.25rem 0 0;
    color: var(--text-on-dark-muted);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.flagship__ownership span {
    width: 0.5rem;
    aspect-ratio: 1;
    background: var(--brand-coral);
    border-radius: 2px;
    rotate: 45deg;
}

.flagship-visual {
    position: relative;
    min-height: 32rem;
}

.flagship-visual--real {
    overflow: hidden;
    height: 32rem;
    background: white;
    border: 1px solid var(--line-dark);
    border-radius: var(--radius-media);
    box-shadow: 0 35px 90px rgb(0 0 0 / 38%);
}

.flagship-visual--real::before {
    display: none;
}

.flagship-visual--real img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.flagship-visual::before {
    position: absolute;
    inset: 2.75rem 0 0 2.75rem;
    background: linear-gradient(145deg, rgb(39 48 71 / 55%), rgb(16 22 41 / 20%));
    border: 1px solid var(--line-dark);
    border-radius: 1.5rem;
    content: "";
    rotate: 3deg;
}

.flagship-visual__frame {
    position: absolute;
    inset: 1rem 1.5rem 1.5rem 0;
    overflow: hidden;
    background: #0d1325;
    border: 1px solid #343e58;
    border-radius: var(--radius-media);
    box-shadow: 0 35px 90px rgb(0 0 0 / 38%);
}

.flagship-visual__topbar {
    display: flex;
    height: 4.5rem;
    align-items: center;
    justify-content: space-between;
    padding-inline: 1.5rem;
    border-bottom: 1px solid var(--line-dark);
}

.flagship-visual__name {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-weight: 700;
}

.flagship-visual__name i {
    width: 0.8rem;
    aspect-ratio: 1;
    background: var(--brand-coral);
    border-radius: 0.3rem;
}

.flagship-visual__controls {
    display: flex;
    gap: 0.45rem;
}

.flagship-visual__controls i {
    width: 0.65rem;
    aspect-ratio: 1;
    background: var(--line-dark);
    border-radius: 50%;
}

.flagship-visual__body {
    display: grid;
    grid-template-columns: 7rem 1fr;
    min-height: 26rem;
}

.flagship-visual__rail {
    display: grid;
    align-content: start;
    gap: 1.2rem;
    padding: 1.75rem 1rem;
    border-right: 1px solid var(--line-dark);
}

.flagship-visual__rail span {
    height: 0.5rem;
    background: var(--line-dark);
    border-radius: 1rem;
}

.flagship-visual__rail .is-selected {
    height: 2rem;
    margin-inline: -0.3rem;
    background: rgb(253 45 80 / 15%);
    border: 1px solid rgb(253 45 80 / 20%);
}

.flagship-visual__workspace {
    padding: 1.75rem;
}

.flagship-visual__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.flagship-visual__heading span {
    width: 9rem;
    height: 0.65rem;
    background: var(--line-dark);
    border-radius: 1rem;
}

.flagship-visual__heading i {
    width: 2.25rem;
    aspect-ratio: 1;
    background: rgb(253 45 80 / 16%);
    border: 1px solid rgb(253 45 80 / 24%);
    border-radius: 0.7rem;
}

.flagship-visual__summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.85rem;
}

.flagship-visual__summary span {
    height: 5.5rem;
    background: linear-gradient(145deg, #141c31, #11182a);
    border: 1px solid var(--line-dark);
    border-radius: var(--radius-control);
}

.flagship-visual__detail {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 0.85rem;
    margin-top: 0.85rem;
}

.flagship-visual__lines,
.flagship-visual__ring {
    min-height: 10rem;
    padding: 1.5rem;
    background: #11182a;
    border: 1px solid var(--line-dark);
    border-radius: var(--radius-panel);
}

.flagship-visual__lines {
    display: grid;
    align-content: center;
    gap: 1rem;
}

.flagship-visual__lines span {
    height: 0.5rem;
    background: var(--line-dark);
    border-radius: 1rem;
}

.flagship-visual__lines span:nth-child(even) { width: 72%; }

.flagship-visual__ring {
    display: grid;
    place-items: center;
}

.flagship-visual__ring span {
    width: 5rem;
    aspect-ratio: 1;
    border: 0.8rem solid var(--line-dark);
    border-top-color: var(--brand-coral);
    border-radius: 50%;
}

.flagship-visual__tile {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem;
    background: #151d31;
    border: 1px solid #343e58;
    border-radius: var(--radius-control);
    box-shadow: 0 16px 40px rgb(0 0 0 / 30%);
}

.flagship-visual__tile--one { top: 0; right: 0; }
.flagship-visual__tile--two { right: -0.5rem; bottom: 0; }

.flagship-visual__tile--one span {
    display: grid;
    width: 2rem;
    aspect-ratio: 1;
    place-items: center;
    background: var(--brand-coral);
    border-radius: 0.5rem;
    font-weight: 700;
}

.flagship-visual__tile i {
    display: block;
    width: 2.5rem;
    height: 0.45rem;
    background: var(--line-dark);
    border-radius: 1rem;
}

.flagship-visual__tile--two i { width: 1.5rem; }

@media (max-width: 64rem) {
    .flagship__grid {
        grid-template-columns: 1fr;
    }

    .flagship__content {
        max-width: 42rem;
    }

    .flagship-visual {
        width: min(100%, 48rem);
        margin-inline: auto;
    }
}

@media (max-width: 48rem) {
    .flagship {
        min-height: 0;
        padding-block: 4.5rem;
    }

    .flagship-visual {
        min-height: 25rem;
    }

    .flagship-visual__frame {
        inset: 1rem 0 1rem;
    }

    .flagship-visual__body {
        grid-template-columns: 4rem 1fr;
        min-height: 20rem;
    }

    .flagship-visual__rail {
        padding-inline: 0.65rem;
    }

    .flagship-visual__workspace {
        padding: 1rem;
    }

    .flagship-visual__summary span:nth-child(3) {
        display: none;
    }

    .flagship-visual__summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .flagship-visual__detail {
        grid-template-columns: 1fr;
    }

    .flagship-visual__ring {
        display: none;
    }
}

@media (max-width: 25rem) {
    .flagship-visual__body {
        grid-template-columns: 1fr;
    }

    .flagship-visual__rail {
        display: none;
    }

    .flagship-visual__tile--two {
        display: none;
    }
}

/* Homepage selected work */
.selected-work {
    background: var(--surface-white);
}

.selected-work__heading {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(22rem, 1.2fr);
    align-items: end;
    gap: 3rem 8rem;
    margin-bottom: clamp(3rem, 6vw, 6rem);
}

.selected-work__heading .section-heading {
    margin-bottom: 0;
}

.selected-work__heading > p {
    max-width: 40rem;
    margin: 0;
    color: var(--text-secondary);
}

.selected-work__desktop {
    display: grid;
    grid-template-columns: minmax(20rem, 0.78fr) minmax(34rem, 1.22fr);
    gap: clamp(4rem, 8vw, 8rem);
}

.selected-work__narratives {
    display: grid;
}

.project-narrative {
    min-height: 20rem;
    padding: clamp(2.5rem, 5vw, 4.5rem) 0;
    border-top: 1px solid var(--line-light);
    opacity: 0.48;
    transition: opacity var(--transition-fast);
}

.project-narrative:last-child {
    border-bottom: 1px solid var(--line-light);
}

.project-narrative.is-active,
.project-narrative:focus-within,
.project-narrative:hover {
    opacity: 1;
}

.project-narrative__number {
    display: flex;
    gap: 0.75rem;
    color: var(--brand-coral);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.project-narrative__number span {
    color: var(--text-muted);
}

.project-narrative h3,
.project-mobile h3 {
    max-width: 18ch;
    font-size: clamp(1.8rem, 3vw, 2.75rem);
    letter-spacing: -0.04em;
}

.project-narrative > p:not(.project-narrative__number) {
    max-width: 34rem;
    color: var(--text-secondary);
}

.project-narrative__links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.75rem;
    margin-top: 1.75rem;
}

.selected-work__visual-column {
    position: relative;
}

.project-device {
    position: sticky;
    top: calc(var(--header-height, 5rem) + 3rem);
    min-height: 33rem;
    padding-top: 2rem;
}

.project-device__screen {
    overflow: hidden;
    min-height: 29rem;
    background: var(--surface-soft);
    border: 0.7rem solid var(--brand-navy);
    border-bottom-width: 1.1rem;
    border-radius: 1.25rem;
    box-shadow: 0 30px 70px rgb(4 3 21 / 18%);
}

.project-device__browser {
    display: flex;
    height: 2.25rem;
    align-items: center;
    gap: 0.35rem;
    padding-inline: 0.75rem;
    background: white;
    border-bottom: 1px solid var(--line-light);
}

.project-device__browser i {
    width: 0.45rem;
    aspect-ratio: 1;
    background: var(--line-light);
    border-radius: 50%;
}

.project-device__browser span {
    width: 40%;
    height: 0.45rem;
    margin-inline: auto;
    background: var(--surface-muted);
    border-radius: 1rem;
}

.project-device__page {
    min-height: 25rem;
    height: 25rem;
    overflow: hidden;
    background: white;
}

.project-device__page img {
    width: 100%;
    height: auto;
    min-height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: opacity 180ms ease;
}

.project-device__masthead {
    display: flex;
    height: 3rem;
    align-items: center;
    justify-content: space-between;
}

.project-device__masthead span,
.project-device__masthead i {
    width: 5rem;
    height: 0.5rem;
    background: var(--line-light);
    border-radius: 1rem;
}

.project-device__masthead i { width: 11rem; }

.project-device__hero {
    display: grid;
    grid-template-columns: 1fr 0.8fr;
    min-height: 12rem;
    align-items: center;
    gap: 2rem;
    padding: 2rem;
    background: linear-gradient(135deg, #eef1f5, #f8f9fb);
    border-radius: var(--radius-control);
}

.project-device__hero span {
    height: 3.5rem;
    background: var(--brand-navy);
    border-radius: 0.5rem;
}

.project-device__hero i {
    height: 8rem;
    background: rgb(253 45 80 / 14%);
    border: 1px solid rgb(253 45 80 / 20%);
    border-radius: 50% 50% 1rem 1rem;
}

.project-device__content {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 1rem;
}

.project-device__content span {
    height: 6rem;
    border: 1px solid var(--line-light);
    border-radius: var(--radius-control);
}

.project-device__base {
    width: 108%;
    height: 1rem;
    margin-left: -4%;
    background: linear-gradient(180deg, #d5d9e0, #949ba8);
    border-radius: 0 0 50% 50%;
}

.project-device__label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.project-device__label span {
    color: var(--brand-coral);
    font-size: 0.75rem;
    font-weight: 700;
}

.selected-work__mobile {
    display: none;
}

@media (max-width: 64rem) {
    .selected-work__heading {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .selected-work__desktop {
        display: none;
    }

    .selected-work__mobile {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem;
    }

    .project-mobile {
        padding: 1.5rem;
        border: 1px solid var(--line-light);
        border-radius: var(--radius-panel);
    }

    .project-mobile h3 {
        font-size: 1.5rem;
    }

    .project-mobile__visual {
        position: relative;
        overflow: hidden;
        min-height: 12rem;
        margin-block: 1.5rem;
        background: var(--surface-soft);
        border: 1px solid var(--line-light);
        border-radius: var(--radius-control);
    }

    .project-mobile__visual img {
        width: 100%;
        height: 12rem;
        object-fit: cover;
        object-position: top center;
    }

    .project-mobile__visual span {
        position: absolute;
        inset: 1.25rem 1.25rem auto;
        height: 2.75rem;
        background: var(--brand-navy);
        border-radius: 0.5rem;
    }

    .project-mobile__visual i {
        position: absolute;
        bottom: 1.25rem;
        width: calc(50% - 1.9rem);
        height: 5rem;
        border: 1px solid var(--line-light);
        border-radius: 0.5rem;
    }

    .project-mobile__visual i:nth-child(2) { left: 1.25rem; }
    .project-mobile__visual i:nth-child(3) { right: 1.25rem; background: rgb(253 45 80 / 10%); }
}

@media (max-width: 48rem) {
    .selected-work__mobile {
        grid-template-columns: 1fr;
    }

    .project-mobile {
        padding: 2rem 0;
        border-width: 1px 0 0;
        border-radius: 0;
    }

    .project-mobile:last-child {
        border-bottom: 1px solid var(--line-light);
    }
}

/* Homepage core capabilities */
.core-capabilities {
    padding-block: clamp(5.5rem, 8vw, 8rem) clamp(4.5rem, 7vw, 7rem);
    border-top: 1px solid var(--line-light);
}

.core-capabilities__header {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
    gap: 2rem 6rem;
    align-items: end;
    margin-bottom: clamp(3rem, 5vw, 5rem);
}

.core-capabilities__header .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: -0.75rem;
}

.core-capabilities__header .section-heading {
    max-width: 15ch;
    margin-bottom: 0;
}

.core-capabilities__header > p:last-child {
    max-width: 34rem;
    margin: 0;
    color: var(--text-secondary);
}

.core-capabilities .capability-ledger {
    grid-template-columns: 1.15fr 1fr 0.85fr;
    margin-top: 0;
    border-bottom: 1px solid var(--line-light);
}

.core-capabilities .capability-ledger__item {
    display: flex;
    min-height: 25rem;
    flex-direction: column;
    padding: clamp(2rem, 3vw, 3.25rem);
}

.core-capabilities .capability-ledger__item:nth-child(2) {
    padding-top: clamp(4rem, 5vw, 5.5rem);
}

.core-capabilities .capability-ledger__item:nth-child(3) {
    padding-top: clamp(6rem, 7vw, 7.5rem);
}

.capability-ledger__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.core-capabilities .capability-ledger__number {
    margin: 0;
}

.capability-ledger__mark {
    position: relative;
    display: grid;
    width: 2.75rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgb(253 45 80 / 45%);
    border-radius: 50%;
}

.capability-ledger__mark i {
    width: 0.8rem;
    aspect-ratio: 1;
    border: 2px solid var(--brand-coral);
    border-radius: 50%;
}

.capability-ledger__mark--solution {
    border-radius: 0.75rem;
    rotate: 45deg;
}

.capability-ledger__mark--solution i {
    border-radius: 0.2rem;
}

.capability-ledger__mark--product::before,
.capability-ledger__mark--product::after {
    position: absolute;
    width: 0.65rem;
    aspect-ratio: 1;
    border: 1px solid var(--brand-coral);
    border-radius: 0.2rem;
    content: "";
}

.capability-ledger__mark--product::before { translate: -0.32rem -0.25rem; }
.capability-ledger__mark--product::after { translate: 0.32rem 0.25rem; }
.capability-ledger__mark--product i { display: none; }

.core-capabilities .capability-ledger h3 {
    max-width: 15rem;
    font-size: clamp(1.6rem, 2.4vw, 2.15rem);
    letter-spacing: -0.035em;
}

.core-capabilities .capability-ledger p {
    max-width: 30ch;
    margin-bottom: 2rem;
}

.core-capabilities .capability-ledger .text-link {
    margin-top: auto;
}

@media (max-width: 48rem) {
    .core-capabilities__header {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .core-capabilities__header .eyebrow {
        grid-column: auto;
        margin-bottom: 0;
    }

    .core-capabilities .capability-ledger {
        grid-template-columns: 1fr;
    }

    .core-capabilities .capability-ledger__item,
    .core-capabilities .capability-ledger__item:nth-child(2),
    .core-capabilities .capability-ledger__item:nth-child(3) {
        min-height: 0;
        padding-block: 2.5rem;
    }

    .capability-ledger__meta {
        margin-bottom: 2rem;
    }
}

/* Homepage hero composition */
.hero {
    min-height: min(52rem, calc(100svh - var(--header-height, 5rem)));
    padding-block: clamp(4rem, 7vw, 7rem);
    background:
        radial-gradient(circle at 78% 35%, rgb(253 45 80 / 8%), transparent 26rem),
        linear-gradient(180deg, #fff 0%, #fbfbfd 100%);
}

.hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(30rem, 1.04fr);
    gap: clamp(3rem, 4vw, 4.5rem);
}

.hero__content {
    position: relative;
    z-index: 2;
}

.hero .eyebrow {
    margin-bottom: 1.5rem;
}

.hero .display-heading {
    max-width: 12.5ch;
    margin-bottom: 1.5rem;
    font-size: clamp(3.5rem, 5.4vw, 5rem);
}

.hero__summary {
    max-width: 39rem;
}

.hero__actions {
    margin-top: 2rem;
}

.hero__actions .button {
    min-height: 3.25rem;
}

.hero__capabilities {
    margin-top: clamp(2.25rem, 4vw, 3.25rem);
}

.hero__capabilities li::before {
    content: "";
    display: inline-block;
    width: 0.42rem;
    height: 0.42rem;
    margin-right: 0.6rem;
    background: var(--brand-coral);
    border-radius: 2px;
    rotate: 45deg;
    vertical-align: 0.08rem;
}

@media (max-width: 64rem) {
    .hero {
        min-height: auto;
    }

    .hero__grid {
        grid-template-columns: 1fr;
    }

    .hero__content {
        max-width: 46rem;
    }

}

@media (max-width: 48rem) {
    .hero {
        padding-block: 3.75rem 4.5rem;
    }

    .hero .display-heading {
        font-size: clamp(2.85rem, 12vw, 4rem);
    }

}

/* Homepage positioning statement */
.positioning {
    padding-block: clamp(5rem, 8vw, 8rem);
    border-top: 1px solid var(--line-light);
}

.positioning__grid {
    position: relative;
    grid-template-columns: minmax(0, 0.9fr) minmax(24rem, 1.1fr);
    align-items: center;
    gap: clamp(4rem, 9vw, 9rem);
}

.positioning__grid::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 45%;
    width: 1px;
    background: var(--line-light);
    content: "";
}

.positioning__heading {
    position: relative;
}

.positioning .section-heading {
    max-width: 14ch;
    margin-bottom: 0;
}

.positioning__intro {
    max-width: 40rem;
}

.positioning__intro .body-large {
    margin-bottom: 1.75rem;
    color: var(--text-secondary);
}

.core-capabilities .capability-ledger {
    margin-top: 0;
}

@media (max-width: 48rem) {
    .positioning {
        padding-block: 4.5rem;
    }

    .positioning__grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .positioning__grid::before {
        display: none;
    }

    .positioning__heading {
        padding-left: 0;
    }

    .positioning .section-heading {
        max-width: 13ch;
    }
}
