@charset "utf-8";
/* Common */
[class*="container"]{width: calc(100% - 40px); margin: 0 auto;}
.container1100{max-width: 1100px;}
.container1200{max-width: 1200px;}
.container1400{max-width: 1400px;}

.m-title{font-size: 3rem; line-height: 2; color: #0032a0; font-weight: bold; text-align: center; margin-bottom: 30px;}
.m-title2{font-size: 2.7rem; line-height: 1.6; color: #0032a0; font-weight: bold; text-align: center; margin-bottom: 40px;}
.m-title2 span{display: block; font-size: 1.4rem;}
.m-title2[data-color="black"]{color: #000;}
.m-title2[data-color="white"]{color: #fff;}

.m-desc{font-size: 1.8rem; line-height: 1.56;}

.cap{font-size: 1.3rem; line-height: 1.7;}
.note{font-size: 1.4rem; line-height: 1.7;}

@media screen and (max-width: 768px){
    .m-title{font-size: min(6.8vw,2.4rem); line-height: 1.7; margin-bottom: 20px;}
    .m-title2{font-size: min(5.8vw,2rem); margin-bottom: 25px;}
    .m-title2 span{font-size: 1.2rem;}
    
    .m-desc{font-size: 1.6rem;}
    
    .cap{font-size: 1rem;}
    .note{font-size: 1.2rem;}
}

/* Scroll img SP */
@media screen and (min-width: 769px){
    .scroll-note{display: none;}
}

@media screen and (max-width: 768px){
    .scroll-note{font-size: 1.3rem; display: flex; justify-content: center; align-items: center; margin: 0 0 15px;}
    .scroll-note::after{content: ""; width: 40px; height: 15px; background: url("../img/common/ic-scroll.png") no-repeat center center/100% auto; margin: 0 0 0 10px; position: relative; top: 1px;}
}

/* Header */
html{scroll-padding-top: 110px;}
.header{position: fixed; top: 0; left: 0; width: 100%; height: 110px; z-index: 100; padding: 0 40px; display: flex; justify-content: space-between; align-items: center; transition: .3s;}
.header.is-scroll{background: #fff;}

.header-left{display: flex; align-items: flex-end;}
.header-right{display: flex; align-items: center; font-weight: 500; font-size: 1.6rem;}

.header h1.logo,
.header-jpx{margin: 0 45px 0 0;}
.header-info{font-size: 1.4rem; line-height: 1.1; text-align: center;}
.header-info p{margin: 8px 0 0 0;}

.header-link{margin: 0 60px 0 0;}
.header-link a::after{content: ""; border: solid #000; border-width: 0 2px 2px 0; display: inline-block; padding: 3px; transform: rotate(45deg); -webkit-transform: rotate(45deg); margin: 0 0 0 8px; position: relative; top: -3px;}
.header-link a:hover{color: #07174b;}
.header-link a:hover::after{border: solid #07174b; border-width: 0 2px 2px 0;}

.header-btn{display: flex;}
.header-btn li{width: 150px; margin: 0 10px 0 0;}
.header-btn li:last-of-type{margin: 0;}
.header-btn a{width: 100%; height: 45px; border-radius: 45px; line-height: 1.1; overflow: hidden; border: 1px solid #07174b; display: flex; justify-content: center; align-items: center; align-content: center; text-align: center; transition: 0.5s ease-out; position: relative; z-index: 1;}
.header-btn a[data-color="white"]{background: #fff; color: #07174b;}
.header-btn a[data-color="blue"]{background: #07174b; color: #fff;}

.header-btn a:hover{letter-spacing: 0.1em;}
.header-btn a[data-color="white"]:hover{color: #fff;}
.header-btn a[data-color="blue"]:hover{color: #07174b;}

.header-btn a::before{position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; content: ''; border-radius: 50%; display: block; width: 20em; height: 20em; left: -5em; text-align: center; transition: box-shadow 0.5s ease-out; z-index: -1;}
.header-btn a[data-color="white"]:hover::before{box-shadow: inset 0 0 0 10em #07174b;}
.header-btn a[data-color="blue"]:hover::before{box-shadow: inset 0 0 0 10em #ffffff;}

.header-btn a.txtS{font-size: 0.9375em;}

@media screen and (min-width: 1201px){
    .btn-menu{display: none;}
    .header-anchorSp{display: none;}
    .header-right .header-info{display: none;}
}

@media screen and (max-width: 1500px) and (min-width: 1201px){
    .header{padding: 0 20px;}
    .header h1.logo,
    .header-jpx{margin: 0 25px 0 0;}
    .header-info{font-size: min(1vw,1.4rem);}
    
    .header-link{margin: 0 25px 0 0;}
    .header-right{font-size: min(1.1vw,1.6rem);}
    .header-btn li{width: min(10vw,150px);}
}

@media screen and (max-width: 1200px){
    .btn-menu{width: 40px; height: 21px; position: relative; cursor: pointer;}
    .btn-menu span{width: 100%; height: 1px; background: #000; display: block; position: absolute; left: 0; transition: .3s;}
    .btn-menu span:nth-of-type(1){top: 0;}
    .btn-menu span:nth-of-type(2){top: 10px;}
    .btn-menu span:nth-of-type(3){top: 20px;}
    
    .header{padding: 0 20px;}
    .header h1.logo,
    .header-jpx{margin: 0 20px 0 0;}
    
    .header.is-open{background: #fff;}
    .header.is-open .btn-menu span:nth-of-type(1){top: 10px; transform: rotate(45deg); -webkit-transform: rotate(45deg);}
    .header.is-open .btn-menu span:nth-of-type(2){width: 0;}
    .header.is-open .btn-menu span:nth-of-type(3){top: 10px; transform: rotate(-45deg); -webkit-transform: rotate(-45deg);}
    
    .header-info{margin: 0 0 40px;}
    .header-left .header-info{display: none;}
    
    .header-right{display: block; position: fixed; top: 110px; left: 0; bottom: 0; width: 100%; background: #fff; z-index: 100; overflow: auto; padding: 40px 20px; opacity: 0; visibility: hidden; pointer-events: none; transition: .6s;}
    .header.is-open .header-right{opacity: 1; visibility: visible; pointer-events: auto;}
    .header-link{margin: 0 0 30px; text-align: center;}
    .header-anchorPc{display: none;}
    
    .header-btn{flex-wrap: wrap; max-width: 240px; margin: 0 auto;}
    .header-btn li{width: 100%; margin: 0 0 15px;}
}

@media screen and (max-width: 768px){
    html{scroll-padding-top: 80px;}
    
    .header{height: 80px;}
    .header h1.logo img{width: 150px;}
    .header-jpx{width: 50px;}
    
    .header-right{top: 80px;}    
}

/* Footer */
.footer{background: #eaeaf3;}
.footer-wrap{padding: 110px 0 60px;}
.copyright{font-size: 1.2rem; text-align: center; background: #fff; padding: 35px 0;}

@media screen and (max-width: 768px){
    .footer-wrap{padding: 80px 0 40px;}
    .copyright{padding: 20px 0;}	
}

/* Contact */
.contact{display: flex; align-items: center; margin: 0 0 70px; width: 100%;}
.contact-logo{display: flex; align-items: flex-end; min-width: 600px;}
.contact-logo li{margin: 0 min(3.5vw,35px);}

.contact-info .tit{margin: 0 0 20px; font-size: 2.2rem;}
.contact-info .tit2{margin: 0 0 15px;}
.contact-info .txt{margin: 0 0 15px;}
.contact-info .txt2{display: flex; flex-wrap: wrap;}
.contact-info .txt2 dt{width: 10em;}
.contact-info .txt2 dd{width: calc(100% - 10em);}
.contact-info a:hover{text-decoration: underline; text-underline-offset: 0.2em;}

@media screen and (max-width: 1000px){
    .contact{justify-content: center; flex-wrap: wrap;}
    .contact-logo{justify-content: center; margin: 0 0 40px; min-width: 1px; width: 100%;}
    
    .contact-info{text-align: center;}
    .contact-info .tit{margin: 0 0 10px;}
    .contact-info .tit2{margin: 0 0 10px;}
    .contact-info .txt{margin: 0 0 40px;}
    .contact-info .txt2{text-align: left; max-width: 400px; margin: 0 auto;}
}

@media screen and (max-width: 768px){
    .contact{margin: 0 0 40px;}
    .contact-logo li{margin: 0 20px;}
    
    .contact-info .tit{font-size: 1.8rem;}
    .contact-info .txt2{font-size: 1.3rem; max-width: 320px;}
    .contact-info .txt2 dd{margin: 0 0 5px;}
}

/* Access */
.access{text-align: center;}
.access-img{display: flex; justify-content: center;}
.access-img figure:nth-of-type(1){margin-right: 20px;}
.access-txt{font-size: 1.4rem; margin: 30px 0 0 0;}

@media screen and (max-width: 768px){
	.access-img figure:nth-of-type(1){margin-right: 10px;}
    .access-txt{margin: 20px 0 0 0;}
}

/* Pagetop */
#pagetop{position: fixed; bottom: 10px; right: 10px; width: 50px; height: 50px; background: #0032a0; cursor: pointer; z-index: 20; border-radius: 100%; display: flex; justify-content: center; align-items: center; opacity: 0; visibility: hidden; pointer-events: none; transition: .3s;}
#pagetop::after{content: ""; border: solid #fff; border-width: 0 2px 2px 0; display: inline-block; padding: 5px; transform: rotate(-135deg); -webkit-transform: rotate(-135deg);}
#pagetop.is-show{opacity: 1; visibility: visible; pointer-events: auto;}
#pagetop:hover{background: #07174b;}

@media screen and (max-width: 768px){
    #pagetop{bottom: 50px;}
}

/* Animate */
@media screen{
    .fade-in{opacity: 0; transition: 1s ease;}
    .fade-in.is-view{opacity: 1;}

    .fade-up{opacity: 0; transform: translateY(15%); transition: 1s ease;}
    .fade-up.is-view{opacity: 1; transform: translateY(0);}
}