@charset "UTF-8";

body {
    width: 100%;
    /*overflow-x: hidden;*/
    font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    margin: 0;
    text-align: justify;
line-break: strict;
overflow-wrap: break-word;
word-wrap: break-word;
}
html, body {
    color: #000;
}

img {
        max-width: 100%;
        height: auto;
        margin: 0;
        vertical-align: top;
    }
p , h3{
    margin: 0;
}
sub{
    top: 0ex;
    vertical-align: baseline;
    position: relative;
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    
    
    .header_bg {
        background: #EFEFEF;
        box-sizing: border-box;
    }
    .header_wrap {
        position: relative;
        text-align: center;
        margin: 0 auto;
        width: 100%;
        max-width: 945px;
        padding: 2.535vw 0;
        box-sizing: border-box;
    }
    .header_logo {
        display: inline-block;
        width: 38.548vw;
    }
    .header_logo img {
        width: 100%;
    }
    .header_pr {
        display: inline-block;
        font-size: 0;
        position: absolute;
    	top: 50%;
    	right: 15px;
    	transform: translateY(-50%);
    	-webkit-transform: translateY(-50%);
    	-ms-transform: translateY(-50%);
    	width: 8.585%;
    }
    .header_pr img {
        width: 100%;
    }
    
    
    @media screen and (min-width: 440px) {
        .header_wrap {
            padding: 10px 0;
        }
        .header_logo {
            width: 179.598px;
        }
        .header_pr {
            width: 40px;
        }
    }
    
    
    @media screen and (min-width: 640px) {
        .header_logo {
            width: 210px;
        }
        .header_wrap {
            padding: 9.55px 0;
        }
    }
    
    
    
    .ft_line {
        display: inline-block;
        width: 100%;
        height: 1px;
        background: #cdcdcd;
        border: none;
    }
    
    
    
    
    .mwrap {
        overflow: hidden;
    }
    .fv_bg {
        background: #7680a2;
        position: relative;
        z-index: 5;
    }
    .fv_wrap {
        position: relative;
        margin: 0 auto;
        max-width: 1180px;
    }
    .fv_mv {
        font-size: 0;
        margin: 0;
        text-align: center;
        position: relative;
        z-index: 5;
    }
    .sec1_bg {
        background: #485583;
        position: relative;
        z-index: 3;
    }
    .sec1_wrap {
        text-align: center;
        padding: 0 10px 16px;
    }
    .sec1_logo {
        font-size: 0;
        margin: 0 0 17px;
    }
    .sec1_logo img {
        width: 196px;
    }
    .sec1_h {
        color: #FFF;
        font-family: 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho Pro", serif;
        font-weight: 600;
        margin: 0;
        font-size: 19.5px;
        line-height: 1.4818;
    }
    .sec1_txt{
        color: #FFF;
        font-size: 16px;
        font-weight: 600;
        line-height: 1.65111;
        margin: 40px 0;
        text-align: justify;
    }
    .fv_d {
        display: none;
    }
    
    
    @media screen and (min-width: 640px) {
        .sec1_wrap {
            padding: 0 20px 20px;
            max-width: 920px;
            margin: 0 auto;
        }
        .sec1_logo {
            margin: 0;
        }
        .sec1_logo img {
            width: 287px;
        }
        .sec1_h {
            font-size: 50px;
            letter-spacing: -0.08em;
            line-height: 1.2;
        }
        .sec1_h > span {
            font-size: 33px;
            letter-spacing: -0.13em;
        }
        .sec1_txt{
            font-size: 18px;
            margin: 40px 0;
        }
        .fv_d {
            display: inline-block;
            position: absolute;
            width: 330px;
            margin: auto;
        }
        .fv_d1 {
            z-index: 2;
            top: 0;
            left: -330px;
        }
        .fv_d2 {
            z-index: 2;
            top: 0;
            right: -330px;
        }
    }

    
    
    
    
    .main_wrap {
        margin: 0 auto;
        box-sizing: border-box;
        position: relative;
    }
    .txt1 {
        font-size: 16px;
        font-weight: 600;
        line-height: 1.65111;
        margin: 0 0 40px;
        letter-spacing: .025em;
    }
    .txt2 {
        font-size: 16px;
        line-height: 1.722222;
        font-weight: 500;
        margin: 0;
    }
    
    @media screen and (min-width: 640px) {
        .txt1 {
            font-size: 18px;
        }
        .ms_d {
            position: absolute;
            z-index: 99;
            width: 210px;
            height: 100%;
            background-size: contain;
            background-position: left top;
            background-repeat: repeat-y;
            mix-blend-mode: multiply;
            background-attachment: fixed;
        }
    }
    @media screen and (min-width: 640px)  {
        .ms_d1 {
            background-image: url(d2_left.png);
            left: calc(50% - 650px);
            transform: translateX(-50%);
            top:90px;
        }
        .ms_d2 {
            background-image: url(d2_right.png);
            left: calc(50% + 650px);
            transform: translateX(-50%);
        }
    }
    
    .sec2{
        background-color: #FFF;
    }
    .sec2_wrap{
        max-width: 890px;
        padding: 40px 15px;
        margin: 0 auto;
        font-size: 16px;
        font-weight: 500;
    }
    .sec2_wrap .float{
        margin: 0 auto 30px;
        width: 90%;
    }
    .sec3{
        background-color: #eceef2;
    }
    .sec3_wrap{
        max-width: 890px;
        padding: 40px 15px;
        margin: 0 auto;
        font-size: 16px;
        font-weight: 500;
    }
    .sec3_wrap .float{
        margin: 0 auto 30px;
        width: 90%;
        height: 100%;
        position: relative;
    }
    .sec3_wrap .float img{
        position: relative;
        z-index: 5;
        padding: 10px 0 ;
    }
    .sec3_wrap .float p{
        color: #FFF;
        z-index: 5;
        position: relative;
        font-size: 13px;
        padding-bottom: 10px;
    }
    .sec3_wrap .float::before{
        content: "";
        position: absolute;
        background-color: #485583;
        width: 100vw;
        height: 100%;
        margin-left: calc(50% - 50vw);
    }
    .sec4{
        background-color: #fff;
    }
    .sec4_wrap{
        background-color: #eceef2;
        width: 95%;
        margin: 0 auto;
        border-radius: 30px;
    }
    .sec4_cont{
        max-width: 890px;
        padding: 40px 15px;
        margin: 0 auto;
        font-size: 16px;
        font-weight: 500;
    }
    .name{
        color: #485583;
        font-weight: 600;
    }
    h3{
        color: #485583;
        font-size: 22px;
        position: relative;
        margin-bottom: 40px;
        padding-left: 25px;
    }
    h3::before{
        position: absolute;
        content: '';
        background: #ae253b;
        width: 50px;
        height: 15px;
        top: 10px;
        left: -35px;
    }
    .sec4_wrap h3{
        padding: 0;
    }
    .sec4_wrap h3::before{
        content: none;
    }
    .cont{
        width: 90%;
        margin: 30px auto 0;
    }
    .flex{
        background-color: #485583;
        padding: 10px;
    }
    .flex_img{
        display: flex;
        margin: 0 auto;
        gap: 10px;
        width: 90%;
        flex-direction: column;
    }
    .flex_img img{
        min-width: 0;
    }
    .flex p{
        text-align: center;
        color: #FFF;
        margin-top: 10px;
        font-size: 13px;
    }

    @media screen and (min-width: 640px) {
        .br-sp {
            display: none;
        }
        h3{
            font-size: 26px;
        }
        .sec2_wrap , .sec3_wrap , .sec4_wrap{
            font-size: 18px;
        }
        .sec2_wrap .float{
            float: left;
            margin: 0 20px 20px 0;
            max-width: 400px;
        }
        .sec3_wrap .float{
            float: right;
            margin: 0 0 20px 20px;
            max-width: 400px;
            height: 100%;
            position: relative;
        }
        .sec3_wrap .float img{
            padding: 10px 0 10px 10px;
            max-width: calc(100% - 10px);
        }
        .sec3_wrap .float p{
            font-size: 14px;
            padding: 0 0 10px 10px;
            max-width: calc(100% - 10px);
        }
        .sec3_wrap .float::before{
            content: "";
            position: absolute;
            background-color: #485583;
            width: 100vw;
            height: 100%;
            margin: 0 auto;
        }
        .cont{
            max-width: 710px;
            margin: 34px auto 0;
        }
        .flex{
            padding: 20px;
        }
        .flex_img{
            display: flex;
            max-width: 890px;
            flex-direction: row;
        }
        .flex_img img{
            min-width: 0;
        }
        .flex p{
            font-size: 14px;
        }
        .sec4_wrap{
            width: 75%;
        }
        .sec4_cont{
            font-size: 18px;
        }
    }
    
    .content{
        background-color: #485583;
        width: 100vw;
        margin: 0px calc(50% - 50vw) 60px;
        padding: 50px 0;
    }
    .cont_img{
        display: flex;
        gap: 10px;
        max-width: 890px;
        margin: 0 auto 10px;
    }
    .cont_img img{
        min-width:0;
    }
    .cont_txt{
        color: #FFF;
        font-size: 14px;
        text-align: center;
    }
    .hp_txt{
        font-size: 16px;
        font-weight: 500;
        margin: 0;
        color: #000;
        text-decoration: none;
        text-align: center;
        margin-top: 100px;
    }
    .closing {
        text-align: center;
        margin: 100px 0 100px;
        font-size: 13px;
    }
    .bft_bg {
        background: #e0dddd;
        border-top: 25px solid;
        border-color: #485584;
    }
    .bft_wrap {
        text-align: center;
        padding: 42px 15px;
    }
    .bft_logo {
        font-size: 0;
        margin: 0 0 12px;
    }
    .bft_logo img {
        width: 242px;
    }
    .bft_txt1 {
        font-weight: 600;
        margin: 0 0 8px;
        font-size: 17px;
    }
    .bft_txt2 {
        font-size: 13px;
        font-weight: 500;
        margin: 0;
    }
    .bft_txt2 a {
        color: #000;
        text-decoration: none;
    }
    .bft_txt2_1 {
        margin-bottom: 12px;
    }
    
    
    @media screen and (min-width: 640px) {
        .hp_txt{
            font-size: 18px;
        }
    }
    
    





















