@charset "UTF-8";

/*============================================
    reset
============================================*/
html{
    font-size: 62.5%;
	scroll-snap-type: y proximity;    scroll-behavior: smooth;
}
body{
    font-family:'メイリオ', 'Meiryo','ＭＳ ゴシック','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3',sans-serif;/*任意のフォント*/
    font-size: 1.6rem;
    font-weight: 400;
    /* letter-spacing: 0.04em; */
}
html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, a, img, dl, dt, dd, ol, ul, li, label, table, tbody, tr, th, td, figure, blockquote {
    padding: 0;
    margin: 0;
    border: 0;
    line-height: initial;
    box-sizing: border-box;
    font-style: normal;
    color: inherit;/*任意のカラー*/
    transition: .3s all;
}
html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, a, img, dl, dt, dd, ol, ul, li, label, figure, blockquote {
    vertical-align: baseline;
}
article, aside, figure, footer, header, nav, section {
    display: block;
}
h1, h2, h3, h4, h5, h6 {
    font-weight: bold;
}
a {
    text-decoration: none;
}
li {
    list-style: none;
}
img {
    width: 100%;
    height: auto;
    vertical-align: middle;
    object-fit: cover;
}
video {
    max-width: 100%;
    height: auto;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: fixed;
}
tr, th, td {
    font-weight: bold;
}
input[type="submit"] {
    border-radius: 0;
}
select,input,textarea{
    border-radius: 0 !important;
}
textarea{
    resize: none;
}
small {
    font-size: inherit;
}
button{
    background: none;
    border: none;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
::before,
::after{
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
@media screen and ( max-width: 960px ){
    html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, a, img, dl, dt, dd, ol, ul, li, label, table, tbody, tr, th, td, figure, blockquote {
        transition: initial;
    }
}
/*======================
    フォント指定
======================*/
.montserrat{/*後ほど削除*/
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
}
.zenKakuGothicNew{/*後ほど削除*/
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-style: normal;
}
.ethnocentric{
    font-family: "ethnocentric", sans-serif;
    font-weight: 700;
    font-style: normal;
}
.FOTChiaroStd{
    font-family: "fot-chiaro-std", sans-serif;
    font-weight: 700;
    font-style: normal;
}
/*======================
    カラー・余白指定
======================*/
:root{
    --bright-blue: #0459B4;
    --dark-blue: #10447D;
    --light-blue: #E3ECF6;
    --bg-gradation: linear-gradient(55deg, #0681CF, #0459B4);
    --bg-gradation2: linear-gradient(55deg, #0459B4, #02274E);
    --bg-gradation3: linear-gradient(0deg, #F0F0F0, #EEF0F0);
}
/*============================================
    header
============================================*/
header{
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10;
}
.topHeader{
    background-color: rgba(255, 255, 255, 0.85);
}
.underlayerHeader{
    background-color: var(--bright-blue);
}
.header_pc{
    padding: 0 2.16vw 0 5.2vw;
    display: flex;
    align-items: center;
}
.site_logo_pc{
    min-width: 15rem;
    width: 16.7%;
}
.site_logo_pc:hover{
    opacity: .7;
}
.site_logo_link{
    display: flex;
    align-items: center;
}
.header_menu_pc_ul{
    margin: 0 2rem 0 auto;
    display: flex;
}
.header_menu_pc_li{
    position: relative;
    line-height: 1.25;
    font-size: clamp(1.4rem, 1.35vw, 2.6rem);
}
.header_menu_pc_a{
    position: relative;
    padding: 1.75vw 1.04vw;
    display: block;
    height: 100%;
    font-weight: bold;
}
.topHeader_menu_pc_a{
    line-height: 1.25;
    font-size: clamp(1.4rem, 1.35vw, 2.6rem);
}
.topHeader_menu_pc_a:hover{
    color: var(--bright-blue);
}
.underlayerHeader_menu_pc_a{
    color: #fff;
}
.underlayerHeader_menu_pc_a:hover{
    color: #000;
}
.header_ulInn{
    width: max-content;
    min-width: 100%;
    height: max-content;
    /* background-color: var(--bright-blue); */
    background-color: rgba(255, 255, 255, 1);
    /* padding: 1.75vw 1.04vw; */
    /* padding: 1.75vw 0 0; */
    padding: 1.6rem 0 0;
    position: absolute;
    top: calc(1.25em + 3.5vw);
    left: 0;
    /* left: 50%; */
    display: none;
    transition: none;
    box-shadow: 0 .5rem 1.5rem 0 rgba(134, 134, 134, 0.35);
    /* transform: translateY(0%) translateX(-50%); */
    /* -webkit-transform: translateY(0%) translateX(-50%); */
}
.header_ulInn_li{
    border-bottom: .1rem dashed #737373;
}
.header_ulInn_li:last-of-type{
    border-bottom: none;
}
.header_menu_pc_li:last-child .header_ulInn{
    /* left: auto; */
    /* right: 0; */
}
.header_ulInn a{
    /* color: #fff; */
    color: #000;
    /* padding: .8rem 0 .8rem 2.2rem; */
    /* padding: .8rem 1.04vw .8rem 1.25vw; */
    padding: .8rem 1vw .8rem 1.25vw;
    display: block;
    position: relative;
    font-size: clamp(1.4rem, 1.1458333333333333vw, 2.2rem);
}
.header_ulInn a::before{
    position: absolute;
    content: "";
    top: 50%;
    left: clamp(.2rem, 0.20833333333333334vw, .4rem);
    width: clamp(.4rem, 0.4166666666666667vw, .8rem);
    height: clamp(.4rem, 0.4166666666666667vw, .8rem);
    border-top: clamp(.1rem, 0.10416666666666667vw, .2rem) solid #000;
    border-right: clamp(.1rem, 0.10416666666666667vw, .2rem) solid #000;
    rotate: 45deg;
    transform: translate(0%, -50%);
    -webkit-transform: translate(0%, -50%);
}
.header_ulInn a:hover{
    /* text-decoration: underline */
    color: #fff;
    background-color: var(--bright-blue);
}
.header_ulInn a:hover::before{
    border-top: .2rem solid #fff;
    border-right: .2rem solid #fff;
}
.ham_menu_wrap{
    display: none;
}
.header_separatetabLogo{
    min-width: 12rem;
    width: 10%;
}
.header_separatetabLogo_a{
    display: block;
    width: 100%;
}
@media screen and ( max-width: 960px ){
    .header_pc{
        display: none;
    }
    header{
        height: 5rem;
    }
    /*== SPメニュー ==*/
    .ham_menu_wrap{
        display: block;
    }
    .ham_wrap,
    .ham_wrapn_inn{
        width: 100%;
        height: 100%;
    }
    .ham_wrapn_inn{
        display: flex;
        align-items: center;
    }
    .site_logo{
        margin-left: 3.2vw;
        min-width: 15rem;
        width: 20%;
        font-size: 0;
    }
    #ham_btn{/*== ハンバーガーメニュー ==*/
        position: absolute;
        top: 0;
        right: 0;
        padding: 0;
        width: 5rem;
        height: 5rem;
        background-color: var(--bright-blue);
    }
    #ham_btn>span{
        position: absolute;
        left: 25%;
        width: 50%;
        height: .2rem;
        background-color: #fff;
    }
    #ham_btn>span:first-of-type{
        top: 30%;
        animation: ham_menu_span01 .75s forwards;
    }
    @keyframes ham_menu_span01{
        0% {
            transform: translateY(1rem) rotate(45deg);
        }
        50% {
            transform: translateY(1rem) rotate(0);
        }
        100% {
            transform: translateY(0) rotate(0);
        }
    }
    #ham_btn>span:nth-of-type(2){
        top: 50%;
        transition: all .25s .25s;
        opacity: 1;
    }
    #ham_btn>span:last-of-type{
        top: 70%;
        animation: ham_menu_span03 .75s forwards;
    }
    @keyframes ham_menu_span03{
        0% {
            transform: translateY(-1rem) rotate(-45deg);
        }
        50% {
            transform: translateY(-1rem) rotate(0);
        }
        100% {
            transform: translateY(0) rotate(0);
        }
    }
    #ham_btn.menu_active span:first-of-type{
        animation: ham_menu_span01_active .75s forwards;
    }
    @keyframes ham_menu_span01_active{
        0% {
            transform: translateY(0) rotate(0);
        }
        50% {
            transform: translateY(1rem) rotate(0);
        }
        100% {
            transform: translateY(1rem) rotate(45deg);
        }
    }
    #ham_btn.menu_active span:nth-of-type(2){
        opacity: 0;
    }
    #ham_btn.menu_active span:last-of-type{
        animation: ham_menu_span03_active .75s forwards;
    }
    @keyframes ham_menu_span03_active{
        0% {
            transform: translateY(0) rotate(0);
        }
        50% {
            transform: translateY(-1rem) rotate(0);
        }
        100% {
            transform: translateY(-1rem) rotate(-45deg);
        }
    }
    /*== メニュー ==*/
    .ham_menu_wrap{
        margin: 0 auto 0;
        display: flex;
        width: 100%;
        height: 100%;
        align-items: center;
        justify-content: space-between;
    }
    .ham_nav{
        position: fixed;
        top: 5rem;
        right: -100%;
        width: 100%;
        height: 100%;
        transition: .5s ease 0s;
        z-index: 10;
    }
    #ham_btn.menu_active+.ham_nav{
        right: 0;
    }
    .ham_nav_inn{
        padding: 4rem 0 8rem;
        background-color: var(--bright-blue);
    }
    body.menu_active{
        overflow: hidden;
    }
    .ham_nav{
        overflow: auto;
    }
    .ham_nav_ul{
        margin: 0 auto;
        min-width: 45rem;
        width: 72%;
    }
    .ham_nav_a{
        position: relative;
        padding: 1rem 1rem;
        display: flex;
        width: 100%;
        font-size: clamp(1.6rem, 3.5vw, 2.4rem);
        font-weight: 700;
        color: #fff;
        align-items: center;
        background-image: linear-gradient(to right, #fff, #fff .2rem, transparent .2rem);
        background-size: .5rem .1rem;
        background-position: left bottom;
        background-repeat: repeat-x;
    }
    .ham_nav_a::before{
        content: "";
        position: absolute;
        top: 50%;
        right: 1.5rem;
        background-image: url(../img/menuSP_icon.svg);
        width: clamp(1.8rem, 2.6vw, 2.5rem);
        height: clamp(1.8rem, 2.6vw, 2.5rem);
        transform: translate(0%, -50%);
        -webkit-transform: translate(0%, -50%);
    }
    .ham_nav_a_iconNone::before{
        display: none;
    }
    .menuOpen::before{
        top: 13%;
        rotate: 180deg;
    }
    .ham_nav_ulInn{
        margin: .5rem 0 0;
        display: none;
    }
    .ham_nav_aInn{
        position: relative;
        padding: .5rem 1rem .5rem clamp(2.8rem, 4.68vw, 4.5rem);
        display: block;
        font-size: clamp(1.5rem, 2.08vw, 2rem);
        font-weight: 700;
        color: #fff;
    }
    .ham_nav_aInn::before{
        content: "";
        position: absolute;
        top: 50%;
        left: clamp(1.4rem, 1.77vw, 1.7rem);
        border-radius: 50%;
        width: clamp(.8rem, 1.25vw, 1.2rem);
        height: clamp(.8rem, 1.25vw, 1.2rem);
        background-color: #fff;
        transform: translateY(-50%) translateX(0%);
        -webkit-transform: translateY(-50%) translateX(0%);
    }
    .ham_nav_aInn_separateTab{
        display: flex;
    }
    .ham_nav_separateTab_icon{
        margin-left: .8rem;
        display: flex;
        width: clamp(1.5rem, 2.08vw, 2rem);
        font-size: 0;
        align-items: center;
    }
    .header_separatetabLogo_sp_wrap{
        margin: 3rem auto 0;
        min-width: 45rem;
        width: 72%;
    }
    .header_separatetabLogo_sp{
        min-width: 16rem;
        width: 27%;
    }
    .header_separatetabLogo_sp_a{
        display: block;
        width: 100%;
    }
}
@media screen and ( max-width: 500px ){
    .ham_nav_ul, .header_separatetabLogo_sp_wrap{
        min-width: initial;
        width: 90%;
    }
    .header_separatetabLogo_sp{
        margin: 0 auto;
    }
}
/*============================================
    CONTACTリンク
============================================*/
.contactLink{
    position: relative;
    padding: 6.77vw 0 6.77vw;
    background-color: #F9F9F9;
    overflow-y: hidden;
    z-index: 1;
}
.contactLink::before{
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    background-image: url(../img/contact_bgIcon.svg);
    min-width: 87.385rem;
    width: 47.58vw;
    min-height: 47.5117rem;
    height: 40.57vw;
    z-index: 2;
    transform: translateY(-50%) translateX(0%);
    -webkit-transform: translateY(-50%) translateX(0%);
}
.contactLink_bg{
    position: relative;
    margin: 0 auto;
    padding: 6rem 0 7.5rem;
    background-image: url(../img/contact_innBg.jpg);
    max-width: 146.5rem;
    width: 95%;
    z-index: 3;
}
.contactLink_title{
    line-height: 1;
    color: #fff;
    text-align: center;
    letter-spacing: 6%;
}
.contactLink_title_en{
    font-size: clamp(3rem, 5.2vw, 10rem);
}
.contactLink_title_ja{
    margin: 1rem 0 0;
    font-size: clamp(3rem, 2.6vw, 5rem);
    font-weight: 700;
}
.contactLink_btnBox{
    margin: 4.5rem auto 0;
    display: flex;
    gap: 1.2rem 0;
    max-width: 125rem;
    width: 95%;
    justify-content: space-between;
}
.contactLink_btn{
    display: flex;
    width: 49%;
    height: 7.81vw;
    background-color: #fff;
}
.contactLink_btn:hover{
    opacity: .8;
}
.contactLink_btn_tel{
    flex-direction: column;
    max-width: 57rem;
    line-height: 1;
    font-size: clamp(2.2rem, 2.8vw, 4.8rem);
    font-weight: 700;
    text-align: center;
    justify-content: center;
}
.contactLink_btn_tel_span{
    margin: 0 0 .8rem;
    line-height: 1;
    font-size: clamp(2rem, 1.87vw, 3.6rem);
}
.contactLink_btn_form{
    max-width: 60rem;
    font-size: clamp(1.8rem, 2.08vw, 4rem);
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.contactLink_btnIcon{
    margin-left: 1.85rem;
    display: block;
    width: 4.25rem;
    height: 1.567rem;
    font-size: 0;
}
@media screen and ( min-width: 501px ) and ( max-width: 960px ){
    /*== CONTACTリンク ==*/
    .contactLink{
        padding: 6.77vw 0 6.77vw;
    }
    .contactLink::before{
        min-width: 59.791rem;
        width: 72.3vw;
        min-height: 50.983rem;
        height: 61.65vw;
    }
    .contactLink_bg{
        padding: 6rem 0 7.5rem;
    }
    .contactLink_btnBox{
        margin: 4.5rem auto 0;
        flex-direction: column;
        max-width: 65rem;
        width: 88%;
    }
    .contactLink_btn{
        max-width: initial;
        width: 100%;
        height: 9rem;
    }
    .contactLink_btn:hover{
        opacity: 1;
    }
    .contactLink_btnIcon{
        margin-left: 1.85rem;
        width: 4.25rem;
        height: 1.567rem;
    }
}
@media screen and ( max-width: 500px ){
    /*== CONTACTリンク ==*/
    .contactLink{
        padding: 6.77vw 0 6.77vw;
    }
    .contactLink::before{
        width: 106.64vw;
        height: 90.93vw;
    }
    .contactLink_bg{
        padding: 5rem 0 6rem;
    }
    .contactLink_btnBox{
        margin: 3.5rem auto 0;
        flex-direction: column;
        max-width: 65rem;
        width: 88%;
    }
    .contactLink_btn{
        max-width: initial;
        width: 100%;
        height: 8rem;
    }
    .contactLink_btn:hover{
        opacity: 1;
    }
    .contactLink_btnIcon{
        margin-left: 1.85rem;
        width: 2.25rem;
        height: 1rem;
    }
}
/*============================================
    footer
============================================*/
footer{
    padding: 9rem 0 5rem;
    background-color: #10447D;
}
.footer_inn{
    margin: 0 auto;
    max-width: 150rem;
    width: 90%;
}
.footer_siteLogo{
    width: clamp(20rem, 24.16vw, 29rem);
}
.footer_siteLogo_link{
    display: block;
}
.footer_pageName,
.footer_ulInn_li a{
    font-size: clamp(1.6rem, 1.14vw, 2.2rem);
    font-weight: 700;
    color: #fff;
}
.footer_pageName{
    display: block;
    padding: .8rem 0;
}
.footer_ul{
    margin: 5rem auto 0;
    display: flex;
}
.footer_li{
    margin-right: 3.48vw;
}
.footer_li:last-of-type{
    margin-right: 0;
}
.footer_ulInn_a{
    position: relative;
    display: block;
    padding: .8rem 0 .8rem 2.2rem;
}
.footer_ulInn_a::before{
    position: absolute;
    content: "";
    top: 50%;
    left: 0;
    width: .8rem;
    height: .8rem;
    border-top: .2rem solid #fff;
    border-right: .2rem solid #fff;
    rotate: 45deg;
    transform: translate(0%, -50%);
    -webkit-transform: translate(0%, -50%);
}
.footer_separateTab{
    display: flex;
}
.footer_separateTab_icon{
    margin-left: .8rem;
    display: flex;
    width: clamp(1.5rem, 1.01vw, 1.952rem);
    font-size: 0;
    align-items: center;
}
.footer_privacy{
    margin: 2rem 0 0;
    border-bottom: .1rem solid #fff;
    display: block;
    width: fit-content;
    font-size: clamp(1.6rem, 1.14vw, 2.2rem);
    font-weight: 700;
    color: #fff;
}
.footer_separatetabLogo{
    margin: 4rem 0 0;
    width: clamp(20rem, 27.16vw, 32.6rem);
}
.footer_separatetabLogo_a{
    display: block;
}
.copyright{
    margin: 5.5rem 0 0;
    display: block;
    font-size: clamp(1rem, 1.45vw, 1.4rem);
    font-weight: 700;
    color: #fff;
    text-align: center;
}
@media screen and ( min-width: 501px ) and ( max-width: 960px ){
    footer{
        padding: 9.37vw 0 5.2vw;
    }
    .footer_inn{
        width: 94%;
    }
    .footer_ul{
        margin: 5.2vw auto 0;
        flex-wrap: wrap;
    }
    .footer_li{
        width: 47%;
    }
    .footer_li:nth-of-type(2){
        margin-right: 0;
    }
    .footer_li:first-of-type,
    .footer_li:nth-of-type(2){
        margin-bottom: 2rem;
    }
    .footer_pageName,
    .footer_ulInn_li a{
        font-size: clamp(1.3rem, 1.66vw, 1.6rem);
    }
    .footer_pageName{
        padding: .5rem 0;
    }
    .footer_ulInn_li a{
        padding: .5rem 0 .5rem 2rem;
    }
    .footer_ulInn_li a::before{
        width: clamp(.7rem, 0.83vw, .8rem);
        height: clamp(.7rem, 0.83vw, .8rem);
    }
    .footer_separatetabLogo{
        margin: 6.25vw 0 0;
    }
    .copyright{
        margin: 8.85vw 0 0;
    }
}
@media screen and ( max-width: 500px ){
    footer{
        padding: 4rem 0 1.5rem;
    }
    .footer_siteLogo{
        margin: 0 auto;
    }
    .footer_separatetabLogo{
        margin: 2rem auto 0;
    }
    .footer_ul, .footer_privacy{
        display: none;
    }
    .copyright{
        margin: 4rem 0 0;
    }
}