/* ============================================================
PC
==============================================================*/
@media (min-width: 762px) {
    /* ============================================================
 	main vi 
	==============================================================*/
    #main_wrap {
        background: url(../img/mv_bg.jpg) no-repeat top center;
        width: 100%;
        height: 820px;
        position: relative;
        background-size: cover;
        margin: 0 0 0 70px;
    }
    #main_wrap .ttl_wrap {
        position: absolute;
        top: 56%;
        left: 8%;
        transform: translate(0, -50%);
    }
    #main_wrap h1 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 7.6rem;
        letter-spacing: 0.1rem;
        color: #ffffff;
        line-height: 1.4;
        margin: 0 0 15px;
    }
    #main_wrap h1 span {
        font-size: 3.7rem;
        font-weight: 300;
        display: table;
        padding: 9px 0 6px;
    }
    #main_wrap .body_txt {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 300;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
        line-height: 1.8;
        font-feature-settings: 'palt';
        padding: 0 0 35px;
        color: #ffffff;
        text-align: left;
    }
    #main_wrap ul {
        display: grid;
        grid-template-columns: 1fr 1fr; /* 2列 */
        column-gap: 25px; /* 列の間隔 */
        row-gap: 12px; /* 行の間隔 */
        width: 500px;
    }
    #main_wrap li {
        margin: 0;
        padding: 0;
    }
    /* 1行のデザイン */
    #main_wrap a {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 12px 0;
        text-decoration: none;
        color: rgba(255, 255, 255, .85); /* 白っぽい文字 */
        font-size: 1.6rem;
        letter-spacing: .04em;
        border-bottom: 1px solid rgba(255, 255, 255, .35);
        font-family: 'Noto Sans JP', sans-serif;
    }
    /* 右端の∨（CSSで生成） */
    #main_wrap a::after {
        position: absolute;
        display: inline-block;
        content: "";
        width: 6px;
        height: 6px;
        border-top: 1px solid #ffffff;
        border-right: 1px solid #ffffff;
        transform: rotate(135deg) translate(0, -50%);
        top: 40%;
        right: 18px;
    }
    /* hover */
    #main_wrap a:hover {
        color: rgba(255, 255, 255, 1);
        border-bottom-color: rgba(255, 255, 255, .55);
    }
    /* ============================================================
 	section 00
	==============================================================*/
    #sec00 {
        padding: 150px 0 140px;
        background: #fff;
        margin: 0 0 0 70px;
    }
    #sec00 h2 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 3.0rem;
        letter-spacing: 0.2rem;
        color: #000000;
        position: relative;
        line-height: 1.5;
        font-feature-settings: "palt";
        text-align: center;
    }
    #sec00 h2:after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 24px auto 60px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    #sec00 h2 {
        font-family: "Roboto Condensed", sans-serif;
        font-weight: 600;
        font-size: 4.0rem;
        letter-spacing: 0.1rem;
        color: #000000;
        position: relative;
        line-height: 1.0;
        font-feature-settings: "palt";
        text-align: left;
    }
    #sec00 h2:after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 24px 0 37px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    #sec00 .body_txt {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
        line-height: 2.0;
        font-feature-settings: 'palt';
        padding: 0 0 50px;
        color: #000;
        text-align: left;
    }
    /* 横並び */
    #sec00 .wrapper {
        min-width: 1100px;
        max-width: 1200px;
        width: 80%;
        margin: 0 auto;
        display: flex;
        gap: 89px;
        align-items: flex-start;
    }
    /* 左 */
    #sec00 .work__content {
        width: 62%;
        margin-top: 60px;
        margin-left: clamp(-160px, calc(-160px * ((100vw - 1180px) / 740px)), 31px);
    }
    /* 右カラムのレイアウト用 */
    #sec00 .work_imgwrap {
        margin: -35px -79px 0 10px;
        width: 707px;
    }
    #sec00 .work_imgwrap img {
        margin: 0 0 30px;
    }
    #sec00 {
        max-width: 900px;
        margin: 0 auto;
    }
    #sec00 .info-box {
        display: flex;
        align-items: center;
        background: #f6f8fb;
        border-radius: 0px;
        padding: 20px 24px;
        margin-bottom: 12px;
        position: relative;
        width: 508px;
    }
    /* 左の青ライン */
    #sec00 .info-box::before {
        content: "";
        width: 6px;
        height: 100%;
        background: linear-gradient(to top, rgb(0 82 146 / 80%) 25%, rgb(0 150 215 / 80%) 75%);
        position: absolute;
        left: 0;
        top: 0;
    }
    #sec00 .info-copy {
        color: #1f66b3;
        font-size: 1.5rem;
        margin-right: 33px;
        white-space: nowrap;
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 500;
        width: 189px;
    }
    #sec00 .info-main h3 {
        font-size: 2.0rem;
        margin: 0;
        font-weight: 600;
        font-family: 'Noto Sans JP', sans-serif;
        color: #000;
        line-height: 1.4;
    }
    #sec00 .info-sub {
        font-size: 1.4rem;
        color: #000000;
        margin-top: 0;
        font-family: 'Noto Sans JP', sans-serif;
    }
    /* ============================================================
 	section 01
	==============================================================*/
    #sec01 {
        padding: 180px 0 180px;
        position: relative;
        margin: 0 0 0 70px;
        background: url(../img/sec01_bg.jpg) no-repeat top right;
        background-size: 900px;
        background-position-x: right -92px;
        background-position-y: -90px;
    }
    #sec01 .wrapper {
        box-sizing: border-box;
        padding: 18px 0 0px 10px;
        width: 1000px;
    }
    #sec01 h2 {
        font-family: "Roboto Condensed", sans-serif;
        font-weight: 600;
        font-size: 8rem;
        letter-spacing: 0.1rem;
        color: #000000;
        position: relative;
        line-height: 1.02;
        font-feature-settings: "palt";
        text-align: left;
    }
    #sec01 h2 span {
        font-size: 3.0rem;
        display: block;
        margin: 0 0 14px;
        font-weight: 400;
        font-family: 'Noto Sans JP', sans-serif;
    }
    #sec01 h2:after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 24px 0 60px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    #sec01 .body_txt {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
        line-height: 2.0;
        font-feature-settings: 'palt';
        padding: 0 0 105px;
        color: #000;
        text-align: left;
    }
    #sec01 .mmv_wrap {
        display: flex;
        gap: 60px;
        width: 90vw;
        flex-wrap: wrap;
    }
    #sec01 h3 {
        font-family: "Roboto Condensed", sans-serif;
        font-weight: 300;
        font-size: 3.6rem;
        line-height: 1;
        color: #000000;
        letter-spacing: 0.1rem;
        font-feature-settings: 'palt';
        padding: 0 0 13px;
    }
    #sec01 h4 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 3.6rem;
        line-height: 1;
        color: #fff;
        letter-spacing: 0.6rem;
        font-feature-settings: 'palt';
        padding: 0 0 20px;
    }
    #sec01 h4 span.mbg {
        display: table;
        padding: 12px 20px 20px;
        margin: 5px 0;
        background: linear-gradient(to right, rgb(0 82 146 / 80%) 25%, rgb(0 150 215 / 80%) 75%);
    }
    #sec01 .flex_wrap {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        padding: 0 0 24px;
    }
    #sec01 .con_wrap {
        width: 990px;
        margin: 40px 0 33px;
    }
    #sec01 .flex_wrap > li {
        width: 188px;
        box-sizing: border-box;
        padding: 24px 22px;
    }
    #sec01 .flex_wrap > li:nth-child(1) {
        background: linear-gradient(to bottom right, #bf1e2e 0%, rgb(191 30 46 / 70%) 100%);
    }
    #sec01 .flex_wrap > li:nth-child(2) {
        background: linear-gradient(to bottom right, #f1592a 0%, rgb(241 89 42 / 70%) 100%);
    }
    #sec01 .flex_wrap > li:nth-child(3) {
        background: linear-gradient(to bottom right, #fcb040 0%, rgb(252 176 64 / 70%) 100%);
    }
    #sec01 .flex_wrap > li:nth-child(4) {
        background: linear-gradient(to bottom right, #00a651 0%, rgb(0 166 81 / 70%) 100%);
    }
    #sec01 .flex_wrap > li:nth-child(5) {
        background: linear-gradient(to bottom right, #1d5a90 0%, rgb(29 90 144 / 70%) 100%);
    }
    #sec01 .flex_wrap span.num {
        display: block;
        font-family: 'Roboto', sans-serif;
        font-weight: 300;
        font-size: 1.8rem;
        color: #fff;
        letter-spacing: 0.2rem;
        padding: 0 0 0 4px;
    }
    #sec01 .flex_wrap h4 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 3.4rem;
        line-height: 1;
        color: #fff;
        letter-spacing: 0.2rem;
        font-feature-settings: 'palt';
        padding: 0 0 36px;
        position: relative;
    }
    #sec01 .flex_wrap h4:before {
        content: "";
        display: block;
        width: 50px;
        height: 2px;
        background: #fff;
        opacity: 0.5;
        position: absolute;
        bottom: 14px;
        left: 2px;
    }
    #sec01 .flex_wrap li p {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 300;
        font-size: 1.4rem;
        color: #fff;
        line-height: 1.8;
        padding: 0 0 0 2px;
        font-feature-settings: 'palt';
        letter-spacing: 0.2rem;
    }
    #sec01 .flex_wrap p.body_txt {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 500;
        font-size: 1.6rem;
        color: #fff;
        line-height: 2.2;
        padding: 0 0 0 2px;
        margin: -5px 0 0;
        width: 710px;
        text-indent: 1em;
        font-feature-settings: 'palt';
        letter-spacing: 0.2rem;
        /* text-shadow: 0 0 10px rgb(9 63 100 / 70%); */
    }
    #sec01 .b_list a {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        min-width: 230px;
        height: 48px;
        padding: 0 22px 0 0;
        background: #2f2f2f;
        color: #fff;
        border: 1px solid #2f2f2f;
        transition: opacity .2s ease;
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
    }
    #sec01 .b_list a span {
        position: absolute;
        top: 41%;
        right: 25px;
        transform: translate(0, -50%);
    }
    #sec01 .b_list a:hover {
        opacity: .85;
    }
    /* ============================================================
 	section 02
	==============================================================*/
    #sec02 {
        padding: 180px 0 0;
        position: relative;
        margin: 0 0 0 70px;
        background: url(../img/sec02_bg.jpg) no-repeat top;
        background-position-x: left;
        background-size: cover;
        height: 669px;
    }
    #sec02 .wrapper {
        box-sizing: border-box;
        border-radius: 10px 10px 0 0;
        padding: 18px 0 0px;
        width: 100%;
        max-width: 1200px;
    }
    #sec02 .wrapper .content_wrap {
        position: absolute;
        right: 0;
    }
    #sec02 h2 {
        font-family: "Roboto Condensed", sans-serif;
        font-weight: 600;
        font-size: 5rem;
        letter-spacing: 0rem;
        color: #000000;
        position: relative;
        line-height: 1.0;
        font-feature-settings: "palt";
        text-align: left;
    }
    #sec02 h2:after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 24px 0 37px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    #sec02 .body_txt {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
        line-height: 2.0;
        font-feature-settings: 'palt';
        padding: 0 0 36px;
        color: #000;
        text-align: left;
    }
    #sec02 .b_list a {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        min-width: 230px;
        height: 48px;
        padding: 0 22px 0 0;
        background: #2f2f2f;
        color: #fff;
        border: 1px solid #2f2f2f;
        transition: opacity .2s ease;
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
    }
    #sec02 .b_list a span {
        position: absolute;
        top: 41%;
        right: 25px;
        transform: translate(0, -50%);
    }
    #sec02 .b_list a:hover {
        opacity: .85;
    }
    /* ============================================================
 	section 03
	==============================================================*/
    #sec03 {
        padding: 0 0 200px;
        /* background: #fff; */
        margin: -200px 0 0 70px;
    }
    #sec03 h2 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 3.0rem;
        letter-spacing: 0.2rem;
        color: #000000;
        position: relative;
        line-height: 1.5;
        font-feature-settings: "palt";
        text-align: center;
    }
    #sec03 h2:after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 24px auto 60px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    #sec03 h2 {
        font-family: "Roboto Condensed", sans-serif;
        font-weight: 600;
        font-size: 5rem;
        letter-spacing: 0rem;
        color: #000000;
        position: relative;
        line-height: 1.0;
        font-feature-settings: "palt";
        text-align: left;
    }
    #sec03 h2:after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 24px 0 37px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    #sec03 .body_txt {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
        line-height: 2.0;
        font-feature-settings: 'palt';
        padding: 0 0 87px;
        color: #000;
        text-align: left;
    }
    /* 横並び */
    #sec03 .strength__inner {
        min-width: 1100px;
        max-width: 1300px;
        width: 80%;
        margin: 0 auto 0;
        display: flex;
        gap: 89px;
        align-items: flex-start;
    }
    /* 左 */
    #sec03 .strength__content {
        width: 62%;
        padding: 250px 0 0;
    }
    #sec03 .h3_box {
        font-size: 2.0rem;
        font-weight: 700;
        text-align: center;
        width: 270px !important;
        height: 200px;
        background: url(../img/sec03_left_img_01.jpg) no-repeat top;
    }
    #sec03 .h3_box_2 {
        background: url(../img/sec03_left_img_02.jpg) no-repeat top;
    }
    #sec03 .h3_box_3 {
        background: url(../img/sec03_left_img_03.jpg) no-repeat top;
    }
    #sec03 .h3_box_4 {
        background: url(../img/sec03_left_img_04.jpg) no-repeat top;
    }
    #sec03 h3 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        color: #fff;
        padding: 38px 0 0;
    }
    #sec03 .strength__item ul {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        color: #000;
        padding: 46px 24px 0 35px;
        width: 390px;
    }
    #sec03 .strength__item ul.ul3 {
        padding: 32px 24px 0 38px;
    }
    #sec03 .strength__item ul li {
        padding: 0px 0 10px;
        position: relative;
        line-height: 1.6;
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 1.5rem;
    }
    #sec03 .strength__item ul li:after {
        content: "";
        width: 5px;
        height: 5px;
        position: absolute;
        background: #000;
        top: 10px;
        left: -14px;
        border-radius: 90px;
    }
    #sec03 .strength__lead {
        font-size: 15px;
        line-height: 1.9;
        margin-bottom: 40px;
        color: #333;
    }
    /* 箇条 */
    #sec03 .strength__list {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    #sec03 .strength__item {
        background: #f5f7f9;
        font-size: 14px;
        display: flex;
    }
    /* 右画像 */
    /* 右カラムのレイアウト用 */
    #sec03 .strength__imageWrap {
        width: 37%;
        position: sticky;
        top: 0;
        padding: 100px 0 0;
    }
    #sec03 .btn_ul {
        display: flex;
        gap: 9px;
        margin: 39px 0 0;
    }
    #sec03 .b_list {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        justify-content: center;
    }
    #sec03 .b_list a {
        position: relative;
        display: inline-flex;
        align-items: center;
        /* justify-content: center; */
        gap: 10px;
        min-width: 212px;
        height: 48px;
        padding: 10px 2px 10px 20px;
        background: #2f2f2f;
        color: #fff;
        border: 1px solid #2f2f2f;
        transition: opacity .2s ease;
        line-height: 1.3;
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
    }
    #sec03 .b_list a span {
        position: absolute;
        top: 41%;
        right: 19px;
        transform: translate(0, -50%);
    }
    #sec03 .b_list a:hover {
        opacity: .85;
    }
    /* ============================================================
 	section 04
	==============================================================*/
    /* ===== base ===== */
    #sec04 {
        padding: 120px 0;
        background: #f3f5f7;
        margin: 0 0 0 70px;
    }
    #sec04 .wrapper {
        width: min(1040px, 92%);
        margin: 0 auto;
    }
    #sec04 .kpi__head {
        text-align: center;
        margin-bottom: 28px;
    }
    #sec04 h2 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 4.0rem;
        letter-spacing: 0.2rem;
        color: #000000;
        position: relative;
        line-height: 1.5;
        font-feature-settings: "palt";
        text-align: center;
    }
    #sec04 h2::after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 24px auto 60px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    /* ===== grid ===== */
    #sec04 .kpi__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 18px;
        margin: 0 0 18px;
    }
    #sec04 .span-2 {
        grid-column: span 2;
    }
    /* ===== card ===== */
    #sec04 .card {
        background: #fff;
        border-radius: 2px;
        overflow: hidden;
    }
    #sec04 .card__bar {
        font-family: 'Noto Sans JP', sans-serif;
        text-align: center;
        height: 48px;
        background: #4b4f54;
        color: #fff;
        padding: 0 14px 10px 16px;
        position: relative;
    }
    #sec04 .card__label {
        margin: 0;
        font-size: 2.0rem;
        font-weight: 500;
        letter-spacing: .04em;
        text-align: center;
        padding: 11px 0px 10px;
    }
    #sec04 .card__icon {
        display: block;
        position: absolute;
        bottom: 0;
        right: 2%;
        width: 80px;
    }
    #sec04 .card__icon_large {
        width: 100px;
    }
    #sec04 .card__label span {
        display: block;
        position: absolute;
    }
    #sec04 .card__body {
        padding: 25px 16px 15px;
        text-align: center;
    }
    #sec04 .card_old .card__body {
        padding: 37px 16px 0px;
    }
    #sec04 .span-2 .card__body {
        padding: 18px 16px 10px;
    }
    #sec04 .card__main {
        margin: 0;
        color: #1f66b2;
        font-weight: 700;
        line-height: 1.05;
        text-align: center;
        font-size: 6rem;
        letter-spacing: 0;
        white-space: nowrap;
        font-family: "Roboto Condensed", sans-serif;
    }
    #sec04 .card__main .num {
        font-variant-numeric: tabular-nums;
    }
    #sec04 .card__main .num_mini {
        font-size: 5rem;
    }
    #sec04 .card__main .num:nth-child(3) {
        font-size: 5rem;
        margin: 0 0 0 -5px;
    }
    #sec04 .card__main .unit, #sec04 .card__main .slash {
        font-size: .45em;
        margin: 0 0.12em;
        color: #1f66b2;
        font-weight: 500;
        font-family: 'Noto Sans JP', sans-serif;
    }
    #sec04 .card__main .text {
        font-size: 4rem;
        font-weight: 700;
        font-family: 'Noto Sans JP', sans-serif;
    }
    #sec04 .card__sub {
        margin: -13px 0 0px;
        font-size: 1.8rem;
        font-weight: 500;
        text-align: center;
        color: #1f66b2;
        font-family: 'Noto Sans JP', sans-serif;
    }
    #sec04 .card__note {
        margin: -1px 0 0;
        font-size: 1.3rem;
        font-family: 'Noto Sans JP', sans-serif;
        color: #757575;
        text-align: center;
    }
    /* ===== 年代比率 ===== */
    /* ===== 年代別構成比率（バーの上に数字＆縦線） ===== */
    #sec04 .ratio__chart {
        position: relative;
        padding-top: 76px; /* ←数字エリア分の高さ（調整OK） */
        width: 94%;
        margin: 0 auto;
    }
    #sec04 .ratio__bar {
        height: 14px;
        background: #e9eef3;
        border-radius: 2px;
        overflow: hidden;
        display: flex;
        position: relative;
    }
    #sec04 .ratio__bar .seg {
        width: var(--w);
        height: 100%;
        display: block;
    }
    /* 例：色はお好みで */
    #sec04 .ratio__bar .s1 {
        background: #b2cbde;
    }
    #sec04 .ratio__bar .s2 {
        background: #7ca6c7;
    }
    #sec04 .ratio__bar .s3 {
        background: #578db7;
    }
    #sec04 .ratio__bar .s4 {
        background: #3d7bac;
    }
    #sec04 .ratio__bar .s5 {
        background: #005292;
    }
    /* マーカー群（バーの上に重ねる） */
    #sec04 .ratio__markers {
        position: absolute;
        left: 0;
        right: 0;
        top: 5px;
        height: 56px; /* ← padding-top と合わせる */
        pointer-events: none;
    }
    /* ラベルと数値を必ず縦に積む */
    #sec04 .mk__tag, #sec04 .mk__val {
        display: block;
        white-space: nowrap;
    }
    /* マーカー内の整列を安定させる */
    #sec04 .mk {
        display: grid;
        justify-items: center;
        gap: 6px;
        min-width: 0; /* これ大事：はみ出し抑制 */
    }
    /* 端っこは内側に寄せる（はみ出し防止） */
    #sec04 .mk:first-child {
        transform: translateX(0);
        left: 6px;
        justify-items: start;
        text-align: left;
    }
    #sec04 .mk:last-child {
        transform: translateX(-96%);
        left: 104%;
        justify-items: end;
        text-align: right;
    }
    /* 縦線の位置も端っこ対応（中心→タグの位置に合わせる） */
    #sec04 .mk:first-child::after {
        left: 19px;
        transform: none;
    }
    #sec04 .mk:last-child::after {
        left: 48%;
        transform: none;
    }
    /* 1マーカー */
    #sec04 .mk {
        position: absolute;
        margin: 0 0 0 0;
        left: var(--x);
        top: 0;
        transform: translateX(-50%);
        text-align: center;
        min-width: 56px; /* つぶれ防止 */
    }
    /* 縦線（数字の下からバーへ） */
    #sec04 .mk::after {
        content: "";
        position: absolute;
        left: 50%;
        top: 61px; /* ←線の開始位置（調整OK） */
        width: 1px;
        height: 20px; /* ←バーまで届く長さ（調整OK） */
        background: #7b8794;
        opacity: .6;
        z-index: 9999;
    }
    #sec04 .mk__tag {
        display: inline-block;
        font-size: 1.6rem;
        font-weight: 700;
        color: #1f66b2;
        border: 1px solid #1f66b2;
        background: #ffffff;
        padding: 1px 6px;
        line-height: 1.2;
        margin-bottom: -1px;
    }
    #sec04 .mk__val {
        display: inline-block;
        font-size: 3.0rem;
        font-weight: 800;
        color: #1f66b2;
        letter-spacing: -0.1rem;
        line-height: 1;
        font-variant-numeric: tabular-nums;
        font-family: "Roboto Condensed", sans-serif;
        font-feature-settings: "palt";
    }
    .point_span {
        font-size: 2.6rem;
    }
    #sec04 .mk__unit {
        font-size: 2.2rem;
        margin-left: 2px;
    }
    /* ===== 男女比 ===== */
    #sec04 .gender {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        align-items: center;
        padding: 0 10px 0;
    }
    #sec04 .gender__label {
        margin: -10px 0 3px;
        font-size: 1.8rem;
        color: #1f66b2;
        font-weight: 700;
        text-align: center;
    }
    #sec04 .gender__val {
        margin: 0;
        color: #1f66b2;
        font-weight: 800;
        line-height: 1;
        text-align: center;
        font-size: 6rem;
        letter-spacing: 0;
        white-space: nowrap;
        font-family: "Roboto Condensed", sans-serif;
        margin: 0 -5px 0 0;
    }
    #sec04 .gender__val .unit {
        font-size: .45em;
        font-weight: 500;
        font-family: 'Noto Sans JP', sans-serif;
        margin: 0 0 0 2px;
    }
    #sec04 .kpi__rows {
        display: grid;
        gap: 18px; /* 行間 */
    }
    #sec04 .kpi__row {
        display: grid;
        gap: 18px; /* カード間 */
    }
    /* 2列の行 */
    #sec04 .kpi__row--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    /* 3列の行 */
    #sec04 .kpi__row--3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    
    /* =========================================
       #sec05
    ========================================= */
    #sec05 {
        padding: 120px 0;
        background: #fff;
        margin: 0 0 0 70px;
    }
    #sec05 .wrapper {
        width: 1100px;
        margin-inline: auto;
        text-align: center;
    }
    /* 見出し */
    #sec05 h2 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 4.0rem;
        letter-spacing: 0.2rem;
        color: #000000;
        position: relative;
        line-height: 1.5;
        font-feature-settings: "palt";
        text-align: center;
    }
    #sec05 h2::after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 17px auto 30px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    #sec05 .body_txt {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
        line-height: 1.8;
        font-feature-settings: 'palt';
        padding: 0 0 35px;
        color: #000;
        text-align: center;
    }
    /* 画像2カラム全体の囲み */
    #sec05 .sus_wrap {
        border: 1px solid #d9d9d9;
        background: #fff;
        padding: 42px 44px 34px;
        display: flex;
        justify-content: center;
        gap: 64px;
        align-items: flex-start;
        margin: 0 auto 34px;
    }
    /* 各ブロック */
    #sec05 .sus_wrap > div {
        width: min(420px, 100%);
        display: grid;
        gap: 22px;
        justify-items: center;
    }
    /* 画像 */
    #sec05 .sus_wrap img {
        width: 100%;
        height: 385px;
        display: block;
    }
    /* OUR POLICY / OUR ACTIONS */
    #sec05 .sus_wrap h3 {
        margin: 0;
        font-size: 22px;
        font-weight: 700;
        letter-spacing: .06em;
        color: #111;
    }
    /* 下のボタン（ul） */
    #sec05 .b_list {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        justify-content: center;
    }
    #sec05 .b_list a {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        min-width: 230px;
        height: 48px;
        padding: 0 22px 0 0;
        background: #2f2f2f;
        color: #fff;
        border: 1px solid #2f2f2f;
        transition: opacity .2s ease;
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        letter-spacing: 0.1rem;
        font-size: 1.6rem;
    }
    #sec05 .b_list a span {
        position: absolute;
        top: 41%;
        right: 25px;
        transform: translate(0, -50%);
    }
    #sec05 .b_list a:hover {
        opacity: .85;
    }
    /* 右側の外部リンク風アイコン（擬似要素） */
    #sec05 .b_list a::after {
        content: "";
        width: 15px;
        height: 15px;
        display: inline-block;
        position: relative;
        box-sizing: border-box;
    }
    /* レスポンシブ */
    @media (max-width: 900px) {
        #sec05 {
            padding: 70px 0 80px;
        }
        #sec05 .sus_wrap {
            flex-direction: column;
            gap: 34px;
            padding: 28px 22px 26px;
        }
        #sec05 .sus_wrap > div {
            width: 100%;
        }
        #sec05 .sus_wrap h3 {
            font-size: 18px;
        }
        #sec05 .b_list a {
            min-width: 200px;
            height: 46px;
        }
    }
    
    
    /* =========================================
       #sec06
    ========================================= */
    #sec06 .wrapper {
        width: 1000px;
        margin-inline: auto;
    }
    #sec06 {
        padding: 120px 0 160px;
        background: #f3f5f7;
        margin: 0 0 0 70px;
    }
    #sec06 h2 {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 600;
        font-size: 4.0rem;
        letter-spacing: 0.2rem;
        color: #000000;
        position: relative;
        line-height: 1.5;
        font-feature-settings: "palt";
        text-align: center;
    }
    #sec06 h2::after {
        content: "";
        display: block;
        width: 102px;
        height: 3px;
        margin: 17px auto 60px;
        background: linear-gradient(90deg, #0091d2 0%, #09597d 100%);
    }
    /* 1拠点ブロック */
    #sec06 .base {
        display: flex;
        gap: 56px;
        /* align-items: center; */
        padding: 12px 0;
    }
    #sec06 .base + .base {
        margin-top: 24px; /* 2つ目との間隔 */
    }
    #sec06 .base__info {
        flex: 0 0 280px; /* 左カラム固定気味 */
    }
    #sec06 .base__name {
        margin: 0 0 12px;
        font-size: 2.4rem;
        font-weight: 700;
        font-family: 'Noto Sans JP', sans-serif;
        color: #1f66b2;
    }
    #sec06 .base__addr {
        margin: 0 0 18px;
        line-height: 1.7;
        color: #000000;
        font-size: 14px;
        font-family: 'Noto Sans JP', sans-serif;
    }
    /* MAPボタン（a） */
    #sec06 .map-btn {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        padding: 3px 16px;
        border: 1px solid #000000;
        border-radius: 999px;
        color: #000000;
        background: #fff;
        font-size: 1.4rem;
        font-family: "Roboto", sans-serif;
        letter-spacing: .12em;
        transition: background .2s ease, border-color .2s ease;
    }
    #sec06 .map-btn:hover {
        background: #e5e5e5;
        border-color: #bdbdbd;
    }
    #sec06 .map-btn__icon {
        width: 22px;
        height: 22px;
        border-radius: 999px;
        position: relative;
        flex: 0 0 22px;
        margin: -9px -8px 0 10px;
    }
    /* 右側の丸の中にピンっぽい簡易アイコン */
    #sec06 .map-btn__icon::before {
        content: "";
        position: absolute;
        inset: 0;
        margin: auto;
        width: 8px;
        height: 8px;
        border: 2px solid #000000;
        border-radius: 50% 50% 50% 0;
        transform: rotate(-45deg);
        top: 5px;
        background: #000;
    }
    #sec06 .map-btn__icon::after {
        content: "";
        position: absolute;
        width: 4px;
        height: 4px;
        background: #ffffff;
        border-radius: 50%;
        left: 8.5px;
        top: 10.5px;
    }
    #sec06 .base__photo {
        flex: 1;
    }
    #sec06 .base__photo img {
        display: block;
        width: 100%;
        height: auto;
        border-radius: 2px;
    }
    /* レスポンシブ */
    /*@media (max-width: 900px) {
        #sec06 .base {
            flex-direction: column;
            gap: 18px;
            align-items: flex-start;
        }
        #sec06 .base__info {
            flex-basis: auto;
        }
    }*/
}