/* =================================================================== PARTNER IMPACT section css =================================================================== */
.partner-impact {
    position: relative;
    padding-block: var(--sectionGap);
    background: var(--surface-1);
    overflow: hidden;

    &::before {
        position: absolute; top: -220px; left: -160px;
        width: 560px; height: 560px;
        background: radial-gradient(circle, var(--blue-50) 0%, transparent 65%);
        content: "";
    }

    & .container { position: relative; }

    & .section-title-wrap:has(+ .partner-impact__intro) { margin-bottom: var(--sp25); }

    & .partner-impact__intro {
        max-width: 760px;
        margin: 0 auto var(--sp60);
        text-align: center;
        & p { font-size: var(--f18); }
    }

    & .partner-impact__intro--after { margin: var(--sp50) auto 0; }

    & .partner-impact__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: var(--g30);
    }

    & .partner-impact__grid--2 { grid-template-columns: repeat(2, 1fr); }
    & .partner-impact__grid--4 { grid-template-columns: repeat(4, 1fr); }

    & .partner-impact__card {
        display: flex; flex-direction: column;
        gap: var(--sp15);
        padding: var(--sp40);
        background: var(--white);
        border: 1px solid var(--line);
        border-radius: var(--r-md);
        box-shadow: var(--shadow-sm);
        transition: var(--transition);

        &:hover { border-color: var(--blue-100); box-shadow: var(--shadow-sm); transform: translateY(-4px); }
    }

    & .partner-impact__place {
        font-size: var(--f13);
        font-weight: 600;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--primary);
        & span { display: block; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); }
    }

    & .partner-impact__title { font-size: var(--f20); line-height: 1.35; letter-spacing: -.01em; }

    & .partner-impact__card p { font-size: var(--f15); }
    & .partner-impact__card p + p { margin-top: 0; }

    & .partner-impact__result {
        margin-top: auto;
        padding-top: var(--sp15);
        border-top: 1px solid var(--line);
        font-weight: 600;
        color: var(--primary-dark);
    }

    & .partner-impact__logo {
        display: grid; place-items: center;
        height: 96px;
        padding: var(--sp15) var(--sp25);
        background: var(--surface-1);
        border-radius: var(--r-md);

        & img { width: auto; max-width: 100%; max-height: 60px; object-fit: contain; }
    }

    & .partner-impact__stat {
        font-size: var(--f48);
        font-weight: 600;
        line-height: 1;
        letter-spacing: -.03em;
        color: var(--primary);
    }

    & .partner-impact__label { font-size: var(--f15); color: var(--body); }

    & .partner-impact__quote {
        position: relative;
        padding-top: var(--sp40);
        font-size: var(--f16);
        font-style: italic;
        color: var(--body);

        &::before {
            position: absolute; top: -10px; left: 0;
            font-family: var(--font-display);
            font-size: var(--f64);
            font-style: normal;
            line-height: 1;
            color: var(--primary);
            content: "“";
        }
    }

    & .partner-impact__cite {
        display: flex; flex-direction: column;
        margin-top: auto;
        & strong { font-size: var(--f16); color: var(--ink); }
        & span { font-size: var(--f13); color: var(--muted); }
    }

    & .partner-impact__banner {
        margin-top: var(--sp50);
        padding: var(--sp30) var(--sp40);
        background: var(--white);
        border: 1px solid var(--line);
        border-left: 4px solid var(--primary);
        border-radius: var(--r-md);
        box-shadow: var(--shadow-sm);
        & p { font-size: var(--f18); font-weight: 500; color: var(--ink); }
        & cite { display: block; margin-top: var(--sp15); font-size: var(--f13); font-style: normal; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); }
    }
}

/* =================================================================== RESPONSIVE =================================================================== */
@media (max-width: 1199.98px) {
    .partner-impact {
        & .partner-impact__grid--4 { grid-template-columns: repeat(2, 1fr); }
        & .partner-impact__card { padding: var(--sp30); }
    }
}

@media (max-width: 991.98px) {
    .partner-impact {
        & .partner-impact__grid { grid-template-columns: 1fr 1fr; }
    }
}

@media (max-width: 767.98px) {
    .partner-impact {
        & .partner-impact__grid, & .partner-impact__grid--2, & .partner-impact__grid--4 { grid-template-columns: 1fr; }
        & .partner-impact__card { padding: var(--sp25) var(--sp20); }
        & .partner-impact__banner { padding: var(--sp25) var(--sp20); }
    }
}
