.numbers{
    background: var(--c-ivory);
}
/* ===== Intro ===== */
.p-numbers__intro{
    max-width: 1242px;
    margin: 0 auto;
    display: flex;
    padding-left: 100px;
}
.p-numbers__intro-text{
    max-width: 600px;
    width: 100%;
    padding: 50px 0 100px 50px;
    border-left: 1px solid var(--c-blue);
    font-family: var(--f-a1gothic);
    font-size: 1rem;
    line-height: 1.875;
    color: var(--c-black);
}
/* ===== Banner ===== */
.p-numbers__banner{
    width: 100%;
    aspect-ratio: 481 / 110;
    position: relative;
    overflow: hidden;
}
.p-numbers__banner img{
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.p-numbers__banner-text{
    display: flex;
    position: relative;
    z-index: 1;
    height: 100%;
    max-width: 1242px;
    margin: 0 auto;
    padding: 0 100px;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    color: var(--c-ivory);
}
.p-numbers__banner-ttl{
    font-family: var(--f-a1gothic);
    font-weight: 500;
    font-size: 1.875rem;
    line-height: 1.53;
}
.p-numbers__banner-note{
    font-family: var(--f-a1gothic);
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.875;
}
/* ===== Section head (shared pattern) ===== */
.p-numbers__section{
    max-width: 1242px;
    margin: 0 auto;
    padding-top: 100px;
    display: flex;
    flex-direction: column;
    gap: 50px;
}
.p-numbers__section-head{
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-bottom: 30px;
    border-bottom: 1px solid var(--c-line);
}
.p-numbers__section-label{
    font-family: var(--f-en);
    font-weight: 500;
    font-size: 0.875rem;
    color: var(--c-blue);
    text-transform: uppercase;
    line-height: 1;
}
.p-numbers__section-ttl{
    font-family: var(--f-serif);
    font-weight: 500;
    font-size: 1.875rem;
    line-height: 1.2;
    color: var(--c-black);
}
/* ===== Stats ===== */
.p-numbers__stats{
    display: flex;
}
.p-numbers__stat{
    flex: 1;
    min-width: 0;
    height: 340px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 0;
    text-align: center;
}
.p-numbers__stat--primary{
    background: var(--c-blue);
    color: var(--c-ivory);
}
.p-numbers__stat--secondary{
    background: var(--c-white);
    color: var(--c-blue);
}
.p-numbers__stat-label{
    font-family: var(--f-a1gothic);
    font-weight: 500;
    font-size: 1.25rem;
    line-height: 1.5;
}
.p-numbers__stat-icon-img{
    height: 50px;
    width: auto;
}
.p-numbers__stat-icon-img--map{
    height: 70px;
}
.p-numbers__stat-num-group{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.p-numbers__stat-num{
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
}
.p-numbers__stat-num-val{
    font-family: var(--f-en);
    font-weight: 600;
    font-size: 4.375rem;
    line-height: 1;
}
.p-numbers__stat-num-val--sm{
    font-size: 2.5rem;
}
.p-numbers__stat-num-unit{
    font-family: var(--f-en);
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 1;
}
.p-numbers__stat-note{
    font-family: var(--f-a1gothic);
    font-weight: 500;
    font-size: 1rem;
    line-height: 1.6;
}
/* ===== Number 05 group (stat + logos) ===== */
.p-numbers__group{
    display: flex;
    gap: 10px;
}
.p-numbers__group-stat{
    flex-shrink: 0;
    width: 50%;
}
.p-numbers__group-logos{
    width: calc(50% - 10px);
    flex: 1;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}
.p-numbers__logo-card{
    background: var(--c-white);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    height: 165px;
    padding: 0;
}
.p-numbers__logo-card img{
    width: auto;
    max-height: 30px;
}
.p-numbers__logo-card.p-numbers__restar img{
    max-height: 20px;
}
.p-numbers__logo-name{
    font-family: var(--f-a1gothic);
    font-weight: 500;
    font-size: 1rem;
    line-height: 1;
    color: var(--c-black);
}
/* ===== CTA ===== */
.p-numbers__cta{
    max-width: 1242px;
    margin-inline: auto;
    display: flex;
    padding: 50px 0 100px;
}
@media(min-width:1440px){
    .p-numbers__intro{
        padding-left: 6.944vw;
    }
    .p-numbers__intro-text{
        max-width: 41.667vw;
        padding: 3.472vw 0 3.472vw 3.472vw;
        font-size: 1.111vw;
    }
    .p-numbers__banner{
        height: 22.917vw;
    }
    .p-numbers__banner-text{
        max-width: 86.25vw;
        padding: 0 6.944vw;
        gap: 1.389vw;
    }
    .p-numbers__banner-ttl{
        font-size: 2.083vw;
    }
    .p-numbers__banner-note{
        font-size: 1.111vw;
    }
    .p-numbers__section{
        max-width: 86.25vw;
        gap: 3.472vw;
        padding-top: 6.944vw;
    }
    .p-numbers__section-head{
        gap: 1.389vw;
        padding-bottom: 2.083vw;
    }
    .p-numbers__section-label{
        font-size: 0.972vw;
    }
    .p-numbers__section-ttl{
        font-size: 2.083vw;
    }
    .p-numbers__stat{
        height: 23.611vw;
        gap: 1.667vw;
    }
    .p-numbers__stat-label{
        font-size: 1.389vw;
    }
    .p-numbers__stat-icon-img{
        height: 3.472vw;
        width: auto;
    }
    .p-numbers__stat-icon-img--map{
        height: 4.861vw;
    }
    .p-numbers__stat-num-val{
        font-size: 4.861vw;
    }
    .p-numbers__stat-num-val--sm{
        font-size: 2.778vw;
    }
    .p-numbers__stat-num-unit{
        font-size: 1.389vw;
    }
    .p-numbers__stat-note{
        font-size: 1.111vw;
    }
    .p-numbers__group{
        gap: 0.694vw;
    }
    .p-numbers__group-stat{
        width: 43.056vw;
    }
    .p-numbers__group-logos{
        gap: 0.694vw;
    }
    .p-numbers__logo-card{
        gap: 1.389vw;
        height: 11.458vw;
        padding: 0;
    }
    .p-numbers__logo-card img{
        width: auto;
        max-height: 2.083vw;
    }
    .p-numbers__logo-card.p-numbers__restar img{
        max-height: 1.389vw;
    }
    .p-numbers__logo-name{
        font-size: 1.111vw;
    }
    .p-numbers__cta{
        max-width: 86.25vw;
        padding: 3.472vw 0 6.944vw;
    }
}
@media(min-width:896px) and (max-width:1400px){
    .p-numbers__intro,
    .p-numbers__banner-text,
    .p-numbers__section,
    .p-numbers__cta{
        padding-left: 40px;
        padding-right: 40px;
    }
    .p-numbers__logo-card img{
        width: auto;
        max-height: 2.083vw;
    }
    .p-numbers__logo-card.p-numbers__restar img{
        max-height: 1.389vw;
    }
}
@media(max-width:1024px){
    .p-numbers__group,
    .p-numbers__stats {
        flex-direction: column;
    }
    .p-numbers__group-logos {
        width: 100%;
    }
}
@media(min-width:896px) and (max-width:1024px){
    .p-numbers__stat {
        flex: initial;
    }
    .p-numbers__group-stat {
        width: 100%;
    }
}
@media(max-width:896px){
    .p-numbers__intro{
        padding: 0 20px;
    }
    .p-numbers__intro-text{
        max-width: none;
        padding: 30px 0 30px 20px;
        font-size: 0.875rem;
        line-height: 1.71;
    }
    .p-numbers__banner{
        height: 270px;
    }
    .p-numbers__banner-text{
        padding: 0 20px;
        gap: 10px;
    }
    .p-numbers__banner-ttl{
        font-size: 1.25rem;
        line-height: 1.5;
    }
    .p-numbers__banner-note{
        font-size: 0.75rem;
    }
    .p-numbers__section{
        gap: 30px;
        padding: 50px 20px 0;
    }
    .p-numbers__section-head{
        gap: 10px;
        padding-bottom: 20px;
    }
    .p-numbers__section-label{
        font-size: 0.75rem;
    }
    .p-numbers__section-ttl{
        font-size: 1.25rem;
        line-height: 1.5;
    }
    .p-numbers__stat{
        padding: 0 20px;
        gap: 20px;
        flex: initial;
    }
    .p-numbers__stat-num-val--sm{
        font-size: 2rem;
    }
    .p-numbers__stat-note{
        font-size: 0.875rem;
    }
    .p-numbers__group-stat{
        width: 100%;
    }
    .p-numbers__group-logos{
        grid-template-columns: 1fr;
    }
    .p-numbers__logo-card{
        height: auto;
        padding: 20px;
    }
    .p-numbers__logo-card img{
        width: auto;
        max-height: 30px;
    }
    .p-numbers__logo-card.p-numbers__restar img{
        max-height: 20px;
    }
    .p-numbers__cta{
        padding: 50px 20px 50px;
    }
}
@media(max-width:475px){
    .p-numbers__stat-num-val {
        font-size: 14.737vw;
    }
}
