@charset "UTF-8";

/* MV */
.p-mv {
    margin-bottom: calc((100vw / var(--vw-large))*150);

    @media(max-width:768px) {
        margin-bottom: calc((100vw / var(--vw-small))*80);
    }
}

.p-merit {
    position: relative;

    .p-merit__text {

        img {
            position: absolute;
            width: calc((100vw / var(--vw-large))*101);
            right: calc((100vw / var(--vw-large))*100);
        }
    }

    /* --- 導入セクション --- */
    .p-feature-detail {
        background-color: #F2F8F3;
        width: calc((100vw / var(--vw-large))*1180);
        margin-left: auto;
        margin-bottom: calc((100vw / var(--vw-large))*73);
        padding: calc((100vw / var(--vw-large))*64) 0 calc((100vw / var(--vw-large))*100);

        @media(max-width:768px) {
            width: calc((100vw / var(--vw-small))*370);
            margin-bottom: calc((100vw / var(--vw-small))*60);
            padding: calc((100vw / var(--vw-small))*60) 0;
        }

        .l-inner {
            width: calc((100vw / var(--vw-large))*800);
            margin-left: calc((100vw / var(--vw-large))*100);

            @media(max-width:768px) {
                width: calc((100vw / var(--vw-small))*320);
                margin-left: calc((100vw / var(--vw-small))*15);
            }
        }

        /* --- ヘッダーエリア --- */

        .p-feature__intro__header {
            text-align: left;
            margin-bottom: calc((100vw / var(--vw-large))*56);

            @media(max-width:768px) {
                margin-bottom: calc((100vw / var(--vw-small))*40);
            }

            .en {
                font-size: calc((100vw / var(--vw-large))*15);
                font-family: var(--font-en);
                color: var(--color-primary-light);
                font-weight: bold;
                margin-bottom: calc((100vw / var(--vw-large))*10);
                font-style: italic;

                @media(max-width:768px) {
                    font-size: calc((100vw / var(--vw-small))*15);
                    margin-bottom: calc((100vw / var(--vw-small))*10);
                }

            }

            h2 {
                font-size: calc((100vw / var(--vw-large))*30);
                font-weight: 900;
                text-align: left;

                @media(max-width:768px) {
                    font-size: calc((100vw / var(--vw-small))*30);
                }
            }

            .c-section-title-underline {
                display: block;
                width: calc((100vw / var(--vw-large)) * 158);
                /* 線の長さ */
                height: 3px;
                /* 線の太さ */
                /* 修正箇所: グラデーションで2色を半分ずつ表現 */
                background: linear-gradient(to right, #00A310 50%, #93D500 50%);
                margin-top: calc((100vw / var(--vw-large)) * 10);

                @media(max-width:768px) {
                    width: calc((100vw / var(--vw-small))*82);
                    margin-top: calc((100vw / var(--vw-small))*10);
                }
            }
        }

        p {
            text-align: left;
            letter-spacing: 0;
        }


        /* --- 各ブロック (POINT) --- */
        .p-feature-detail__block {
            margin-bottom: calc((100vw / var(--vw-large)) * 80);

            @media(max-width:768px) {
                margin-bottom: calc((100vw / var(--vw-small))*40);
            }
        }

        /* ポイント見出し */
        .p-feature-detail__point-title {
            font-size: calc((100vw / var(--vw-large)) * 19);
            font-weight: 700;
            margin-bottom: calc((100vw / var(--vw-large)) * 30);
            padding-bottom: calc((100vw / var(--vw-large)) * 10);
            border-bottom: 2px dashed #00A310;
            /* 点線の下線 */
            text-align: left;

            @media(max-width:768px) {
                font-size: calc((100vw / var(--vw-small))*18);
                margin-bottom: calc((100vw / var(--vw-small))*25);
                padding-bottom: calc((100vw / var(--vw-small))*10);
                line-height: normal;
            }
        }

        .p-feature-detail__point-num {
            color: var(--color-primary-light);
            font-size: calc((100vw / var(--vw-large)) * 23);
            font-style: italic;
            font-weight: 700;
            display: block;

            @media(max-width:768px) {
                font-size: calc((100vw / var(--vw-small))*23);
            }
        }

        /* 本文テキスト */
        .p-feature-detail__text {
            font-size: calc((100vw / var(--vw-large)) * 16);
            line-height: 1.8;
            color: #333;
            text-align: justify;
            /* 両端揃え */

            @media(max-width:768px) {
                font-size: calc((100vw / var(--vw-small))*16);
            }
        }

        /* --- POINT 02 のレイアウト (2カラム) --- */
        .p-feature-detail__content--flex {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: calc((100vw / var(--vw-large)) * 48);

            @media(max-width:768px) {
                flex-direction: column;
                gap: calc((100vw / var(--vw-small))*16);
            }
        }

        .p-feature-detail__text-area {
            /* 幅: PC 600px相当 (画像に合わせて調整) */
            width: calc((100vw / var(--vw-large)) * 494);

            @media(max-width:768px) {
                width: 100%;
            }
        }

        .p-feature-detail__image-area {
            /* 幅: PC 400px相当 */
            width: calc((100vw / var(--vw-large)) * 235);
            flex-shrink: 0;

            @media(max-width:768px) {
                width: calc((100vw / var(--vw-small))*244);
                margin: 0 auto;
            }
        }

        .p-feature-detail__image-area img {
            width: 100%;
            height: auto;
        }
    }

    .p-merit-detail {
        /* 上下の余白 */

        /* コンテナ: 画面幅1360pxのとき1000px幅 */
        .p-merit-detail__container {}

        /* 上部ナビゲーションエリア */
        .p-merit-nav {
            margin: 0 auto calc((100vw / var(--vw-large))*76);
            width: calc((100vw / var(--vw-large)) * 1000);

            @media(max-width:768px) {
                width: calc((100vw / var(--vw-small))*350);
                margin: 0 auto calc((100vw / var(--vw-small))*60);
            }

            /* --- ヘッダーエリア --- */

            .p-merit__intro__header {
                text-align: left;
                margin-bottom: calc((100vw / var(--vw-large))*56);

                @media(max-width:768px) {
                    margin-bottom: calc((100vw / var(--vw-small))*40);
                }

                h2 {
                    font-size: calc((100vw / var(--vw-large))*30);
                    font-weight: 900;
                    text-align: left;

                    @media(max-width:768px) {
                        font-size: calc((100vw / var(--vw-small))*30);
                    }
                }

                .c-section-title-underline {
                    display: block;
                    width: calc((100vw / var(--vw-large)) * 158);
                    /* 線の長さ */
                    height: 3px;
                    /* 線の太さ */
                    /* 修正箇所: グラデーションで2色を半分ずつ表現 */
                    background: linear-gradient(to right, #00A310 50%, #93D500 50%);
                    margin-top: calc((100vw / var(--vw-large)) * 10);

                    @media(max-width:768px) {
                        width: calc((100vw / var(--vw-small))*82);
                        margin-top: calc((100vw / var(--vw-small))*10);
                    }
                }
            }

            ul {
                gap: calc((100vw / var(--vw-large))*23);
                display: flex;
                justify-content: center;
                flex-wrap: wrap;
                width: calc((100vw / var(--vw-large))*657);
                margin: 0 auto calc((100vw / var(--vw-large))*40);

                @media(max-width:768px) {
                    width: calc((100vw / var(--vw-small))*350);
                    gap: calc((100vw / var(--vw-small))*18);
                    margin-bottom: calc((100vw / var(--vw-small))*40);
                }

                li {
                    width: calc((100vw / var(--vw-large))*147);

                    @media(max-width:768px) {
                        width: calc((100vw / var(--vw-small))*160);
                    }
                }
            }

            p {
                text-align: left;
            }
        }

        /* --- 各メリットのブロック --- */
        .p-merit-block {
            margin-bottom: calc((100vw / var(--vw-large)) * 100);
            width: calc((100vw / var(--vw-large)) * 1000);
            margin: 0 auto;

            @media(max-width:768px) {
                width: calc((100vw / var(--vw-small))*360);
                margin-bottom: calc((100vw / var(--vw-small))*60);
            }
        }

        /* ヘッダー部分 */
        .p-merit-block__header {
            text-align: left;

            .flex {
                display: flex;
                justify-content: flex-start;
                gap: calc((100vw / var(--vw-large))*15);
                align-items: center;
                padding-bottom: calc((100vw / var(--vw-large))*14);
                margin-bottom: calc((100vw / var(--vw-large))*50);
                border-bottom: 1px solid #CBCBCB;

                @media(max-width:768px) {
                    gap: calc((100vw / var(--vw-small))*10);
                    padding-bottom: calc((100vw / var(--vw-small))*10);
                    margin-bottom: calc((100vw / var(--vw-small))*25);
                }
            }

        }

        .p-merit-block__sub {
            width: calc((100vw / var(--vw-large))*37);

            @media(max-width:768px) {
                width: calc((100vw / var(--vw-small))*37);
            }
        }

        .p-merit-block__title {
            font-size: calc((100vw / var(--vw-large)) * 25);
            font-weight: 700;
            line-height: 1.2;

            @media(max-width:768px) {
                font-size: calc((100vw / var(--vw-small))*22);
                text-align: left;
            }
        }

        .line-height {
            margin-bottom: calc((100vw / var(--vw-large))*24);

            @media(max-width:768px) {
                margin-bottom: calc((100vw / var(--vw-small))*14);
            }
        }

        .p-merit-block__link {
            display: flex;
            justify-content: space-between;
            margin: calc((100vw / var(--vw-large))*30) auto;


            @media(max-width:768px) {
                flex-direction: column;
                margin: calc((100vw / var(--vw-small))*24) auto;
                gap: calc((100vw / var(--vw-small))*8);
                align-items: center;
            }

            li {
                width: calc((100vw / var(--vw-large))*490);

                @media(max-width:768px) {
                    width: calc((100vw / var(--vw-small))*316);
                }
            }
        }

        /* 本文エリア */
        .p-merit-block__body {
            margin-bottom: calc((100vw / var(--vw-large))*68);

            @media(max-width:768px) {
                margin-bottom: calc((100vw / var(--vw-small))*24);
            }

            h3 {
                background-color: #489850;
                color: #fff;
                height: calc((100vw / var(--vw-large))*60);
                font-size: calc((100vw / var(--vw-large))*24);
                display: flex;
                align-items: center;
                padding-inline: calc((100vw / var(--vw-large)) * 20);
                text-align: left;
                letter-spacing: 0;

                @media(max-width:768px) {
                    font-size: calc((100vw / var(--vw-small))*20);
                    height: initial;
                    padding: calc((100vw / var(--vw-small))*15) calc((100vw / var(--vw-small))*16);
                    line-height: normal;
                }
            }

            .wrap {
                background-color: #F7F7F7;
                padding: calc((100vw / var(--vw-large))*33) calc((100vw / var(--vw-large))*50) calc((100vw / var(--vw-large))*48);

                @media(max-width:768px) {
                    padding: calc((100vw / var(--vw-small))*20) calc((100vw / var(--vw-small))*10);
                }

                .p-merit-block__text {
                    line-height: 1.8;
                    margin-bottom: calc((100vw / var(--vw-large)) * 24);
                    text-align: justify;

                    @media(max-width:768px) {
                        margin-bottom: calc((100vw / var(--vw-small))*14);
                    }
                }

                /* 画像（図解・グラフ） */
                .p-merit-block__image {
                    width: calc((100vw / var(--vw-large))*678);
                    margin: 0 auto;
                    text-align: center;

                    @media(max-width:768px) {
                        width: calc((100vw / var(--vw-small))*340);
                    }

                }

                @media(max-width:768px) {

                    .scroll_img__wrap {
                        overflow-x: auto;
                        white-space: nowrap;
                        scroll-snap-type: x mandatory;
                        /* スナップポイントを必須に */
                        -webkit-overflow-scrolling: touch;
                        padding: 0 calc((100vw / var(--vw-small))*10);
                        width: initial;

                        .merit_01_chart02 {
                            max-width: calc((100vw / var(--vw-small))*670);
                            width: calc((100vw / var(--vw-small))*670);
                        }

                        .merit_02_chart {
                            max-width: calc((100vw / var(--vw-small))*710);
                            width: calc((100vw / var(--vw-small))*710);
                        }

                        .merit_04_chart03 {
                            max-width: calc((100vw / var(--vw-small))*802);
                            width: calc((100vw / var(--vw-small))*802);
                        }

                        .merit_05_chart03 {
                            max-width: calc((100vw / var(--vw-small))*687);
                            width: calc((100vw / var(--vw-small))*687);
                        }

                        .merit_05_chart04 {
                            max-width: calc((100vw / var(--vw-small))*644);
                            width: calc((100vw / var(--vw-small))*644);
                        }

                        .merit_06_chart {
                            max-width: calc((100vw / var(--vw-small))*704);
                            width: calc((100vw / var(--vw-small))*704);
                        }
                    }

                    .scroll_wrap {
                        display: flex;
                        margin-top: calc((100vw / var(--vw-small))*20);
                        padding: 0 calc((100vw / var(--vw-small))*10);

                        span {
                            color: var(--color-primary-light);
                            font-size: calc((100vw / var(--vw-small))*20);
                            font-family: var(--font-en);
                            margin-left: calc((100vw / var(--vw-large)) * 10);
                            font-style: italic;
                            font-weight: bold;
                        }

                        img {
                            width: calc((100vw / var(--vw-small))*20);
                        }
                    }
                }

            }

            .note {
                font-size: calc((100vw / var(--vw-large))*14);
                color: #898989;
                text-align: left;
                letter-spacing: 0;
            }
        }


        #merit02,
        #merit04,
        #merit06 {
            .p-merit-block {
                width: 100%;
                background-color: #F7F7F7;
                padding: calc((100vw / var(--vw-large))*80) 0 calc((100vw / var(--vw-large))*1);

                @media(max-width:768px) {
                    padding: calc((100vw / var(--vw-small))*32) 0;
                }

                .contents__wrap {
                    width: calc((100vw / var(--vw-large))*1003);
                    margin: 0 auto;

                    @media(max-width:768px) {
                        width: calc((100vw / var(--vw-small))*360);
                    }
                }
            }
        }

        #merit02,
        #merit06 {
            .wrap {
                padding: 0;
            }
        }

        #merit03 {
            margin-top: calc((100vw / var(--vw-large))*68);

            .p-merit-block__body {
                .p-merit-block__image {
                    margin: calc((100vw / var(--vw-large))*68) auto;
                    width: calc((100vw / var(--vw-large))*812);

                    @media(max-width:768px) {
                        margin: calc((100vw / var(--vw-small))*16) auto;
                        width: calc((100vw / var(--vw-small))*332);
                    }
                }

                p {
                    text-align: left;
                }

                .wrap {
                    .p-merit-block__image {
                        margin: initial;
                        width: initial;
                    }
                }
            }

        }

        #merit04 {

            p {
                text-align: left;
            }

            .p-merit-block__body {
                margin: calc((100vw / var(--vw-large))*67) auto;
                width: calc((100vw / var(--vw-large))*791);

                @media(max-width:768px) {
                    margin: calc((100vw / var(--vw-small))*16) auto;
                    width: calc((100vw / var(--vw-small))*360);
                }

                h3 {
                    justify-content: center;

                    @media(max-width:768px) {
                        font-size: calc((100vw / var(--vw-small))*18);
                    }
                }

                .wrap {
                    background-color: #FFFFFF;
                }

                .note {
                    margin: calc((100vw / var(--vw-large))*18) auto calc((100vw / var(--vw-large))*57);
                    width: calc((100vw / var(--vw-large))*703);

                    @media(max-width:768px) {
                        font-size: calc((100vw / var(--vw-small))*14);
                        width: 100%;
                        margin: calc((100vw / var(--vw-small))*16) auto calc((100vw / var(--vw-small))*10);
                    }
                }
            }
        }

        #merit05 {
            margin-top: calc((100vw / var(--vw-large))*68);

            .p-merit-block__header {
                margin-bottom: calc((100vw / var(--vw-large))*50);
            }

            .wrap {
                padding: calc((100vw / var(--vw-small))*20);
            }

            .p-merit-block__body {
                .wrap {
                    .img01 {
                        width: calc((100vw / var(--vw-large))*807);
                        margin: calc((100vw / var(--vw-large))*45) auto calc((100vw / var(--vw-large))*33);

                        @media(max-width:768px) {
                            width: calc((100vw / var(--vw-small))*320);
                            margin: calc((100vw / var(--vw-small))*14) auto;
                        }
                    }

                    .img02 {
                        @media(max-width:768px) {
                            width: calc((100vw / var(--vw-small))*320);
                        }
                    }

                    .img03 {
                        width: calc((100vw / var(--vw-large))*687);
                        margin-top: calc((100vw / var(--vw-large))*54);

                        @media(max-width:768px) {
                            width: initial;
                            margin-top: calc((100vw / var(--vw-small))*14);
                            padding: 0;
                        }
                    }

                    .img04 {
                        width: calc((100vw / var(--vw-large))*644);
                        margin-top: calc((100vw / var(--vw-large))*54);

                        @media(max-width:768px) {
                            width: initial;
                            margin-top: calc((100vw / var(--vw-small))*14);
                            padding: 0;
                        }
                    }
                }
            }
        }

        #merit06 {
            .p-merit-block__body {
                .wrap {
                    .p-merit-block__image {
                        margin-top: calc((100vw / var(--vw-large))*54);

                        @media(max-width:768px) {
                            margin-top: calc((100vw / var(--vw-small))*24);
                        }
                    }
                }
            }
        }

        #merit07 {
            margin-top: calc((100vw / var(--vw-large))*68);

            .p-merit-block__body {

                @media(max-width:768px) {
                    flex-direction: column;
                    gap: calc((100vw / var(--vw-small))*16);
                }

                .text__block {
                    width: calc((100vw / var(--vw-large))*633);
                    text-align: left;

                    @media(max-width:768px) {
                        width: 100%;
                    }

                    h3 {
                        font-size: calc((100vw / var(--vw-large))*25);
                        background-color: initial;
                        color: var(--color-text-body);
                        padding: 0 0 0 calc((100vw / var(--vw-large))*22);
                        position: relative;

                        @media(max-width:768px) {
                            font-size: calc((100vw / var(--vw-small))*18);
                            padding: 0 0 0 calc((100vw / var(--vw-small))*16);
                            margin-bottom: calc((100vw / var(--vw-small))*16);
                            line-height: normal;
                        }

                        &::before {
                            content: '';
                            /* 内容は空 */
                            display: block;
                            position: absolute;
                            left: 0;
                            /* 左端に配置 */
                            top: 50%;
                            /* 上から中央 */
                            transform: translateY(-50%);
                            /* 垂直方向の中央寄せ */
                            width: calc((100vw / var(--vw-large))*14);
                            /* 丸の直径 */
                            height: calc((100vw / var(--vw-large))*14);
                            /* 丸の直径 */
                            border-radius: 50%;
                            /* 円形にする */
                            background-color: #93D500;
                            /* 丸の色 */

                            @media(max-width:768px) {
                                width: calc((100vw / var(--vw-small))*10);
                                height: calc((100vw / var(--vw-small))*10);
                            }
                        }
                    }
                }

                .p-merit-block__image {
                    width: calc((100vw / var(--vw-large))*285);

                    @media(max-width:768px) {
                        width: calc((100vw / var(--vw-small))*286);
                    }
                }
            }
        }


        /* 強調したい箇所がある場合に使用するクラス（任意） */
        .p-merit-block__text strong {
            color: var(--color-primary-light);
            /* 明るい緑 #00A310 */
            font-weight: 700;
        }


        .p-merit-block__image img {
            max-width: 100%;
            height: auto;
            /* グラフ類は影をつけておくと見やすい場合がある */
            /* box-shadow: 0 4px 10px rgba(0,0,0,0.1); */
        }
    }
}