/* === ground-support.css === */

@font-face {
    font-family: "Neue Haas Grotesk Text Pro";
    src: url("/dist/fonts/NHaasGroteskTXPro-Rg.ttf") format("truetype");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}

.page-gss {
    --nav-h: 75px;
    --gss-scale: 1;
    background: #f2f2f2;
    color: #000;
    font-family: "Neue Haas Grotesk Text Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.page-gss #navbar {
    opacity: 1;
    transform: none;
}
.page-gss #site-footer {
    background: #021c25;
}

/* Fluid: scale the fixed 1440 design to fill the viewport edge-to-edge */
.gss-scale {
    width: 1440px;
    margin: 0 auto;
    zoom: calc(100vw / 1440px);
}
.gss-page {
    width: 1440px;
    margin: 0 auto;
    background: #f2f2f2;
    overflow: hidden;
}
.gss-page * {
    font-family: inherit;
}

/* Figma-canvas stage: pixel-exact 1440px layout, scaled below 1440 */
.gss-stage {
    position: relative;
    left: 50%;
    width: 1440px;
    transform: translateX(-50%) scale(var(--gss-scale));
    transform-origin: top center;
}

.gss-h2 {
    margin: 0;
    color: #000;
    font-size: 60px;
    font-weight: 700;
    line-height: 60px;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.25);
}

/* ── Hero ─────────────────────────────────────────────────── */
.gss-hero {
    position: relative;
    width: 100%;
    height: 600px;
    overflow: hidden;
    background: #021c25;
}
.gss-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.gss-hero__bg--front {
    object-position: 50% 77%;
}
.gss-hero__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    opacity: 0.3;
}
.gss-hero__content {
    position: absolute;
    left: 61px;
    bottom: 127px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 953px;
    z-index: 2;
}
.gss-crumb {
    font-size: 18px;
    line-height: 16px;
    font-weight: 400;
    color: #f2f2f2;
    margin: 0;
}
.gss-crumb strong {
    font-weight: 700;
}
.gss-hero__title {
    font-size: 80px;
    line-height: 80px;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    text-shadow: 4px 4px 10px rgba(0, 0, 0, 0.25);
    margin: 0;
}
.gss-hero__swipe {
    position: absolute;
    right: max(70px, calc(50% - 650px));
    bottom: 31px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: #fff;
    font-size: 18px;
    font-weight: 400;
    line-height: 18px;
}

/* ── JV statement ─────────────────────────────────────────── */
.gss-statement {
    max-width: 1131px;
    margin: 50px auto 0;
}
.gss-statement p strong {
    font-weight: 700;
}
.gss-statement p {
    margin: 0;
    font-size: 32px;
    line-height: 40px;
    font-weight: 500;
    color: #074158;
    text-align: center;
}

/* ── Global Expertise, Local Execution ────────────────────── */
.gss-expertise {
    margin-top: 50px;
    text-align: center;
}
.gss-expertise .gss-h2 {
    text-align: center;
}
.gss-body {
    max-width: 1197px;
    margin: 35px auto 0;
    font-size: 24px;
    line-height: 32px;
    font-weight: 400;
    color: #000;
    text-align: left;
}
.gss-body p {
    margin: 0;
}
.gss-body p + p {
    margin-top: 32px;
}
.gss-body ul {
    margin: 32px 0 0;
    padding: 0;
    list-style: disc;
}
.gss-body li {
    margin-left: 36px;
    list-style: disc;
}

/* ── Capacity stat ────────────────────────────────────────── */
.gss-stats-wrap {
    height: calc(299px * var(--gss-scale));
    margin-top: 100px;
}
.gss-stats {
    height: 299px;
}
.gss-stats__logo-outer {
    position: absolute;
    left: 340px;
    top: 0;
    width: 298.67px;
    height: 298.66px;
}
.gss-stats__logo-inner {
    position: absolute;
    left: 375.86px;
    top: 35.86px;
    width: 226.95px;
    height: 226.95px;
}
.gss-stats__curve {
    position: absolute;
    left: 575.5px;
    top: 34.6px;
    width: 524px;
    height: 228px;
}
.gss-stats__over {
    position: absolute;
    left: 716px;
    top: 106px;
    width: 300px;
    margin: 0;
    font-size: 24px;
    line-height: 30px;
    font-weight: 400;
    color: #000;
    text-align: center;
}
.gss-stats__num {
    position: absolute;
    left: 703px;
    top: 138px;
    width: 327px;
    margin: 0;
    font-size: 60px;
    line-height: 60px;
    font-weight: 700;
    color: #074158;
    text-align: center;
}

/* ── Minova band ──────────────────────────────────────────── */
.gss-minova {
    position: relative;
    height: calc(441px * var(--gss-scale));
    margin-top: 100px;
    background: rgba(54, 57, 61, 0.1);
    border-radius: 10px;
    overflow: hidden;
}
.gss-minova__bg {
    position: absolute;
    left: 50%;
    top: 50%;
    width: max(100%, 1440px);
    height: auto;
    transform: translate(-50%, -50%) translateY(-56px);
    opacity: 0.1;
    pointer-events: none;
}
.gss-minova__stage {
    height: 441px;
}
.gss-minova__copy {
    position: absolute;
    left: 122px;
    top: 50%;
    transform: translateY(-50%);
    width: 1196px;
    font-size: 28px;
    line-height: 40px;
    font-weight: 400;
    color: #074158;
}
.gss-minova__copy p {
    margin: 0;
}
.gss-minova__copy p + p {
    margin-top: 40px;
}

/* ── Our Impact diagram ───────────────────────────────────── */
.gss-impact {
    position: relative;
    height: calc(609px * var(--gss-scale));
    background: #f2f2f2;
    overflow: hidden;
}
.gss-impact__pattern {
    position: absolute;
    inset: 0;
    background-image: url("/dist/images/ground-support/pattern-tile.svg");
    background-size: 43.5px 43.5px;
    background-position: -324.43px 0;
    background-repeat: repeat;
    opacity: 0.05;
    pointer-events: none;
}
.gss-impact__stage {
    height: 609px;
}
.gss-impact__diagram {
    position: absolute;
    left: 329px;
    top: 50px;
    width: 781.18px;
    height: 509.27px;
    overflow: visible;
}
.gss-impact__title {
    position: absolute;
    left: 585px;
    top: 239px;
    width: 259px;
    margin: 0;
    font-size: 60px;
    line-height: 60px;
    font-weight: 700;
    color: #000;
    text-align: center;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.25);
}
.gss-impact__label {
    position: absolute;
    margin: 0;
    font-size: 20px;
    line-height: 24px;
    font-weight: 500;
    color: #021c25;
}
.gss-impact__label--tl { left: 71px; top: 156px; width: 248px; text-align: right; }
.gss-impact__label--bl { left: 94px; top: 393px; width: 220px; text-align: right; }
.gss-impact__label--tr { left: 1120px; top: 144px; width: 220px; }
.gss-impact__label--br { left: 1120px; top: 405px; width: 220px; }

/* ── Our Products carousel ────────────────────────────────── */
.gss-products {
    position: relative;
    height: calc(565px * var(--gss-scale));
    background: #dfe0e0;
    overflow: hidden;
}
.gss-products__stage {
    height: 565px;
}
.gss-products__nav {
    position: absolute;
    left: 61px;
    top: 50px;
    display: flex;
    gap: 20px;
    z-index: 2;
}
.gss-products__arrow {
    width: 50px;
    height: 50px;
    padding: 0;
}
.gss-products__arrow img {
    width: 100%;
    height: 100%;
}
.gss-products__title {
    position: absolute;
    left: 61px;
    top: 186px;
}
.gss-products__sub {
    position: absolute;
    left: 61px;
    top: 281px;
    width: 468px;
    margin: 0;
    font-size: 20px;
    line-height: 28px;
    font-weight: 400;
    color: #000;
}
.gss-products__link {
    position: absolute;
    left: 61px;
    top: 354px;
    width: 468px;
    margin: 0;
    font-size: 20px;
    line-height: 28px;
    font-weight: 400;
    color: #000;
}
.gss-products__link a {
    display: block;
    font-size: 26px;
    line-height: 28px;
    color: #000;
    text-decoration: underline;
}
.gss-products__track {
    position: absolute;
    left: 603px;
    top: 45px;
    width: 837px;
    height: 475.95px;
    overflow: hidden;
    cursor: grab;
}
.gss-products__track:active {
    cursor: grabbing;
}
.gss-products__rail {
    display: flex;
    align-items: center;
    gap: 33px;
    width: max-content;
    height: 475.95px;
    transition: transform 0.4s ease;
    will-change: transform;
}
.gss-card {
    position: relative;
    flex: 0 0 auto;
    width: 369.94px;
    height: 421.37px;
    border-radius: 11px;
    background: #fff;
    opacity: 0.6;
    box-shadow: 4.4px 4.4px 23.6px 0 rgba(0, 0, 0, 0.2);
    overflow: hidden;
    user-select: none;
    transition: width 0.4s ease, height 0.4s ease, opacity 0.4s ease;
}
.gss-card--focus {
    width: 417.85px;
    height: 475.95px;
    opacity: 1;
    box-shadow: none;
}
.gss-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    object-position: center 40%;
    padding: 28px 28px 88px;
    -webkit-user-drag: none;
    user-drag: none;
    pointer-events: none;
}
.gss-card__plate {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 160px;
    background: linear-gradient(to bottom, rgba(26, 77, 98, 0) 0%, #1a4d62 100%);
}
.gss-card__label {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 28px;
    margin: 0;
    font-size: 20px;
    line-height: 24px;
    font-weight: 700;
    color: #f2f2f2;
    text-align: center;
    text-transform: capitalize;
    z-index: 1;
}
.gss-card__label--tight {
    line-height: 24px;
}

/* ── Demanding environments statement ─────────────────────── */
.gss-demanding {
    margin-top: 50px;
    text-align: center;
}
.gss-demanding__lead {
    max-width: 997px;
    margin: 0 auto;
    font-size: 32px;
    line-height: 40px;
    font-weight: 500;
    color: #074158;
    text-align: center;
}
.gss-demanding__copy {
    max-width: 1197px;
    margin: 35px auto 0;
    font-size: 24px;
    line-height: 32px;
    font-weight: 400;
    color: #000;
    text-align: left;
}

/* ── Certificates table ───────────────────────────────────── */
.gss-certs-wrap {
    height: calc(665px * var(--gss-scale));
    margin-top: 50px;
    margin-bottom: 100px;
}
.gss-certs {
    height: 665px;
}
.gss-certs__title {
    position: absolute;
    left: 185px;
    top: 0;
    width: 1070px;
    margin: 0;
    font-size: 40px;
    line-height: 60px;
    font-weight: 700;
    color: #074158;
    text-align: center;
}
.gss-certs__table {
    position: absolute;
    left: 145px;
    top: 80px;
    width: 1150px;
    height: 585px;
    background: rgba(7, 65, 88, 0.1);
    border-radius: 10px;
    overflow: hidden;
}
.gss-certs__head {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 50px;
    background: #074158;
}
.gss-certs__hcell {
    position: absolute;
    top: 20px;
    margin: 0;
    font-size: 18px;
    line-height: 18px;
    font-weight: 500;
    color: #f2f2f2;
}
.gss-certs__hcell--1 { left: 42px; width: 200px; }
.gss-certs__hcell--2 { left: 326px; width: 200px; }
.gss-certs__hcell--3 { left: 610px; width: 519px; }
.gss-certs__vline {
    position: absolute;
    top: 61px;
    width: 1px;
    height: 509px;
    background: rgba(0, 0, 0, 0.2);
}
.gss-certs__vline--head {
    top: 13px;
    height: 28px;
    background: rgba(242, 242, 242, 0.5);
}
.gss-certs__vline--1 { left: 284px; }
.gss-certs__vline--2 { left: 568px; }
.gss-certs__hline {
    position: absolute;
    left: 25px;
    width: 1100px;
    height: 1px;
    background: rgba(0, 0, 0, 0.2);
}
.gss-certs__row {
    position: absolute;
    left: 42px;
    width: 1087px;
}
.gss-certs__cell {
    position: absolute;
    top: 0;
    margin: 0;
    font-size: 18px;
    line-height: 21px;
    font-weight: 400;
    color: #000;
}
.gss-certs__cell--1 { left: 0; width: 200px; }
.gss-certs__cell--2 { left: 284px; width: 200px; }
.gss-certs__cell--3 { left: 568px; width: 519px; }

/* Our Impact - hover affordance */
.gss-petal, .gss-circle, .gss-impact__label, .gss-impact__title { cursor: pointer; }

/* ── Phone layout ─────────────────────────────────────────── */
@media (max-width: 767px) {
    .gss-scale { zoom: 1 !important; width: auto; }
    .gss-page { width: auto; }
    .gss-stage { left: 0; transform: none; width: auto; height: auto; overflow: visible; }
    .gss-stage img { max-width: 100%; }
    .gss-h2 { font-size: 32px; line-height: 38px; }

    /* hero */
    .gss-hero { height: 800px; }
    .gss-hero__content { left: 16px; right: 16px; bottom: 32px; gap: 10px; max-width: none; }
    .gss-crumb { font-size: 13px; line-height: 15px; }
    .gss-hero__title { font-size: 40px; line-height: 42px; }
    .gss-hero__swipe { right: 16px; bottom: 20px; font-size: 14px; line-height: 14px; }

    /* JV statement */
    .gss-statement { max-width: none; margin: 32px 16px 0; }
    .gss-statement p { font-size: 20px; line-height: 28px; }

    /* expertise */
    .gss-expertise { margin-top: 32px; }
    .gss-body { max-width: none; margin: 16px 16px 0; font-size: 16px; line-height: 24px; }
    .gss-body p + p { margin-top: 16px; }
    .gss-body ul { margin-top: 16px; }
    .gss-body li { margin-left: 20px; }

    /* capacity stat — emblem above, figure below */
    .gss-stats-wrap { height: auto; margin-top: 40px; }
    .gss-stats { height: auto; }
    .gss-stats__logo-outer { position: relative; left: 0; top: 0; display: block; width: 180px; height: 180px; margin: 0 auto; }
    .gss-stats__logo-inner {
        position: relative; left: 0; top: 0; display: block;
        width: 136.8px; height: 136.8px;
        margin: -158.4px auto 50px;         /* overlays the centre of the outer ring; extra gap before the stats */
    }
    .gss-stats__curve { display: none; }      /* 524px-wide connector art */
    .gss-stats__over,
    .gss-stats__num { position: relative; left: 0; top: 0; width: auto; margin: 0 16px; }
    .gss-stats__over { margin-top: 18px; font-size: 18px; line-height: 22px; }
    .gss-stats__num { margin-top: 6px; font-size: 44px; line-height: 48px; }

    /* Minova band */
    .gss-minova { height: auto; margin-top: 40px; }
    /* cover the whole section with the bg photo (the fixed 1440px-wide image left plain bands) */
    .gss-minova__bg {
        left: 0; top: 0;
        width: 100%; height: 100%;
        transform: none;
        object-fit: cover;
    }
    .gss-minova__stage { height: auto; }
    .gss-minova__copy {
        position: relative; left: 0; top: 0; transform: none;
        width: auto; padding: 28px 16px;
        font-size: 16px; line-height: 24px;
    }
    .gss-minova__copy p + p { margin-top: 16px; }

    /* Our Impact — diagram scales to the viewport, labels stack below */
    .gss-impact { height: auto; padding: 32px 0 36px; }
    .gss-impact__stage { height: auto; }
    .gss-impact__diagram {
        position: relative; left: 0; top: 0; display: block;
        width: calc(100% - 32px); height: auto; margin: 0 auto;
    }
    .gss-impact__title {
        left: 0; right: 0; width: auto;
        top: calc((100vw - 32px) * 0.3281 - 11px);   /* circle centre of the scaled svg */
        font-size: 20px; line-height: 22px;
    }
    .gss-impact__label {
        position: relative; left: 0; top: 0; width: auto;
        margin: 14px 16px 0; font-size: 16px; line-height: 22px; text-align: left;
        display: grid; grid-template-columns: 10px minmax(0, 1fr); column-gap: 10px; align-items: start;
    }
    .gss-impact__label::before {
        content: "•";
        width: auto; height: auto;
        color: #021c25;
        font-size: 16px;
        line-height: 22px;
    }
    .gss-impact__label--tl { margin-top: 24px; }

    /* products carousel — same JS geometry, shrunk to phone width */
    .gss-products { height: auto; padding: 32px 0 40px; }
    .gss-products__stage { height: auto; }
    .gss-products__nav { position: relative; left: 0; top: 0; margin: 0 16px; }
    .gss-products__title { position: relative; left: 0; top: 0; margin: 24px 16px 0; }
    .gss-products__sub { position: relative; left: 0; top: 0; width: auto; margin: 12px 16px 0; font-size: 16px; line-height: 24px; }
    .gss-products__link { position: relative; left: 0; top: 0; width: auto; margin: 14px 16px 0; font-size: 16px; line-height: 24px; }
    .gss-products__link a { font-size: 16px; line-height: 24px; overflow-wrap: break-word; }
    .gss-products__track {
        position: relative; left: 0; top: 0;
        width: auto; margin: 24px 16px 0;
        zoom: 0.78;                            /* ponytail: fixed zoom tuned for 360-430px phones; JS steps stay in unzoomed px */
    }

    /* demanding statement */
    .gss-demanding { margin-top: 32px; }
    .gss-demanding__lead { max-width: none; margin: 0 16px; font-size: 20px; line-height: 28px; }
    .gss-demanding__copy { max-width: none; margin: 16px 16px 0; font-size: 16px; line-height: 24px; }

    /* certificates — three columns stack inside each row */
    .gss-certs-wrap { height: auto; margin: 40px 0 60px; }
    .gss-certs { height: auto; }
    .gss-certs__title { position: relative; left: 0; top: 0; width: auto; margin: 0 16px; font-size: 24px; line-height: 32px; }
    .gss-certs__table { position: relative; left: 0; top: 0; width: auto; height: auto; margin: 20px 16px 0; padding-bottom: 4px; }
    /* The rows stack on phone (one cell per line), so a three-column header sitting above
       them lines up with nothing — it read as a broken table. Drop it and let each row
       carry its own hierarchy: name, then standard, then description. */
    .gss-certs__head { display: none; }
    .gss-certs__cell--1 { font-weight: 700; }
    .gss-certs__cell--2 { color: #4f6068; }
    .gss-certs__vline, .gss-certs__hline { display: none; }   /* hairlines drawn for the 1150px grid */
    .gss-certs__row { position: relative; top: 0 !important; left: 0; width: auto; padding: 14px 16px; }
    .gss-certs__row + .gss-certs__row { border-top: 1px solid rgba(0, 0, 0, 0.2); }
    .gss-certs__cell { position: static; width: auto; font-size: 15px; line-height: 21px; }
    .gss-certs__cell + .gss-certs__cell { margin-top: 6px; }
}

/* ── Full-bleed hero past the 16" cap ─────────────────────────────────────
   Relative/flow hero: widen it and pull it left to span the viewport; the
   inset:0 bg fills automatically, text shifts into the centred column. */
@media (min-width: 1729px) {
    /* .gss-page (not .gss-stage) carries overflow:hidden and was clipping the
       full-bleed banner back to the centred width. */
    .gss-page, .gss-stage { overflow: visible; }
    .gss-hero { width: var(--bleed-w); margin-left: var(--bleed-left); }
    .gss-hero__content { left: calc(61px + var(--bleed-shift)); }
    .gss-minova,
    .gss-impact,
    .gss-products {
        width: var(--bleed-w);
        margin-left: var(--bleed-left);
        margin-right: 0;
    }
    .gss-minova { border-radius: 0; }
    .gss-products__track { width: calc(var(--bleed-w) - 603px); }
}
