body {
    font-family: 'Zen Kaku Gothic New', sans-serif;

}

/* ヘッダー */
.wrapper {
    width: 100%;
    overflow-x: hidden;
}

/* .margin {
    height: 20.89px;
} */

html header {
    margin-bottom: 55.75px;
}

.header__sp__wrap {
    position: fixed;
    width: 100%;
    top: 0;
    background-color: #fff;
    z-index: 1000;

}

.header__pc__wrap {
    display: none;
}


.header__sp {
    display: flex;
    justify-content: space-between;
    padding: 9px 0 9px 10px;
    align-items: center;


}

.header__logo {
    width: 134.55px;
}

.header__mail__icon {
    width: 36.24px;
    margin-right: 71px;
}

.header__sp__nav {
    background-color: #003296;
    margin-left: auto;
    width: 172.22px;
    position: fixed;
    top: 0;
    right: 0;
    padding: 69px 0;
    display: none;
    z-index: 100;
    right: -406.09px;






}

.slide_in {
    right: 0;
    transition: all 0.5s;
}

.test {
    /* margin-top:50px ;*/
}

.header__sp__nav__list {}

.header__sp__nav__list li {}

.header__sp__nav__list li:not(:last-child) a {
    color: #fff;
    text-decoration: none;
}

.header__sp__nav__item__wrap {
    display: flex;
}

.header__sp__nav__list li:not(:last-child) {
    font-size: 20px;
    width: 106.7px;
    margin: 0 auto;
}

.header__sp__nav__list li:not(:nth-last-child(-n+2)) {
    margin-bottom: 33px;
}

.header__sp__nav__list li:last-child {
    font-size: 17px;
    width: 126.68px;

    text-align: center;
    margin: 0 auto;
    margin-top: 43px;
    font-weight: 500;

}



.header__sp__nav__list li:last-child a {
    font-size: 16.1px;
    color: #000;
    text-decoration: none;
}

.header__sp__nav__item {
    width: 92px;
}

.header__sp__nav__item__icon {
    width: 13px;
}

.header__sp__nav__contact {
    background-color: #fff;
    padding: 15px;
}



/* ヘッダーsp ハンバーガーメニューBTN */

.l-header__nav-btn {
    width: 55.75px;
    font-size: 10px;
    position: absolute;
    z-index: 510000;
    margin-right: 0;
    margin-left: auto;
    height: 55.75px;
    right: 0;
    background-color: #003296;
    cursor: pointer;
}


.l-header__nav-btn-txt {
    font-size: 15px;
    color: #fff;
    position: relative;
    top: 19px;
    /* left: 0; */
    right: 6px;
}

.l-header__nav-btn-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    position: relative;
    height: 100%;
    /* padding: 6px 15px 10px; */
    height: 55px;
    position: absolute;
    bottom: 0;
    height: 100%;
    width: 100%;
}

.l-header__nav-btn .l-header__nav-btn-inner .l-header__nav-btn-line {
    position: absolute;
    width: 49.75%;
    bottom: 45.5%;
}

#btn_spmenu span {
    display: block;
    width: 28px;
    height: 2px;
    background-color: #fff;
    margin: 0 auto;
    transition: all .3s ease-in-out;
    border-radius: 50px;
}

.l-header__nav-btn .l-header__nav-btn-inner div span:nth-child(1) {
    top: calc(50% - 11px);
}

.l-header__nav-btn .l-header__nav-btn-inner div span:nth-child(2) {
    top: calc(50% - 3px);
}

.l-header__nav-btn .l-header__nav-btn-inner div span:nth-child(3) {
    top: calc(50% + 5px);
}

body.is_menu_open #btn_spmenu span:nth-child(1) {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    -webkit-transform-origin: center center;
    transform-origin: center center;
    top: 50%;
    margin-top: 0;
}

body.is_menu_open #btn_spmenu span:nth-child(3) {
    top: 50%;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-transform-origin: center center;
    margin-top: 0;
}

body.is_menu_open #btn_spmenu span:nth-child(2) {
    width: 0;
    left: 50%;
}

.l-header__nav-btn .l-header__nav-btn-inner div span {
    display: block;
    position: absolute;
    height: 1px;
    width: 100%;
    left: 0;
    -webkit-transition: .2s ease-in-out;
    transition: .2s ease-in-out;
    background-color: #fff;
}

/* ハンバーガーメニュー関連 */

body.is_menu_open {
    position: fixed;
    width: 100%;
    height: 100%;
}

/* ヘッダーsp ハンバーガーメニューblack_bg */

body.is_menu_open #js_black_bg {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 50;
}




/* 共通部分 */
.jidume {
    /* margin-right: -0.2em; */
    display: inline !important;
    margin-right: -4%;
}

.jidume02 {
    margin-right: -1.5%;
}

.br__pc {
    display: none;
}

.h__ttl {
    font-size: 30px;
    font-weight: 900;
    color: #003296;
    line-height: 1.12;
    /* letter-spacing:-0.05em; */

}

.subttl {
    font-size: 16px;
    color: #0086db;
    font-weight: 500;
    margin-top: 10px;
}

.line__btn__wrap {
    width: 177px;
    margin: 0 auto;
    background-color: #003296;
}

.line__btn__wrap a {
    text-decoration: none;
    color: #fff;
    display: block;
}

.line__btn {
    font-size: 16px;

    text-align: center;
    /* width: 177px; */

    margin: 0 auto;
    position: relative;
}

.line__btn a {
    text-decoration: none;
    color: #fff;
    padding: 12px;
}


.line__btn:hover {
    /* background-color: #eaf5fc; */
}

.line__btn__wrap>a:hover {
    /* color: #000; */
}

.line__btn:hover::after {

    /* background-image: url("img/line02.png"); */
}

.line__btn::after {
    /* content: "";
    background-image: url("img/line01.png");
    display: inline-block;
    width: 49.9px;
    height: 1px;
    position: absolute;
    background-size: contain;
    right: -30px;
    top: 19px; */

    /*  content: "";
    display: inline-block;
    width: 50px;

    height: 1px;
    position: absolute;
    top: 19px;
    right: -30px; */
}

.common__contact {
    color: #fff;
    position: relative;
    background-image: url(img/common__contact__img-sp.png);
    background-position: top right;
    background-size: cover;
}


.common__contact {
    width: 0%;
    overflow: hidden;
    margin-left: auto;
    transition: width 1s ease-out;
    height: 240px;
}

.common__contact.scroll_events,
.common__contact.scroll_events_reserve {
    width: 100%;
}

.common__contact__txt__area {
    position: absolute;
    top: 0;
    width: 100%;
    /* margin-top: 7%; */
    margin-top: 27px;
    width: 100vw;
}

.common__contact__ttl {
    font-size: 8vw;
    font-size: 30px;
    text-align: center;

}

.common__contact__txt {
    line-height: 1.56;
    text-align: center;
    margin-top: 13px;
    margin-bottom: 15px;
    font-size: 4.3vw;
    font-size: 16px;
}

.common__contact__btn__wrap {
    width: 199px;
    margin: 0 auto;
    transition: all 0.5s ease;
    overflow: hidden;
    position: relative;

}

/* @keyframes rotation{
    0%{ transform:rotateX(0);}
    100%{ transform:rotateX(180deg); }
  } */
.common__contact__btn__wrap:hover .common__contact__btn__anime {
    transform: translateX(0);

}

.common__contact__btn__wrap:hover.common__contact__btn__wrap a {
    color: #000;
    position: relative;
    z-index: 100;

}

.common__contact__btn {
    border: 1px solid #fff;
    text-align: center;
    padding: 16px;
    font-size: 4.3vw;
    font-size: 16px;
}

.common__contact__btn__wrap a {
    color: #fff;
    text-decoration: none;
    display: block;

}

.common__contact__btn__anime {
    background-color: #fff;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    /* margin-left:-100%; */
    transform: translateX(-100%);
    transition: all 0.5s;
    ;
}


/*  */

footer {
    position: relative;
}

.footer__wrap {
    margin: 0 20px;
    padding-top: 30px;
    font-weight: 500;
    margin-bottom: 28px;
}

.footer__logo__address__wrap {
    font-size: 14px;
}

.footer__logo {
    width: 159.18px;
}

.footer__address__wrap {
    line-height: 1.25;
}

.footer__address {
    margin-top: 15px;
}

.footer__tel {}

.footer__nav {
    margin-top: 39px;
}

.footer__nav__list {
    display: flex;
    flex-wrap: wrap;
}

.footer__nav__list li:not(:last-child) {
    width: 50%;
    margin-bottom: 26px;
}

.footer__nav__list li span {
    font-size: 10px;
    font-weight: normal;
    color: #003296;
    position: relative;
    bottom: 2px;
}

.footer__nav__list li a {
    text-decoration: none;
    color: #000;
}


.cw {
    font-size: 13px;
    color: #666666;
    text-align: center;
    padding-bottom: 7px;
}

.back-to-top__btn {
    width: 46px;
    position: absolute;
    right: 0;
    bottom: 0;
    cursor: pointer;
}

/* 下層ページ共通 */
.top__send__pc {
    display: none;
}

.top__send__wrap {
    display: flex;
    font-size: 12px;
    margin: 0 20px;
    padding-bottom: 6.5px;
    align-items: center;
}

.home__send {
    white-space: nowrap;
}

.home__send a {
    text-decoration: none;
    color: #000;
}

.top__send__arrow {
    width: 3px;
    margin: 0 12px;
    min-width: 3px;
}

.top__send__now {
    line-height: 1.2;
}

.under__ttl {}


.under__ttl {
    color: #003296;
    font-size: 25px;
    font-weight: bold;
    /* letter-spacing: -0.05em; */

}

.under__mv__wrap {
    position: relative;
    margin-bottom: 15%;

}




.under__mv__ttl {
    color: #003296;
    font-size: 10.667vw;
    font-weight: bold;
    text-shadow: 2px 2px 1px #fff;
    /* letter-spacing: -0.05em; */
}

.under__mv__subttl {
    font-weight: bold;
    font-size: 4.3vw;
    margin-top: 9px;
}

.under__mv__txt__wrap {
    position: absolute;
    top: 85%;
    left: 20px;

}

.under__bg__wrap {
    overflow: hidden;
    width: 100%;
}

.under__bg {
    /*  background-image: url("img/under__bg.png");
    background-size: 641px;
    background-repeat: no-repeat;
    background-position:left -20px; */
    position: relative;
}

.under__bg__img {
    width: 641px;
    position: absolute;
    z-index: -1;
    /* left:-20px; */
    margin: 0 auto;
    width: 171%;
    margin-left: -30px;
}

.under__bg__img img {}

.under__ttl__border {
    background-color: #003296;
    height: 151px;
    width: 4px;
    position: absolute;
    left: 20px;
    top: 15px;

}

/*  */
.under__ttl__border01 {
    border-left: 4px solid #003296;
    height: 151.8px;
    padding-top: 13px;
    padding-left: 15px;

}

.line__btn:before {
    background-color: #fff;
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    height: 1px;
    margin: auto 0;
    right: 0;
    width: 18px;
}


.line__btn:after {
    background-color: #000;
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    height: 1px;
    margin: auto 0;
    right: -20px;
    width: 20px;
}

.pc,
.pc-in,
.pc-inbl,
.tabpc-inbl {
    display: none;
}

.sp {
    display: block;
}

.sp-in {
    display: inline;
}

.sp-inbl {
    display: inline-block;
}

@media screen and (min-width:768px) {
    .header__sp__wrap .top__send__wrap {
        display: none;
    }

    .top__send__wrap {
        font-size: 14px;
        justify-content: flex-end;
        margin-top: 16px;
        margin-bottom: 24px;
    }

    .top__send__pc {
        display: block;
    }

    /* .top__send__wrap{
        display: none;
    } */
    .br__sp {
        display: none;
    }

    .br__pc {
        display: block;
    }

    .h__ttl {
        font-size: 50px;
        text-align: center;
    }

    .subttl {
        margin-top: 20px;

        text-align: center;
    }

    .line__btn__wrap {
        width: 126.33px;
        margin: 0 auto;
        background-color: #eaf5fc;
    }

    .common__contact {
        height: 334px;
        background-position: top right;
        background-size: cover;
        background-repeat: no-repeat;
        background-image: url(img/common__contact__img-pc.png);
    }

    /* .line__btn {
        font-size: 14px;
        padding: 7px;
        width: 126.33px;
        position: relative;
        background-color: #eaf5fc; */


    /* background-repeat: no-repeat;
        background-position: 100% 0;
        background-size: 200% auto;
        background-image: linear-gradient(to right,
                #003296 0%,
                #003296 50%,
                #eaf5fc 50%,
                #eaf5fc 100%);

        transition: background-position ease 0.4s; */
    /* } */

    .line__btn:hover {
        /* background-position: 0 0; */
    }

    .line__btn__wrap a {

        color: #000;
    }

    /* .line__btn::after {
        width: 35.57px;
        right: -21.4px;
        top: 14px;

        transition: background-position ease 1s;
        background-repeat: no-repeat;
        background-position: 100% 0;
        background-size: 200% auto;
        background-image: linear-gradient(to right,
                #fff 0%,
                #fff 20%,
                #000 0%,
                #000 100%);

    }

    .line__btn:hover::after {
        background-position: 0 0;
    } */

    .line__btn__wrap>a:hover {
        color: #fff;
    }

    /* .line__btn::before{
        content: "";
        display: block;
        position: absolute;
        z-index: 1;
        top: -1%;
        left: -1%;
        width: 102%;
        height: 102%;
        background-color: #23a7ff;
        -webkit-transition: -webkit-transform .4s;
        transition: -webkit-transform .4s;
        transition: transform .4s;
        transition: transform .4s, -webkit-transform .4s;
       
        -webkit-transform-origin: left top;
                transform-origin: left top;
        -webkit-transform: scale(0, 1);
                transform: scale(0, 1);
    } */

    /* .line__btn:hover::before{
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    } */

    /*  .line__btn:hover{
        background-color: #003296;
        animation: open-menu 0.3s forwards;
    } */



    /* .line__btn::after {
        width: 35.57px;
        right: -21.4px;
        top: 14px;
    } */

    @keyframes ToCoRight {
        0% {
            width: 38px;
            background: #000
        }

        100% {
            width: 0
        }
    }

    .line__btn__wrap {
        position: relative;
        background-color: #eaf5fc;
        /*  border: 1px solid #fff; */
        width: 126.33px;

    }


    .line__btn__wrap:hover:before {
        transform-origin: left top;
        transform: scale(1, 1);
    }

    .line__btn__wrap:before {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        content: '';
        background: #003296;
        transform-origin: right top;
        transform: scale(0, 1);
        transition: transform .3s;
    }

    .line__btn {
        font-size: 14px;
        /* padding: 7px; */
        width: 126.33px;
    }

    .line__btn a {
        display: block;
        padding: 7px;
        width: 100%;
        color: #000;
        position: relative;
        z-index: 10000000000;
        height: 100%
    }

    .line__btn a:hover {
        color: #fff;
    }

    .line__btn:before {
        background-color: #000;
    }

    .line__btn:before,
    .line__btn__inner:before {
        right: 0;
        width: 18px;
    }

    .line__btn__inner:before {
        background-color: #081121;
    }

    .line__btn:before,
    .line__btn:after,
    .line__btn__inner:before,
    .line__btn__inner:after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        height: 1px;
        margin: auto 0;
        transition: all 1.5s linear;
    }

    .line__btn__inner:before,
    .line__btn__inner:after {
        z-index: 3;
        transform-origin: right top;
        transform: scale(0, 1);
        transition: transform .3s;
    }






    .line__btn__inner:after {
        background-color: #081121;
    }

    .line__btn:after,
    .line__btn__inner:before {
        right: -20px;
        width: 20px;
        transition: width .3s linear;
    }


    .line__btn:hover .line__btn__inner:after {
        right: -20px;
        animation-name: ToCoRight;
        animation-duration: 1.5s;
        animation-iteration-count: infinite;
    }

    .line__btn__inner:hover:before,
    .line__btn__inner:hover:after {
        transform-origin: left top;
        transform: scale(1, 1);
        background-color: #003296;
        animation: fadeIn 1.5s;
        animation-iteration-count: infinite;

    }

    @keyframes fadeIn {
        0% {
            opacity: 0;
        }

        100% {
            opacity: 1;
        }
    }

    .line__btn:hover>.line__btn__inner:after {
        background-color: #003296;
        right: -20px;
        width: 20px;
        z-index: 1;
    }

    .line__btn__inner:hover:after {
        transition-delay: .1s;
    }

    .line__btn:hover:after {
        opacity: 0;
    }

    .line__btn:hover:before {
        background-color: #fff;
    }

    .line__btn:after {
        background-color: #000;
    }





    .common__contact__ttl {
        font-size: 3.8vw;
        font-size: 50px;
    }

    .common__contact__txt {
        margin-top: 27px;
        margin-bottom: 40px;
        font-size: 1.23vw;
        font-size: 16px;
    }

    .common__contact__btn {
        border: 1px solid #fff;
        text-align: center;
        padding: 16px;
        font-size: 1.23vw;
        font-size: 14px;
    }

    .common__contact__btn__wrap {
        width: 199px;
        margin: 0 auto;
    }

    .common__contact__txt__area {

        /* margin-top: 4.5%; */
        margin-top: 68px;

    }

    /* @media screen and (max-width:1100px) {
        .common__contact__txt__area {

            margin-top: 1.5%;

        }


    } */

    /* 下層ページ共通 */
    /* .top__send__pc{
        display: block;
    } */
    /* .top__send__wrap {
        font-size:14px;
        justify-content:flex-end;
        margin-top:16px;
        margin-bottom:24px;
    } */

    .home__send {}

    .top__send__arrow {
        width: 3.4px;
        position: relative;
        bottom: 2px;
        min-width: 3.4px;
    }

    .top__send__now {}

    .under__ttl {

        font-size: 30px;

    }

    .under__mv__ttl {
        font-size: 3.85vw;
    }

    .under__mv__wrap {
        position: relative;
        margin-bottom: 0;
        margin-left: 26.6%;
    }

    .under__mv__subttl {

        font-size: 1.23vw;
        margin-top: 24px;
    }

    .under__mv__wrap .under__mv__txt__wrap {
        top: 34%;
        left: -19%;
    }

    .under__bg {
        max-width: 1040px;
        margin: 0 auto;
        position: relative;
        padding: 0 20px;
    }

    .under__bg__img {
        width: 2120px;
        margin-left: -366px;
    }

    .under__bg__wrap {
        overflow: hidden;
        width: 100%;
        position: relative;
    }

    .under__ttl__border {
        background-color: #003296;
        height: 151px;
        width: 4px;
        position: absolute;
        left: 20px;
        top: 43px;
    }


    /*  */
    .under__ttl__border01 {

        padding-top: 15px;
        padding-left: 19px;
        border-left: 5px solid #003296
    }

    .pc {
        display: block;
    }

    .pc-in {
        display: inline;
    }

    .pc-inbl,
    .tabpc-inbl {
        display: inline-block;
    }

    .sp,
    .sp-in,
    .sp-inbl {
        display: none;
    }

}

@media screen and (min-width:900px) {

    /*  .top__send__pc{
        display: block;
    } */

    /* .top__send__wrap {
        font-size:14px;
       
    } */

    /* .top__send__wrap {
        font-size:14px;
        justify-content:flex-end;
        margin-top:16px;
        margin-bottom:24px;
    } */

    /* ヘッダー */
    .margin {
        height: 64.59px;
    }

    header {
        margin: 0 !important;
    }

    .header__pc {
        position: fixed;
        width: 100%;
        background-color: #fff;
        z-index: 10000;
    }

    .header__sp__wrap {
        display: none;
    }

    .header__pc__wrap {
        display: block;
        padding: 11px 19px;
    }

    .header__pc__wrap {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
    }

    .header__pc__logo {
        width: 151.8px;
    }

    .header__pc__nav__wrap {
        width: 667px;
    }

    .header__pc__nav {
        display: flex;
        position: relative;
    }

    .header__pc__nav li {}

    .header__pc__nav li>a {
        text-decoration: none;
        color: #000000;
        font-weight: 500;
    }

    .header__pc__nav li:not(:last-child) {
        /* margin-right: 7.5%; */
        margin-bottom: 16px;
        width: 17%;
    }

    .header__pc__nav li:last-child {
        background-color: #003296;
        position: absolute;
        right: -19px;
        top: -25px;

    }

    .header__pc__nav li:last-child a {
        color: #fff;
        padding: 26px 19px;
        display: block;
    }

    .header__pc__nav li:not(:last-child)::after {
        background-image: url("img/header__pc__nav__line.svg");
        content: "";
        /* display: inline-block; */
        width: 65px;
        height: 5.6px;

        position: absolute;
        /* right: 109px !important; */


        display: none;


    }

    .header__pc__nav li:nth-child(1)::after {
        /* margin-left:-7px; */
    }

    .header__pc__nav li:nth-child(1):hover::after {
        display: block;

        position: absolute;

        top: 21px;
        left: -8px;
    }

    .header__pc__nav li:not(:nth-child(1)):hover::after {
        display: block;

        position: absolute;
        /* right: 109px !important; */

        top: 21px;
        /*  margin-bottom: 16px; */
        /* left: 114px; */
        /*  margin-left: -2px; */
    }


    .header__pc__nav li:not(:last-child):hover {
        /*  margin-bottom:0; */

    }

    /* フッター */
    footer {
        background-color: #f2f2f2;
    }

    .footer__wrap {
        margin: 0 auto;
        padding: 0 20px;
        padding-top: 87px;
        margin-bottom: 90px;
        max-width: 1040px;
        display: flex;
        justify-content: space-between;
    }

    .footer__nav__list li {
        font-size: 14px;
    }

    .footer__logo__address__wrap {
        margin-right: 14px;
        ;
    }


    .footer__nav__list li:not(:last-child) {
        width: 20%;
        margin-bottom: 26px;
        margin-right: 1.4%;
    }

    .footer__nav__list li:nth-child(5) {
        width: 14.4%;
        margin-right: 0;
    }

    .footer__nav__list li:nth-child(6) {
        width: 21.5%;
        margin-right: 0;
    }

    .footer__nav__list {

        /* justify-content: flex-end; */
        max-width: 520px;
    }

    /* .footer__nav__list li:nth-last-child(-n+2){
       margin-left: 0;
       margin-right:auto;
    } */

    .cw {
        font-size: 13px;
        color: #666666;
        text-align: center;
        padding-bottom: 13px;
    }


}