@charset "UTF-8";
@media screen and (max-width: 767px) {

    /*---------------------------------------------
#FV～section_3：共通設定
-----------------------------------------------*/
    #section_1,
    #section_2,
    #section_3 {
        padding: min(70/767*100vw, 70px) 0;
    }

    .fv-03_br {
        display: block;
    }

    .fv-03_br_2 {
        display: none;
    }

    #FV h1,
    #FV p,
    #section_1 p,
    #section_2 p,
    #section_3 p {
        letter-spacing: 0.02em;
    }

    #section_2 p,
    .section_3_fukidashi p {
        font-size: min(28/767*100vw, 28px);
    }

    .fv_main_1 p,
    .fv_main_3 p {
        font-size: min(30/767*100vw, 30px);
    }

    #section_1 p,
    #section_2 .section_2_2 p .section_2_3 p {
        font-size: min(32/767*100vw, 32px);
    }

    .section_2_2 .p_blue,
    .section_3_1 h2 {
        font-size: min(43/767*100vw, 43px);
    }

    .fv_main_1 .kanou,
    #section_1 .p_blue {
        font-size: min(40/767*100vw, 40px);
    }

    .fv_main,
    .fv_main_1 img,
    .fv_main_1 p,
    .fv_main_1 .kanou,
    #section_2 .section_2_2 p {
        padding: 0;
    }

    .section_2_1 img,
    .section_3_1 img {
        width: min(140/767*100vw, 140px);
        height: auto;
    }

    /*---------------------------------------------
#FV
-----------------------------------------------*/
    #FV {
        width: 100%;
        height: min(900 / 767* 100vw, 900px);
        background-image: url(../images/01/fv_sp_bgi.png);
    }

    #FV {
        display: block;
    }

    .fv_top img {
        width: min(170 / 767* 100vw, 170px);
        height: auto;
    }

    #FV .content_wrap {
        display: flex;
        justify-content: center;
    }

    .fv_main_0 h1 {
        position: absolute;
        top: 3.5%;
        left: 32%;
        font-size: min(21 / 767* 100vw, 21px);
    }

    @media screen and (max-width: 400px) {
        .fv_main_1 {
            padding-top: 0;
        }
    }

    .fv_main_1 img {
        width: min(300/767*100vw, 300px);
        height: auto;
    }

    .fv_main_1 .kanou {
        padding-bottom: min(15/767*100vw, 15px);
    }

    .fv_main_2 p {
        font-size: min(90/767*100vw, 90px);
    }

    .fv_main_2_small {
        font-size: min(60/767*100vw, 60px);
    }

    .fv_main_2 img {
        width: 7%;
        height: auto;
    }

    .fv_main_3 {
        padding: 0;
        margin: 0;
    }
    /*---------------------------------------------
#section_1
-----------------------------------------------*/
    .section1_p {
        padding-bottom: min(40/767*100vw, 40px);
    }

    .section1_video,
    .section1_video_back {
        width: 100%;
    }

    /*---------------------------------------------
#section_2
-----------------------------------------------*/
    .section_2_1 {
        width: 100%;
        padding: min(40/767*100vw, 40px) 0 0;
    }

    .section_2_1 p {
        padding: 1.5em 1em;
        margin-left: min(7/767*100vw, 7px);
    }

    .section_2_1 img {
        margin-top: min(40/767*100vw, 40px);
    }

    /*---------------------------------------------
#section_3
-----------------------------------------------*/
    .section_3_1 {
        padding-bottom: min(52/767*100vw, 52px);
    }

    .section_3_1 p {
        font-size: min(20/767*100vw, 20px);
    }

    .section_3_1 img {
        top: 40%;
        right: -8%;
    }

    .section_3_2 {
        display: block;
        width: 100%;
        padding: 0;
        margin-top: min(100/767*100vw, 100px);
    }

    .section_3_2_content {
        padding: min(50/767*100vw, 50px) 0;
        margin: 0 auto;
        width: 100%;
    }

    .section_3_fukidashi {
        width: 80%;
        padding: min(40/767*100vw, 40px) 0;
        margin-bottom: min(32/767*100vw, 32px);
    }

    .fuki1 {
        position: absolute;
        top: -13%;
        left: 0;
        right: 0;
    }

    .fuki1_li {
        margin-top: min(30/767*100vw, 30px);
    }

    .section_3_2_detail {
        display: flex;
        justify-content: center;
    }

    .section_3_dots::after {
        left: 2em;
        right: 2em;
        border-left: none;
        border-right: none;
        border-top: #6b6b6b 1px dashed;
        border-bottom: #6b6b6b 1px dashed;
    }

    .section_3_2 ul {
        width: min(320/767*100vw, 320px);
    }

    .section_3_2 li {
        font-size: min(24/767*100vw, 24px);
    }

    .section_3_2 img {
        width: min(240/767*100vw, 240px);
        height: auto;
        object-fit: contain;
        margin-right: min(30/767*100vw, 30px);
    }

        /*---------------------------------------------
section_4
-----------------------------------------------*/
    #section_4 br.br_sp,
    #section_5 br.br_sp {
        display: block;
    }

    #section_4 br.br_pc,
    #section_5 br.br_pc {
        display: none;
    }

    #section_4 {
        padding: min(70 / 750* 100vw, 70px) 0 min(65 /750* 100vw, 65px);
    }

    #section_4 .content_box {
        gap: min(50/750*100vw, 50px);
        margin-bottom: min(50/750*100vw, 50px);
    }

    #section_4 .content_box__items {
        width: 100%;
        position: relative;
        padding: min(50/750*100vw, 50px) min(45/750*100vw, 45px);
        box-shadow: 8px 8px 4px rgba(1, 65, 137, 0.2);
    }

    #section_4 .content_box__img {
        display: none;
    }

    #section_4 .content_box__sp {
        display: block;
        position: absolute;
        top: -9%;
        left: 4%;
    }

    #section_4 .content_box__items01 img {
        width: 13.7%;
    }

    #section_4 .content_box__items02 img {
        width: 10.9%;
    }

    #section_4 .content_box__items03 img {
        width: 25.7%;
        left: 0;
    }

    .section_4__img {
        width: 100%;
    }

    #section_4 .line,
    #section_5 .line {
        width: calc(79/750*100vw);
        margin: 0.769em auto 1.92em;
    }

    #section_4 .phrase {
        font-size: clamp(18px, 30/750*100vw, 30px);
        word-break: keep-all;
        line-height: calc(43/30);
    }

    #section_4 .blue_arrow {
        width: min(200/650*100vw, 200px);
    }

    #section_4 .blue_arrow p {
        font-size: 1.077em;
    }

    .section_4__last p {
        font-size: clamp(20px, 44/750*100vw, 44px);
    }

    /*---------------------------------------------
section_5
-----------------------------------------------*/
    section#section_5 .content_wrap {
        padding: min(70 / 750* 100vw, 70px) min(50/750*100vw, 50px) min(65 /750* 100vw, 65px);
    }

    .content_flow {
        box-shadow: 8px 8px 4px rgba(1, 65, 137, 0.2);
        padding: min(45/750*100vw, 45px) 0 min(50/750*100vw, 50px);
    }

    .content_flow__point {
        left: 10%;
        top: 10%;
        width: 14%;
    }

    .content_flow__img {
        display: none;
    }

    .content_flow__sp {
        display: block;
    }

    .content_flow__inner {
        flex-direction: column;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: center;
        padding: min(50/750*100vw, 50px) min(80/750*100vw, 100px);
        margin: 0;
    }

    .content_flow__items:first-child,
    .content_flow__items:nth-child(2),
    .content_flow__items:nth-child(3),
    .content_flow__items:last-child {
        width: 100%;
        margin: -6%;
    }

    .content_flow__text {
        width: 66.6%;
        text-align: center;
    }

    .content_flow__text p {
        width: 100%;
    }

    .content_flow__text02 {
        margin: 0;
        top: 57%;
    }

    .content_flow__items h4 {
        font-size: clamp(18px, 30/750*100vw, 30px);
        margin-bottom: 0.666em;
    }

    .content_flow__items:first-child h4,
    .content_flow__items:nth-child(2) h4 {
        margin-top: 0;
    }

    .section_5__last p {
        font-size: clamp(16px, 36/750*100vw, 36px);
        line-height: calc(57/36);
    }

    .section_5__last p.blue {
        font-size: clamp(20px, 44/750*100vw, 44px);
    }

    /*---------------------------------------------
section_6
-----------------------------------------------*/
    #section_6 .content_wrap {
        padding: min(70/750*100vw, 70px) min(50/750*100vw, 50px);
    }

    .section_6__text {
        font-size: clamp(16px, 36/750*100vw, 36px);
        line-height: calc(57/36);
    }

    .section_6__img {
        width: 100%;
    }

    #section_6 .blue_box {
        font-size: clamp(20px, 44/750*100vw, 44px);
        margin-bottom: min(50/750*100vw, 50px);
    }
}

@media screen and (max-width: 428px) {
    .content_flow__text {
        width: 100%;
        top: 52%;
    }

    .content_flow__items:first-child .content_flow__text {
        top: 44%;
    }

    .content_flow__items h4 {
        margin-bottom: 0.2em;
    }

}

@media screen and (max-width: 767px) {
    /*---------------------------------------------
共通：section_7-8
-----------------------------------------------*/
    /*アンダーバー（青）*/
    #section07 .title div {
        width: calc(79 / 750* 100vw);
        height: 2px;
        margin-top: 2vw;
    }

    /*アンダーバー（緑）*/
    .text_line::before {
        height: .3em;
        bottom: -.15em;
    }

    /*強調点*/
    .text_dots {
        background-image: radial-gradient(circle at center, #005fc9 20%, transparent 20%);
        /* 点の色とサイズ調整 */
        background-position: top right;
        /* 点の位置 */
        background-repeat: repeat-x;
        /* 横方向に繰り返し */
        background-size: 1em 0.3em;
        /* 点の間隔とサイズ調整 */
        padding-top: .1em;
        /* 縦方向の位置調整 */
    }
    /*---------------------------------------------
section_7
-----------------------------------------------*/
    #section07 {
        overflow: hidden;
    }

    #section07 .title {
        margin-top: 7.3vw;
        gap: .5vw;
    }

    #section07 .title p {
        font-size: min(16 / 750* 100vw, 16px);
        line-height: calc(40 / 16);
    }

    #section07 .title h2 {
        padding-left: 0;
    }

    #section07 .title picture {
        width: 17%;
        right: -9%;
        top: 12%;
    }

    .section07_main {
        flex-direction: column;
        align-items: center;
        justify-content: start;
        margin-top: 2em;
        gap: 1.6em;
    }

    .section07_main .text {
        flex-direction: column;
        align-items: center;
        justify-content: start;
        padding: 1.9em 0 0;
        gap: 1.5em;
    }

    .text_group1 {
        border-radius: 1em;
        padding: .8em;
        gap: .55em;
        width: 100%;
    }

    .text_group1 div {
        align-items: start;
        gap: .3em;
    }

    .text_group1 div img {
        width: 1.5em;
        margin-top: .2em;
    }

    .text_group1 div p {
        font-size: min(26 / 750* 100vw, 26px);
    }

    .text_group2 {
        width: 100%;
    }

    .text_group2 p {
        font-size: min(30 / 750* 100vw, 30px);
        line-height: 1.6;
        letter-spacing: .02em;
    }

    .br_sp_off {
        display: none;
    }

    .chart_group {
        gap: .4em;
        padding-top: 0;
        width: 72%;
    }

    .chart {
        position: relative;
    }

    .chart p {
        font-size: min(28 / 750* 100vw, 28px);
    }

    .chart img {
        width: 100%;
    }

    .chart_01 {
        width: 34.1%;
    }

    .chart_01 p {
        font-size: min(28 / 750* 100vw, 28px);
        color: black;
    }

    .chart_02 {
        width: 67.2%;
    }

    .chart_03 {
        width: 100%;
    }

    .section07_sub {
        padding: .85em 0 2.1em;
    }

    .section07_sub p {
        font-size: min(36 / 750* 100vw, 36px);
        line-height: 1.6;
    }

    .text_big {
        font-size: min(44 / 750* 100vw, 44px);
        line-height: calc(57 / 44);
    }

    .section07_sub p:nth-child(4) {
        padding-top: .75em;
    }

    /*---------------------------------------------
section_8
-----------------------------------------------*/
    #section08 .title {
        margin-top: 7.6vw;
        gap: .6vw;
    }

    #section08 .title p {
        font-size: min(16 / 750* 100vw, 16px);
        line-height: calc(40 / 16);
    }

    #section08 .title h2 {
        padding-left: 1vw;
        text-align: center;
    }

    #section08 .title div {
        width: 12%;
        margin-top: 1.7vw;
    }

    .section08_main {
        padding: 6.5vw 0 2vw;
    }

    .section08_item {
        width: 100%;
        background: linear-gradient(to right, #fff, #fff);
    }

    .section08_item .content_wrap {
        padding: 0;
    }

    .section08_item .content_wrap,
    .section08_item_re .content_wrap {
        padding: 0;
    }

    .section08_item_re {
        width: 100%;
        background: linear-gradient(to left, #fff, #fff);
    }

    .section08_wrap {
        flex-direction: column-reverse;
        justify-content: flex-end;
        align-items: center;
    }

    .section08_wrap_re {
        flex-direction: column-reverse;
        justify-content: flex-end;
        align-items: center;
    }

    .section08_wrap .text,
    .section08_wrap_re .text {
        width: 100%;
        padding: 1em 2em 2em;
        gap: .5em;
    }

    .section08_wrap_re .text {
        padding-left: 2.75em;
    }

    .section08_wrap .text h4,
    .section08_wrap_re .text h4 {
        font-size: min(30 / 750* 100vw, 30px);
        line-height: calc(33 / 30);
    }

    .section08_wrap .text p,
    .section08_wrap_re .text p {
        font-size: min(26 / 750* 100vw, 26px);
        line-height: 1.4;
        width: 100%;
        padding-left: .2em;
    }

    .section08_wrap .img,
    .section08_wrap_re .img {
        background-color: #dfdfdf;
        width: 100%;
        padding: 2em;
    }

    .section08_wrap .img img {
        width: 100%;
    }

/*---------------------------------------------
共通：section_9-11
-----------------------------------------------*/
    .__wrap h2 span.title_eng {
        font-size: min(16 / 750* 100vw, 16px);
    }

    .__wrap h2.title::after{
        width: min(79 / 750*100vw, 79px);
    }

    .__wrap{
        padding-top: min(70 / 750* 100vw, 70px);
        padding-bottom: min(100 / 750* 100vw, 100px);
    }

    .__inner{
        margin: min(70 / 750* 100vw, 70px) auto 0;
    }

/*---------------------------------------------
section_9
-----------------------------------------------*/
    .list_9 h3.title_9, .list_9.jisseki h3 {
        font-size: min(30 / 750* 100vw, 30px);
    }

    .list_9{
        padding-top: min(45/750*100vw, 45px);
        width: 100%;
    }

    .list_9 h3{
        padding: 0 min(35/750*100vw, 35px) min(20/750*100vw, 20px);
    }

    .list_9_wrap {
        padding: min(30/750*100vw, 30px) min(50/750*100vw, 50px) min(50/750*100vw, 50px)
    }

    .list_9.jisseki p{
        line-height: calc(40/30);
    }

    .list_9.jisseki h3{
        padding-bottom: min(20/750*100vw, 20px);
    }

/*---------------------------------------------
section_10
-----------------------------------------------*/
    .detail_10{
        margin-right: -0.2em;
    }

    .detail_10 .num {
        font-size: min(47/750*100vw, 47px);
    }

    .detail_10 .flow{
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        text-align: justify;
        font-size: min(30/750*100vw, 30px);
    }

    .detail_10 .sp{
        display: block;
    }

    .detail_10 .pc{
        display: none;
    }

    .detail_10 p{
        top: 5%;
    }

/*---------------------------------------------
section_11
-----------------------------------------------*/
    #section_11 .__wrap {
        padding-bottom: min(50 / 750* 100vw, 50px);
    }

    .wrap_11 p{
        padding: min(10/750*100vw, 10px) min(20/750*100vw, 20px);
        gap: 0.5em;
    }

    .wrap_11 p .quest, .wrap_11 p .ans{
        font-size: min(47/750*100vw, 47px);
    }

    .wrap_11 p span{
        font-size: min(26 / 750* 100vw, 26px);
        letter-spacing: 1px;
        font-weight: 700;
    }

    .wrap_11 .ans_txt{
        position: relative;
        top: -5px;
        font-weight: 400;
        letter-spacing: 1px;
        padding-bottom: min(30/750*100vw, 30px);
    }

    .wrap_11 .quest_txt{
        position: relative;
        top: -5px;
    }

/*---------------------------------------------
section_12
-----------------------------------------------*/
    .content_12{
        padding: calc(65/750*100vw) calc(50/750*100vw);
    }

    .content_12 p{
        font-size: min(30/750*100vw, 30px);
    }

}