/* ===============================================================
   GREENFIELD.SOLAR — fixes.css
   28 numbered blocks. Never renumber, never reorder: page HTML and
   the documentation refer to these numbers. Append new blocks at
   the end only. v1.0
   =============================================================== */


/* ===============================================================
   BLOCCO 1 — Kill wpautop leftovers
   =============================================================== */

.gfs-main p:empty,
.gfs-main p:has(> br:only-child) { display: none !important; }

.gfs-main > p:first-child:empty { display: none !important; }


/* ===============================================================
   BLOCCO 2 — Parent theme neutralisation (safety net)
   Child templates bypass Accelerate, but archives, search and 404
   still run through parent templates.
   =============================================================== */

.gfs-main #secondary,
.gfs-main .sidebar,
.gfs-main .page-title-wrap,
.gfs-main .entry-meta,
.gfs-main .default-wp-page { display: none !important; }

.gfs-main #content,
.gfs-main article.post { max-width: none; float: none; width: auto; }


/* ===============================================================
   BLOCCO 3 — Wrap and band system
   Bands run edge to edge via the box-shadow trick. Never use
   100vw + negative margin: it breaks on scrollbar-visible desktops.
   =============================================================== */

.gfs-wrap {
    max-width: var(--gfs-wrap);
    margin-inline: auto;
    padding-inline: var(--gfs-gutter);
}
.gfs-wrap--narrow { max-width: var(--gfs-wrap-narrow); }

.gfs-section {
    position: relative;
    padding-block: var(--gfs-band);
    --band: transparent;
    box-shadow: -2000px 0 0 0 var(--band), 2000px 0 0 0 var(--band);
    clip-path: inset(0 -2000px);
}

.gfs-section--paper { --band: var(--gfs-paper); background: var(--gfs-paper); }
.gfs-section--field { --band: var(--gfs-field); background: var(--gfs-field); }
.gfs-section--ink   { --band: var(--gfs-ink);   background: var(--gfs-ink); color: var(--gfs-on-ink); }

.gfs-section--ink h1,
.gfs-section--ink h2,
.gfs-section--ink h3 { color: var(--gfs-white); }
.gfs-section--ink .gfs-lede,
.gfs-section--ink .gfs-note { color: var(--gfs-on-ink-soft); }
.gfs-section--ink a { color: var(--gfs-white); }

.gfs-section--tight { padding-block: calc(var(--gfs-band) * 0.55); }

/* Known trap carried over from the previous build: interactive
   components whose own background is white become unreadable inside
   an --ink band. Put FAQ, tables and forms in --field, not --ink. */


/* ===============================================================
   BLOCCO 4 — Section header
   =============================================================== */

.gfs-head { max-width: 62ch; margin-bottom: clamp(2rem, 4vw, 3rem); }
.gfs-head h2 { margin-bottom: 0.7rem; }
.gfs-head p:last-child { margin-bottom: 0; }

.gfs-head--split {
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 2.5rem;
    align-items: end;
}


/* ===============================================================
   BLOCCO 5 — Home hero
   Typographic, no stock photo overlay. The pipeline summary sits
   in the hero because it is the first thing an investor looks for.
   =============================================================== */

.gfs-hero {
    background: var(--gfs-ink);
    color: var(--gfs-on-ink);
    --band: var(--gfs-ink);
    box-shadow: -2000px 0 0 0 var(--band), 2000px 0 0 0 var(--band);
    clip-path: inset(0 -2000px);
    padding-block: clamp(3.5rem, 8vw, 7rem);
}

.gfs-hero__grid {
    display: grid;
    grid-template-columns: 1.45fr 1fr;
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
}

.gfs-hero h1 { color: var(--gfs-white); margin-bottom: 1.1rem; }
.gfs-hero p { color: var(--gfs-on-ink-soft); max-width: 54ch; }
.gfs-hero .gfs-eyebrow { color: var(--gfs-ochre); }

.gfs-hero__panel {
    border: 1px solid var(--gfs-line-dark);
    border-radius: var(--gfs-radius);
    padding: clamp(1.4rem, 3vw, 1.9rem);
    background: rgba(255, 255, 255, 0.03);
}

.gfs-hero__panel h2 {
    font-family: var(--gfs-sans);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--gfs-on-ink-soft);
    margin-bottom: 1.2rem;
}

.gfs-hero__figures { display: grid; gap: 1.35rem; }
.gfs-hero__figures .gfs-figure__value { color: var(--gfs-white); }
.gfs-hero__figures .gfs-figure__label { color: var(--gfs-on-ink-soft); }


/* ===============================================================
   BLOCCO 6 — Inner page hero + breadcrumb
   =============================================================== */

.gfs-pagehero {
    background: var(--gfs-field);
    --band: var(--gfs-field);
    box-shadow: -2000px 0 0 0 var(--band), 2000px 0 0 0 var(--band);
    clip-path: inset(0 -2000px);
    padding-block: clamp(2.5rem, 5vw, 4rem);
    border-bottom: 1px solid var(--gfs-line);
}

.gfs-breadcrumb {
    font-size: 0.82rem;
    color: var(--gfs-text-soft);
    margin-bottom: 1.1rem;
}
.gfs-breadcrumb a { color: var(--gfs-text-soft); text-decoration: none; }
.gfs-breadcrumb a:hover { color: var(--gfs-green); text-decoration: underline; }
.gfs-breadcrumb span { margin: 0 0.45rem; color: var(--gfs-line); }

.gfs-pagehero h1 { margin-bottom: 0.8rem; }
.gfs-page-title { margin-bottom: 1rem; }


/* ===============================================================
   BLOCCO 7 — Split section (text + media)
   =============================================================== */

.gfs-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}
.gfs-split--reverse .gfs-split__media { order: -1; }
.gfs-split--wide-text { grid-template-columns: 1.3fr 1fr; }

.gfs-split__media img {
    width: 100%;
    border-radius: var(--gfs-radius);
    border: 1px solid var(--gfs-line);
}
.gfs-split__body h2 { margin-top: 0; }
.gfs-split + .gfs-split { margin-top: clamp(3rem, 6vw, 5rem); }


/* ===============================================================
   BLOCCO 8 — Figure row (portfolio metrics)
   =============================================================== */

.gfs-figures {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: clamp(1.5rem, 3vw, 2.5rem);
    border-top: 1px solid var(--gfs-line);
    padding-top: 2rem;
}
.gfs-section--ink .gfs-figures { border-top-color: var(--gfs-line-dark); }
.gfs-section--ink .gfs-figure__value { color: var(--gfs-white); }
.gfs-section--ink .gfs-figure__label { color: var(--gfs-on-ink-soft); }


/* ===============================================================
   BLOCCO 9 — Pipeline table (anonymised project teasers)
   The core content object of the site. Scrolls horizontally on
   small screens instead of collapsing: investors compare rows.
   =============================================================== */

.gfs-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.gfs-pipeline {
    width: 100%;
    min-width: 720px;
    border: 1px solid var(--gfs-line);
    background: var(--gfs-white);
    font-size: 0.93rem;
}

.gfs-pipeline thead th {
    background: var(--gfs-ink);
    color: var(--gfs-on-ink);
    font-family: var(--gfs-sans);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-align: left;
    padding: 0.85rem 1rem;
    white-space: nowrap;
}

.gfs-pipeline td {
    padding: 0.95rem 1rem;
    border-top: 1px solid var(--gfs-line);
    vertical-align: middle;
}

.gfs-pipeline tbody tr:nth-child(even) { background: #FBFAF7; }

.gfs-pipeline__ref {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--gfs-ink);
}
.gfs-pipeline__mw {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.gfs-pipeline caption {
    caption-side: bottom;
    text-align: left;
    font-size: var(--gfs-small);
    color: var(--gfs-text-soft);
    padding-top: 0.9rem;
}


/* ===============================================================
   BLOCCO 10 — Card grid
   =============================================================== */

.gfs-grid {
    display: grid;
    gap: clamp(1.1rem, 2.5vw, 1.75rem);
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
}
.gfs-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gfs-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gfs-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.gfs-card--link { position: relative; }
.gfs-card--link .gfs-card__hit {
    position: absolute;
    inset: 0;
    text-indent: -9999px;
    overflow: hidden;
    z-index: 2;
}
.gfs-card--link:hover { border-color: var(--gfs-green); }


/* ===============================================================
   BLOCCO 11 — Stage timeline (development sequence)
   Numbered because the content genuinely is a sequence.
   =============================================================== */

.gfs-stages { list-style: none; margin: 0; padding: 0; counter-reset: gfsstage; }

.gfs-stages__item {
    position: relative;
    padding: 0 0 2.2rem 3.4rem;
    counter-increment: gfsstage;
}
.gfs-stages__item::before {
    content: counter(gfsstage, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: -0.15rem;
    width: 2.2rem;
    font-family: var(--gfs-serif);
    font-size: 1.05rem;
    color: var(--gfs-ochre);
    font-variant-numeric: tabular-nums;
}
.gfs-stages__item::after {
    content: "";
    position: absolute;
    left: 0.65rem;
    top: 1.5rem;
    bottom: 0.2rem;
    width: 1px;
    background: var(--gfs-line);
}
.gfs-stages__item:last-child { padding-bottom: 0; }
.gfs-stages__item:last-child::after { display: none; }
.gfs-stages__item h3 { margin-bottom: 0.35rem; }
.gfs-stages__item p:last-child { margin-bottom: 0; }

.gfs-section--ink .gfs-stages__item::after { background: var(--gfs-line-dark); }


/* ===============================================================
   BLOCCO 12 — Comparison table
   =============================================================== */

.gfs-compare {
    width: 100%;
    border: 1px solid var(--gfs-line);
    background: var(--gfs-white);
    font-size: 0.95rem;
}
.gfs-compare th,
.gfs-compare td { padding: 0.85rem 1rem; text-align: left; border-top: 1px solid var(--gfs-line); }
.gfs-compare thead th { background: var(--gfs-ink); color: var(--gfs-on-ink); border-top: 0; font-family: var(--gfs-sans); font-size: 0.82rem; }
.gfs-compare tbody th { font-weight: 600; color: var(--gfs-ink); width: 34%; }


/* ===============================================================
   BLOCCO 13 — Checklist
   =============================================================== */

.gfs-checks { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.gfs-checks li {
    position: relative;
    padding: 0 0 0.75rem 1.9rem;
    max-width: 68ch;
}
.gfs-checks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.42em;
    width: 12px;
    height: 12px;
    border: 1.5px solid var(--gfs-green);
    border-top: 0;
    border-right: 0;
    transform: rotate(-45deg);
}
.gfs-section--ink .gfs-checks li::before { border-color: var(--gfs-ochre); }


/* ===============================================================
   BLOCCO 14 — FAQ accordion (details/summary, no JS)
   =============================================================== */

.gfs-faq { border-top: 1px solid var(--gfs-line); max-width: 78ch; }

.gfs-faq__item { border-bottom: 1px solid var(--gfs-line); }

.gfs-faq__item summary {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1.5rem;
    padding: 1.1rem 0;
    cursor: pointer;
    font-family: var(--gfs-sans);
    font-size: 1.02rem;
    font-weight: 500;
    color: var(--gfs-ink);
    list-style: none;
}
.gfs-faq__item summary::-webkit-details-marker { display: none; }
.gfs-faq__item summary::after {
    content: "+";
    font-family: var(--gfs-sans);
    font-size: 1.2rem;
    color: var(--gfs-ochre);
    line-height: 1;
}
.gfs-faq__item[open] summary::after { content: "\2212"; }
.gfs-faq__item > div { padding: 0 0 1.25rem; max-width: 70ch; }
.gfs-faq__item > div p:last-child { margin-bottom: 0; }


/* ===============================================================
   BLOCCO 15 — Rich text (long-form body copy)
   =============================================================== */

.gfs-richtext h2 { margin-top: 2.5rem; }
.gfs-richtext h3 { margin-top: 2rem; }
.gfs-richtext > :first-child { margin-top: 0; }
.gfs-richtext ul, .gfs-richtext ol { max-width: 68ch; padding-left: 1.2rem; }
.gfs-richtext li { margin-bottom: 0.5rem; }
.gfs-richtext img { margin: 2rem 0; border-radius: var(--gfs-radius); }


/* ===============================================================
   BLOCCO 16 — Pull quote / manifesto
   Blockquote override is blindato: most themes paint blockquotes.
   =============================================================== */

.gfs-main blockquote.gfs-quote,
blockquote.gfs-quote,
.gfs-quote {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-left: 2px solid var(--gfs-ochre) !important;
    box-shadow: none !important;
    margin: 2.5rem 0 !important;
    padding: 0.2rem 0 0.2rem 1.75rem !important;
    color: var(--gfs-ink) !important;
    font-family: var(--gfs-serif) !important;
    font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.7rem) !important;
    font-style: normal !important;
    line-height: 1.4 !important;
    quotes: none;
}
.gfs-quote p { max-width: 46ch; margin-bottom: 0.7rem; }
.gfs-quote cite {
    display: block;
    font-family: var(--gfs-sans);
    font-size: 0.85rem;
    font-style: normal;
    color: var(--gfs-text-soft);
}
.gfs-section--ink .gfs-quote,
.gfs-section--ink blockquote.gfs-quote { color: var(--gfs-white) !important; }


/* ===============================================================
   BLOCCO 17 — CTA block
   =============================================================== */

.gfs-cta {
    background: var(--gfs-ink);
    color: var(--gfs-on-ink);
    --band: var(--gfs-ink);
    box-shadow: -2000px 0 0 0 var(--band), 2000px 0 0 0 var(--band);
    clip-path: inset(0 -2000px);
    padding-block: clamp(3rem, 6vw, 4.5rem);
}
.gfs-cta__inner {
    display: grid;
    grid-template-columns: 1.4fr auto;
    gap: 2.5rem;
    align-items: center;
}
.gfs-cta h2 { color: var(--gfs-white); margin-bottom: 0.6rem; }
.gfs-cta p { color: var(--gfs-on-ink-soft); margin-bottom: 0; }
.gfs-cta .gfs-btn-row { margin: 0; }


/* ===============================================================
   BLOCCO 18 — Counterparty / credential strip
   =============================================================== */

.gfs-strip {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    align-items: center;
    padding: 1.5rem 0;
    border-block: 1px solid var(--gfs-line);
}
.gfs-strip span { font-size: var(--gfs-small); color: var(--gfs-text-soft); }
.gfs-strip img { max-height: 34px; width: auto; opacity: 0.75; filter: grayscale(1); }


/* ===============================================================
   BLOCCO 19 — Document list (data room index)
   =============================================================== */

.gfs-doclist { list-style: none; margin: 0; padding: 0; }
.gfs-doclist__item {
    padding: 1.1rem 0;
    border-bottom: 1px solid var(--gfs-line);
}
.gfs-doclist__item:first-child { border-top: 1px solid var(--gfs-line); }
.gfs-doclist__item a {
    font-family: var(--gfs-serif);
    font-size: 1.15rem;
    text-decoration: none;
    color: var(--gfs-ink);
}
.gfs-doclist__item a:hover { color: var(--gfs-green); text-decoration: underline; }
.gfs-doclist__item p { margin: 0.3rem 0 0; font-size: var(--gfs-small); color: var(--gfs-text-soft); }
.gfs-doclist__meta {
    font-size: 0.78rem;
    color: var(--gfs-text-soft);
    font-variant-numeric: tabular-nums;
}


/* ===============================================================
   BLOCCO 20 — Map wrapper
   =============================================================== */

.gfs-map {
    position: relative;
    padding-bottom: 46%;
    height: 0;
    overflow: hidden;
    border: 1px solid var(--gfs-line);
    border-radius: var(--gfs-radius);
}
.gfs-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}


/* ===============================================================
   BLOCCO 21 — Contact grid
   Clickable boxes use the phantom-link pattern: a bare <a> over a
   <div>. Wrapping the whole box in <a> breaks the flex column.
   =============================================================== */

.gfs-contactgrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 1.25rem;
}
.gfs-contactbox {
    position: relative;
    background: var(--gfs-white);
    border: 1px solid var(--gfs-line);
    border-radius: var(--gfs-radius);
    padding: 1.5rem;
}
.gfs-contactbox:hover { border-color: var(--gfs-green); }
.gfs-contactbox__hit { position: absolute; inset: 0; text-indent: -9999px; overflow: hidden; }
.gfs-contactbox h3 { font-family: var(--gfs-sans); font-size: 0.85rem; font-weight: 600; color: var(--gfs-text-soft); margin-bottom: 0.4rem; }
.gfs-contactbox p { margin: 0; font-size: 1.05rem; color: var(--gfs-ink); }


/* ===============================================================
   BLOCCO 22 — Contact layout (form + side cards)
   =============================================================== */

.gfs-contact {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: clamp(2rem, 5vw, 3.5rem);
    align-items: start;
}
.gfs-contact__aside { display: grid; gap: 1.25rem; }


/* ===============================================================
   BLOCCO 23 — WPForms override
   =============================================================== */

.gfs-main div.wpforms-container-full { margin: 0; }

.gfs-main div.wpforms-container-full .wpforms-form .wpforms-field { padding: 0 0 1.1rem; }

.gfs-main div.wpforms-container-full .wpforms-form label.wpforms-field-label {
    font-family: var(--gfs-sans);
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--gfs-text);
    margin-bottom: 0.4rem;
}

.gfs-main div.wpforms-container-full .wpforms-form input[type=text],
.gfs-main div.wpforms-container-full .wpforms-form input[type=email],
.gfs-main div.wpforms-container-full .wpforms-form input[type=tel],
.gfs-main div.wpforms-container-full .wpforms-form select,
.gfs-main div.wpforms-container-full .wpforms-form textarea {
    width: 100%;
    max-width: 100%;
    background: var(--gfs-white);
    border: 1px solid var(--gfs-line);
    border-radius: var(--gfs-radius);
    padding: 0.7rem 0.85rem;
    font-family: var(--gfs-sans);
    font-size: 0.97rem;
    color: var(--gfs-text);
}
.gfs-main div.wpforms-container-full .wpforms-form input:focus,
.gfs-main div.wpforms-container-full .wpforms-form textarea:focus,
.gfs-main div.wpforms-container-full .wpforms-form select:focus {
    border-color: var(--gfs-green);
    outline: 2px solid rgba(35, 86, 74, 0.18);
    outline-offset: 0;
}

.gfs-main div.wpforms-container-full .wpforms-form button[type=submit] {
    background: var(--gfs-green);
    color: #fff;
    border: 0;
    border-radius: var(--gfs-radius);
    padding: 0.85rem 1.6rem;
    font-family: var(--gfs-sans);
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
}
.gfs-main div.wpforms-container-full .wpforms-form button[type=submit]:hover { background: var(--gfs-green-dark); }

.gfs-main div.wpforms-container-full .wpforms-form .wpforms-field-description,
.gfs-main div.wpforms-container-full .wpforms-form .wpforms-required-label { color: var(--gfs-text-soft); font-size: 0.82rem; }

.gfs-main div.wpforms-container-full .wpforms-form label.wpforms-error { color: var(--gfs-error); font-size: 0.82rem; }

.gfs-main div.wpforms-confirmation-container-full {
    background: var(--gfs-field);
    border: 1px solid var(--gfs-green);
    border-radius: var(--gfs-radius);
    color: var(--gfs-text);
}


/* ===============================================================
   BLOCCO 24 — Disclaimer box
   Used on any page carrying project figures. Required reading, so
   it is styled to be read, not to be skipped past.
   =============================================================== */

.gfs-disclaimer {
    border: 1px solid var(--gfs-line);
    border-left: 3px solid var(--gfs-ochre);
    background: var(--gfs-white);
    padding: 1.25rem 1.5rem;
    margin: 2.5rem 0 0;
}
.gfs-disclaimer p {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.6;
    color: var(--gfs-text-soft);
    max-width: 92ch;
}
.gfs-section--ink .gfs-disclaimer { background: transparent; border-color: var(--gfs-line-dark); }


/* ===============================================================
   BLOCCO 25 — Sticky mobile CTA
   =============================================================== */

.gfs-sticky-cta { display: none; }

@media (max-width: 720px) {
    .gfs-sticky-cta {
        display: grid;
        grid-template-columns: 1fr 1.3fr;
        position: fixed;
        left: 0; right: 0; bottom: 0;
        z-index: 120;
        border-top: 1px solid var(--gfs-line);
    }
    .gfs-sticky-cta a {
        padding: 0.95rem 0.5rem;
        text-align: center;
        font-size: 0.92rem;
        font-weight: 500;
        text-decoration: none;
        background: var(--gfs-paper);
        color: var(--gfs-ink);
    }
    .gfs-sticky-cta a.gfs-sticky-cta--primary { background: var(--gfs-green); color: #fff; }
    body.gfs-body { padding-bottom: 54px; }
}


/* ===============================================================
   BLOCCO 26 — Single post (insights)
   Kept minimal: the child single.php already renders a clean
   template, so this only guards against parent leftovers.
   =============================================================== */

body.single-post .gfs-main .entry-meta,
body.single-post .gfs-main .post-navigation,
body.single-post .gfs-main .nav-links,
body.single-post .gfs-main .edit-link { display: none !important; }

body.single-post .gfs-richtext > h1:first-child { display: none !important; }


/* ===============================================================
   BLOCCO 27 — Print
   Investors print teasers. Make it survive.
   =============================================================== */

@media print {
    .gfs-header, .gfs-sticky-cta, .gfs-cta, .gfs-nav { display: none !important; }
    .gfs-section, .gfs-hero { box-shadow: none !important; clip-path: none !important; padding-block: 1.5rem !important; }
    .gfs-hero, .gfs-section--ink, .gfs-footer { background: #fff !important; color: #000 !important; }
    .gfs-hero h1, .gfs-section--ink h2, .gfs-section--ink h3 { color: #000 !important; }
    .gfs-pipeline { min-width: 0; font-size: 0.8rem; }
    a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.75em; }
}


/* ===============================================================
   BLOCCO 28 — Responsive
   All breakpoints live here, in one place, on purpose.
   =============================================================== */

@media (max-width: 1000px) {
    .gfs-hero__grid { grid-template-columns: 1fr; }
    .gfs-hero__panel { max-width: 460px; }
    .gfs-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gfs-contact { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
    .gfs-split,
    .gfs-split--wide-text { grid-template-columns: 1fr; gap: 2rem; }
    .gfs-split--reverse .gfs-split__media { order: 0; }
    .gfs-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gfs-head--split { grid-template-columns: 1fr; gap: 1.25rem; }
    .gfs-cta__inner { grid-template-columns: 1fr; gap: 1.5rem; }
}

@media (max-width: 620px) {
    .gfs-grid--2,
    .gfs-grid--3,
    .gfs-grid--4 { grid-template-columns: 1fr; }
    .gfs-compare tbody th { width: 45%; }
    .gfs-stages__item { padding-left: 2.8rem; }
}
