:root {
    --gpm-navy: #0b2f4d;
    --gpm-blue: #0e84c6;
    --gpm-blue-dark: #07699f;
    --gpm-cyan: #34b5de;
    --gpm-orange: #f59e0b;
    --gpm-text: #102a43;
    --gpm-muted: #6b7f92;
    --gpm-line: #dbe6ee;
    --gpm-soft: #f3f9fc;
    --gpm-card: #ffffff;
}

.gpm-home {
    background: #f7fbfd;
    color: var(--gpm-text);
}

.gpm-home .container {
    max-width: 1320px;
}

.gpm-home-hero {
    padding: 2rem 0 2.3rem;
    background:
        radial-gradient(circle at 92% 10%, rgba(245,158,11,.11), transparent 26%),
        radial-gradient(circle at 8% 18%, rgba(52,181,222,.12), transparent 28%),
        linear-gradient(180deg, #f7fbfd 0%, #eef7fb 100%);
    border-bottom: 1px solid rgba(16,42,67,.06);
}

.gpm-breadcrumb {
    display: flex;
    gap: .55rem;
    align-items: center;
    margin-bottom: 2rem;
    color: #7b8fa1;
    font-size: .78rem;
}

.gpm-breadcrumb a {
    color: #527086;
    text-decoration: none;
}

.gpm-product-badge,
.gpm-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--gpm-blue-dark);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gpm-product-badge {
    padding: .48rem .8rem;
    border: 1px solid rgba(14,132,198,.16);
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    box-shadow: 0 8px 24px rgba(14,132,198,.08);
}

.gpm-product-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gpm-orange);
    box-shadow: 0 0 0 4px rgba(245,158,11,.14);
}

.gpm-home-hero h1 {
    margin: 1.15rem 0 .95rem;
    max-width: 760px;
    color: var(--gpm-navy);
    font-size: clamp(2.15rem, 4.4vw, 4rem);
    line-height: 1.04;
    letter-spacing: -.045em;
    font-weight: 780;
}

.gpm-home-lead {
    max-width: 720px;
    margin: 0;
    color: #577186;
    font-size: clamp(1rem, 1.45vw, 1.15rem);
    line-height: 1.8;
}

.gpm-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.6rem;
}

.gpm-btn-primary,
.gpm-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .72rem 1.15rem;
    font-size: .86rem;
    font-weight: 750;
}

.gpm-btn-primary {
    border: 1px solid var(--gpm-blue);
    background: linear-gradient(135deg, var(--gpm-blue), #0a73aa);
    color: #fff !important;
    box-shadow: 0 10px 28px rgba(14,132,198,.2);
}

.gpm-btn-primary:hover {
    background: linear-gradient(135deg, #0b78b3, #075f91);
}

.gpm-btn-secondary {
    border: 1px solid #cddce7;
    background: rgba(255,255,255,.78);
    color: var(--gpm-navy) !important;
}

.gpm-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 1.7rem;
}

.gpm-hero-meta > div {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.gpm-meta-icon {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: rgba(14,132,198,.08);
    color: var(--gpm-blue-dark);
}

.gpm-hero-meta strong,
.gpm-hero-meta span {
    display: block;
}

.gpm-hero-meta strong {
    color: var(--gpm-navy);
    font-size: .83rem;
}

.gpm-hero-meta div div span {
    margin-top: .12rem;
    color: #8395a5;
    font-size: .72rem;
}

.gpm-map-shell,
.gpm-kpi-card,
.gpm-coverage-card,
.gpm-analysis-card,
.gpm-info-card,
.gpm-start-card {
    border: 1px solid rgba(16,42,67,.09);
    background: var(--gpm-card);
    box-shadow: 0 16px 42px rgba(15,57,86,.07);
}

.gpm-map-shell {
    overflow: hidden;
    border-radius: 24px;
}

.gpm-map-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.35rem 1rem;
}

.gpm-map-head h2 {
    margin: .22rem 0 .25rem;
    color: var(--gpm-navy);
    font-size: 1.15rem;
    font-weight: 750;
}

.gpm-map-head p {
    margin: 0;
    color: #7b8fa1;
    font-size: .76rem;
}

.gpm-map-count {
    min-width: 68px;
    padding: .55rem .7rem;
    border-radius: 14px;
    background: #eff8fc;
    color: var(--gpm-blue-dark);
    text-align: center;
    font-size: 1.15rem;
    font-weight: 800;
}

.gpm-map-count span {
    display: block;
    color: #7b8fa1;
    font-size: .62rem;
    font-weight: 650;
}

.gpm-home-map {
    height: 390px;
    border-top: 1px solid #e6eef4;
    border-bottom: 1px solid #e6eef4;
    background: #eaf4f8;
}

.gpm-home-grid-overlay {
    box-sizing: border-box !important;
    border: 2px solid #0785c1 !important;
    background: transparent !important;
    opacity: 1 !important;
}

.gpm-map-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .8rem 1.2rem;
    color: #75899a;
    font-size: .72rem;
}

.gpm-map-foot span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.gpm-map-foot a {
    color: var(--gpm-blue-dark);
    text-decoration: none;
    font-weight: 700;
}

.gpm-legend-box {
    width: 14px;
    height: 9px;
    border: 2px solid #0785c1;
    background: transparent;
}

.gpm-map-popup {
    display: grid;
    gap: .28rem;
    min-width: 190px;
}

.gpm-map-popup strong {
    color: var(--gpm-navy);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .78rem;
}

.gpm-map-popup span {
    color: #718597;
    font-size: .72rem;
}

.gpm-map-popup a {
    margin-top: .2rem;
    color: var(--gpm-blue-dark);
    font-size: .74rem;
    font-weight: 750;
}

.gpm-home-stats {
    padding: 1.5rem 0 1.2rem;
}

.gpm-kpi-card {
    height: 100%;
    padding: 1.15rem;
    border-radius: 18px;
}

.gpm-kpi-icon {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: .75rem;
    border-radius: 10px;
    background: #eff8fc;
    color: var(--gpm-blue-dark);
    font-size: .95rem;
}

.gpm-kpi-value {
    color: var(--gpm-navy);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: -.03em;
}

.gpm-kpi-date {
    font-size: clamp(1.1rem, 1.9vw, 1.48rem);
}

.gpm-kpi-label {
    margin-top: .45rem;
    color: #536d81;
    font-size: .78rem;
    font-weight: 700;
}

.gpm-kpi-note {
    margin-top: .22rem;
    color: #93a2af;
    font-size: .68rem;
}

.gpm-coverage-card {
    padding: 1rem 1.15rem;
    border-radius: 18px;
}

.gpm-coverage-copy {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: .75rem;
}

.gpm-coverage-copy strong {
    display: block;
    margin-top: .12rem;
    color: var(--gpm-navy);
    font-size: .82rem;
}

.gpm-coverage-copy > span {
    color: var(--gpm-blue-dark);
    font-size: .88rem;
    font-weight: 800;
}

.gpm-progress-track {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7f0f5;
}

.gpm-progress-bar {
    height: 100%;
    min-width: 2px;
    border-radius: inherit;
    background: linear-gradient(90deg, #0e84c6, #3bb3d9);
}

.gpm-home-section {
    padding: 3.4rem 0;
}

.gpm-home-section-soft {
    background: #eef7fb;
    border-top: 1px solid rgba(16,42,67,.06);
    border-bottom: 1px solid rgba(16,42,67,.06);
}

.gpm-section-head {
    margin-bottom: 1.5rem;
}

.gpm-section-head h2,
.gpm-info-card h2,
.gpm-start-card h2 {
    margin: .25rem 0 .45rem;
    color: var(--gpm-navy);
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    line-height: 1.2;
    font-weight: 780;
    letter-spacing: -.025em;
}

.gpm-section-head p,
.gpm-info-card p,
.gpm-start-card p {
    max-width: 780px;
    margin: 0;
    color: #6f8394;
    font-size: .88rem;
    line-height: 1.75;
}

.gpm-analysis-card {
    height: 100%;
    padding: 1.2rem;
    border-radius: 18px;
    transition: transform .18s ease, box-shadow .18s ease;
}

.gpm-analysis-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(15,57,86,.11);
}

.gpm-analysis-icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: .8rem;
    border-radius: 13px;
    background: linear-gradient(145deg, #e8f7fc, #f5fbfd);
    color: var(--gpm-blue-dark);
    font-size: 1.05rem;
}

.gpm-analysis-card h3 {
    margin: 0 0 .35rem;
    color: var(--gpm-navy);
    font-size: .92rem;
    font-weight: 780;
}

.gpm-analysis-card p {
    margin: 0;
    color: #7a8e9f;
    font-size: .74rem;
    line-height: 1.6;
}

.gpm-info-card,
.gpm-start-card {
    padding: 1.45rem;
    border-radius: 22px;
}

.gpm-info-note {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    margin-top: 1.1rem;
    padding: .9rem 1rem;
    border-left: 3px solid var(--gpm-blue);
    border-radius: 10px;
    background: #f2f9fc;
    color: #60798d;
    font-size: .76rem;
    line-height: 1.65;
}

.gpm-info-note i {
    margin-top: .12rem;
    color: var(--gpm-blue-dark);
}

.gpm-start-steps {
    display: grid;
    gap: .72rem;
    margin-top: 1.15rem;
}

.gpm-start-steps > div {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
}

.gpm-start-steps > div > span {
    display: inline-grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #eaf7fc;
    color: var(--gpm-blue-dark);
    font-size: .7rem;
    font-weight: 800;
}

.gpm-start-steps p {
    display: grid;
    gap: .1rem;
    margin: 0;
}

.gpm-start-steps strong {
    color: var(--gpm-navy);
    font-size: .8rem;
}

.gpm-start-steps small {
    color: #8999a7;
    font-size: .7rem;
}

.gpm-source-strip {
    padding: 1.5rem 0 2.2rem;
    background: #f7fbfd;
}

.gpm-source-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding-top: 1.2rem;
    border-top: 1px solid #dce7ee;
}

.gpm-source-inner p {
    margin: .15rem 0 0;
    color: #7b8fa1;
    font-size: .74rem;
}

.gpm-source-links {
    display: flex;
    gap: .9rem;
    flex-wrap: wrap;
}

.gpm-source-links a {
    color: var(--gpm-blue-dark);
    font-size: .76rem;
    font-weight: 750;
    text-decoration: none;
}

@media (max-width: 1199.98px) {
    .gpm-home-hero h1 {
        max-width: none;
    }

    .gpm-home-map {
        height: 360px;
    }
}

@media (max-width: 767.98px) {
    .gpm-home-hero {
        padding-top: 1.2rem;
    }

    .gpm-breadcrumb {
        margin-bottom: 1.2rem;
    }

    .gpm-home-hero h1 {
        font-size: 2.3rem;
    }

    .gpm-home-lead {
        font-size: .94rem;
    }

    .gpm-hero-actions .btn {
        width: 100%;
    }

    .gpm-hero-meta {
        display: grid;
        grid-template-columns: 1fr;
        gap: .75rem;
    }

    .gpm-map-head,
    .gpm-map-foot,
    .gpm-source-inner,
    .gpm-coverage-copy {
        align-items: flex-start;
        flex-direction: column;
    }

    .gpm-home-map {
        height: 310px;
    }

    .gpm-home-section {
        padding: 2.3rem 0;
    }

    .gpm-kpi-card {
        padding: .95rem;
    }

    .gpm-kpi-value {
        font-size: 1.35rem;
    }

    .gpm-source-links {
        width: 100%;
    }
}
