/* Founder vision feature */
.fg-founder-portrait { position: relative; max-width: 440px; margin: 0 auto; padding: 0 1.25rem 1.25rem 0; }
.fg-founder-portrait__frame { position: absolute; inset: 1.25rem 0 0 1.25rem; border: 2px solid var(--fg-green, #b8d83d); border-radius: 1.5rem; opacity: .7; }
.fg-founder-portrait img { position: relative; display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 1.5rem; box-shadow: 0 1.5rem 3rem rgba(10, 35, 58, .18); }
.fg-founder-portrait__badge { position: absolute; right: 0; bottom: 2rem; display: flex; align-items: center; gap: .7rem; padding: .9rem 1.1rem; color: #fff; background: var(--fg-navy, #092b49); border-radius: .85rem; box-shadow: 0 .75rem 1.5rem rgba(10, 35, 58, .2); font-size: .8rem; font-weight: 600; line-height: 1.35; }
.fg-founder-portrait__badge i { color: var(--fg-green, #b8d83d); font-size: 1.1rem; }
.fg-founder-signature { display: flex; align-items: center; gap: .75rem; margin-top: 1.5rem; color: var(--fg-navy, #092b49); font-size: .85rem; font-weight: 700; }
.fg-founder-signature__line { width: 2.5rem; height: 2px; background: var(--fg-green, #b8d83d); }

/* =========================================================================
   FINGROW CONSULTANCY SERVICES â€” MASTER STYLESHEET
   Author : Senior Frontend Team
   Stack  : Bootstrap 5.3 + Custom Design System
   Notes  : Single source of truth for all pages (Home, About, Services,
            Government Schemes, Blog, Contact). Organised into clearly
            commented sections. Built on a full CSS variable token system
            so future pages never need new base rules â€” only new content.
   ========================================================================= */


/* =========================================================================
   1. ROOT VARIABLES â€” DESIGN TOKENS
   ========================================================================= */
:root {

    /* ---- Brand Colors ---- */
    --fg-navy: #071B3B;
    --fg-navy-rgb: 7, 27, 59;
    --fg-navy-light: #10294F;
    --fg-navy-dark: #050F22;

    --fg-green: #16B34A;
    --fg-green-rgb: 22, 179, 74;
    --fg-green-dark: #109A3E;
    --fg-green-light: #E6F8ED;

    --fg-blue: #1E5EFF;
    --fg-blue-rgb: 30, 94, 255;
    --fg-blue-dark: #164ACC;
    --fg-blue-light: #EAF0FF;

    --fg-bg: #F8FAFC;
    --fg-white: #FFFFFF;
    --fg-dark: #111827;
    --fg-gray: #6B7280;
    --fg-gray-light: #9CA3AF;
    --fg-border: #E5E9F0;

    /* ---- Gradients ---- */
    --fg-gradient-navy: linear-gradient(135deg, #071B3B 0%, #10294F 60%, #14315E 100%);
    --fg-gradient-green: linear-gradient(135deg, #16B34A 0%, #0E9A3D 100%);
    --fg-gradient-blue: linear-gradient(135deg, #1E5EFF 0%, #164ACC 100%);
    --fg-gradient-accent: linear-gradient(120deg, #16B34A 0%, #1E5EFF 100%);

    /* ---- Typography ---- */
    --fg-font-primary: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fg-fw-light: 300;
    --fg-fw-regular: 400;
    --fg-fw-medium: 500;
    --fg-fw-semibold: 600;
    --fg-fw-bold: 700;
    --fg-fw-extrabold: 800;

    --fg-fs-h1: clamp(2.4rem, 4vw, 3.75rem);
    --fg-fs-h2: clamp(2rem, 3vw, 2.75rem);
    --fg-fs-h3: clamp(1.5rem, 2.2vw, 2rem);
    --fg-fs-h4: 1.375rem;
    --fg-fs-h5: 1.125rem;
    --fg-fs-h6: 1rem;
    --fg-fs-body: 1rem;
    --fg-fs-sm: 0.875rem;
    --fg-fs-xs: 0.75rem;
    --fg-fs-lead: 1.15rem;

    /* ---- Spacing System ---- */
    --fg-space-1: 4px;
    --fg-space-2: 8px;
    --fg-space-3: 12px;
    --fg-space-4: 16px;
    --fg-space-5: 20px;
    --fg-space-6: 24px;
    --fg-space-7: 32px;
    --fg-space-8: 48px;
    --fg-space-9: 64px;
    --fg-space-10: 80px;
    --fg-space-11: 120px;

    /* ---- Border Radius ---- */
    --fg-radius-sm: 8px;
    --fg-radius-md: 12px;
    --fg-radius-lg: 16px;
    --fg-radius-xl: 20px;
    --fg-radius-2xl: 24px;
    --fg-radius-3xl: 30px;
    --fg-radius-pill: 999px;

    /* ---- Shadow System ---- */
    --fg-shadow-sm: 0 2px 8px rgba(7, 27, 59, 0.06);
    --fg-shadow-md: 0 8px 24px rgba(7, 27, 59, 0.08);
    --fg-shadow-lg: 0 16px 40px rgba(7, 27, 59, 0.12);
    --fg-shadow-xl: 0 24px 64px rgba(7, 27, 59, 0.16);
    --fg-shadow-green: 0 12px 28px rgba(22, 179, 74, 0.25);
    --fg-shadow-blue: 0 12px 28px rgba(30, 94, 255, 0.25);

    /* ---- Transitions ---- */
    --fg-transition-fast: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --fg-transition-medium: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    --fg-transition-slow: 0.6s cubic-bezier(0.4, 0, 0.2, 1);

    /* ---- Z-Index Scale ---- */
    --fg-z-dropdown: 1000;
    --fg-z-sticky: 1020;
    --fg-z-overlay: 1040;
    --fg-z-mobile-menu: 1050;
    --fg-z-loader: 1090;
    --fg-z-toast: 1100;
    --fg-z-back-to-top: 1030;

    /* ---- Container Width ---- */
    --fg-container-max: 1280px;
}

/* Editorial polish: calmer rhythm, stronger hierarchy, and more intentional typography. */
body { letter-spacing: -0.005em; }
.fg-section-title { max-width: 18ch; text-wrap: balance; letter-spacing: -0.035em; }
.fg-section-subtitle, .fg-lead { max-width: 62ch; }
.fg-eyebrow { letter-spacing: .14em; }
.fg-service-card, .fg-contact-card, .fg-contact-info-card { border-color: rgba(7, 27, 59, .10); }
img { image-rendering: auto; }
@media (max-width: 767.98px) {
    .fg-section-title { max-width: none; }
    .fg-section { padding-block: 4rem; }
}

/* =====================================================================
   Editorial pages â€” bespoke agency treatment
===================================================================== */
.fg-editorial-page { --ed-ink:#071b3b; --ed-muted:#667085; --ed-paper:#f8f7f3; --ed-line:rgba(7,27,59,.14); background:var(--ed-paper); }
.fg-editorial-hero { padding: clamp(7rem,14vw,12rem) 0 clamp(4rem,8vw,7rem); position:relative; overflow:hidden; }
.fg-editorial-hero--light { background:#f8f7f3; color:var(--ed-ink); }
.fg-editorial-hero--dark { background:var(--ed-ink); color:#fff; }
.fg-editorial-hero--dark h1,.fg-editorial-hero--dark .fg-editorial-hero__intro { color:#fff; }
.fg-editorial-hero h1 em { color:var(--fg-green); font-style:normal; }
.fg-editorial-hero__kicker { display:flex; gap:1rem; align-items:center; margin-bottom:clamp(3rem,8vw,7rem); color:var(--fg-green); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.fg-editorial-hero__intro { color:var(--ed-muted); font-size:1.05rem; line-height:1.7; max-width:27rem; margin-bottom:1.5rem; }
.fg-editorial-hero__rule { height:1px; background:currentColor; opacity:.2; margin-top:clamp(3rem,8vw,7rem); }
.fg-editorial-section { padding:clamp(5.5rem,10vw,10rem) 0; }
.fg-editorial-section--paper { background:var(--ed-paper); }
.fg-editorial-section--soft { background:#eef1ed; }
.fg-editorial-section--navy { background:var(--ed-ink); color:#fff; }
.fg-editorial-section h2,.fg-editorial-cta h2 { font-size:clamp(2.6rem,5vw,5.6rem); line-height:.98; letter-spacing:-.065em; max-width:12ch; }
.fg-editorial-section--navy h2,.fg-light-copy p { color:#fff; }
.fg-overline { display:block; color:var(--fg-green-dark); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; margin-bottom:1.25rem; }
.fg-editorial-section--navy .fg-overline,.fg-editorial-cta .fg-overline { color:var(--fg-green); }
.fg-copy-large { font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.5; color:var(--ed-ink); }
.fg-editorial-image { overflow:hidden; border-radius:2rem; box-shadow:0 2rem 5rem rgba(7,27,59,.14); }
.fg-editorial-image img { width:100%; aspect-ratio:1.2; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.fg-editorial-image:hover img { transform:scale(1.035); }
.fg-stat-line { display:flex; align-items:center; gap:1rem; border-top:1px solid var(--ed-line); margin-top:2rem; padding-top:1.25rem; color:var(--ed-muted); font-size:.8rem; }
.fg-stat-line strong { color:var(--ed-ink); font-size:2.3rem; letter-spacing:-.06em; }
.fg-signature-mark { display:flex; align-items:center; gap:.8rem; color:var(--fg-green); font-size:.8rem; font-weight:600; margin-top:2rem; }
.fg-signature-mark span { width:2.5rem; height:2px; background:var(--fg-green); }
.fg-section-intro { max-width:46rem; margin-bottom:4rem; }
.fg-section-intro p { max-width:36rem; font-size:1.05rem; }
.fg-timeline { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--ed-line); }
.fg-timeline > div { padding:1.5rem 1.5rem 0 0; border-right:1px solid var(--ed-line); margin-right:1.5rem; }
.fg-timeline > div:last-child { border:0; }
.fg-timeline span,.fg-value-grid span,.fg-step-list > div > span { color:var(--fg-green-dark); font-size:.7rem; font-weight:700; letter-spacing:.12em; }
.fg-timeline strong { display:block; font-size:1.25rem; color:var(--ed-ink); margin:2.5rem 0 .5rem; }
.fg-methodology { position:relative; border-top:0; gap:1rem; }
.fg-methodology::before { content:""; position:absolute; top:1.85rem; left:1.25rem; right:1.25rem; height:1px; background:linear-gradient(90deg,var(--fg-green),rgba(16,154,62,.15)); }
.fg-methodology > div { position:relative; z-index:1; margin:0; padding:0 1.25rem 0 0; border:0; }
.fg-methodology > div:last-child { padding-right:0; }
.fg-methodology span { display:grid; place-items:center; width:2.5rem; height:2.5rem; border:1px solid var(--fg-green); border-radius:50%; background:var(--ed-paper); color:var(--fg-green-dark); }
.fg-methodology > div:nth-child(3) span, .fg-methodology > div:nth-child(4) span { background:var(--fg-navy); color:var(--fg-green); }
.fg-methodology strong { margin:1.5rem 0 .55rem; }
.fg-methodology p { max-width:20rem; font-size:.88rem; line-height:1.65; }
@media (max-width:767.98px) { .fg-methodology { gap:0; } .fg-methodology::before { top:1.25rem; bottom:1.25rem; left:1.25rem; right:auto; width:1px; height:auto; background:linear-gradient(180deg,var(--fg-green),rgba(16,154,62,.15)); } .fg-methodology > div, .fg-methodology > div:last-child { display:grid; grid-template-columns:2.5rem 1fr; column-gap:1rem; padding:0 0 1.75rem; } .fg-methodology > div:last-child { padding-bottom:0; } .fg-methodology span { grid-row:span 2; } .fg-methodology strong { margin:.15rem 0 .4rem; } .fg-methodology p { max-width:none; } }

/* Connected work-process visual for the four high-level methodology stages. */
.fg-methodology {
    isolation: isolate;
    padding: 1.5rem 0 .5rem;
}
.fg-methodology::before {
    top: 3.5rem;
    left: 2.75rem;
    right: 2.75rem;
    width: auto;
    height: 2px;
    background: linear-gradient(90deg, var(--fg-green), rgba(16,154,62,.2));
    z-index: -1;
}
.fg-methodology > div {
    min-width: 0;
    padding: 0 1.25rem 1.25rem 0;
}
.fg-methodology > div:not(:last-child)::after {
    content: "â†’";
    position: absolute;
    top: 2.78rem;
    right: -.35rem;
    color: var(--fg-green-dark);
    font-size: 1.15rem;
    font-weight: 700;
    background: var(--ed-paper);
    padding: 0 .2rem;
}
.fg-methodology span {
    width: 4rem;
    height: 4rem;
    border: 5px solid var(--ed-paper);
    outline: 1px solid var(--fg-green);
    box-shadow: 0 0 0 5px rgba(22,179,74,.08);
    font-size: .8rem;
    font-weight: 800;
}
.fg-methodology > div:nth-child(3) span,
.fg-methodology > div:nth-child(4) span {
    background: var(--fg-navy);
    color: var(--fg-green-light);
}
.fg-methodology strong {
    font-size: clamp(1rem, 1.35vw, 1.25rem);
    letter-spacing: -.02em;
}
.fg-methodology p {
    max-width: 22rem;
    margin-bottom: 0;
}
@media (max-width: 767.98px) {
    .fg-methodology { padding: .5rem 0 0; }
    .fg-methodology::before { top: 2rem; bottom: 2rem; left: 2rem; right: auto; width: 2px; height: auto; }
    .fg-methodology > div,
    .fg-methodology > div:last-child {
        grid-template-columns: 4rem minmax(0,1fr);
        column-gap: 1rem;
        padding: 0 0 2rem;
    }
    .fg-methodology > div:not(:last-child)::after { display: none; }
    .fg-methodology span { width: 4rem; height: 4rem; }
}

/* Desktop orbit view: the four stages surround one central FinGrow hub. */
@media (min-width: 992px) {
    .fg-methodology {
        max-width: 1040px;
        min-height: 30rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(2, minmax(12rem, auto));
        gap: 2.5rem 5rem;
        padding: 2rem 3rem;
        margin-inline: auto;
    }
    .fg-methodology::before {
        inset: 4rem 8rem;
        width: auto;
        height: auto;
        border: 2px dashed rgba(22,179,74,.42);
        border-radius: 50%;
        background: radial-gradient(circle, rgba(22,179,74,.08) 0 25%, transparent 25.5% 100%);
        box-shadow: 0 0 0 1rem rgba(22,179,74,.035), inset 0 0 2rem rgba(22,179,74,.06);
        animation: fg-orbit-pulse 5s ease-in-out infinite;
    }
    .fg-methodology::after {
        content: "FinGrow\A work process";
        white-space: pre;
        position: absolute;
        inset: 50% auto auto 50%;
        transform: translate(-50%, -50%);
        display: grid;
        place-items: center;
        width: 8.5rem;
        height: 8.5rem;
        border: 1px solid rgba(22,179,74,.55);
        border-radius: 50%;
        background: var(--fg-navy);
        color: var(--fg-green-light);
        text-align: center;
        font-size: .78rem;
        font-weight: 700;
        line-height: 1.35;
        letter-spacing: .08em;
        text-transform: uppercase;
        box-shadow: 0 0 0 10px rgba(22,179,74,.08), 0 1rem 2rem rgba(7,27,59,.12);
        z-index: 0;
    }
    .fg-methodology > div {
        padding: 1.15rem 1.25rem 1.25rem;
        border: 1px solid rgba(7,27,59,.08);
        border-radius: 1.25rem;
        background: rgba(255,255,255,.88);
        box-shadow: 0 .75rem 1.5rem rgba(7,27,59,.07);
        transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
        z-index: 1;
    }
    .fg-methodology > div:hover {
        transform: translateY(-.45rem);
        border-color: rgba(22,179,74,.4);
        box-shadow: 0 1rem 2rem rgba(7,27,59,.12);
    }
    .fg-methodology > div:nth-child(2),
    .fg-methodology > div:nth-child(4) { text-align: right; }
    .fg-methodology > div:nth-child(2) p,
    .fg-methodology > div:nth-child(4) p { margin-left: auto; }
    .fg-methodology > div:not(:last-child)::after { display: none; }
    .fg-methodology span {
        margin-bottom: .75rem;
        box-shadow: 0 0 0 5px var(--ed-paper), 0 0 0 7px rgba(22,179,74,.3), 0 .5rem 1rem rgba(7,27,59,.12);
    }
    .fg-methodology > div:nth-child(2) span,
    .fg-methodology > div:nth-child(4) span { margin-left: auto; }
}

@keyframes fg-orbit-pulse {
    0%, 100% { transform: scale(1); opacity: .82; }
    50% { transform: scale(1.015); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .fg-methodology::before { animation: none; }
}
.fg-value-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--ed-line); }
.fg-value-grid article { background:#eef1ed; padding:1.5rem; min-height:12rem; }
.fg-value-grid h3 { margin-top:2rem; }
.fg-service-list { border-top:1px solid var(--ed-line); }
.fg-service-row { display:grid; grid-template-columns:3rem 3rem 1fr 3rem; gap:1.5rem; align-items:center; border-bottom:1px solid var(--ed-line); padding:2rem 0; transition:padding .35s ease, background .35s ease; }
.fg-service-row:hover { padding-inline:1.25rem; background:#fff; }
.fg-service-row__number { color:var(--fg-green-dark); font-size:.75rem; font-weight:700; }
.fg-service-row__icon { width:2.75rem; height:2.75rem; display:grid; place-items:center; border:1px solid var(--ed-line); border-radius:50%; color:var(--ed-ink); }
.fg-service-row h3 { margin:0 0 .35rem; font-size:clamp(1.3rem,2vw,2rem); }
.fg-service-row p { margin:0; max-width:38rem; }
.fg-circle-link { width:2.75rem; height:2.75rem; border:1px solid var(--ed-line); border-radius:50%; display:grid; place-items:center; color:var(--ed-ink); transition:.3s ease; }
.fg-circle-link:hover { background:var(--ed-ink); color:#fff; transform:rotate(45deg); }
.fg-step-list { border-top:1px solid var(--ed-line); }
.fg-step-list > div { display:grid; grid-template-columns:3rem 1fr; gap:1.25rem; padding:1.5rem 0; border-bottom:1px solid var(--ed-line); }
.fg-step-list h3 { margin:0 0 .35rem; font-size:1.25rem; }
.fg-step-list p { margin:0; }
.fg-trust-panel { border:1px solid rgba(255,255,255,.2); padding:clamp(2rem,6vw,5rem); border-radius:2rem; background:linear-gradient(135deg,rgba(255,255,255,.06),transparent); }
.fg-trust-panel h2 { color:#fff; }
.fg-trust-points { display:flex; flex-wrap:wrap; gap:.7rem; margin:2rem 0; }
.fg-trust-points span { border:1px solid rgba(255,255,255,.2); border-radius:99px; color:rgba(255,255,255,.8); padding:.7rem 1rem; font-size:.8rem; }
.fg-plan-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.fg-plan-card { position:relative; border:1px solid var(--ed-line); border-radius:1.5rem; padding:2rem; min-height:27rem; display:flex; flex-direction:column; background:#f8f7f3; transition:transform .35s ease, box-shadow .35s ease, background .35s ease; }
.fg-plan-card:hover { transform:translateY(-8px); box-shadow:0 1.5rem 3rem rgba(7,27,59,.22); background:var(--ed-ink); border-color:var(--ed-ink); color:#fff; }
.fg-plan-card:hover h3,.fg-plan-card:hover p,.fg-plan-card:hover li { color:#fff; }
.fg-plan-card:hover .fg-plan-card__top,.fg-plan-card:hover .fg-text-link { color:var(--fg-green); }
.fg-plan-card:hover .fg-plan-card__badge { color:#b8d83d; }
.fg-plan-card:hover li i { color:#b8d83d; }
.fg-plan-card--featured { background:var(--ed-ink); color:#fff; border-color:var(--ed-ink); transform:translateY(-1rem); }
.fg-plan-card--featured:hover { transform:translateY(calc(-1rem - 8px)); }
.fg-plan-card--featured h3,.fg-plan-card--featured p { color:#fff; }
.fg-plan-card__badge { position:absolute; top:1.25rem; right:1.25rem; color:var(--fg-green); font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.fg-plan-card__top { display:flex; justify-content:space-between; color:var(--fg-green-dark); font-size:1.4rem; }
.fg-plan-card--featured .fg-plan-card__top { color:var(--fg-green); }
.fg-plan-card h3 { margin-top:4rem; font-size:1.5rem; }
.fg-plan-card ul { list-style:none; padding:0; margin:1.5rem 0; }
.fg-plan-card li { padding:.45rem 0; color:var(--ed-muted); font-size:.85rem; }
.fg-plan-card--featured li { color:rgba(255,255,255,.75); }
.fg-plan-card li i { color:var(--fg-green); margin-right:.5rem; }
.fg-plan-card .fg-text-link { margin-top:auto; }
.fg-text-link { color:var(--ed-ink); font-size:.82rem; font-weight:700; text-decoration:none; display:inline-flex; gap:.65rem; align-items:center; }
.fg-text-link:hover { color:var(--fg-green-dark); }
.fg-editorial-hero--dark .fg-text-link,.fg-editorial-section--navy .fg-text-link { color:#fff; }
.fg-editorial-cta { background:var(--fg-green); color:var(--ed-ink); padding:clamp(5rem,10vw,9rem) 0; }
.fg-editorial-cta h2 { margin-bottom:2.5rem; }
@media (max-width: 991.98px) { .fg-timeline { grid-template-columns:repeat(2,1fr); gap:2rem 0; } .fg-timeline > div:nth-child(2) { border-right:0; } .fg-plan-card--featured { transform:none; } .fg-plan-card--featured:hover { transform:translateY(-8px); } }
@media (max-width: 767.98px) { .fg-editorial-section h2,.fg-editorial-cta h2 { font-size:clamp(2.7rem,12vw,4rem); } .fg-timeline,.fg-plan-grid { grid-template-columns:1fr; } .fg-timeline > div { border-right:0; border-bottom:1px solid var(--ed-line); padding-bottom:1.5rem; margin-right:0; } .fg-value-grid { grid-template-columns:1fr; } .fg-service-row { grid-template-columns:2rem 2.5rem 1fr; gap:.75rem; } .fg-service-row .fg-circle-link { grid-column:3; } .fg-service-row:hover { padding-inline:.5rem; } }
@media (prefers-reduced-motion: reduce) { .fg-editorial-image img,.fg-service-row,.fg-plan-card,.fg-circle-link { transition:none; } }

/* Lightweight interaction polish: tactile without adding visual noise. */
.fg-card, .fg-service-card, .fg-contact-card, .fg-contact-info-card,
.fg-blog-card, .fg-scheme-card, .fg-glass-card {
    transition: transform var(--fg-transition-medium), box-shadow var(--fg-transition-medium), border-color var(--fg-transition-fast);
}
.fg-card:hover, .fg-service-card:hover, .fg-blog-card:hover, .fg-scheme-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--fg-shadow-lg);
    border-color: rgba(7, 27, 59, .18);
}
.fg-contact-card:hover, .fg-contact-info-card:hover, .fg-glass-card:hover {
    box-shadow: var(--fg-shadow-md);
    border-color: rgba(7, 27, 59, .16);
}
.fg-card img, .fg-service-card img, .fg-blog-card img, .fg-scheme-card img {
    transition: transform var(--fg-transition-medium);
}
.fg-card:hover img, .fg-service-card:hover img, .fg-blog-card:hover img, .fg-scheme-card:hover img { transform: scale(1.025); }
.fg-text-link, .fg-breadcrumb a, .fg-footer a { transition: color var(--fg-transition-fast), gap var(--fg-transition-fast); }
.fg-text-link:hover { gap: .65rem; }
.fg-form-control { transform: translateZ(0); }
.fg-form-control:focus { transform: translateY(-1px); }
.fg-empty-state { padding: 1.25rem 1.5rem; border: 1px dashed rgba(7,27,59,.2); border-radius: 1rem; color: var(--fg-muted, #64748b); background: rgba(7,27,59,.025); }
.fg-empty-state a { color: var(--fg-navy); font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }

/* Keep Blog and Contact aligned with the same dark, editorial page-banner system. */
.fg-breadcrumb-section.fg-page-hero--blog,
.fg-breadcrumb-section.fg-page-hero--contact,
.fg-breadcrumb-section.fg-page-hero--article {
    background: var(--fg-gradient-navy);
    color: var(--fg-white);
}
.fg-breadcrumb-section.fg-page-hero--blog .fg-breadcrumb-section__title,
.fg-breadcrumb-section.fg-page-hero--contact .fg-breadcrumb-section__title,
.fg-breadcrumb-section.fg-page-hero--article .fg-breadcrumb-section__title { color: var(--fg-white); }
.fg-breadcrumb-section.fg-page-hero--blog .fg-page-hero__subtitle,
.fg-breadcrumb-section.fg-page-hero--contact .fg-page-hero__subtitle,
.fg-breadcrumb-section.fg-page-hero--article .fg-page-hero__subtitle { color: rgba(255,255,255,.72); }
.fg-breadcrumb-section.fg-page-hero--blog .fg-breadcrumb a,
.fg-breadcrumb-section.fg-page-hero--contact .fg-breadcrumb a,
.fg-breadcrumb-section.fg-page-hero--article .fg-breadcrumb a { color: rgba(255,255,255,.78); }
.fg-breadcrumb-section.fg-page-hero--blog::after,
.fg-breadcrumb-section.fg-page-hero--contact::after,
.fg-breadcrumb-section.fg-page-hero--article::after {
    content: "";
    position: absolute;
    width: clamp(14rem, 28vw, 26rem);
    height: clamp(14rem, 28vw, 26rem);
    right: -8rem;
    bottom: -14rem;
    border: 1px solid rgba(22,179,74,.35);
    border-radius: 50%;
    box-shadow: 0 0 0 3rem rgba(22,179,74,.06), 0 0 0 7rem rgba(22,179,74,.03);
    pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
    .fg-card, .fg-service-card, .fg-contact-card, .fg-contact-info-card, .fg-blog-card, .fg-scheme-card, .fg-glass-card,
    .fg-card img, .fg-service-card img, .fg-blog-card img, .fg-scheme-card img, .fg-form-control { transition: none; transform: none; }
}

/* FINAL PAGE BANNER OVERRIDES â€” keep all inner-page headers visually consistent. */
.fg-breadcrumb-section.fg-page-hero--blog,
.fg-breadcrumb-section.fg-page-hero--contact,
.fg-breadcrumb-section.fg-page-hero--article {
    background: var(--fg-gradient-navy) !important;
    color: var(--fg-white) !important;
}
.fg-breadcrumb-section.fg-page-hero--blog .fg-breadcrumb-section__title,
.fg-breadcrumb-section.fg-page-hero--contact .fg-breadcrumb-section__title,
.fg-breadcrumb-section.fg-page-hero--article .fg-breadcrumb-section__title,
.fg-breadcrumb-section.fg-page-hero--blog .fg-page-hero__subtitle,
.fg-breadcrumb-section.fg-page-hero--contact .fg-page-hero__subtitle,
.fg-breadcrumb-section.fg-page-hero--article .fg-page-hero__subtitle { color: inherit !important; }
.fg-breadcrumb-section.fg-page-hero--blog .fg-breadcrumb a,
.fg-breadcrumb-section.fg-page-hero--contact .fg-breadcrumb a,
.fg-breadcrumb-section.fg-page-hero--article .fg-breadcrumb a { color: rgba(255,255,255,.8) !important; }

/* Unified hero geometry and balanced navigation. */
.fg-hero, .fg-editorial-hero, .fg-breadcrumb-section { min-height: 620px; box-sizing: border-box; }
.fg-hero, .fg-editorial-hero, .fg-breadcrumb-section { padding-block: 120px; }
.fg-hero > .container, .fg-editorial-hero > .container, .fg-breadcrumb-section > .container { width: 100%; }
.fg-navbar__inner { min-height: 76px; align-items: center; }
.fg-nav-menu { align-items: stretch; gap: clamp(1rem, 1.8vw, 2rem); }
.fg-nav-item { display: flex; align-items: stretch; }
.fg-nav-link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; text-align: center; }
.fg-nav-right { display: flex; align-items: center; }
@media (max-width: 1100px) and (min-width: 992px) { .fg-nav-menu { gap: .8rem; } .fg-nav-link { font-size: .82rem; } }
@media (max-width: 991.98px) { .fg-hero, .fg-editorial-hero, .fg-breadcrumb-section { min-height: 0; padding-block: 96px 72px; } }
@media (max-width: 575.98px) { .fg-hero, .fg-editorial-hero, .fg-breadcrumb-section { padding-block: 76px 56px; } }
@media (max-width: 1023.98px) { .fg-header { z-index:var(--fg-z-mobile-menu); } .fg-mobile-menu { width:min(390px,100vw); padding-top:76px; } .fg-mobile-menu__list { padding:1rem 1rem 0; } .fg-mobile-menu__list > li > a, .fg-mobile-accordion__toggle { min-height:48px; } .fg-mobile-menu__footer { padding:1.25rem 1rem 1.5rem; } .fg-mobile-menu__footer .fg-btn { min-height:50px; } }
@media (max-width:575.98px) { .fg-logo { max-width:calc(100vw - 4.5rem); gap:.55rem; } .fg-logo__img { width:112px; height:auto; } .fg-logo__text { display:none; } .fg-navbar__inner { min-height:68px; } }

/* Shared badge and mobile spacing system */
.fg-eyebrow, .fg-overline { display:inline-flex; align-items:center; width:max-content; max-width:100%; gap:.6rem; margin-bottom:1.25rem; padding:.72rem 1.15rem; border-radius:var(--fg-radius-pill); background:var(--fg-green-light); color:var(--fg-green-dark); font-size:.76rem; font-weight:700; letter-spacing:.13em; line-height:1.2; text-transform:uppercase; }
.fg-eyebrow i, .fg-overline i { flex:0 0 auto; font-size:.95rem; letter-spacing:0; }
.fg-editorial-section--navy .fg-overline, .fg-editorial-cta .fg-overline { background:rgba(22,179,74,.14); color:var(--fg-green); }
.fg-section-header .fg-eyebrow { margin-bottom:1rem; }
.fg-section-title, .fg-editorial-section h2, .fg-editorial-cta h2 { text-wrap:balance; }
@media (max-width:767.98px) {
    .fg-section { padding-block:3.5rem; }
    .fg-editorial-section { padding-block:4rem; }
    .fg-hero { padding-block:4rem 3.5rem; }
    .fg-section-header, .fg-section-intro { margin-bottom:2rem; }
    .fg-section-title, .fg-editorial-section h2, .fg-editorial-cta h2 { font-size:clamp(2rem,9vw,3rem); line-height:1.08; }
    .fg-section-subtitle, .fg-lead, .fg-section-intro p { font-size:.98rem; line-height:1.65; }
    .fg-eyebrow, .fg-overline { margin-bottom:1rem; padding:.68rem 1rem; font-size:.7rem; letter-spacing:.105em; }
    .fg-editorial-section > .container > .row { row-gap:2rem !important; }
    .fg-service-catalogue, .fg-category-grid { gap:1rem; }
    .fg-service-card, .fg-category-card, .fg-catalogue-card { border-radius:1rem; }
    .fg-cta { padding:2rem 1.25rem; }
    .fg-footer__main { padding-block:3.25rem 2.5rem; }
}
@media (max-width:400px) {
    .container { padding-inline:.9rem; }
    .fg-eyebrow, .fg-overline { padding-inline:.85rem; font-size:.66rem; letter-spacing:.08em; }
}

/* Final navbar breakpoint: desktop starts at 1024px. */
.fg-navbar { padding-block: 10px !important; }
.fg-navbar__inner { min-height: 64px; gap: 1rem; }
.fg-logo { min-width: 0; }
.fg-nav-center { flex: 1 1 auto; min-width: 0; }
.fg-nav-menu { justify-content: center; gap: clamp(.75rem, 1.4vw, 1.5rem); }
.fg-nav-right { flex: 0 0 auto; }
.fg-hamburger { flex: 0 0 44px; }
@media (min-width: 1024px) {
    .fg-nav-center { display: flex !important; }
    .fg-nav-right { display: flex !important; }
    .fg-hamburger { display: none !important; }
}
@media (max-width: 1023.98px) {
    .fg-nav-center, .fg-nav-right { display: none !important; }
    .fg-hamburger { display: flex !important; }
    .fg-navbar__inner { min-height: 58px; }
}

/* Unified hero geometry across Home and all inner pages. */
.fg-hero,
.fg-editorial-hero,
.fg-breadcrumb-section {
    min-height: 620px;
    box-sizing: border-box;
}
.fg-hero { padding-block: 120px; }
.fg-editorial-hero,
.fg-breadcrumb-section { padding-block: 120px; }
.fg-hero > .container,
.fg-editorial-hero > .container,
.fg-breadcrumb-section > .container { width: 100%; }

/* Balanced enterprise navigation: equal-height items, centered labels, no wrapping. */
.fg-navbar__inner { min-height: 76px; align-items: center; }
.fg-nav-menu { align-items: stretch; gap: clamp(1rem, 1.8vw, 2rem); }
.fg-nav-item { display: flex; align-items: stretch; }
.fg-nav-link {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    text-align: center;
}
.fg-nav-right { display: flex; align-items: center; }
@media (max-width: 1100px) and (min-width: 992px) {
    .fg-nav-menu { gap: .8rem; }
    .fg-nav-link { font-size: .82rem; }
}
@media (max-width: 991.98px) {
    .fg-hero,
    .fg-editorial-hero,
    .fg-breadcrumb-section { min-height: 0; }
    .fg-hero,
    .fg-editorial-hero,
    .fg-breadcrumb-section { padding-block: 96px 72px; }
}
@media (max-width: 575.98px) {
    .fg-hero,
    .fg-editorial-hero,
    .fg-breadcrumb-section { padding-block: 76px 56px; }
}
.fg-breadcrumb-section.fg-page-hero--blog::after,
.fg-breadcrumb-section.fg-page-hero--contact::after,
.fg-breadcrumb-section.fg-page-hero--article::after {
    content: "";
    position: absolute;
    width: 26rem;
    height: 26rem;
    right: -9rem;
    bottom: -14rem;
    border: 1px solid rgba(22,179,74,.35);
    border-radius: 50%;
    box-shadow: 0 0 0 3rem rgba(22,179,74,.05), 0 0 0 7rem rgba(22,179,74,.03);
    pointer-events: none;
}

/* Shared page-header and footer refinement */
.fg-editorial-hero { padding-top: clamp(5.75rem, 10vw, 8.5rem); padding-bottom: clamp(3.5rem, 6vw, 5.5rem); }
.fg-editorial-hero__kicker { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.fg-editorial-hero__rule { margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.fg-editorial-hero .container > .row { max-width: 1240px; margin-inline:auto; }
.fg-editorial-hero .fg-editorial-hero__intro { margin-left:auto; }
.fg-editorial-hero--light { min-height:0; background:var(--ed-ink); color:#fff; }
.fg-editorial-hero--light .fg-editorial-hero__intro { color:rgba(255,255,255,.7); }
.fg-editorial-hero--light .fg-editorial-hero__kicker { margin-bottom:clamp(2.5rem,5vw,4.5rem); }
.fg-editorial-section > .container > .row,
.fg-editorial-section > .container > .fg-section-intro,
.fg-editorial-section > .container > .fg-service-list,
.fg-editorial-section > .container > .fg-plan-grid { max-width:1240px; margin-inline:auto; }
.fg-section-intro h2 { margin-bottom:1.25rem; }
.fg-section-intro p { line-height:1.75; }
.fg-service-row__main { min-width:0; }
.fg-service-row__main p { line-height:1.65; }
.fg-plan-grid { align-items:stretch; }
.fg-plan-card { height:100%; }
.fg-breadcrumb-section { padding: clamp(4.75rem, 8vw, 6.75rem) 0 clamp(2.5rem, 5vw, 4rem); }
.fg-breadcrumb-section { background:var(--ed-ink); color:#fff; padding:clamp(5.75rem,10vw,8.5rem) 0 clamp(3.5rem,6vw,5.5rem); }
.fg-breadcrumb-section::before { background:radial-gradient(circle at 88% 20%, rgba(22,179,74,.18), transparent 34%), radial-gradient(circle at 10% 90%, rgba(30,94,255,.12), transparent 38%); }
.fg-breadcrumb-section__title::before { content:"FinGrow / "; color:var(--fg-green); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; display:block; margin-bottom:1.5rem; }
.fg-breadcrumb { opacity:.85; }
.fg-page-hero__eyebrow { display:block; position:relative; color:var(--fg-green); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; margin-bottom:1.2rem; }
.fg-page-hero .fg-breadcrumb-section__title::before { display:none; }
.fg-page-hero__subtitle { position:relative; max-width:38rem; color:rgba(255,255,255,.7); font-size:1.05rem; line-height:1.65; margin:0; }
.fg-breadcrumb-section__title em { color:var(--fg-green); font-style:normal; }
.fg-page-hero--contact { background:linear-gradient(120deg,#071b3b 0%,#10294f 62%,#173b53 100%); }
.fg-page-hero--about { background:var(--ed-ink); padding:clamp(5.75rem,10vw,8.5rem) 0 clamp(3.5rem,6vw,5.5rem); }
.fg-page-hero--about .fg-editorial-hero__kicker { margin-bottom:1.2rem; }
.fg-page-hero--about .fg-editorial-hero__rule { display:none; }
.fg-page-hero--contact::after { content:""; position:absolute; width:26rem; height:26rem; right:-9rem; bottom:-14rem; border:1px solid rgba(22,179,74,.35); border-radius:50%; box-shadow:0 0 0 3rem rgba(22,179,74,.05),0 0 0 7rem rgba(22,179,74,.03); }
.fg-page-hero--blog { background:#f0f3ef; color:var(--ed-ink); }
.fg-page-hero--blog .fg-breadcrumb-section__title { color:var(--ed-ink); }
.fg-page-hero--blog .fg-page-hero__subtitle { color:#667085; }
.fg-page-hero--blog .fg-breadcrumb a { color:rgba(7,27,59,.65); }
.fg-page-hero--process { background:linear-gradient(135deg,#10294f,#071b3b); }
.fg-page-hero--process::after { content:"01 02 03 04"; position:absolute; right:6%; bottom:8%; color:rgba(255,255,255,.07); font-size:clamp(3rem,9vw,8rem); font-weight:800; letter-spacing:.08em; }
.fg-page-hero--service-detail { background:#0b2446; }
.fg-page-hero--article { background:#071b3b; }
.fg-page-hero--policy { background:#eef1ed; color:var(--ed-ink); }
.fg-page-hero--policy .fg-breadcrumb-section__title { color:var(--ed-ink); }
.fg-page-hero--policy .fg-page-hero__subtitle { color:#667085; }
.fg-page-hero--policy .fg-breadcrumb a { color:rgba(7,27,59,.65); }
@media (max-width:767.98px) { .fg-page-hero__subtitle { font-size:.95rem; } .fg-page-hero--process::after { right:-1rem; bottom:4%; } }
.fg-footer { border-top: 1px solid rgba(255,255,255,.08); }
.fg-footer__main { padding: clamp(4rem, 7vw, 6.5rem) 0; }
.fg-footer__heading { letter-spacing: .02em; }
.fg-footer__heading::after { content:""; display:block; width:2rem; height:2px; margin-top:.8rem; background:var(--fg-green); }
.fg-footer__links a { line-height:1.35; }
@media (max-width: 767.98px) { .fg-editorial-hero__intro { margin-left:0; } .fg-breadcrumb-section { padding-top:4.25rem; } .fg-footer__main { padding-block:4rem; } }


/* =========================================================================
   2. GLOBAL RESET
   ========================================================================= */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--fg-font-primary);
    font-weight: var(--fg-fw-regular);
    font-size: var(--fg-fs-body);
    color: var(--fg-dark);
    background-color: var(--fg-bg);
    line-height: 1.7;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.fg-no-scroll {
    overflow: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

svg {
    display: block;
}

button {
    font-family: inherit;
    cursor: pointer;
    background: none;
    border: none;
}

/* =========================================================================
   3. TYPOGRAPHY
   ========================================================================= */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--fg-font-primary);
    color: var(--fg-navy);
    font-weight: var(--fg-fw-bold);
    line-height: 1.25;
    letter-spacing: -0.02em;
    margin-bottom: var(--fg-space-4);
}

h1 { font-size: var(--fg-fs-h1); font-weight: var(--fg-fw-extrabold); }
h2 { font-size: var(--fg-fs-h2); font-weight: var(--fg-fw-extrabold); }
h3 { font-size: var(--fg-fs-h3); }
h4 { font-size: var(--fg-fs-h4); }
h5 { font-size: var(--fg-fs-h5); }
h6 { font-size: var(--fg-fs-h6); }

p {
    color: var(--fg-gray);
    margin-bottom: var(--fg-space-4);
}

p:last-child { margin-bottom: 0; }

.fg-lead {
    font-size: var(--fg-fs-lead);
    font-weight: var(--fg-fw-regular);
    color: var(--fg-gray);
}

small, .fg-text-sm { font-size: var(--fg-fs-sm); }
.fg-text-xs { font-size: var(--fg-fs-xs); }

ul, ol {
    list-style: none;
}

a {
    color: var(--fg-blue);
    text-decoration: none;
    transition: color var(--fg-transition-fast);
}

a:hover {
    color: var(--fg-green);
}

/* Text color utilities */
.text-navy { color: var(--fg-navy) !important; }
.text-accent-green { color: var(--fg-green) !important; }
.text-accent-blue { color: var(--fg-blue) !important; }
.text-gray { color: var(--fg-gray) !important; }
.text-white-90 { color: rgba(255, 255, 255, 0.9) !important; }

/* Selection color */
::selection {
    background-color: var(--fg-green);
    color: var(--fg-white);
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: var(--fg-bg);
}

::-webkit-scrollbar-thumb {
    background: var(--fg-navy);
    border-radius: var(--fg-radius-pill);
    border: 2px solid var(--fg-bg);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--fg-green);
}

/* Focus visibility for accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--fg-blue);
    outline-offset: 3px;
    border-radius: var(--fg-radius-sm);
}

/* Skip link */
.fg-skip-link {
    position: absolute;
    top: -100px;
    left: var(--fg-space-4);
    background: var(--fg-navy);
    color: var(--fg-white);
    padding: var(--fg-space-3) var(--fg-space-5);
    border-radius: var(--fg-radius-sm);
    z-index: 2000;
    transition: top var(--fg-transition-fast);
}

.fg-skip-link:focus {
    top: var(--fg-space-4);
    color: var(--fg-white);
}


/* =========================================================================
   4. CONTAINER
   ========================================================================= */
.container,
.container-fluid {
    width: 100%;
}

@media (min-width: 1400px) {
    .container {
        max-width: var(--fg-container-max);
    }
}


/* =========================================================================
   5. SECTION LAYOUT
   ========================================================================= */
.fg-section {
    padding: var(--fg-space-11) 0;
    position: relative;
}

.fg-section--sm { padding: var(--fg-space-9) 0; }
.fg-section--lg { padding: calc(var(--fg-space-11) + var(--fg-space-8)) 0; }
.fg-section--navy { background: var(--fg-gradient-navy); color: var(--fg-white); }
.fg-section--gray { background-color: var(--fg-bg); }
.fg-section--white { background-color: var(--fg-white); }

.fg-section-header {
    max-width: 680px;
    margin-bottom: var(--fg-space-8);
}

.fg-section-header--center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.fg-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--fg-space-2);
    font-size: var(--fg-fs-xs);
    font-weight: var(--fg-fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--fg-green);
    background: var(--fg-green-light);
    padding: var(--fg-space-2) var(--fg-space-4);
    border-radius: var(--fg-radius-pill);
    margin-bottom: var(--fg-space-4);
}

.fg-eyebrow i { font-size: 0.7rem; }

.fg-section-title {
    font-size: var(--fg-fs-h2);
    margin-bottom: var(--fg-space-4);
}

.fg-section-subtitle {
    color: var(--fg-gray);
    font-size: var(--fg-fs-lead);
    margin-bottom: 0;
}

.fg-section--navy .fg-section-subtitle,
.fg-section--navy p {
    color: rgba(255, 255, 255, 0.72);
}

.fg-section--navy h1,
.fg-section--navy h2,
.fg-section--navy h3,
.fg-section--navy h4 {
    color: var(--fg-white);
}


/* =========================================================================
   6. BUTTONS
   ========================================================================= */
.fg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fg-space-2);
    font-family: var(--fg-font-primary);
    font-weight: var(--fg-fw-semibold);
    font-size: var(--fg-fs-sm);
    padding: 0.85rem 1.75rem;
    border-radius: var(--fg-radius-pill);
    border: 1px solid transparent;
    transition: all var(--fg-transition-fast);
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    letter-spacing: 0.01em;
}

.fg-btn i { font-size: 0.9em; }

/* Ripple effect base */
.fg-btn::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    width: 10px;
    height: 10px;
    opacity: 0;
    transform: scale(1);
    transform-origin: center;
    pointer-events: none;
}

.fg-btn:active::after {
    opacity: 1;
    transform: scale(30);
    transition: transform 0.5s ease-out, opacity 0.8s ease-out;
}

/* Primary â€” Navy */
.fg-btn--primary {
    background: var(--fg-navy);
    color: var(--fg-white);
    box-shadow: var(--fg-shadow-md);
}

.fg-btn--primary:hover {
    background: var(--fg-navy-light);
    color: var(--fg-white);
    transform: translateY(-3px);
    box-shadow: var(--fg-shadow-lg);
}

/* Green */
.fg-btn--green {
    background: var(--fg-gradient-green);
    color: var(--fg-white);
    box-shadow: var(--fg-shadow-green);
}

.fg-btn--green:hover {
    color: var(--fg-white);
    transform: translateY(-3px);
    box-shadow: 0 18px 36px rgba(22, 179, 74, 0.35);
}

/* Blue */
.fg-btn--blue {
    background: var(--fg-gradient-blue);
    color: var(--fg-white);
    box-shadow: var(--fg-shadow-blue);
}

.fg-btn--blue:hover {
    color: var(--fg-white);
    transform: translateY(-3px);
    box-shadow: 0 18px 36px rgba(30, 94, 255, 0.35);
}

/* Outline */
.fg-btn--outline {
    background: transparent;
    color: var(--fg-navy);
    border-color: var(--fg-border);
}

.fg-btn--outline:hover {
    background: var(--fg-navy);
    border-color: var(--fg-navy);
    color: var(--fg-white);
    transform: translateY(-3px);
}

/* Outline White (for dark sections) */
.fg-btn--outline-white {
    background: transparent;
    color: var(--fg-white);
    border-color: rgba(255, 255, 255, 0.35);
}

.fg-btn--outline-white:hover {
    background: var(--fg-white);
    color: var(--fg-navy);
    border-color: var(--fg-white);
    transform: translateY(-3px);
}

/* White */
.fg-btn--white {
    background: var(--fg-white);
    color: var(--fg-navy);
    box-shadow: var(--fg-shadow-md);
}

.fg-btn--white:hover {
    background: var(--fg-green);
    color: var(--fg-white);
    transform: translateY(-3px);
}

/* Ghost / link-style button */
.fg-btn--ghost {
    background: transparent;
    color: var(--fg-navy);
    padding-left: 0;
    padding-right: 0;
}

.fg-btn--ghost:hover {
    color: var(--fg-green);
    gap: var(--fg-space-3);
}

/* Sizes */
.fg-btn--sm { padding: 0.55rem 1.25rem; font-size: var(--fg-fs-xs); }
.fg-btn--lg { padding: 1.05rem 2.25rem; font-size: 1rem; }

/* Icon circle button */
.fg-btn-icon {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--fg-white);
    color: var(--fg-navy);
    box-shadow: var(--fg-shadow-sm);
    transition: all var(--fg-transition-fast);
}

.fg-btn-icon:hover {
    background: var(--fg-green);
    color: var(--fg-white);
    transform: translateY(-3px);
}


/* =========================================================================
   7. FORMS
   ========================================================================= */
.fg-form-group {
    margin-bottom: var(--fg-space-5);
    position: relative;
}

.fg-form-label {
    display: block;
    font-size: var(--fg-fs-sm);
    font-weight: var(--fg-fw-medium);
    color: var(--fg-navy);
    margin-bottom: var(--fg-space-2);
}

.fg-form-label .fg-required { color: var(--fg-blue); margin-left: 2px; }

.fg-form-control {
    width: 100%;
    padding: 0.9rem 1.15rem;
    font-family: var(--fg-font-primary);
    font-size: var(--fg-fs-sm);
    color: var(--fg-dark);
    background-color: var(--fg-white);
    border: 1.5px solid var(--fg-border);
    border-radius: var(--fg-radius-md);
    transition: border-color var(--fg-transition-fast), box-shadow var(--fg-transition-fast);
}

.fg-form-control::placeholder {
    color: var(--fg-gray-light);
}

.fg-form-control:focus {
    outline: none;
    border-color: var(--fg-green);
    box-shadow: 0 0 0 4px rgba(22, 179, 74, 0.12);
}

textarea.fg-form-control {
    min-height: 150px;
    resize: vertical;
}

select.fg-form-control {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236B7280' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.15rem center;
    padding-right: 2.5rem;
}

/* Checkbox */
.fg-checkbox {
    display: flex;
    align-items: flex-start;
    gap: var(--fg-space-3);
    cursor: pointer;
    font-size: var(--fg-fs-sm);
    color: var(--fg-gray);
}

.fg-checkbox input[type="checkbox"] {
    appearance: none;
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 1.5px solid var(--fg-border);
    border-radius: 6px;
    display: grid;
    place-content: center;
    cursor: pointer;
    transition: all var(--fg-transition-fast);
}

.fg-checkbox input[type="checkbox"]::before {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 11px;
    color: var(--fg-white);
    transform: scale(0);
    transition: transform var(--fg-transition-fast);
}

.fg-checkbox input[type="checkbox"]:checked {
    background: var(--fg-green);
    border-color: var(--fg-green);
}

.fg-checkbox input[type="checkbox"]:checked::before {
    transform: scale(1);
}

/* Radio */
.fg-radio {
    display: flex;
    align-items: center;
    gap: var(--fg-space-3);
    cursor: pointer;
    font-size: var(--fg-fs-sm);
    color: var(--fg-gray);
}

.fg-radio input[type="radio"] {
    appearance: none;
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 1.5px solid var(--fg-border);
    border-radius: 50%;
    display: grid;
    place-content: center;
    cursor: pointer;
}

.fg-radio input[type="radio"]::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--fg-green);
    transform: scale(0);
    transition: transform var(--fg-transition-fast);
}

.fg-radio input[type="radio"]:checked {
    border-color: var(--fg-green);
}

.fg-radio input[type="radio"]:checked::before {
    transform: scale(1);
}

/* Form validation states */
.fg-form-control.is-invalid { border-color: #DC2626; }
.fg-form-control.is-valid { border-color: var(--fg-green); }
.fg-form-feedback { font-size: var(--fg-fs-xs); margin-top: var(--fg-space-1); }
.fg-form-feedback--error { color: #DC2626; }
.fg-form-feedback--success { color: var(--fg-green); }


/* =========================================================================
   8. CARDS
   ========================================================================= */
.fg-card {
    background: var(--fg-white);
    border-radius: var(--fg-radius-xl);
    border: 1px solid var(--fg-border);
    box-shadow: var(--fg-shadow-sm);
    padding: var(--fg-space-7);
    transition: transform var(--fg-transition-medium), box-shadow var(--fg-transition-medium);
    height: 100%;
}

.fg-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--fg-shadow-lg);
}

.fg-card--flat { box-shadow: none; }
.fg-card--no-border { border: none; }

/* Glass card â€” used over hero / navy imagery */
.fg-glass-card {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--fg-radius-xl);
    padding: var(--fg-space-7);
    color: var(--fg-white);
    box-shadow: var(--fg-shadow-lg);
}

.fg-glass-card--light {
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(255, 255, 255, 0.5);
    color: var(--fg-dark);
}


/* =========================================================================
   9. BADGES
   ========================================================================= */
.fg-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--fg-space-1);
    font-size: var(--fg-fs-xs);
    font-weight: var(--fg-fw-semibold);
    padding: var(--fg-space-1) var(--fg-space-4);
    border-radius: var(--fg-radius-pill);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.fg-badge--green { background: var(--fg-green-light); color: var(--fg-green-dark); }
.fg-badge--blue { background: var(--fg-blue-light); color: var(--fg-blue-dark); }
.fg-badge--navy { background: rgba(7, 27, 59, 0.08); color: var(--fg-navy); }
.fg-badge--white { background: rgba(255, 255, 255, 0.15); color: var(--fg-white); }


/* =========================================================================
   10. TABLES
   ========================================================================= */
.fg-table-wrapper {
    overflow-x: auto;
    border-radius: var(--fg-radius-lg);
    box-shadow: var(--fg-shadow-sm);
}

.fg-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--fg-white);
}

.fg-table th {
    background: var(--fg-navy);
    color: var(--fg-white);
    text-align: left;
    font-weight: var(--fg-fw-semibold);
    font-size: var(--fg-fs-sm);
    padding: var(--fg-space-5) var(--fg-space-6);
}

.fg-table td {
    padding: var(--fg-space-5) var(--fg-space-6);
    border-bottom: 1px solid var(--fg-border);
    font-size: var(--fg-fs-sm);
    color: var(--fg-gray);
}

.fg-table tr:last-child td { border-bottom: none; }
.fg-table tr:hover td { background: var(--fg-bg); }


/* =========================================================================
   11. ACCORDION
   ========================================================================= */
.fg-accordion-item {
    background: var(--fg-white);
    border: 1px solid var(--fg-border);
    border-radius: var(--fg-radius-lg);
    margin-bottom: var(--fg-space-4);
    overflow: hidden;
    transition: box-shadow var(--fg-transition-fast);
}

.fg-accordion-item:hover { box-shadow: var(--fg-shadow-sm); }

.fg-accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--fg-space-5) var(--fg-space-6);
    cursor: pointer;
    font-weight: var(--fg-fw-semibold);
    color: var(--fg-navy);
}

.fg-accordion-header .fg-accordion-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--fg-green-light);
    color: var(--fg-green);
    display: grid;
    place-content: center;
    transition: transform var(--fg-transition-fast), background var(--fg-transition-fast);
    flex-shrink: 0;
}

.fg-accordion-item.active .fg-accordion-icon {
    background: var(--fg-green);
    color: var(--fg-white);
    transform: rotate(45deg);
}

.fg-accordion-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--fg-transition-medium);
}

.fg-accordion-item.active .fg-accordion-body {
    max-height: 500px;
}

.fg-accordion-body-inner {
    padding: 0 var(--fg-space-6) var(--fg-space-6);
    color: var(--fg-gray);
    font-size: var(--fg-fs-sm);
}


/* =========================================================================
   12. TABS
   ========================================================================= */
.fg-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fg-space-2);
    background: var(--fg-white);
    padding: var(--fg-space-2);
    border-radius: var(--fg-radius-pill);
    box-shadow: var(--fg-shadow-sm);
    width: fit-content;
    margin: 0 auto var(--fg-space-8);
}

.fg-tabs-nav button {
    padding: var(--fg-space-3) var(--fg-space-6);
    border-radius: var(--fg-radius-pill);
    font-size: var(--fg-fs-sm);
    font-weight: var(--fg-fw-medium);
    color: var(--fg-gray);
    transition: all var(--fg-transition-fast);
}

.fg-tabs-nav button.active {
    background: var(--fg-navy);
    color: var(--fg-white);
}

.fg-tab-pane { display: none; }
.fg-tab-pane.active { display: block; animation: fgFadeUp 0.5s ease; }


/* =========================================================================
   13. BREADCRUMB
   ========================================================================= */
.fg-breadcrumb-section {
    background: var(--fg-gradient-navy);
    padding: var(--fg-space-9) 0 var(--fg-space-8);
    position: relative;
    overflow: hidden;
    color: var(--fg-white);
}

.fg-breadcrumb-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 15% 20%, rgba(22, 179, 74, 0.18), transparent 40%),
                       radial-gradient(circle at 85% 80%, rgba(30, 94, 255, 0.18), transparent 40%);
    pointer-events: none;
}

.fg-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--fg-space-2);
    font-size: var(--fg-fs-sm);
    position: relative;
}

.fg-breadcrumb a {
    color: rgba(255, 255, 255, 0.7);
}

.fg-breadcrumb a:hover { color: var(--fg-green); }

.fg-breadcrumb .fg-breadcrumb-current {
    color: var(--fg-green);
    font-weight: var(--fg-fw-medium);
}

.fg-breadcrumb i { font-size: 0.65rem; color: rgba(255, 255, 255, 0.4); }


/* =========================================================================
   14. PAGINATION
   ========================================================================= */
.fg-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--fg-space-2);
    margin-top: var(--fg-space-8);
}

.fg-pagination a,
.fg-pagination span {
    width: 44px;
    height: 44px;
    display: grid;
    place-content: center;
    border-radius: 50%;
    font-size: var(--fg-fs-sm);
    font-weight: var(--fg-fw-medium);
    color: var(--fg-navy);
    background: var(--fg-white);
    border: 1px solid var(--fg-border);
    transition: all var(--fg-transition-fast);
}

.fg-pagination a:hover,
.fg-pagination .active {
    background: var(--fg-navy);
    border-color: var(--fg-navy);
    color: var(--fg-white);
}


/* =========================================================================
   15. ALERTS
   ========================================================================= */
.fg-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--fg-space-3);
    padding: var(--fg-space-5);
    border-radius: var(--fg-radius-md);
    font-size: var(--fg-fs-sm);
    border: 1px solid transparent;
}

.fg-alert--success { background: var(--fg-green-light); color: var(--fg-green-dark); border-color: rgba(22, 179, 74, 0.25); }
.fg-alert--info { background: var(--fg-blue-light); color: var(--fg-blue-dark); border-color: rgba(30, 94, 255, 0.25); }
.fg-alert--warning { background: #FFF7E6; color: #92600A; border-color: #FCE3A6; }
.fg-alert--error { background: #FDECEC; color: #B42318; border-color: #F6C1BE; }


/* =========================================================================
   HEADER COLOR FIX â€” CENTRALIZED THEME SYSTEM
   Replace the existing navbar/header color rules with this block
   ========================================================================= */

.fg-header{
    position: sticky;
    top: 0;
    z-index: 1100;
    --nav-text:#111827;
    --nav-logo:#071b3b;
    --nav-icon:#071b3b;

    --nav-hover:var(--fg-green);

    --nav-bg:#ffffff;
    --nav-border:rgba(7,27,59,.08);
    background:#ffffff;
    box-shadow:0 10px 35px rgba(7,27,59,.08);
}

.fg-header.fg-header--solid{

    --nav-text:var(--fg-navy);
    --nav-logo:var(--fg-navy);
    --nav-icon:var(--fg-navy);
    --nav-hover:var(--fg-green);
    --nav-bg:rgba(255,255,255,.94);
    --nav-border:rgba(7,27,59,.08);
}

.fg-navbar{
    padding:22px 0;
    background:var(--nav-bg);
    border-bottom:1px solid var(--nav-border);
    transition:
        background .35s ease,
        padding .35s ease,
        box-shadow .35s ease,
        border-color .35s ease,
        backdrop-filter .35s ease;
}

.fg-header.fg-header--solid .fg-navbar{
    padding:14px 0;
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    box-shadow:0 10px 35px rgba(7,27,59,.08);
}

/* Navbar remains white with dark text at every scroll position. */
.fg-header .fg-navbar,
.fg-header.fg-header--solid .fg-navbar {
    padding:14px 0;
    background:#ffffff;
    border-bottom:1px solid rgba(7,27,59,.08);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    box-shadow:none;
}

.fg-navbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fg-space-6);
}

/* Logo */
.fg-logo {
    display: inline-flex;
    align-items: center;
    gap: var(--fg-space-2);
}

.fg-logo__img {
    height: 38px;
    width: auto;
}

.fg-logo__text {
    font-size: 1.5rem;
    font-weight: var(--fg-fw-extrabold);
    color: var(--nav-logo);
    letter-spacing: -0.02em;
    transition: color var(--fg-transition-fast);
}

/* Center menu */
.fg-nav-center {
    flex: 1;
    justify-content: center;
}

.fg-nav-menu {
    display: flex;
    align-items: center;
    gap: var(--fg-space-7);
}

.fg-nav-item {
    position: relative;
}

.fg-nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--fg-space-2);
    font-size: var(--fg-fs-sm);
    font-weight: var(--fg-fw-medium);
    color: var(--nav-text);
    padding: var(--fg-space-2) 0;
    transition: color var(--fg-transition-fast);
}

.fg-nav-link:hover,
.fg-nav-link.active{
    color:var(--fg-green)!important;
}

.fg-nav-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -4px;
    width: 0;
    height: 2px;
    background: var(--nav-hover);
    transition: width var(--fg-transition-fast);
    border-radius: var(--fg-radius-pill);
}

.fg-nav-link:hover::after,
.fg-nav-link.active::after {
    width: 100%;
}

.fg-caret {
    font-size: 0.6rem;
    transition: transform var(--fg-transition-fast), color var(--fg-transition-fast);
    color: inherit;
}

.fg-nav-item:hover .fg-caret {
    transform: rotate(180deg);
}

/* Right CTA */
.fg-nav-right .fg-btn {
    flex-shrink: 0;
}

/* Primary CTA consistency in header */
.fg-nav-right .fg-btn--primary{
    background:var(--fg-green);
    border-color:var(--fg-green);
    color:#fff;
}

.fg-nav-right .fg-btn--primary:hover{
    background:var(--fg-green-dark);
    border-color:var(--fg-green-dark);
    color:#fff;
}

/* Mega menu */
.fg-has-mega {
    position: static;
}

.fg-mega-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%) translateY(12px);
    width: min(920px, 92vw);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: var(--fg-radius-xl);
    box-shadow: var(--fg-shadow-xl);
    padding: var(--fg-space-7);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--fg-transition-medium), transform var(--fg-transition-medium), visibility var(--fg-transition-medium);
    z-index: var(--fg-z-dropdown);
}

.fg-has-mega:hover .fg-mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.fg-mega-menu__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr) 1.1fr;
    gap: var(--fg-space-6);
}

.fg-mega-col__title {
    display: block;
    font-size: var(--fg-fs-xs);
    font-weight: var(--fg-fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--fg-gray-light);
    margin-bottom: var(--fg-space-4);
}

.fg-mega-link {
    display: flex;
    align-items: flex-start;
    gap: var(--fg-space-3);
    padding: var(--fg-space-3);
    border-radius: var(--fg-radius-md);
    margin-bottom: var(--fg-space-1);
    transition: background var(--fg-transition-fast), transform var(--fg-transition-fast);
}

.fg-mega-link i {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: grid;
    place-content: center;
    border-radius: var(--fg-radius-sm);
    background: var(--fg-green-light);
    color: var(--fg-green-dark);
    font-size: 0.9rem;
}

.fg-mega-link strong {
    display: block;
    font-size: var(--fg-fs-sm);
    color: var(--fg-navy);
    font-weight: var(--fg-fw-semibold);
}

.fg-mega-link small {
    color: var(--fg-gray);
    font-size: 0.78rem;
}

.fg-mega-link:hover {
    background: rgba(22, 179, 74, 0.08);
    transform: translateX(4px);
}

.fg-mega-link--all i {
    background: var(--fg-navy);
    color: var(--fg-white);
}

.fg-mega-promo {
    background: var(--fg-gradient-navy);
    border-radius: var(--fg-radius-lg);
    padding: var(--fg-space-6);
    color: var(--fg-white);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--fg-space-2);
}

.fg-mega-promo h5 {
    color: var(--fg-white);
    margin-bottom: var(--fg-space-1);
}

.fg-mega-promo p {
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--fg-fs-sm);
    margin-bottom: var(--fg-space-4);
}

.fg-mega-promo .fg-btn {
    align-self: flex-start;
}

/* Dropdown */
.fg-has-dropdown {
    position: relative;
}

.fg-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    width: 280px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: var(--fg-radius-lg);
    box-shadow: var(--fg-shadow-xl);
    padding: var(--fg-space-3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
    transition: all var(--fg-transition-medium);
    z-index: var(--fg-z-dropdown);
}

.fg-has-dropdown:hover .fg-dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.fg-dropdown__link {
    display: flex;
    align-items: center;
    gap: var(--fg-space-3);
    padding: var(--fg-space-3) var(--fg-space-4);
    border-radius: var(--fg-radius-sm);
    font-size: var(--fg-fs-sm);
    color: var(--fg-navy);
    font-weight: var(--fg-fw-medium);
    transition: background var(--fg-transition-fast), transform var(--fg-transition-fast), color var(--fg-transition-fast);
}

.fg-dropdown__link i {
    width: 18px;
    color: var(--fg-green);
}

.fg-dropdown__link:hover {
    background: var(--fg-green-light);
    color: var(--fg-navy);
    transform: translateX(4px);
}

.fg-dropdown__divider {
    height: 1px;
    background: var(--fg-border);
    margin: var(--fg-space-2) var(--fg-space-3);
}

.fg-dropdown__link--all {
    color: var(--fg-blue);
}

.fg-dropdown__link--all i {
    color: var(--fg-blue);
}

/* Mobile navigation */
.fg-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    border-radius: var(--fg-radius-sm);
    z-index: 1051;
}

    .fg-hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--nav-icon);
    border-radius: var(--fg-radius-pill);
    transition: all var(--fg-transition-fast);
    margin: 0 auto;
}

.fg-hamburger--active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.fg-hamburger--active span:nth-child(2) {
    opacity: 0;
}

.fg-hamburger--active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.fg-hamburger--active span {
    background: var(--fg-navy) !important;
}

.fg-mobile-overlay {
    position: fixed;
    inset: 0;
    background: rgba(7, 27, 59, 0.55);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--fg-transition-medium), visibility var(--fg-transition-medium);
    z-index: var(--fg-z-overlay);
}

.fg-mobile-overlay--visible {
    opacity: 1;
    visibility: visible;
}

.fg-mobile-menu {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: min(360px, 88vw);
    background: var(--fg-white);
    box-shadow: var(--fg-shadow-xl);
    z-index: var(--fg-z-mobile-menu);
    transform: translateX(100%);
    transition: transform var(--fg-transition-medium);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    padding-top: 76px;
}

.fg-mobile-menu--open {
    transform: translateX(0);
}

.fg-mobile-menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--fg-space-6);
    border-bottom: 1px solid var(--fg-border);
}

.fg-mobile-close {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--fg-bg);
    color: var(--fg-navy);
    display: grid;
    place-content: center;
    transition: all var(--fg-transition-fast);
}

.fg-mobile-close:hover {
    background: var(--fg-green);
    color: var(--fg-white);
    transform: rotate(90deg);
}

.fg-mobile-menu__list {
    padding: var(--fg-space-4) var(--fg-space-4);
    flex: 1;
}

.fg-mobile-menu__list > li > a {
    display: flex;
    align-items: center;
    gap: var(--fg-space-3);
    padding: var(--fg-space-4);
    border-radius: var(--fg-radius-md);
    color: var(--fg-navy);
    font-weight: var(--fg-fw-medium);
    font-size: var(--fg-fs-sm);
    transition: background var(--fg-transition-fast), color var(--fg-transition-fast);
}

.fg-mobile-menu__list > li > a i {
    width: 20px;
    color: var(--fg-green);
}

.fg-mobile-menu__list > li > a:hover {
    background: var(--fg-bg);
    color: var(--fg-navy);
}

.fg-mobile-accordion__toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--fg-space-4);
    border-radius: var(--fg-radius-md);
    font-weight: var(--fg-fw-medium);
    font-size: var(--fg-fs-sm);
    color: var(--fg-navy);
}

.fg-mobile-accordion__toggle span {
    display: flex;
    align-items: center;
    gap: var(--fg-space-3);
}

.fg-mobile-accordion__toggle i:last-child {
    transition: transform var(--fg-transition-fast);
    font-size: 0.75rem;
}

.fg-mobile-accordion--active .fg-mobile-accordion__toggle i:last-child {
    transform: rotate(180deg);
}

.fg-mobile-accordion__panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--fg-transition-medium);
    padding-left: var(--fg-space-6);
}

.fg-mobile-accordion--active .fg-mobile-accordion__panel {
    max-height: 300px;
}

.fg-mobile-accordion__panel a {
    display: block;
    padding: var(--fg-space-3) var(--fg-space-4);
    color: var(--fg-gray);
    font-size: var(--fg-fs-sm);
}

.fg-mobile-accordion__panel a:hover {
    color: var(--fg-green);
}

.fg-mobile-menu__footer {
    padding: var(--fg-space-6);
    border-top: 1px solid var(--fg-border);
}

.fg-mobile-socials {
    display: flex;
    gap: var(--fg-space-3);
    margin-top: var(--fg-space-5);
    justify-content: center;
}

.fg-mobile-socials a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--fg-bg);
    color: var(--fg-navy);
    display: grid;
    place-content: center;
    transition: all var(--fg-transition-fast);
}

.fg-mobile-socials a:hover {
    background: var(--fg-green);
    color: var(--fg-white);
}

/* Responsive header overrides */
@media (max-width: 991.98px) {
    .fg-nav-center,
    .fg-nav-right {
        display: none !important;
    }

    .fg-hamburger {
        display: flex;
    }
}

/* =========================================================================
   17. MEGA MENU (Services) â€” Glassmorphism dropdown
   ========================================================================= */
.fg-has-mega { position: static; }

.fg-mega-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%) translateY(12px);
    width: min(920px, 92vw);
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--fg-radius-xl);
    box-shadow: var(--fg-shadow-xl);
    padding: var(--fg-space-7);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--fg-transition-medium), transform var(--fg-transition-medium), visibility var(--fg-transition-medium);
    z-index: var(--fg-z-dropdown);
}

.fg-has-mega:hover .fg-mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.fg-mega-menu__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr) 1.1fr;
    gap: var(--fg-space-6);
}

.fg-mega-col__title {
    display: block;
    font-size: var(--fg-fs-xs);
    font-weight: var(--fg-fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--fg-gray-light);
    margin-bottom: var(--fg-space-4);
}

.fg-mega-link {
    display: flex;
    align-items: flex-start;
    gap: var(--fg-space-3);
    padding: var(--fg-space-3);
    border-radius: var(--fg-radius-md);
    margin-bottom: var(--fg-space-1);
    transition: background var(--fg-transition-fast), transform var(--fg-transition-fast);
}

.fg-mega-link i {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: grid;
    place-content: center;
    border-radius: var(--fg-radius-sm);
    background: var(--fg-green-light);
    color: var(--fg-green-dark);
    font-size: 0.9rem;
}

.fg-mega-link strong {
    display: block;
    font-size: var(--fg-fs-sm);
    color: var(--fg-navy);
    font-weight: var(--fg-fw-semibold);
}

.fg-mega-link small {
    color: var(--fg-gray);
    font-size: 0.78rem;
}

.fg-mega-link:hover {
    background: rgba(22, 179, 74, 0.08);
    transform: translateX(4px);
}

.fg-mega-link--all i { background: var(--fg-navy); color: var(--fg-white); }

.fg-mega-promo {
    background: var(--fg-gradient-navy);
    border-radius: var(--fg-radius-lg);
    padding: var(--fg-space-6);
    color: var(--fg-white);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--fg-space-2);
}

.fg-mega-promo h5 { color: var(--fg-white); margin-bottom: var(--fg-space-1); }
.fg-mega-promo p { color: rgba(255, 255, 255, 0.72); font-size: var(--fg-fs-sm); margin-bottom: var(--fg-space-4); }
.fg-mega-promo .fg-btn { align-self: flex-start; }


/* =========================================================================
   18. DROPDOWN (Government Schemes)
   ========================================================================= */
.fg-has-dropdown { position: relative; }

.fg-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    width: 280px;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--fg-radius-lg);
    box-shadow: var(--fg-shadow-xl);
    padding: var(--fg-space-3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
    transition: all var(--fg-transition-medium);
    z-index: var(--fg-z-dropdown);
}

.fg-has-dropdown:hover .fg-dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.fg-dropdown__link {
    display: flex;
    align-items: center;
    gap: var(--fg-space-3);
    padding: var(--fg-space-3) var(--fg-space-4);
    border-radius: var(--fg-radius-sm);
    font-size: var(--fg-fs-sm);
    color: var(--fg-navy);
    font-weight: var(--fg-fw-medium);
    transition: background var(--fg-transition-fast), transform var(--fg-transition-fast);
}

.fg-dropdown__link i { width: 18px; color: var(--fg-green); }

.fg-dropdown__link:hover {
    background: var(--fg-green-light);
    color: var(--fg-navy);
    transform: translateX(4px);
}

.fg-dropdown__divider {
    height: 1px;
    background: var(--fg-border);
    margin: var(--fg-space-2) var(--fg-space-3);
}

.fg-dropdown__link--all { color: var(--fg-blue); }
.fg-dropdown__link--all i { color: var(--fg-blue); }


/* =========================================================================
   19. MOBILE NAVIGATION â€” Hamburger / Slide Menu / Overlay
   ========================================================================= */
.fg-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    border-radius: var(--fg-radius-sm);
    z-index: 1051;
}

.fg-hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--fg-navy);
    border-radius: var(--fg-radius-pill);
    transition: all var(--fg-transition-fast);
    margin: 0 auto;
}

.fg-header:not(.fg-header--solid) .fg-hamburger span {
    background: var(--fg-white);
}

.fg-hamburger--active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.fg-hamburger--active span:nth-child(2) { opacity: 0; }
.fg-hamburger--active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.fg-hamburger--active span { background: var(--fg-navy) !important; }

.fg-mobile-overlay {
    position: fixed;
    inset: 0;
    background: rgba(7, 27, 59, 0.55);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--fg-transition-medium), visibility var(--fg-transition-medium);
    z-index: var(--fg-z-overlay);
}

.fg-mobile-overlay--visible {
    opacity: 1;
    visibility: visible;
}

.fg-mobile-menu {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: min(360px, 88vw);
    background: var(--fg-white);
    box-shadow: var(--fg-shadow-xl);
    z-index: var(--fg-z-mobile-menu);
    transform: translateX(100%);
    transition: transform var(--fg-transition-medium);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.fg-mobile-menu--open {
    transform: translateX(0);
}

.fg-mobile-menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--fg-space-6);
    border-bottom: 1px solid var(--fg-border);
}

.fg-mobile-close {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--fg-bg);
    color: var(--fg-navy);
    display: grid;
    place-content: center;
    transition: all var(--fg-transition-fast);
}

.fg-mobile-close:hover { background: var(--fg-green); color: var(--fg-white); transform: rotate(90deg); }

.fg-mobile-menu__list {
    padding: var(--fg-space-4) var(--fg-space-4);
    flex: 1;
}

.fg-mobile-menu__list > li > a {
    display: flex;
    align-items: center;
    gap: var(--fg-space-3);
    padding: var(--fg-space-4);
    border-radius: var(--fg-radius-md);
    color: var(--fg-navy);
    font-weight: var(--fg-fw-medium);
    font-size: var(--fg-fs-sm);
    transition: background var(--fg-transition-fast);
}

.fg-mobile-menu__list > li > a i { width: 20px; color: var(--fg-green); }
.fg-mobile-menu__list > li > a:hover { background: var(--fg-bg); color: var(--fg-navy); }

.fg-mobile-accordion__toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--fg-space-4);
    border-radius: var(--fg-radius-md);
    font-weight: var(--fg-fw-medium);
    font-size: var(--fg-fs-sm);
    color: var(--fg-navy);
}

.fg-mobile-accordion__toggle span { display: flex; align-items: center; gap: var(--fg-space-3); }
.fg-mobile-accordion__toggle i:last-child { transition: transform var(--fg-transition-fast); font-size: 0.75rem; }
.fg-mobile-accordion--active .fg-mobile-accordion__toggle i:last-child { transform: rotate(180deg); }

.fg-mobile-accordion__panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--fg-transition-medium);
    padding-left: var(--fg-space-6);
}

.fg-mobile-accordion--active .fg-mobile-accordion__panel {
    max-height: 300px;
}

.fg-mobile-accordion__panel a {
    display: block;
    padding: var(--fg-space-3) var(--fg-space-4);
    color: var(--fg-gray);
    font-size: var(--fg-fs-sm);
}

.fg-mobile-accordion__panel a:hover { color: var(--fg-green); }

.fg-mobile-menu__footer {
    padding: var(--fg-space-6);
    border-top: 1px solid var(--fg-border);
}

.fg-mobile-socials {
    display: flex;
    gap: var(--fg-space-3);
    margin-top: var(--fg-space-5);
    justify-content: center;
}

.fg-mobile-socials a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--fg-bg);
    color: var(--fg-navy);
    display: grid;
    place-content: center;
    transition: all var(--fg-transition-fast);
}

.fg-mobile-socials a:hover { background: var(--fg-green); color: var(--fg-white); }


/* =========================================================================
   20. HERO SECTION
   ========================================================================= */
.fg-hero {
    position: relative;
    background: var(--fg-gradient-navy);
    padding: calc(var(--fg-space-11) + 60px) 0 var(--fg-space-11);
    overflow: hidden;
    color: var(--fg-white);
}

.fg-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 10% 15%, rgba(22, 179, 74, 0.22), transparent 45%),
                       radial-gradient(circle at 90% 85%, rgba(30, 94, 255, 0.22), transparent 45%);
    pointer-events: none;
}

.fg-hero__grid {
    position: absolute;
    inset: 0;
    display: none;
    pointer-events: none;
}

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

.fg-hero__title .fg-highlight {
    color: var(--fg-green);
    position: relative;
}

.fg-hero__subtitle {
    color: rgba(255, 255, 255, 0.75);
    font-size: var(--fg-fs-lead);
    max-width: 560px;
    margin-bottom: var(--fg-space-7);
}

.fg-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fg-space-4);
    margin-bottom: var(--fg-space-8);
}

.fg-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fg-space-8);
}

.fg-hero__stat strong {
    display: block;
    font-size: 1.8rem;
    font-weight: var(--fg-fw-extrabold);
    color: var(--fg-white);
}

.fg-hero__stat span {
    font-size: var(--fg-fs-xs);
    color: rgba(255, 255, 255, 0.6);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.fg-hero__media {
    position: relative;
    z-index: 2;
}

.fg-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: var(--fg-radius-2xl);
    box-shadow: var(--fg-shadow-xl);
}

.fg-hero__floating-card {
    position: absolute;
    bottom: -24px;
    left: -24px;
}


/* =========================================================================
   21. ABOUT SECTION
   ========================================================================= */
.fg-about__media { position: relative; }

.fg-about__media img {
    border-radius: var(--fg-radius-2xl);
    box-shadow: var(--fg-shadow-lg);
}

.fg-about__experience-badge {
    position: absolute;
    bottom: var(--fg-space-6);
    right: -var(--fg-space-6);
    background: var(--fg-navy);
    color: var(--fg-white);
    border-radius: var(--fg-radius-lg);
    padding: 1.15rem 1.35rem;
    text-align: center;
    box-shadow: 0 1rem 2rem rgba(7, 27, 59, .22);
}

.fg-about__experience-badge strong { display: block; font-size: 1.8rem; line-height: 1; font-weight: var(--fg-fw-extrabold); }
.fg-about__experience-badge span { font-size: var(--fg-fs-xs); text-transform: uppercase; letter-spacing: 0.06em; }

.fg-about__list { margin-top: var(--fg-space-6); }

.fg-about__list-item {
    display: flex;
    align-items: flex-start;
    gap: var(--fg-space-4);
    margin-bottom: var(--fg-space-5);
}

.fg-about__list-item i {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    border-radius: var(--fg-radius-md);
    background: var(--fg-green-light);
    color: var(--fg-green-dark);
    display: grid;
    place-content: center;
}

.fg-about__list-item h6 { margin-bottom: var(--fg-space-1); }
.fg-about__list-item p { margin-bottom: 0; font-size: var(--fg-fs-sm); }


/* =========================================================================
   22. SERVICES GRID / FEATURE CARDS
   ========================================================================= */

.fg-service-card {
    position: relative;
    overflow: hidden;
    height: 100%;
    padding: var(--fg-space-7);

    background: var(--fg-white);
    border: 1px solid #E8EDF5;
    border-radius: var(--fg-radius-xl);

    box-shadow: 0 10px 28px rgba(7, 27, 59, 0.08);

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;
}

/* Top Gradient - Always Visible */
.fg-service-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--fg-gradient-accent);
    opacity: .9;
    transition: opacity .35s ease;
}

/* Hover */
.fg-service-card:hover {
    transform: translateY(-8px);
    border-color: #D7EEDC;
    box-shadow: 0 22px 50px rgba(7, 27, 59, .14);
}

.fg-service-card:hover::before {
    opacity: 1;
}

/* Icon */
.fg-service-card__icon {
    width: 62px;
    height: 62px;

    display: grid;
    place-content: center;

    margin-bottom: var(--fg-space-5);

    border-radius: 18px;

    background: var(--fg-green);
    color: var(--fg-white);

    font-size: 1.5rem;

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        background .35s ease;

    box-shadow: 0 10px 24px rgba(22, 179, 74, .25);
}

.fg-service-card:hover .fg-service-card__icon {
    transform: rotate(-10deg) scale(1.08);
    box-shadow: 0 16px 36px rgba(22,179,74,.35);
}

/* Title */
.fg-service-card__title {
    margin-bottom: var(--fg-space-3);
    transition: color .3s ease;
}

/* Description */
.fg-service-card__text {
    font-size: var(--fg-fs-sm);
    margin-bottom: var(--fg-space-5);
    color: var(--fg-gray);
}

/* Read More */
.fg-service-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    font-size: var(--fg-fs-sm);
    font-weight: var(--fg-fw-semibold);

    color: var(--fg-navy);

    transition:
        color .3s ease,
        gap .3s ease;
}

.fg-service-card__link i {
    transition: transform .3s ease;
}

.fg-service-card:hover .fg-service-card__link {
    color: var(--fg-green);
    gap: 12px;
}

.fg-service-card:hover .fg-service-card__link i {
    transform: translateX(4px);
}

/* =========================================================================
   23. GOVERNMENT SCHEME CARDS
   ========================================================================= */
.fg-scheme-card {
    background: var(--fg-white);
    border-radius: var(--fg-radius-xl);
    border: 1px solid var(--fg-border);
    overflow: hidden;
    height: 100%;
    transition: transform var(--fg-transition-medium), box-shadow var(--fg-transition-medium);
}

.fg-scheme-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--fg-shadow-lg);
}

.fg-scheme-card__header {
    background: var(--fg-gradient-navy);
    padding: var(--fg-space-6);
    display: flex;
    align-items: center;
    gap: var(--fg-space-4);
    color: var(--fg-white);
}

.fg-scheme-card__header i {
    width: 50px;
    height: 50px;
    border-radius: var(--fg-radius-md);
    background: rgba(255, 255, 255, 0.12);
    display: grid;
    place-content: center;
    font-size: 1.25rem;
    color: var(--fg-green);
}

.fg-scheme-card__body { padding: var(--fg-space-6); }

.fg-scheme-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fg-space-2);
    margin-bottom: var(--fg-space-4);
}

.fg-scheme-card__footer {
    padding: var(--fg-space-5) var(--fg-space-6);
    border-top: 1px solid var(--fg-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}


/* =========================================================================
   24. STATISTICS / COUNTER CARDS
   ========================================================================= */
.fg-counter-card {
    text-align: center;
    padding: var(--fg-space-7);
    border-radius: var(--fg-radius-xl);
    background: var(--fg-white);
    box-shadow: var(--fg-shadow-sm);
    transition: transform var(--fg-transition-medium), box-shadow var(--fg-transition-medium);
}

.fg-counter-card:hover { transform: translateY(-6px); box-shadow: var(--fg-shadow-md); }

.fg-counter-card__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto var(--fg-space-4);
    border-radius: 50%;
    background: var(--fg-green-light);
    color: var(--fg-green-dark);
    display: grid;
    place-content: center;
    font-size: 1.3rem;
}

.fg-counter-card__number {
    font-size: 2.5rem;
    font-weight: var(--fg-fw-extrabold);
    color: var(--fg-navy);
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
}

.fg-counter-card__label {
    font-size: var(--fg-fs-sm);
    color: var(--fg-gray);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}


/* =========================================================================
   25. TESTIMONIALS
   ========================================================================= */
.fg-testimonial-card {
    background: var(--fg-white);
    border-radius: var(--fg-radius-xl);
    padding: var(--fg-space-7);
    box-shadow: var(--fg-shadow-sm);
    height: 100%;
}

.fg-testimonial-card__quote {
    color: var(--fg-green);
    font-size: 2rem;
    margin-bottom: var(--fg-space-4);
    display: block;
}

.fg-testimonial-card__text {
    font-size: var(--fg-fs-sm);
    margin-bottom: var(--fg-space-6);
    font-style: italic;
}

.fg-testimonial-card__author {
    display: flex;
    align-items: center;
    gap: var(--fg-space-4);
}

.fg-testimonial-card__author img {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
}

.fg-testimonial-card__author h6 { margin-bottom: 2px; }
.fg-testimonial-card__author span { font-size: var(--fg-fs-xs); color: var(--fg-gray); }

.fg-testimonial-card__rating { color: #F5A623; margin-bottom: var(--fg-space-3); font-size: 0.85rem; }


/* =========================================================================
   26. FAQ
   ========================================================================= */
.fg-faq-wrapper { max-width: 860px; margin: 0 auto; }


/* =========================================================================
   27. TIMELINE / PROCESS SECTION
   ========================================================================= */
.fg-timeline {
    position: relative;
    padding-left: var(--fg-space-8);
}

.fg-timeline::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: var(--fg-border);
}

.fg-timeline-item {
    position: relative;
    padding-bottom: var(--fg-space-8);
}

.fg-timeline-item:last-child { padding-bottom: 0; }

.fg-timeline-item::before {
    content: "";
    position: absolute;
    left: -34px;
    top: 4px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--fg-white);
    border: 3px solid var(--fg-green);
}

.fg-process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--fg-space-6);
}

.fg-process-grid .fg-process-card { padding: var(--fg-space-5) var(--fg-space-3); }
.fg-process-grid .fg-process-card:not(:last-child)::after {
    content: "âžœ";
    position: absolute;
    right: -22px;
    top: 38%;
    color: var(--fg-green);
    font-size: 1.4rem;
    font-weight: 700;
}
.fg-process-grid .fg-process-card h3 { font-size: 1rem; color: var(--fg-navy); text-transform: uppercase; margin-bottom: var(--fg-space-2); }
.fg-process-grid .fg-process-card p { font-size: .82rem; line-height: 1.5; margin-bottom: 0; }

.fg-plan-card__top { justify-content: flex-start; margin-bottom: 1.25rem; }
.fg-plan-card__top i { color: var(--fg-green-dark); }
.fg-plan-card h3 { margin: 0 0 .7rem; }
.fg-plan-card p { margin-bottom: 1.25rem; }
.fg-plan-card ul { margin: 0 0 1.25rem; }
.fg-approach-section .row { align-items: start; }
.fg-approach-heading { padding-top: .25rem; }
.fg-approach-heading h3 { max-width: 20rem; }
.fg-approach-section .fg-step-list { margin-top: .25rem; }
.fg-approach-section .fg-step-list > div { padding-block: 1.25rem; }
.fg-scheme-cta { text-align: left; }
.fg-scheme-cta .fg-cta-content { max-width: 42rem; margin-inline: auto; }
.fg-scheme-cta .fg-cta-content h3 { margin-bottom: 1.5rem; }
.fg-scheme-cta .fg-btn { margin-top: .25rem; }
@media (max-width: 991.98px) {
    .fg-approach-heading { padding-top: 0; }
    .fg-scheme-cta { text-align: center; }
}
@media (max-width: 575.98px) {
    .fg-approach-section .fg-step-list { margin-top: .75rem; }
    .fg-scheme-cta .fg-cta-content { max-width: none; }
}

.fg-home-trust .fg-service-card { border-top: 4px solid var(--fg-green); }
.fg-proof-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.fg-proof-stats > div { background: var(--fg-navy); color: var(--fg-white); border-radius: var(--fg-radius-xl); padding: 1.5rem; min-height: 120px; display: flex; flex-direction: column; justify-content: center; box-shadow: var(--fg-shadow-md); }
.fg-proof-stats strong { color: var(--fg-green-light); font-size: 2rem; line-height: 1; margin-bottom: .55rem; }
.fg-proof-stats span { color: rgba(255,255,255,.8); font-size: .9rem; }
@media (max-width: 575px) { .fg-proof-stats { grid-template-columns: 1fr; } }
.fg-hero__stats { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:2.5rem; border-top:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); }
.fg-hero__stat { padding:1.25rem 1rem 1.1rem 0; border-right:1px solid rgba(255,255,255,.18); }
.fg-hero__stat:last-child { border-right:0; padding-left:1rem; }
.fg-hero__stat strong { display:block; color:var(--fg-green-light); font-size:clamp(1.5rem,2.5vw,2.35rem); line-height:1; margin-bottom:.45rem; }
.fg-hero__stat span { display:block; color:rgba(255,255,255,.78); font-size:.76rem; line-height:1.35; }
.fg-logo__img { width:148px; height:auto; object-fit:contain; }
.fg-eyebrow { display:inline-flex; align-items:center; gap:.65rem; padding:.7rem 1.15rem; border-radius:999px; background:#e4f6ec; color:#109b55; font-size:.78rem; font-weight:700; letter-spacing:.14em; line-height:1; text-transform:uppercase; }
.fg-eyebrow i { font-size:.95rem; letter-spacing:0; }
.fg-values-showcase { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.fg-value-card { display:flex; gap:1rem; align-items:flex-start; min-height:12rem; padding:1.6rem; border:1px solid rgba(7,27,59,.1); border-radius:1.25rem; background:#fff; box-shadow:0 12px 30px rgba(7,27,59,.06); transition:transform .2s ease,box-shadow .2s ease; }
.fg-value-card:hover { transform:translateY(-4px); box-shadow:0 18px 36px rgba(7,27,59,.11); }
.fg-value-card--featured { grid-column:span 2; background:#071b3b; color:#fff; border-color:#071b3b; min-height:10rem; }
.fg-value-card__icon { display:inline-flex; flex:0 0 3rem; width:3rem; height:3rem; align-items:center; justify-content:center; border-radius:1rem; background:#e4f6ec; color:#109b55; font-size:1.15rem; }
.fg-value-card--featured .fg-value-card__icon { background:#109b55; color:#fff; }
.fg-value-card h3 { margin:0 0 .45rem; font-size:1.25rem; }
.fg-value-card p { margin:0; color:#64748b; line-height:1.7; }
.fg-value-card--featured p { color:rgba(255,255,255,.75); }
.fg-value-card__label { display:block; margin-bottom:.45rem; color:#109b55; font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
@media (max-width: 767px) { .fg-eyebrow { font-size:.7rem; letter-spacing:.1em; } .fg-values-showcase { grid-template-columns:1fr; } .fg-value-card--featured { grid-column:auto; } }

/* Final responsive system pass */
html { overflow-x:hidden; }
body { color:var(--fg-dark); line-height:1.6; }
.container { width:100%; max-width:var(--fg-container-max); padding-inline:1.25rem; }
.fg-btn { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:.55rem; border-radius:var(--fg-radius-md); font-weight:600; }
.fg-btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid rgba(22,179,74,.45); outline-offset:3px; }
.fg-form-control { min-height:50px; border-radius:var(--fg-radius-md); }
textarea.fg-form-control { min-height:130px; resize:vertical; }

.fg-auth-page { min-height: 70vh; display:flex; align-items:center; justify-content:center; padding:4rem 1rem; background:linear-gradient(135deg,#f6faf8,#eef4f8); }
.fg-auth-card { width:min(100%,760px); padding:clamp(1.5rem,4vw,3rem); background:#fff; border:1px solid rgba(7,27,59,.1); border-radius:1.25rem; box-shadow:0 1.5rem 4rem rgba(7,27,59,.1); }
.fg-auth-card--small { max-width:560px; }
.fg-auth-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.15rem; }
.fg-auth-field { display:flex; flex-direction:column; gap:.4rem; }
.fg-auth-field label { color:var(--fg-navy); font-size:.86rem; font-weight:700; }
.fg-auth-field label span { color:#dc2626; }
.fg-auth-input { width:100%; min-height:50px; padding:.75rem .9rem; color:var(--fg-navy); background:#fbfdfc; border:1px solid #cbd5e1; border-radius:.65rem; outline:0; transition:border-color .2s,box-shadow .2s,background .2s; }
.fg-auth-input:focus { background:#fff; border-color:var(--fg-green); box-shadow:0 0 0 4px rgba(22,179,74,.13); }
.fg-auth-input:invalid:not(:placeholder-shown) { border-color:#dc2626; }
.fg-auth-error { display:block; color:#b91c1c; font-size:.78rem; line-height:1.4; }
.fg-live-validation { min-height:1.1em; color:#64748b; font-size:.76rem; }
.fg-live-validation.is-checking { color:#64748b; }
.fg-live-validation.is-valid { color:#15803d; }
.fg-live-validation.is-invalid { color:#b91c1c; }
.fg-auth-input.is-valid { border-color:#16a34a; }
.fg-auth-input.is-invalid { border-color:#dc2626; }
.fg-auth-form > .fg-btn { grid-column:1/-1; justify-self:start; min-height:50px; }
.fg-auth-switch { grid-column:1/-1; margin:0; color:#64748b; font-size:.9rem; }
.fg-auth-switch a { color:var(--fg-navy); font-weight:700; }
@media (max-width:600px) { .fg-auth-form { grid-template-columns:1fr; } }
.fg-editorial-hero { padding-block:clamp(5rem,10vw,9rem) clamp(3.5rem,7vw,6rem); }
.fg-editorial-hero__kicker { margin-bottom:clamp(2rem,5vw,4rem); }
.fg-editorial-section { padding-block:clamp(4rem,8vw,7rem); }
.fg-footer a:hover { color:var(--fg-green-light); }
@media (max-width: 575.98px) { .container { padding-inline:1rem; } .fg-btn--lg { width:100%; } .fg-hero__actions { flex-direction:column; align-items:stretch; } .fg-hero__actions .fg-btn { width:100%; } }

/* Navbar composition: compact brand, breathable navigation, aligned CTA. */
.fg-navbar__inner { width:min(100% - 2rem, 1240px); margin-inline:auto; min-height:70px; gap:clamp(1rem,2.5vw,2.5rem); }
.fg-logo { flex:0 1 auto; gap:.55rem; white-space:nowrap; }
.fg-logo__img { width:clamp(100px,8vw,132px); height:auto; }
.fg-logo__text { max-width:185px; overflow:hidden; text-overflow:ellipsis; font-size:clamp(.9rem,1.1vw,1.1rem); line-height:1.15; }
.fg-nav-center { flex:1 1 auto; min-width:0; }
.fg-nav-menu { justify-content:center; gap:clamp(.65rem,1.25vw,1.35rem); }
.fg-nav-link { padding-inline:.25rem; font-size:.86rem; }
.fg-nav-right { flex:0 0 auto; margin-left:auto; }
.fg-nav-right .fg-btn { white-space:nowrap; padding-inline:1.15rem; font-size:.82rem; }
.fg-caret { margin-left:.15rem; }
.fg-hamburger { width:44px; height:44px; padding:0; align-items:center; justify-content:center; }
.fg-mobile-menu__header .fg-logo__img { width:108px; }
.fg-mobile-menu__header .fg-logo__text { max-width:150px; }
@media (max-width: 1199.98px) and (min-width: 1024px) { .fg-navbar__inner { gap:1rem; } .fg-logo__text { max-width:135px; font-size:.85rem; } .fg-nav-menu { gap:.45rem; } .fg-nav-link { font-size:.78rem; } .fg-nav-right .fg-btn { padding-inline:.8rem; font-size:.76rem; } }

/* Conceptual principles framework: a brand model, not a data chart. */
.fg-values-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:center; gap:clamp(2rem,6vw,6rem); }
.fg-values-heading { max-width:31rem; }
.fg-values-heading h2 { margin-top:1.25rem; }
.fg-principles-framework { display:grid; place-items:center; width:100%; }
.fg-principles-orbit { position:relative; width:min(100%,580px); aspect-ratio:1; display:grid; place-items:center; }
.fg-principles-orbit::before { content:""; position:absolute; width:23rem; height:23rem; border:1px solid rgba(16,154,62,.25); border-radius:50%; box-shadow:0 0 0 2.5rem rgba(16,154,62,.04), inset 0 0 0 1.5rem rgba(7,27,59,.025); }
.fg-principles-hub { position:relative; z-index:1; width:14rem; min-height:14rem; padding:2rem; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border-radius:50%; background:var(--fg-navy); color:#fff; box-shadow:0 1.5rem 3rem rgba(7,27,59,.2); }
.fg-principles-hub i { color:var(--fg-green); font-size:1.7rem; margin-bottom:.65rem; }
.fg-principles-hub span { color:var(--fg-green); font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.fg-principles-hub strong { margin:.3rem 0 .5rem; font-size:1.2rem; }
.fg-principles-hub small { color:rgba(255,255,255,.7); font-size:.7rem; line-height:1.45; }
.fg-principle-node { position:absolute; z-index:2; width:13rem; padding:1.15rem; border:1px solid rgba(7,27,59,.1); border-radius:1rem; background:#fff; box-shadow:0 .75rem 1.75rem rgba(7,27,59,.08); }
.fg-principle-node i { display:grid; place-items:center; width:2.4rem; height:2.4rem; margin-bottom:.7rem; border-radius:.75rem; background:var(--fg-green-light); color:var(--fg-green-dark); }
.fg-principle-node h3 { margin:0 0 .3rem; font-size:1rem; }
.fg-principle-node p { margin:0; color:#667085; font-size:.78rem; line-height:1.5; }
.fg-principle-node--top { top:0; left:50%; transform:translateX(-50%); }
.fg-principle-node--right { right:0; top:50%; transform:translateY(-50%); }
.fg-principle-node--bottom { bottom:0; left:50%; transform:translateX(-50%); }
@media (max-width:991.98px) and (min-width:768px) { .fg-values-layout { gap:2rem; } .fg-principles-orbit { width:min(100%,430px); } .fg-principle-node { width:10.5rem; padding:.9rem; } .fg-principle-node p { font-size:.7rem; } }
@media (max-width:767.98px) { .fg-values-layout { grid-template-columns:1fr; gap:2.5rem; } .fg-principles-framework { min-height:0; } .fg-principles-orbit { display:flex; flex-direction:column; gap:1rem; min-height:0; aspect-ratio:auto; } .fg-principles-orbit::before { display:none; } .fg-principles-hub { order:0; width:15rem; min-height:15rem; } .fg-principle-node { position:static; transform:none; width:100%; max-width:22rem; } .fg-principle-node--top { order:1; } .fg-principle-node--right { order:2; } .fg-principle-node--bottom { order:3; } }
.fg-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.fg-category-card { display:flex; align-items:center; gap:1rem; min-height:10rem; padding:1.5rem; border:1px solid rgba(7,27,59,.1); border-radius:1.25rem; background:#fff; color:var(--fg-navy); text-decoration:none; box-shadow:0 12px 30px rgba(7,27,59,.06); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.fg-category-card:hover { color:var(--fg-navy); transform:translateY(-4px); border-color:rgba(22,179,74,.45); box-shadow:0 18px 36px rgba(7,27,59,.12); }
.fg-service-row__main h3 a { color:inherit; text-decoration:none; }
.fg-service-row__main h3 a:hover { color:var(--fg-green-dark); }
.fg-category-card__icon { display:grid; place-items:center; flex:0 0 3.25rem; width:3.25rem; height:3.25rem; border-radius:1rem; background:var(--fg-green-light); color:var(--fg-green-dark); font-size:1.25rem; }
.fg-category-card__body { display:flex; flex:1; min-width:0; flex-direction:column; gap:.25rem; }
.fg-category-card__body .fg-overline { margin:0; font-size:.62rem; }
.fg-category-card__body strong { font-size:1.05rem; line-height:1.25; }
.fg-category-card__body > span:last-child { color:#667085; font-size:.8rem; line-height:1.5; }
.fg-category-card__arrow { display:grid; place-items:center; flex:0 0 2.4rem; width:2.4rem; height:2.4rem; border:1px solid rgba(7,27,59,.14); border-radius:50%; font-size:.85rem; }
.fg-service-catalogue { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.fg-catalogue-card { display:flex; min-height:19rem; flex-direction:column; padding:1.5rem; border:1px solid rgba(7,27,59,.1); border-radius:1.25rem; background:#fff; box-shadow:0 10px 26px rgba(7,27,59,.055); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.fg-catalogue-card:hover { transform:translateY(-5px); border-color:rgba(22,179,74,.45); box-shadow:0 18px 36px rgba(7,27,59,.12); }
.fg-catalogue-card__top { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.6rem; }
.fg-catalogue-card__icon { display:grid; place-items:center; width:3rem; height:3rem; border-radius:.9rem; background:var(--fg-green-light); color:var(--fg-green-dark); font-size:1.15rem; }
.fg-catalogue-card__tag { color:var(--fg-green-dark); font-size:.65rem; font-weight:700; letter-spacing:.08em; text-align:right; text-transform:uppercase; }
.fg-catalogue-card h3 { margin:0 0 .7rem; color:var(--fg-navy); font-size:1.2rem; line-height:1.3; }
.fg-catalogue-card p { margin:0; color:#667085; font-size:.88rem; line-height:1.65; }
.fg-catalogue-card__link { display:inline-flex; align-items:center; gap:.55rem; margin-top:auto; padding-top:1.25rem; color:var(--fg-navy); font-size:.85rem; font-weight:700; text-decoration:none; }
.fg-catalogue-card__link i { color:var(--fg-green-dark); transition:transform .2s ease; }
.fg-catalogue-card__link:hover { color:var(--fg-green-dark); }
.fg-catalogue-card__link:hover i { transform:translateX(4px); }
.fg-catalogue-cta { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:2.25rem; padding:1.5rem 1.75rem; border-radius:1.25rem; background:var(--fg-navy); color:#fff; }
.fg-catalogue-cta div { display:flex; flex-direction:column; gap:.2rem; }
.fg-catalogue-cta strong { font-size:1rem; }
.fg-catalogue-cta span { color:rgba(255,255,255,.7); font-size:.85rem; }
@media (max-width:991.98px) { .fg-service-catalogue { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:575.98px) { .fg-service-catalogue { grid-template-columns:1fr; } .fg-catalogue-card { min-height:16rem; } .fg-catalogue-cta { align-items:stretch; flex-direction:column; } .fg-catalogue-cta .fg-btn { width:100%; } }
@media (max-width:991.98px) { .fg-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:575.98px) { .fg-category-grid { grid-template-columns:1fr; } .fg-category-card { min-height:9rem; } }
@media (max-width: 767px) { .fg-hero__stats { grid-template-columns:repeat(2,1fr); } .fg-hero__stat:nth-child(2) { border-right:0; } .fg-hero__stat:nth-child(n+3) { border-top:1px solid rgba(255,255,255,.18); } .fg-hero__stat:last-child { padding-left:0; } .fg-logo__img { width:124px; } }

.fg-detail-hero { padding: 2rem; border: 1px solid var(--fg-border); border-radius: var(--fg-radius-3xl); background: linear-gradient(135deg, #fff, #f3faf7); box-shadow: var(--fg-shadow-sm); }
.fg-service-card__icon--image { overflow: hidden; padding: 0; background: var(--fg-white); }
.fg-service-card__icon--image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fg-scheme-card__thumb { width: 42px; height: 42px; object-fit: cover; border-radius: 10px; background: var(--fg-white); }
.fg-detail-hero__content { padding: 1rem; }
.fg-detail-hero__media img { width: 100%; min-height: 320px; object-fit: cover; border-radius: var(--fg-radius-2xl); box-shadow: var(--fg-shadow-md); }
.fg-detail-hero + .row .fg-card { height: 100%; border-top: 3px solid var(--fg-green); }
@media (max-width: 767px) { .fg-detail-hero { padding: 1rem; } .fg-detail-hero__media img { min-height: 220px; } }

/* Navigation: spacious, scannable dynamic menus */
.fg-mega-menu { width: min(780px, 90vw); }
.fg-saas-mega { position: absolute; top: 100%; left: 50%; z-index: 50; display: none; width: min(1100px, calc(100vw - 32px)); padding-top: 16px; transform: translateX(-50%); }
.fg-has-mega:hover > .fg-saas-mega,
.fg-has-dropdown:hover > .fg-saas-mega { display: block; }
.fg-saas-mega:hover { display: block; }
.fg-saas-mega > div { border-radius: 24px; border: 1px solid var(--fg-border); background: var(--fg-white); padding: 24px; box-shadow: var(--fg-shadow-lg); }
.fg-saas-mega > div > div { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; }
.fg-saas-mega h3 { margin: 0; color: var(--fg-navy); font-size: 1.45rem; font-weight: 700; }
.fg-saas-mega h4 { color: var(--fg-white); font-size: 1.15rem; line-height: 1.45; margin: 0; }
.fg-saas-mega p { margin: 0; }
.fg-saas-mega .grid.grid-cols-1 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fg-saas-mega a.group\/card { display: flex; min-height: 148px; flex-direction: column; border: 1px solid var(--fg-border); border-radius: 16px; background: var(--fg-white); padding: 16px; text-decoration: none; box-shadow: var(--fg-shadow-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.fg-saas-mega a.group\/card:hover { transform: translateY(-4px); border-color: var(--fg-green); box-shadow: var(--fg-shadow-lg); }
.fg-saas-mega a.group\/card > span:first-child { display: flex; width: 40px; height: 40px; align-items: center; justify-content: center; margin-bottom: 16px; border-radius: 12px; background: var(--fg-green-light); color: var(--fg-green-dark); }
.fg-saas-mega a.group\/card:hover > span:first-child { background: var(--fg-green); color: var(--fg-white); }
.fg-saas-mega a.group\/card strong { display: block; overflow: hidden; margin-bottom: 4px; color: var(--fg-navy); font-size: .92rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.fg-saas-mega a.group\/card > span:last-child { display: -webkit-box; overflow: hidden; color: var(--fg-gray); font-size: .75rem; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.fg-saas-mega aside { display: flex; min-height: 100%; flex-direction: column; justify-content: space-between; border-radius: 16px; background: var(--fg-navy); padding: 24px; color: var(--fg-white); }
.fg-saas-mega aside > div:last-child { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; }
.fg-saas-mega aside a { display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; padding: 12px 16px; font-size: .82rem; font-weight: 600; text-decoration: none; }
.fg-saas-mega aside a:first-child { background: var(--fg-green); color: var(--fg-navy); }
.fg-saas-mega aside a:last-child { border: 1px solid rgba(255,255,255,.3); color: var(--fg-white); }
@media (max-width: 991px) { .fg-saas-mega { display: none !important; } }
@media (max-width: 767px) { .fg-saas-mega > div > div { grid-template-columns: 1fr; } .fg-saas-mega .grid.grid-cols-1 { grid-template-columns: 1fr; } }
.fg-mega-menu__inner { display: block; }
.fg-mega-col--full { width: 100%; }
.fg-mega-col--full { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.fg-mega-col--full .fg-mega-col__title { grid-column: 1 / -1; }
.fg-mega-col--full .fg-mega-link--all { grid-column: 1 / -1; }
.fg-dropdown--wide { width: 360px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; padding: 1rem; }
.fg-dropdown--wide .fg-dropdown__divider { display: none; }
.fg-dropdown--wide .fg-dropdown__link--all { grid-column: 1 / -1; margin-top: .35rem; }
.fg-dropdown--wide .fg-dropdown__link { min-height: 48px; display: flex; align-items: center; gap: .5rem; }
.fg-dropdown--wide .fg-dropdown__link span { line-height: 1.2; }

.fg-process-card {
    text-align: center;
    padding: var(--fg-space-7) var(--fg-space-5);
    background: var(--fg-white);
    border-radius: var(--fg-radius-xl);
    box-shadow: var(--fg-shadow-sm);
    position: relative;
    transition: transform var(--fg-transition-medium);
}

.fg-process-card:hover { transform: translateY(-8px); }

.fg-process-card__step {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--fg-gradient-green);
    color: var(--fg-white);
    display: grid;
    place-content: center;
    font-weight: var(--fg-fw-bold);
    margin: 0 auto var(--fg-space-5);
}


/* =========================================================================
   28. CTA SECTION
   ========================================================================= */
.fg-cta {
    background: var(--fg-gradient-navy);
    border-radius: var(--fg-radius-3xl);
    padding: var(--fg-space-9) var(--fg-space-8);
    position: relative;
    overflow: hidden;
    color: var(--fg-white);
    text-align: center;
}

.fg-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 30%, rgba(22, 179, 74, 0.25), transparent 45%),
                       radial-gradient(circle at 80% 70%, rgba(30, 94, 255, 0.25), transparent 45%);
}

.fg-cta > * { position: relative; z-index: 1; }

.fg-cta h2 { color: var(--fg-white); }
.fg-cta p { color: rgba(255, 255, 255, 0.75); max-width: 560px; margin-left: auto; margin-right: auto; }

.fg-cta__actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--fg-space-4);
    margin-top: var(--fg-space-7);
}


/* =========================================================================
   29. NEWSLETTER (Footer strip)
   ========================================================================= */
.fg-footer__newsletter {
    background: var(--fg-navy-light);
    padding: var(--fg-space-8) 0;
}

.fg-newsletter-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--fg-space-6);
}

.fg-newsletter-box__text h3 { color: var(--fg-white); margin-bottom: var(--fg-space-1); }
.fg-newsletter-box__text p { color: rgba(255, 255, 255, 0.65); margin-bottom: 0; }

.fg-newsletter-form {
    display: flex;
    gap: var(--fg-space-3);
    background: rgba(255, 255, 255, 0.06);
    padding: var(--fg-space-2);
    border-radius: var(--fg-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.fg-newsletter-form__input {
    background: transparent;
    border: none;
    padding: 0.75rem 1.25rem;
    color: var(--fg-white);
    min-width: 260px;
    font-size: var(--fg-fs-sm);
}

.fg-newsletter-form__input::placeholder { color: rgba(255, 255, 255, 0.5); }
.fg-newsletter-form__input:focus { outline: none; }


/* =========================================================================
   30. CONTACT FORM / GOOGLE MAP
   ========================================================================= */
.fg-contact-card {
    background: var(--fg-white);
    border-radius: var(--fg-radius-2xl);
    box-shadow: var(--fg-shadow-lg);
    padding: var(--fg-space-8);
}

.fg-contact-info-card {
    display: flex;
    align-items: flex-start;
    gap: var(--fg-space-4);
    padding: var(--fg-space-6);
    background: var(--fg-white);
    border-radius: var(--fg-radius-lg);
    box-shadow: var(--fg-shadow-sm);
    margin-bottom: var(--fg-space-5);
}

.fg-contact-info-card i {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    border-radius: var(--fg-radius-md);
    background: var(--fg-blue-light);
    color: var(--fg-blue-dark);
    display: grid;
    place-content: center;
}

.fg-map-wrapper {
    border-radius: var(--fg-radius-xl);
    overflow: hidden;
    box-shadow: var(--fg-shadow-md);
    line-height: 0;
}

.fg-map-wrapper iframe {
    width: 100%;
    height: 420px;
    border: 0;
    filter: grayscale(0.15) contrast(1.05);
}


/* =========================================================================
   31. FOOTER
   ========================================================================= */
.fg-footer {
    background: var(--fg-navy);
    color: rgba(255, 255, 255, 0.72);
}

.fg-footer__main { padding: var(--fg-space-9) 0; }

.fg-logo--footer { margin-bottom: var(--fg-space-5); }

.fg-footer__about {
    color: rgba(255, 255, 255, 0.6);
    font-size: var(--fg-fs-sm);
    margin-bottom: var(--fg-space-6);
    max-width: 340px;
}

.fg-footer__contact-list li {
    display: flex;
    align-items: flex-start;
    gap: var(--fg-space-3);
    font-size: var(--fg-fs-sm);
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: var(--fg-space-3);
}

.fg-footer__contact-list a { color: rgba(255, 255, 255, 0.75); }
.fg-footer__contact-list a:hover { color: var(--fg-green); }
.fg-footer__contact-list i { color: var(--fg-green); margin-top: 4px; }

.fg-footer__heading {
    color: var(--fg-white);
    font-size: var(--fg-fs-h6);
    margin-bottom: var(--fg-space-5);
    position: relative;
}

.fg-footer__heading--social { margin-top: var(--fg-space-6); }

.fg-footer__links li { margin-bottom: var(--fg-space-3); }

.fg-footer__links a {
    color: rgba(255, 255, 255, 0.6);
    font-size: var(--fg-fs-sm);
    transition: all var(--fg-transition-fast);
    display: inline-block;
}

.fg-footer__links a:hover {
    color: var(--fg-green);
    transform: translateX(4px);
}

/* Social Icons */
.fg-social-icons {
    display: flex;
    gap: var(--fg-space-3);
}

.fg-social-icons a {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: var(--fg-white);
    display: grid;
    place-content: center;
    transition: all var(--fg-transition-fast);
}

.fg-social-icons a:hover {
    background: var(--fg-green);
    transform: translateY(-4px);
}

/* Bottom bar / Copyright */
.fg-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: var(--fg-space-5) 0;
}

.fg-footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--fg-space-3);
}

.fg-footer__copyright { font-size: var(--fg-fs-xs); color: rgba(255, 255, 255, 0.5); margin-bottom: 0; }

.fg-footer__legal { display: flex; gap: var(--fg-space-6); }
.fg-footer__legal a { font-size: var(--fg-fs-xs); color: rgba(255, 255, 255, 0.5); }
.fg-footer__legal a:hover { color: var(--fg-green); }


/* =========================================================================
   32. 404 PAGE
   ========================================================================= */
.fg-404 {
    text-align: center;
    padding: var(--fg-space-11) 0;
}

.fg-404__code {
    font-size: clamp(6rem, 14vw, 10rem);
    font-weight: var(--fg-fw-extrabold);
    background: var(--fg-gradient-accent);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    line-height: 1;
    margin-bottom: var(--fg-space-5);
}

.fg-404__text {
    max-width: 480px;
    margin: 0 auto var(--fg-space-7);
}


/* =========================================================================
   33. BLOG CARDS
   ========================================================================= */
.fg-blog-card {
    background: var(--fg-white);
    border-radius: var(--fg-radius-xl);
    overflow: hidden;
    box-shadow: var(--fg-shadow-sm);
    height: 100%;
    transition: transform var(--fg-transition-medium), box-shadow var(--fg-transition-medium);
}

.fg-blog-card:hover { transform: translateY(-8px); box-shadow: var(--fg-shadow-lg); }

.fg-blog-card__img-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
}

.fg-blog-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--fg-transition-slow);
}

.fg-blog-card:hover .fg-blog-card__img-wrap img { transform: scale(1.08); }

.fg-blog-card__category {
    position: absolute;
    top: var(--fg-space-4);
    left: var(--fg-space-4);
    background: var(--fg-green);
    color: var(--fg-white);
    font-size: var(--fg-fs-xs);
    font-weight: var(--fg-fw-semibold);
    padding: var(--fg-space-1) var(--fg-space-4);
    border-radius: var(--fg-radius-pill);
    text-transform: uppercase;
}

.fg-blog-card__body { padding: var(--fg-space-6); }

.fg-blog-card__meta {
    display: flex;
    align-items: center;
    gap: var(--fg-space-4);
    font-size: var(--fg-fs-xs);
    color: var(--fg-gray-light);
    margin-bottom: var(--fg-space-3);
}

.fg-blog-card__meta span { display: inline-flex; align-items: center; gap: 6px; }

.fg-blog-card__title {
    font-size: 1.15rem;
    margin-bottom: var(--fg-space-3);
    transition: color var(--fg-transition-fast);
}

.fg-blog-card__title a { color: var(--fg-navy); }
.fg-blog-card:hover .fg-blog-card__title a { color: var(--fg-green); }

.fg-blog-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: var(--fg-space-5);
    border-top: 1px solid var(--fg-border);
    margin-top: var(--fg-space-5);
}


/* =========================================================================
   34. SIDEBAR / SEARCH / TAGS / CATEGORIES
   ========================================================================= */
.fg-sidebar-widget {
    background: var(--fg-white);
    border-radius: var(--fg-radius-xl);
    padding: var(--fg-space-6);
    box-shadow: var(--fg-shadow-sm);
    margin-bottom: var(--fg-space-6);
}

.fg-sidebar-widget__title {
    font-size: var(--fg-fs-h5);
    margin-bottom: var(--fg-space-5);
    padding-bottom: var(--fg-space-4);
    border-bottom: 2px solid var(--fg-border);
}

.fg-search-box {
    position: relative;
}

.fg-search-box input {
    width: 100%;
    padding: 0.85rem 3rem 0.85rem 1.15rem;
    border: 1.5px solid var(--fg-border);
    border-radius: var(--fg-radius-md);
    font-size: var(--fg-fs-sm);
}

.fg-search-box button {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border-radius: var(--fg-radius-sm);
    background: var(--fg-green);
    color: var(--fg-white);
    display: grid;
    place-content: center;
}

.fg-category-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--fg-space-3) 0;
    border-bottom: 1px dashed var(--fg-border);
    font-size: var(--fg-fs-sm);
}

.fg-category-list li:last-child { border-bottom: none; }
.fg-category-list a { color: var(--fg-gray); }
.fg-category-list a:hover { color: var(--fg-green); }
.fg-category-list span {
    background: var(--fg-bg);
    color: var(--fg-gray);
    font-size: var(--fg-fs-xs);
    padding: 2px 10px;
    border-radius: var(--fg-radius-pill);
}

.fg-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fg-space-2);
}

.fg-tag-list a {
    font-size: var(--fg-fs-xs);
    padding: var(--fg-space-2) var(--fg-space-4);
    background: var(--fg-bg);
    color: var(--fg-gray);
    border-radius: var(--fg-radius-pill);
    transition: all var(--fg-transition-fast);
}

.fg-tag-list a:hover { background: var(--fg-green); color: var(--fg-white); }

.fg-sidebar-post {
    display: flex;
    gap: var(--fg-space-4);
    margin-bottom: var(--fg-space-5);
}

.fg-sidebar-post img {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: var(--fg-radius-md);
    flex-shrink: 0;
}

.fg-sidebar-post h6 { font-size: 0.9rem; margin-bottom: var(--fg-space-1); }
.fg-sidebar-post span { font-size: var(--fg-fs-xs); color: var(--fg-gray-light); }


/* =========================================================================
   35. PAGE LOADER
   ========================================================================= */
.fg-loader {
    position: fixed;
    inset: 0;
    background: var(--fg-navy);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--fg-z-loader);
    transition: opacity 0.6s ease, visibility 0.6s ease;
}

.fg-loader--hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.fg-loader__inner { text-align: center; }

.fg-loader__logo {
    font-size: 2rem;
    font-weight: var(--fg-fw-extrabold);
    color: var(--fg-white);
    display: block;
    margin-bottom: var(--fg-space-5);
    letter-spacing: -0.02em;
}

.fg-loader__bar {
    width: 160px;
    height: 4px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: var(--fg-radius-pill);
    overflow: hidden;
    margin: 0 auto;
}

.fg-loader__bar span {
    display: block;
    height: 100%;
    width: 40%;
    background: var(--fg-gradient-green);
    border-radius: var(--fg-radius-pill);
    animation: fgLoaderSlide 1.1s ease-in-out infinite;
}

@keyframes fgLoaderSlide {
    0% { transform: translateX(-100%); }
    50% { transform: translateX(150%); }
    100% { transform: translateX(-100%); }
}


/* =========================================================================
   36. BACK TO TOP
   ========================================================================= */
.fg-back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--fg-navy);
    color: var(--fg-white);
    display: grid;
    place-content: center;
    box-shadow: var(--fg-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition: all var(--fg-transition-fast);
    z-index: var(--fg-z-back-to-top);
}

.fg-back-to-top--visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.fg-back-to-top:hover {
    background: var(--fg-green);
    transform: translateY(-4px);
}


/* =========================================================================
   37. SCROLL PROGRESS BAR
   ========================================================================= */
.fg-scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: transparent;
    z-index: 1060;
}

.fg-scroll-progress span,
#fgScrollProgressBar {
    display: block;
    height: 100%;
    width: 0%;
    background: var(--fg-gradient-accent);
    transition: width 0.1s linear;
}


/* =========================================================================
   38. WHATSAPP FLOATING BUTTON
   ========================================================================= */
.fg-whatsapp-float {
    position: fixed;
    bottom: 30px;
    left: 30px;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #25D366;
    color: var(--fg-white);
    display: grid;
    place-content: center;
    font-size: 1.6rem;
    box-shadow: 0 12px 28px rgba(37, 211, 102, 0.4);
    z-index: var(--fg-z-back-to-top);
    animation: fgWhatsAppPulse 2.4s ease-in-out infinite;
}

.fg-whatsapp-float:hover {
    color: var(--fg-white);
    transform: scale(1.08);
}

@keyframes fgWhatsAppPulse {
    0%, 100% { box-shadow: 0 12px 28px rgba(37, 211, 102, 0.4); }
    50% { box-shadow: 0 12px 28px rgba(37, 211, 102, 0.7), 0 0 0 10px rgba(37, 211, 102, 0.12); }
}


/* =========================================================================
   39. TOAST NOTIFICATIONS
   ========================================================================= */
.fg-toast-container {
    z-index: var(--fg-z-toast);
}

.fg-django-messages {
    display: none;
}

.fg-toast {
    display: flex;
    align-items: center;
    gap: var(--fg-space-3);
    background: var(--fg-white);
    color: var(--fg-dark);
    padding: var(--fg-space-4) var(--fg-space-5);
    border-radius: var(--fg-radius-md);
    box-shadow: var(--fg-shadow-lg);
    margin-top: var(--fg-space-3);
    min-width: 300px;
    font-size: var(--fg-fs-sm);
    border-left: 4px solid var(--fg-navy);
    animation: fgToastIn 0.35s ease;
}

.fg-toast--success { border-left-color: var(--fg-green); }
.fg-toast--success i { color: var(--fg-green); }
.fg-toast--error { border-left-color: #DC2626; }
.fg-toast--error i { color: #DC2626; }
.fg-toast--info { border-left-color: var(--fg-blue); }
.fg-toast--info i { color: var(--fg-blue); }

.fg-toast__message { flex: 1; }

.fg-toast__close { color: var(--fg-gray-light); }
.fg-toast__close:hover { color: var(--fg-dark); }

.fg-toast--hide { animation: fgToastOut 0.3s ease forwards; }


/* =========================================================================
   39A. COOKIE CONSENT
   ========================================================================= */
.fg-cookie-consent {
    position: fixed;
    left: 50%;
    bottom: var(--fg-space-5);
    width: min(960px, calc(100% - 32px));
    transform: translate(-50%, calc(100% + var(--fg-space-6)));
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--fg-space-6);
    align-items: center;
    background: var(--fg-white);
    border: 1px solid var(--fg-border);
    border-radius: var(--fg-radius-xl);
    box-shadow: var(--fg-shadow-xl);
    padding: var(--fg-space-6);
    z-index: var(--fg-z-toast);
    opacity: 0;
    visibility: hidden;
    transition: transform var(--fg-transition-medium), opacity var(--fg-transition-medium), visibility var(--fg-transition-medium);
}

.fg-cookie-consent--visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.fg-cookie-consent__content h2 {
    font-size: var(--fg-fs-h5);
    margin-bottom: var(--fg-space-2);
}

.fg-cookie-consent__content p {
    font-size: var(--fg-fs-sm);
    margin-bottom: var(--fg-space-4);
}

.fg-cookie-consent__options,
.fg-cookie-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fg-space-3);
}

.fg-cookie-consent__actions {
    justify-content: flex-end;
}

@keyframes fgToastIn {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes fgToastOut {
    from { opacity: 1; transform: translateX(0); }
    to { opacity: 0; transform: translateX(40px); }
}


/* =========================================================================
   40. ANIMATIONS
   ========================================================================= */
@keyframes fgFadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fgSlideLeft {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes fgSlideRight {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes fgZoom {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}

.fg-anim-fade-up { animation: fgFadeUp 0.7s ease both; }
.fg-anim-slide-left { animation: fgSlideLeft 0.7s ease both; }
.fg-anim-slide-right { animation: fgSlideRight 0.7s ease both; }
.fg-anim-zoom { animation: fgZoom 0.6s ease both; }

/* Hover scale utility */
.fg-hover-scale { transition: transform var(--fg-transition-fast); }
.fg-hover-scale:hover { transform: scale(1.05); }

/* Shadow hover utility */
.fg-hover-shadow { transition: box-shadow var(--fg-transition-fast); }
.fg-hover-shadow:hover { box-shadow: var(--fg-shadow-lg); }

/* Generic smooth transition helper */
.fg-transition { transition: all var(--fg-transition-fast); }

/* Dark overlay utility (for image sections) */
.fg-dark-overlay { position: relative; }
.fg-dark-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(7, 27, 59, 0.65);
}
.fg-dark-overlay > * { position: relative; z-index: 1; }

/* Border radius utilities */
.fg-radius-sm { border-radius: var(--fg-radius-sm) !important; }
.fg-radius-md { border-radius: var(--fg-radius-md) !important; }
.fg-radius-lg { border-radius: var(--fg-radius-lg) !important; }
.fg-radius-xl { border-radius: var(--fg-radius-xl) !important; }
.fg-radius-2xl { border-radius: var(--fg-radius-2xl) !important; }
.fg-radius-pill { border-radius: var(--fg-radius-pill) !important; }

/* Glassmorphism utility (generic, reusable anywhere) */
.fg-glass {
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}


/* =========================================================================
   41. RESPONSIVE UTILITIES
   ========================================================================= */

/* ---- Large Desktop (>= 1400px) already covered by container rule ---- */

/* ---- Laptop / Small Desktop (max-width: 1199.98px) ---- */
@media (max-width: 1199.98px) {
    .fg-mega-menu__inner { grid-template-columns: repeat(3, 1fr); }
    .fg-mega-promo { grid-column: span 3; }
    .fg-process-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---- Tablet (max-width: 991.98px) ---- */
@media (max-width: 991.98px) {
    :root {
        --fg-space-11: 72px;
        --fg-space-10: 56px;
    }

    .fg-nav-center,
    .fg-nav-right { display: none !important; }

    .fg-hamburger { display: flex; }

    .fg-hero { text-align: center; }
    .fg-hero__stats { justify-content: center; }
    .fg-hero__actions { justify-content: center; }

    .fg-about__experience-badge { right: var(--fg-space-4); }

    .fg-newsletter-box { justify-content: center; text-align: center; }
    .fg-newsletter-form { width: 100%; }
    .fg-newsletter-form__input { min-width: 0; flex: 1; }

    .fg-footer__bottom-inner { flex-direction: column; text-align: center; }

    .fg-cookie-consent {
        grid-template-columns: 1fr;
    }

    .fg-cookie-consent__actions {
        justify-content: flex-start;
    }
}

/* ---- Large Mobile (max-width: 767.98px) ---- */
@media (max-width: 767.98px) {
    .container { padding-left: 1rem; padding-right: 1rem; }
    .fg-section { padding: var(--fg-space-9) 0; }
    .fg-section--lg { padding: var(--fg-space-9) 0; }

    .fg-process-grid { grid-template-columns: 1fr; }

    .fg-cta { padding: var(--fg-space-8) var(--fg-space-5); border-radius: var(--fg-radius-xl); }

    .fg-contact-card { padding: var(--fg-space-6); }

    .fg-founder-portrait { max-width: 390px; padding-right: .75rem; }
    .fg-founder-portrait__frame { inset: .75rem 0 0 .75rem; }
    .fg-founder-portrait__badge { right: -.25rem; bottom: 1.5rem; }
    .fg-founder-signature { align-items: flex-start; }

    .fg-whatsapp-float,
    .fg-back-to-top {
        width: 48px;
        height: 48px;
        bottom: 20px;
    }

    .fg-whatsapp-float { left: 20px; font-size: 1.4rem; }
    .fg-back-to-top { right: 20px; }
}

/* ---- Mobile (max-width: 575.98px) ---- */
@media (max-width: 575.98px) {
    :root {
        --fg-space-11: 56px;
        --fg-space-9: 40px;
    }

    .fg-hero__subtitle { font-size: .95rem; }
    .fg-hero__actions { flex-direction: column; width: 100%; }
    .fg-hero__actions .fg-btn { width: 100%; }

    .fg-about__experience-badge {
        position: static;
        margin-top: var(--fg-space-5);
        display: inline-block;
    }

    .fg-mobile-menu { width: 100%; }

    .fg-founder-portrait__badge { padding: .7rem .8rem; font-size: .72rem; }
    .fg-founder-signature { font-size: .76rem; }

    .fg-toast { min-width: 0; width: 100%; }

    .fg-cookie-consent {
        bottom: var(--fg-space-3);
        padding: var(--fg-space-5);
    }

    .fg-cookie-consent__actions .fg-btn {
        width: 100%;
    }
}

/* ---- Small Mobile (max-width: 380px) ---- */
@media (max-width: 380px) {
    .fg-logo__text { font-size: 1.25rem; }
    .fg-btn { padding: 0.7rem 1.35rem; font-size: 0.82rem; }
    .fg-section-title { font-size: 1.75rem; }
}


/* =========================================================================
   42. REDUCED MOTION SUPPORT
   ========================================================================= */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
}


/* =========================================================================
   END OF STYLESHEET
   ========================================================================= */

/* Final public typography contract: green primary headings, navy support text. */
:root {
    --fg-fs-h1: clamp(2.1rem, 4vw, 4.5rem);
    --fg-fs-h2: clamp(1.6rem, 2.8vw, 2.25rem);
    --fg-fs-h3: clamp(1.2rem, 2vw, 1.6rem);
    --fg-fs-h4: 1.05rem;
}

body { letter-spacing: 0; }
h1, h2, h3, h4, h5, h6 { letter-spacing: 0; }
h1 { color: var(--fg-green); font-size: var(--fg-fs-h1); line-height: 1.08; }
h2 { color: var(--fg-navy); font-size: var(--fg-fs-h2); line-height: 1.2; }
h3 { color: var(--fg-navy); font-size: var(--fg-fs-h3); line-height: 1.3; }
h4 { color: var(--fg-navy); font-size: var(--fg-fs-h4); line-height: 1.35; }
p { font-size: 1rem; line-height: 1.65; }

.fg-hero__title { color: var(--fg-white); font-size: clamp(2.2rem, 4.8vw, 4.5rem); line-height: 1.04; letter-spacing: 0; max-width: 12ch; margin-bottom: var(--fg-space-5); text-wrap: balance; }
.fg-editorial-hero h1 { color: var(--fg-green); font-size: clamp(2.8rem, 6vw, 5.6rem); line-height: .95; letter-spacing: 0; max-width: 11ch; margin: 0; }
.fg-editorial-hero--light h1 { color: var(--fg-white); font-size: clamp(2.8rem, 6vw, 5.6rem); line-height: .95; max-width: 11ch; }
.fg-breadcrumb-section__title { color: var(--fg-green); font-size: clamp(2.8rem, 6vw, 5.6rem); line-height: .95; letter-spacing: 0; max-width: 15ch; margin-bottom: var(--fg-space-3); position: relative; }
.fg-hero__title .fg-highlight { color: var(--fg-green); }
.fg-editorial-hero h1 em { color: var(--fg-green); font-style: normal; }
.fg-breadcrumb-section__title em { color: var(--fg-green); font-style: normal; }
.fg-section-heading-badge { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; margin-bottom: 1rem; padding: .55rem .9rem; border-radius: var(--fg-radius-pill); background: var(--fg-green-light); color: var(--fg-green-dark); font-size: clamp(1.15rem, 2.2vw, 1.8rem); font-weight: var(--fg-fw-bold); letter-spacing: 0; line-height: 1.2; }
.fg-section-heading-badge i { color: var(--fg-green); font-size: .8em; }
.fg-section-heading-badge + h3 { margin-top: 0; margin-bottom: 1rem; }
.fg-editorial-section--navy h2:not(.fg-section-heading-badge),
.fg-editorial-section--navy h3,
.fg-editorial-cta h2:not(.fg-section-heading-badge),
.fg-editorial-cta h3,
.fg-cta h2:not(.fg-section-heading-badge) { color: var(--fg-white); }
.fg-editorial-section--navy .fg-section-heading-badge,
.fg-editorial-cta .fg-section-heading-badge,
.fg-cta .fg-section-heading-badge { color: var(--fg-green-dark); }
.fg-editorial-section--navy p,
.fg-editorial-cta p,
.fg-cta p { color: rgba(255, 255, 255, .78); }
.fg-about-page .fg-trust-panel .fg-section-heading-badge { margin-bottom: 1.25rem; }
.fg-about-page .fg-section-heading-badge { overflow-wrap: anywhere; }
.fg-about-page .fg-trust-panel h3 { max-width: 32rem; font-size: clamp(1.3rem, 2vw, 1.6rem); }
.fg-about-page .fg-trust-panel .fg-section-heading-badge {
    max-width: 100%;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
    font-size: clamp(.95rem, 2vw, 1.65rem);
}
.fg-about-page h4 { margin: 1rem 0 .45rem; }
.fg-home-page .fg-section-heading-badge {
    padding: .62rem 1rem;
    font-size: clamp(1.2rem, 2.1vw, 1.65rem);
    overflow-wrap: anywhere;
}
.fg-home-page .fg-section-title {
    font-size: clamp(1.35rem, 2.2vw, 1.6rem);
    line-height: 1.22;
}
.fg-home-page .fg-section-header { gap: .25rem; }
.fg-home-about-snapshot .fg-section-heading-badge {
    padding: .72rem 1.1rem;
    font-size: clamp(1.2rem, 2.1vw, 1.65rem);
    line-height: 1.15;
}
.fg-home-about-snapshot .fg-home-who-heading {
    gap: .7rem;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 1rem;
    padding: .55rem .9rem;
    font-size: clamp(1.2rem, 2.1vw, 1.65rem);
    line-height: 1.2;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}
.fg-home-about-snapshot .fg-home-who-heading i { font-size: 1.05em; }
.fg-home-about-snapshot .fg-section-title {
    max-width: 18ch;
    margin-bottom: 1rem;
    font-size: clamp(1.35rem, 2.2vw, 1.6rem);
    line-height: 1.2;
}
.fg-home-about-snapshot .fg-lead { max-width: 34rem; }
.fg-home-about-snapshot .fg-about__media img {
    display: block;
    width: 100%;
    aspect-ratio: 1.2;
    object-fit: cover;
    object-position: center;
    border-radius: var(--fg-radius-2xl);
    box-shadow: var(--fg-shadow-lg);
}
.fg-home-about-snapshot .row > [data-aos="fade-left"] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}
.fg-home-about-snapshot .fg-home-who-heading + .fg-section-title { margin-top: 0; }
.fg-home-about-snapshot .fg-section-title + .fg-lead { margin-top: 0; }
.fg-home-about-snapshot .fg-lead + .fg-btn { margin-top: .5rem; }
@media (max-width: 767.98px) {
    .fg-hero__title { font-size: clamp(2.1rem, 11vw, 2.8rem); max-width: 14ch; }
    .fg-editorial-hero h1 { font-size: clamp(2.2rem, 11vw, 3.6rem); max-width: 12ch; }
    .fg-editorial-hero--light h1 { font-size: clamp(2.2rem, 11vw, 3.6rem); max-width: 12ch; }
    .fg-breadcrumb-section__title { font-size: clamp(2.2rem, 11vw, 3.6rem); max-width: 15ch; }
    .fg-section-heading-badge { font-size: 1.1rem; padding: .5rem .8rem; }
    .fg-home-page .fg-section-heading-badge { font-size: 1.1rem; padding: .5rem .8rem; }
    .fg-home-page .fg-section-title { font-size: 1.45rem; }
    .fg-home-about-snapshot .fg-section-heading-badge { font-size: 1.1rem; padding: .55rem .85rem; }
    .fg-home-about-snapshot .fg-section-title { font-size: 1.5rem; }
    p { font-size: .95rem; line-height: 1.65; }
}

/* Final cascade: Blog and Contact use the same dark editorial banner as all inner pages. */
.fg-breadcrumb-section.fg-page-hero--blog,
.fg-breadcrumb-section.fg-page-hero--contact,
.fg-breadcrumb-section.fg-page-hero--article {
    background: var(--fg-gradient-navy) !important;
    color: var(--fg-white) !important;
}
.fg-breadcrumb-section.fg-page-hero--blog .fg-breadcrumb-section__title,
.fg-breadcrumb-section.fg-page-hero--contact .fg-breadcrumb-section__title,
.fg-breadcrumb-section.fg-page-hero--article .fg-breadcrumb-section__title { color: var(--fg-white) !important; }
.fg-breadcrumb-section.fg-page-hero--blog .fg-page-hero__subtitle,
.fg-breadcrumb-section.fg-page-hero--contact .fg-page-hero__subtitle,
.fg-breadcrumb-section.fg-page-hero--article .fg-page-hero__subtitle { color: rgba(255,255,255,.72) !important; }
.fg-breadcrumb-section.fg-page-hero--blog .fg-breadcrumb a,
.fg-breadcrumb-section.fg-page-hero--contact .fg-breadcrumb a,
.fg-breadcrumb-section.fg-page-hero--article .fg-breadcrumb a { color: rgba(255,255,255,.8) !important; }

/* Final layout normalization. */
.fg-hero, .fg-editorial-hero, .fg-breadcrumb-section { min-height: 620px; box-sizing: border-box; padding-block: 120px; }
.fg-hero > .container, .fg-editorial-hero > .container, .fg-breadcrumb-section > .container { width: 100%; }
.fg-navbar__inner { min-height: 76px; align-items: center; }
.fg-nav-menu { align-items: stretch; gap: clamp(1rem, 1.8vw, 2rem); }
.fg-nav-item { display: flex; align-items: stretch; }
.fg-nav-link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; text-align: center; }
.fg-nav-right { display: flex; align-items: center; }
@media (max-width: 1100px) and (min-width: 992px) { .fg-nav-menu { gap: .8rem; } .fg-nav-link { font-size: .82rem; } }
@media (max-width: 991.98px) { .fg-hero, .fg-editorial-hero, .fg-breadcrumb-section { min-height: 0; padding-block: 96px 72px; } }
@media (max-width: 575.98px) { .fg-hero, .fg-editorial-hero, .fg-breadcrumb-section { padding-block: 76px 56px; } }

/* Header responsive system: keep the full navigation at comfortable desktop
   widths and switch to the existing drawer before the layout becomes cramped. */
.fg-header,
.fg-header *,
.fg-header *::before,
.fg-header *::after { box-sizing: border-box; }

.fg-navbar { padding: 6px 0; }
.fg-header--compact .fg-navbar { padding-block: 4px; }
.fg-header--compact .fg-navbar__inner { min-height: 72px; }
.fg-header--compact .fg-logo__img { width: clamp(96px, 8vw, 140px); }
.fg-navbar__inner {
    width: min(100% - 2rem, 1440px);
    min-height: 92px;
    gap: clamp(1rem, 2.5vw, 2.75rem);
}
.fg-logo {
    flex: 0 1 auto;
    min-width: 0;
    gap: clamp(.55rem, .8vw, .9rem);
    white-space: nowrap;
}
.fg-logo::after { content: none !important; }
.fg-logo__img {
    display: block;
    width: clamp(120px, 8vw, 150px);
    height: auto;
    max-height: 116px;
    object-fit: contain;
    flex: 0 0 auto;
}
.fg-logo__text {
    font-size: clamp(1.05rem, 1.35vw, 1.45rem);
    line-height: 1.15;
    white-space: nowrap;
}
.fg-nav-center { min-width: 0; }
.fg-nav-menu {
    justify-content: center;
    gap: clamp(.8rem, 1.35vw, 1.5rem);
    min-width: 0;
}
.fg-nav-link {
    min-height: 44px;
    font-size: clamp(.78rem, .82vw, .92rem);
    white-space: nowrap;
}
.fg-nav-right { flex: 0 0 auto; margin-left: auto; }

/* Keep the logo, navigation and account actions vertically centered as one row. */
.fg-navbar__inner { display: flex; align-items: center; }
.fg-logo { display: inline-flex; align-items: center; }
.fg-nav-center { display: flex; align-items: center; justify-content: center; }
.fg-nav-menu { display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; padding: 0; }
.fg-nav-item, .fg-nav-link { align-items: center; }
.fg-nav-right { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; }
.fg-nav-right .fg-nav-link { margin-right: 0 !important; }
.fg-nav-right .fg-btn { display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 1199.98px) and (min-width: 992px) {
    .fg-navbar__inner { gap: .75rem; }
    .fg-nav-menu { gap: .45rem; }
    .fg-nav-right { gap: .25rem; }
}
.fg-nav-right .fg-btn {
    min-height: 52px;
    padding-inline: clamp(1rem, 1.4vw, 1.5rem);
    white-space: nowrap;
    font-size: clamp(.76rem, .8vw, .9rem);
}

@media (max-width: 1199.98px) {
    .fg-nav-center,
    .fg-nav-right { display: none !important; }
    .fg-hamburger {
        display: flex;
        flex: 0 0 44px;
        margin-left: auto;
    }
}

@media (max-width: 575.98px) {
    .fg-navbar__inner { width: min(100% - 1.5rem, 1440px); min-height: 64px; }
    .fg-logo__img { width: clamp(96px, 28vw, 128px); max-height: 128px; }
}

@media (max-width: 360px) {
    .fg-navbar__inner { width: calc(100% - 1rem); }
    .fg-logo__img { width: 104px; }
}

/* Keep the proof-stat separators while preventing the location label from wrapping. */
.fg-hero__stat strong { white-space: nowrap; }
.fg-hero__stat:last-child strong { font-size: clamp(1.35rem, 2.1vw, 2.1rem); }

@media (max-width: 767px) {
    .fg-hero__stat:last-child strong { font-size: clamp(1.25rem, 6vw, 1.8rem); }
}

/* Service catalogue refinements: a prominent, responsive services pill and consistent uploaded-icon treatment. */
.fg-services-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1.45rem;
    border-radius: var(--fg-radius-pill);
    font-size: clamp(.82rem, 1.1vw, 1rem);
    letter-spacing: .13em;
}
.fg-services-eyebrow i {
    font-size: 1.45em;
}
.fg-category-card__icon img,
.fg-catalogue-card__icon img,
.fg-service-card__icon--image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.fg-inline-service-icon {
    width: 1.15em;
    height: 1.15em;
    object-fit: contain;
}
@media (max-width: 575.98px) {
    .fg-services-eyebrow {
        padding: .78rem 1.1rem;
        font-size: .78rem;
    }
}

/* Shared section heading badge: compact green primary heading. */
.fg-section-heading-badge {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 1rem;
    padding: .55rem .9rem;
    border: 0;
    border-radius: var(--fg-radius-pill, 999px);
    background: var(--fg-green-light, #e4f6ec);
    color: var(--fg-green-dark, #16844a);
    font: inherit;
    font-size: clamp(1.2rem, 2.1vw, 1.65rem);
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.2;
    text-transform: uppercase;
    text-wrap: balance;
}
.fg-section-heading-badge i {
    flex: 0 0 auto;
    color: var(--fg-green, #16b34a);
    font-size: 1.05em;
    letter-spacing: 0;
}
.fg-section-header--center .fg-section-heading-badge,
.fg-section-intro.text-center .fg-section-heading-badge { margin-inline: auto; }
@media (max-width: 767.98px) {
    .fg-section-heading-badge {
        gap: .55rem;
        margin-bottom: 1rem;
        padding: .5rem .8rem;
        font-size: 1.1rem;
        letter-spacing: 0;
    }
}
.fg-section-heading-badge:not(:has(i)):not(:has(img))::before {
    content: "\f005";
    flex: 0 0 auto;
    color: var(--fg-green, #16b34a);
    font-family: "Font Awesome 6 Free";
    font-size: 1.05em;
    font-weight: 900;
}

/* Customer authentication controls. */
.fg-auth-divider { display:flex; align-items:center; gap:1rem; margin:1.25rem 0; color:var(--fg-gray); font-size:.85rem; }
.fg-auth-divider::before,.fg-auth-divider::after { content:''; flex:1; height:1px; background:var(--fg-border); }
.fg-auth-link { display:inline-block; margin-top:1rem; color:var(--fg-navy); font-size:.9rem; font-weight:600; }

/* -------------------------------------------------------------------------
   Final cross-page editorial heading and alignment normalization
   Keep About's compact badge + navy subheading hierarchy consistent everywhere.
------------------------------------------------------------------------- */
.fg-editorial-section h2.fg-section-heading-badge,
.fg-editorial-cta h2.fg-section-heading-badge,
.fg-cta h2.fg-section-heading-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 1rem;
    padding: .55rem .9rem;
    border-radius: var(--fg-radius-pill);
    background: var(--fg-green-light);
    color: var(--fg-green-dark);
    font-size: clamp(1.15rem, 2.1vw, 1.65rem);
    font-weight: var(--fg-fw-bold);
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}
.fg-editorial-section h2.fg-section-heading-badge i,
.fg-editorial-cta h2.fg-section-heading-badge i,
.fg-cta h2.fg-section-heading-badge i { color: var(--fg-green); font-size: .9em; }
.fg-editorial-section h2.fg-section-heading-badge + h3,
.fg-editorial-cta h2.fg-section-heading-badge + h3,
.fg-cta h2.fg-section-heading-badge + h3 {
    margin-top: 0;
    margin-bottom: 1rem;
    color: var(--fg-navy);
    font-size: clamp(1.3rem, 2.2vw, 1.7rem);
    line-height: 1.25;
    letter-spacing: 0;
    max-width: 32rem;
}
.fg-editorial-section--navy h2.fg-section-heading-badge + h3,
.fg-editorial-cta h2.fg-section-heading-badge + h3,
.fg-cta h2.fg-section-heading-badge + h3 { color: var(--fg-white); }
.fg-editorial-section .fg-section-intro,
.fg-editorial-section .fg-section-header { max-width: 1240px; margin-inline: auto; }
.fg-editorial-section .fg-section-intro > p,
.fg-editorial-section .fg-section-header > p { max-width: 42rem; line-height: 1.65; }
@media (max-width: 767.98px) {
    .fg-editorial-section h2.fg-section-heading-badge,
    .fg-editorial-cta h2.fg-section-heading-badge,
    .fg-cta h2.fg-section-heading-badge { font-size: 1.1rem; padding: .5rem .8rem; }
    .fg-editorial-section h2.fg-section-heading-badge + h3,
    .fg-editorial-cta h2.fg-section-heading-badge + h3,
    .fg-cta h2.fg-section-heading-badge + h3 { font-size: 1.45rem; }
}

/* Heading hierarchy refinement: stronger green label, quieter supporting line. */
.fg-section-heading-badge,
.fg-editorial-section h2.fg-section-heading-badge,
.fg-editorial-cta h2.fg-section-heading-badge,
.fg-cta h2.fg-section-heading-badge {
    font-size: clamp(1.3rem, 2.35vw, 1.9rem);
    line-height: 1.15;
}
.fg-editorial-section h2.fg-section-heading-badge + h3,
.fg-editorial-cta h2.fg-section-heading-badge + h3,
.fg-cta h2.fg-section-heading-badge + h3,
.fg-home-page .fg-section-title {
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    line-height: 1.3;
    margin-bottom: .85rem;
}
.fg-editorial-section h2.fg-section-heading-badge + h3 + p,
.fg-editorial-section h2.fg-section-heading-badge ~ p,
.fg-home-page .fg-section-subtitle,
.fg-home-page .fg-lead {
    font-size: 1rem;
    line-height: 1.65;
}
@media (max-width: 767.98px) {
    .fg-section-heading-badge,
    .fg-editorial-section h2.fg-section-heading-badge,
    .fg-editorial-cta h2.fg-section-heading-badge,
    .fg-cta h2.fg-section-heading-badge { font-size: 1.2rem; }
    .fg-editorial-section h2.fg-section-heading-badge + h3,
    .fg-editorial-cta h2.fg-section-heading-badge + h3,
    .fg-cta h2.fg-section-heading-badge + h3,
    .fg-home-page .fg-section-title { font-size: 1.3rem; }
}

/* Prevent badge clipping while preserving natural word-boundary wrapping. */
.fg-section-heading-badge,
.fg-editorial-section h2.fg-section-heading-badge,
.fg-editorial-cta h2.fg-section-heading-badge,
.fg-cta h2.fg-section-heading-badge {
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
}
