/* T131: one heading, KPI, impact-card and mobile-table system across every chapter.
   Loaded last so it settles the many earlier per-page variants. */
.page_main {
    --t131-accent: #0f75bb;
    --t131-accent-dark: #174d7c;
    --t131-soft: #e7f3fa;
    --t131-soft-end: #f7fbfd;
    --t131-line: #cfe1ec;
    --t131-ink: #294653;
    --t131-copy: #4d6670;
    --t131-risk: #c0504d;
    --t131-risk-soft: #fdf1f0;
    --t131-chance: #2e8b6e;
    --t131-chance-soft: #eef8f3;
    --t131-k1: #d8a820; --t131-k1-soft: #fff8df;
    --t131-k2: #3f9f9b; --t131-k2-soft: #eaf7f5;
    --t131-k3: #7da33f; --t131-k3-soft: #f1f6e8;
    --t131-k4: #0f75bb; --t131-k4-soft: #edf5fb;
}
.heritage-page--environment .page_main { --t131-accent: #3f8f55; --t131-accent-dark: #2d6a3e; --t131-soft: #eaf5ec; --t131-soft-end: #f8fbf8; --t131-line: #d3e6d7; }
.heritage-page--social .page_main { --t131-accent: #d97a2b; --t131-accent-dark: #9a5423; --t131-soft: #fdf1e6; --t131-soft-end: #fffaf5; --t131-line: #f1dcc8; }

/* Level 1: section and material-topic headings (module titles and primary editorial headings). */html body .page_main .report-module > .report-module__header:has(> h2.report-module__title),
html body .page_main .report-module > .report-module__header:has(> h3.report-module__title) {
    display: block !important;
    margin: 0 0 20px !important;
    padding: 14px 18px !important;
    border: 0 !important;
    border-left: 5px solid var(--t131-accent) !important;
    border-bottom: 1px solid var(--t131-line) !important;
    border-radius: 0 !important;
    background: linear-gradient(90deg, var(--t131-soft) 0%, var(--t131-soft-end) 100%) !important;
}html body .page_main .report-module > .report-module__header > h2.report-module__title,
html body .page_main .report-module > .report-module__header > h3.report-module__title,
html body .page_main .ppt-editorial h3.drive-heading--primary,
html body .page_main .ppt-editorial h4.drive-heading--primary,
html body .page_main .report-richtext h3.drive-heading--primary,
html body .page_main .report-richtext h4.drive-heading--primary {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    color: var(--t131-ink) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
}html body .page_main .ppt-editorial h3.drive-heading--primary,
html body .page_main .ppt-editorial h4.drive-heading--primary,
html body .page_main .report-richtext h3.drive-heading--primary,
html body .page_main .report-richtext h4.drive-heading--primary {
    padding: 14px 18px !important;
    border: 0 !important;
    border-left: 5px solid var(--t131-accent) !important;
    border-bottom: 1px solid var(--t131-line) !important;
    background: linear-gradient(90deg, var(--t131-soft) 0%, var(--t131-soft-end) 100%) !important;
}

/* Level 2: sub-headings inside a topic. Smaller, no bar, accent icon. */html body .page_main .report-module > .report-module__header > h4.report-module__title,
html body .page_main .ppt-editorial h3.drive-heading--secondary,
html body .page_main .ppt-editorial h4.drive-heading--secondary,
html body .page_main .report-richtext h3.drive-heading--secondary,
html body .page_main .report-richtext h4.drive-heading--secondary {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 0 12px !important;
    padding: 0 0 8px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--t131-line) !important;
    background: none !important;
    color: var(--t131-accent-dark) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
}html body .page_main .report-module.revision-0912--secondary > .report-module__header {
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
}html body .page_main .ppt-editorial__block h4:not([class]) { font-size: 17px !important; font-weight: 700 !important; line-height: 1.55 !important; color: var(--t131-ink) !important; }

/* Heading icons: one size, one gap, never touching the text. */html body .page_main .report-module__title > svg,
html body .page_main .report-module__title > i,
html body .page_main .drive-heading--primary > svg,
html body .page_main .drive-heading--primary > i,
html body .page_main .drive-heading--secondary > svg,
html body .page_main .drive-heading--secondary > i {
    flex: 0 0 auto !important;
    width: 1.1em !important;
    height: 1.1em !important;
    margin: 0 !important;
    color: var(--t131-accent) !important;
    font-size: 1.1em !important;
    line-height: 1 !important;
}


/* Editorial wrappers around a primary heading must not draw a second frame. */
html body .page_main .ppt-editorial__block:has(> .drive-heading--primary) { padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
html body .page_main .ppt-editorial__block:has(> .drive-heading--primary)::before,
html body .page_main .ppt-editorial__block:has(> .drive-heading--primary)::after { content: none !important; }
html body .page_main .report-module > .report-module__header::before,
html body .page_main .report-module > .report-module__header::after { content: none !important; }

/* Negative / positive impact cards (material-topic impact assessment). */
.page_main .t131-impact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 4px 0 8px; }
.page_main .t131-impact__card { min-width: 0; padding: 16px 18px 18px; border: 1px solid var(--t131-line); border-top: 4px solid var(--t131-risk); border-radius: 6px; background: linear-gradient(180deg, var(--t131-risk-soft) 0%, #fff 70%); }
.page_main .t131-impact__card--opportunity { border-top-color: var(--t131-chance); background: linear-gradient(180deg, var(--t131-chance-soft) 0%, #fff 70%); }
.page_main .t131-impact__title { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; color: var(--t131-ink); font-size: 17px; font-weight: 700; line-height: 1.5; }
.page_main .t131-impact__title i { color: var(--t131-risk); font-size: 1.1em; }
.page_main .t131-impact__card--opportunity .t131-impact__title i { color: var(--t131-chance); }
.page_main .t131-impact__card p { margin: 0 0 6px; color: var(--t131-copy); line-height: 1.8; }
.page_main .t131-impact__card p:last-child { margin-bottom: 0; }

/* KPI cards: every chapter uses the sustainable-supply-chain card design. */
.page_main .report-module--kpi .report-kpi__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px;
    border: 0;
}
.page_main .report-module--kpi .report-kpi__item {
    --t131-card: var(--t131-k4);
    --t131-card-soft: var(--t131-k4-soft);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
    min-height: 168px;
    margin: 0;
    padding: 20px 18px;
    border: 1px solid color-mix(in srgb, var(--t131-card) 35%, #fff);
    border-top: 6px solid var(--t131-card);
    border-radius: 9px;
    background: linear-gradient(155deg, var(--t131-card-soft) 0%, #fff 88%);
    box-shadow: 0 10px 22px rgb(31 73 91 / 8%);
    text-align: left;
}
.page_main .report-module--kpi .report-kpi__item:nth-child(4n+1) { --t131-card: var(--t131-k1); --t131-card-soft: var(--t131-k1-soft); }
.page_main .report-module--kpi .report-kpi__item:nth-child(4n+2) { --t131-card: var(--t131-k2); --t131-card-soft: var(--t131-k2-soft); }
.page_main .report-module--kpi .report-kpi__item:nth-child(4n+3) { --t131-card: var(--t131-k3); --t131-card-soft: var(--t131-k3-soft); }
.page_main .report-module--kpi .report-kpi__icon-wrap {
    display: grid;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--t131-card);
    box-shadow: 0 5px 13px color-mix(in srgb, var(--t131-card) 20%, transparent);
}
.page_main .report-module--kpi .report-kpi__icon { width: 25px; height: 25px; color: var(--t131-card); }
.page_main .report-module--kpi .report-kpi__content { width: 100%; min-width: 0; text-align: left; }
.page_main .report-module--kpi .report-kpi__content h4 { min-height: 0; margin: 0 0 7px; color: var(--t131-ink); font-size: 15px; font-weight: 400; line-height: 1.55; }
.page_main .report-module--kpi .report-kpi__values { justify-content: flex-start; }
.page_main .report-module--kpi .report-kpi__value { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-start; gap: 0; color: var(--t131-card); }
.page_main .report-module--kpi .report-kpi__value strong { color: var(--t131-card); font-size: clamp(1.65rem, 1.35rem + .65vw, 2.05rem); font-weight: 800; line-height: 1.15; white-space: nowrap; overflow-wrap: normal; word-break: keep-all; }
/* Unit sits right after the number at the same size, as on the reference cards ("100%", "123家"). */
.page_main .report-module--kpi .report-kpi__value > span { color: var(--t131-card); font-size: clamp(1.65rem, 1.35rem + .65vw, 2.05rem); font-weight: 800; line-height: 1.15; }
@media (max-width: 575.98px) { .page_main .report-module--kpi .report-kpi__value > span { font-size: 1.5rem; } }
.page_main .report-module--kpi .report-kpi__content p { margin: 9px 0 0; color: var(--t131-copy); font-size: 14px; line-height: 1.6; }
.page_main .report-module--kpi .report-kpi__content time { display: block; margin-top: 6px; color: var(--t131-copy); font-size: 13px; }
@media (max-width: 575.98px) {
    .page_main .report-module--kpi .report-kpi__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .page_main .report-module--kpi .report-kpi__item { min-height: 0; padding: 16px 12px; gap: 10px; }
    .page_main .report-module--kpi .report-kpi__value strong { font-size: 1.5rem; white-space: normal; }
}
@media (max-width: 359.98px) {
    .page_main .report-module--kpi .report-kpi__list { grid-template-columns: minmax(0, 1fr); }
}

/* Mobile stacked tables: label and value share a two-column grid, so they can never overlap. */
@media (max-width: 767px) {
    .page_main .table-v2-mobile--stack .table-v2-cell {
        display: grid !important;
        grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
        column-gap: 10px;
        align-items: start;
        padding: 10px 12px !important;
        text-align: left !important;
        white-space: normal !important;
    }
    .page_main .table-v2-mobile--stack .table-v2-cell::before {
        position: static !important;
        max-width: none !important;
        color: #596970;
        font-weight: 700;
        white-space: normal;
    }
    .page_main .table-v2-mobile--stack .table-v2-cell[data-label=""],
    .page_main .table-v2-mobile--stack th.table-v2-cell[scope="row"] { grid-template-columns: minmax(0, 1fr); background: var(--t131-soft); font-weight: 700; }
    .page_main .table-v2-mobile--stack th.table-v2-cell[scope="row"]::before { content: none; }
}

/* Source figures: on phones the zoom control sits below the figure instead of covering it. */
@media (max-width: 767px) {
    .page_main .drive-source-figure__zoom { position: static; display: inline-flex; margin: 8px 0 0 auto; float: none; }
    .page_main figure:has(> .drive-source-figure__zoom),
    .page_main a:has(> .drive-source-figure__zoom) { display: flex; flex-direction: column; }
}

@media (max-width: 575.98px) {
    html body .page_main .report-module > .report-module__header > h2.report-module__title,
    html body .page_main .report-module > .report-module__header > h3.report-module__title,
    html body .page_main .ppt-editorial h3.drive-heading--primary,
    html body .page_main .ppt-editorial h4.drive-heading--primary { font-size: 19px !important; }
    html body .page_main .report-module > .report-module__header > h4.report-module__title,
    html body .page_main .ppt-editorial h3.drive-heading--secondary,
    html body .page_main .ppt-editorial h4.drive-heading--secondary { font-size: 17px !important; }
    html body .page_main .t131-impact { grid-template-columns: minmax(0, 1fr); }
}
