@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Cinzel&family=Noto+Serif+JP:wght@200&display=swap');

.en{ font-family: 'Cinzel', serif; }

/*----------------------------------------------------
	☆Reset
----------------------------------------------------*/
body, h1, h2, h3, h4, h5, h6, pre, ul , ol , li, dl, dt, dd, p, img {
	margin:0;
	padding:0;
}
h1, h2, h3, h4, h5, h6{
    font-weight: 200;
}
body {
	font-size: 15px;
    font-family: 'Noto Serif JP', '游明朝体', 'Yu Mincho', YuMincho, 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN', 'Hiragino Mincho Pro', 'ヒラギノ明朝 Pro', 'MS PMincho', 'ＭＳ Ｐ明朝', sans-serif;
    font-weight: 200;
	color:#000;
    letter-spacing: 0.05em;
    font-feature-settings: "palt";
	line-height: 1.75;
	width: 100%;
	overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: antialiased;
    background: #eff2f4;
}

#wrapper{
	width: 100%;
    overflow: hidden;
}

body, div, p, span, ul, ol, li, dl, dt, dd, table, tr, th, td, img, header, footer, small, section, a, h1, h2, h3, h4, h5, h6{
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
}
a {
	color:#1e2b3a;
	text-decoration:none;
	cursor:pointer;
	outline:none;
}
a:link {
	color:#000;
	text-decoration:none;
	outline:none;
}
a:hover {
	text-decoration:none;
	outline:none;
}
ul, ol {
	list-style-type:none;
}
a:focus {
  outline: none;
}
img{ 
	vertical-align:bottom;
	width: 100%;
	-webkit-backface-visibility: hidden;
}

.sp{ display:none;}
.tab{ display:none;}
.pc{ display:block;}
.btm0{ margin-bottom: 0 !important;}
.top0{ margin-top: 0 !important;}

.center{ text-align: center;}
.justify{ text-align: justify;}
.left{ text-align: left;}

.inlineBlock{ display: inline-block;}

.white{ color: #fff;}

a.link{
    transition: .4s;
    text-decoration: underline;
}

a.window{
    display: flex;
    line-height: 1;
}
a.window::after{
    width: 1em;
    height: 1em;
    content: "";
    display: inline-block;
    background: url("../images/common/icon_window.svg") center center / contain no-repeat;
    margin-left: 0.4em;
}

.deco{
    position: absolute;
    left: 0;
    top: 0;
}

.max1200{
    width: 85%;
    max-width: 1200px;
    margin: 0 auto;
}
.max840{
    width: 85%;
    max-width: 840px;
    margin: 0 auto;
}

.text{
	text-align: justify;
	letter-spacing: 0.05em;
    line-height: 2.3;
}

.fontScale{
    transform: scale(1,0.9);
    display: block;
}

.whitebelt{
    background: #fff;
    line-height: 1;
    padding: 0.2em 0.6em;
    display: table;
}

/*--- 画像ボケ防止 ---*/
@media screen and (min-width:769px) {
	img { 
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		image-rendering: crisp-edges;
		image-rendering: -webkit-optimize-contrast;
	}
}

/*----------------------------------------------------
	☆BASE CONTENTS PC
----------------------------------------------------*/

/*-- header --*/
#header {
    display: flex;
    justify-content: space-between;
    width: 100%;
    left: 0;
    top: 0;
    height: auto;
    z-index: 10;
    transition: .4s;
    position: fixed;
}

#header::before {
    content: "";
    display: block;
    width: 100%;
    height: 90px;
    background: rgba(255,255,255,0.75);
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
    opacity: 0;
    transition: .4s;
}
.scrolled #header::before {
    opacity: 1;
}

#header .headerLogo{
    padding: 30px 0 0 50px;
    position: relative;
    z-index: 1;
}
#header .headerLogo .logoImg{
    width: 190px;
    transition: .4s;
}

#header .headerR{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: relative;
    z-index: 1;
}


/*-- メニューボタン --*/
#header .headerR  {
    position: relative;
}
#header .headerR .menuBtn {
    width: 20px;
    height: 15px;
    position: absolute;
    top: 36px;
    right: 30px;
}
#header .headerR .menuBtn #nav-open{
    position: relative;
    width: 100%;
    height: 100%;
	cursor: pointer;
	transition: .4s;
}
#header .headerR .menuBtn .border{
    width: 100%;
    height: 1px;
    background: #000;
    position: absolute;
    left: 0px;
	transition: .4s;
}
#header .headerR .menuBtn .border01{
    top: 0;
}
#header .headerR .menuBtn .border02{
    top: 7px;
    width: 70%;
    margin-left: 30%;
}
#header .headerR .menuBtn .border03{
    top: 14px;
}

.nav-close{
    width: 20px;
    height: 2px;
    position: fixed;
    right: 40px;
    top: 36px;
    z-index: 9999;
    cursor: pointer;
}
.nav-close.open {
    opacity: 1;
    visibility: visible;
}
.nav-close .border{
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    left: 0;
    top: 50%;
}
.nav-close .border01{
    transform: rotate(45deg);
}
.nav-close .border02{
    transform: rotate(-45deg);
}



/*-- バーガーメニュー --*/


#overlay {
    display: none;
    width: 100%;
    height: 100vh;
    background: rgba(30,43,58,0.8);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1100;
}


#nav-content {
	overflow: auto;
	position: fixed;
	top: 0;
	right: 0px;
	z-index: 9997;
	width: 100%;
	height: 100vh;
	
	color: #fff;
	transition: 0.75s;
    visibility: hidden;
	text-align: left;
	opacity: 0;
	padding: 40px;
}

#nav-content.open {
    opacity: 1;
    visibility: visible;
}
#nav-content a{
    color: #fff;
}

#nav-content #gnav ul li{
    opacity: 0;
    transition: .75s;
}
#nav-content.open #gnav ul li{
    animation: fadein 1s ease forwards;
}
#nav-content.open #gnav ul li:nth-child(2){ animation-delay: .15s;}
#nav-content.open #gnav ul li:nth-child(3){ animation-delay: .3s;}
#nav-content.open #gnav ul li:nth-child(4){ animation-delay: .45s;}
#nav-content.open #gnav ul li:nth-child(5){ animation-delay: .6s;}
#nav-content.open #gnav ul li:nth-child(6){ animation-delay: .75s;}
#nav-content.open #gnav ul li:nth-child(7){ animation-delay: .9;}
#nav-content.open #gnav ul li:nth-child(8){ animation-delay: 1.05s;}
#nav-content.open #gnav ul li:nth-child(9){ animation-delay: 1.2s;}
#nav-content.open #gnav ul li:nth-child(10){ animation-delay: 1.35s;}


#nav-content .navHeader{
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
    width: 100%;
}

#nav-content .navLogo{
    position: absolute;
    left: 50px;
    top: 30px;
}
#nav-content .navLogo .logoImg {
    width: 190px;
}


#nav-content .nav-inner{
    width: 75%;
    margin: 0 auto;
    max-width: 1100px;
    flex-direction: column;
    display: flex;
    justify-content: center;
    height: 100vh;
}


#gnav{
    padding-bottom: 20px;
}
#gnav > ul{
}
#gnav ul li{
    border-bottom: 1px solid rgba(255,255,255,0.2);
}
#gnav ul li a{
    font-size: 18px;
    line-height: 1.5;
    padding: 40px 30px 40px 0;
    position: relative;
    transition: .4s;
    display: block;
}
#gnav ul li a::before{
    content: "";
    display: block;
    width: 30px;
    height: 6px;
    background: url( "../images/common/arrow_01_white.svg") center center / contain no-repeat;
    position: absolute;
    right: 0;
    top: calc(50% - 3px);
    transition: .4s;
}

#gnav > ul > li > ul{
    padding-left: 30px;
    margin-top: 20px;
}
#gnav > ul > li > ul li{
    margin-bottom: 10px;
}
#gnav > ul > li > ul li a{
    font-size: 15px;
    padding-left: 24px;
}
#gnav > ul > li > ul li a::before{
    background: #fff;
    width: 15px;
    top: 9px;
}

#nav-content .subNav{
    padding-top: 50px;
    display: flex;
    opacity: 0.5;
}



/*-- footer --*/
#footer{
    background: #000;
    padding: 120px 0;
}
#footer .footerInr{
    max-width: 1200px;
    width: 85%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    color: #fff;
}
#footer .footerInr a{
    color: #fff;
    transition: .4s;
}
#footer .footerInr .footerLogo{
    width: 190px;
}
#footer .footerInr .footerR{
    width: calc(100% - 190px);
    padding-left: 60px;
}
#footer .footerInr .footerR .footerMenu01{
    margin-bottom: 30px;
}
#footer .footerInr .footerR .footerMenu01 ul{
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
}
#footer .footerInr .footerR .footerMenu01 ul li{
    font-size: 16px;
    letter-spacing: 0.15em;
    line-height: 1;
}
#footer .footerInr .footerR .footerMenu01 ul li a{
    display: block;
    transition: .4s;
}
#footer .footerInr .footerR .footerMenu01 ul li + li{
    margin-left: 60px;
}

#footer address{
    font-style: normal;
    opacity: .5;
    font-size: 12px;
    display: flex;
    justify-content: flex-end;
    letter-spacing: 0.15em;
}

/*--- topcontrol ---*/
#pagetop{
    background: url("../images/common/pagetop.svg") center center / contain no-repeat;
    width: 64px;
    height: 64px;
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 10;
    opacity:0;
    transition: .4s;
    cursor: pointer;
}
#pagetop.is-fadein {
    visibility: visible;
    opacity: 0.7;
}

/*----------------------------------------------------
	☆INNER BASE PARTS
----------------------------------------------------*/
#mainTitle{
  position: relative;
  padding-top: 163px;
    margin-top: 90px;
}
#mainTitle::before{
  display: block;
  content: "";
  width: 100%;
  height: 240px;
  background: #dfe4e8;
  position: absolute;
  left: 0;
  top: 0;
}
#mainTitle .head01{
  max-width: 1200px;
  margin: 0 auto;
  width: 85%;
}

#breadcrumb{
  max-width: 1200px;
  margin: 0 auto;
  width: 85%;
  display: flex;
  justify-content: flex-end;
    transform: translateY(-27px);
    margin-bottom: 130px;
}
#breadcrumb p{
  transform: scale(1,0.9);
  font-size: 12px;
  position: relative;
  line-height: 1;
}
#breadcrumb p + p{
  padding-left: 20px;
  margin-left: 20px;
}
#breadcrumb p + p::before{
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  transform: rotate(-45deg) translateY(-50%);
  position: absolute;
  left: 0;
  top: 50%;
  opacity: 0.7;
}
#breadcrumb p a{
  transition: .4s;
}

.inrPage section:not(#contactBox){
    margin-bottom: 120px;
}


/*----------------------------------------------------
	☆COMPONENT PC
----------------------------------------------------*/

/*-- head --*/
.head01{
    display: table;
    margin-bottom: 60px;
}
.head01 span{
    display: table;
    line-height: 1;
    transform: scale(1,0.9);
    background: #fff;
}
.head01 .jp{
    font-size: 18px;
    padding: 0.5em 30px;
}
.head01 .en{
    font-size: 70px;
    font-weight: normal;
    letter-spacing: 0.1em;
    margin-top: -10px;
    padding: 0.25em 30px;
}

.head02{
    margin-bottom: 60px;
    text-align: center;
}
.head02 span{
    display: block;
    line-height: 1;
    transform: scale(1,0.9);
}
.head02 .jp{
    font-size: 18px;
}
.head02 .en{
    font-size: 70px;
    font-weight: normal;
    letter-spacing: 0.1em;
    margin-top: 20px;
}

.head03{
    text-align: center;
    font-size: 42px;
    line-height: 1.5;
    margin-bottom: 40px;
    letter-spacing: 0.1em;
}

/*-- lead --*/
.lead01{
    letter-spacing: 0.07em;
}

/*-- list --*/
ul.indList li {
	text-indent:-1em;
	padding-left:1em;
}
ol.decimal{
	padding-left:1.5em;
}
ol.decimal li{
	list-style:decimal;
	margin-bottom:8px;
}
ul.disc{
	padding-left:1.5em;
}
ul.disc li{
	list-style:disc;
	margin-bottom:8px;
    display: list-item !important;
}

/*-- button --*/
.btn01{
    max-width: 320px;
    margin: 60px auto 0;
}
.btn01 a{
    display: flex;
    align-items: center;
    padding: 27px 0;
    border-top: 3px double #000;
    border-bottom: 3px double #000;
    font-size: 16px;
    position: relative;
    line-height: 1;
}
.btn01 a::after{
    content: "";
    display: block;
    width: 2em;
    height: 1em;
    background: url("../images/common/arrow_01.svg") center center / contain no-repeat;
    transition: .4s;
    position: absolute;
    right: 0;
    top: calc(50% - 0.6em);
}
.btn01.ig a::before{
    content: "";
    display: block;
    width: 2em;
    height: 1em;
    background: url("../images/common/icon_ig.svg") center center / contain no-repeat;
    margin-right: 0.4em;
    margin-top: 2px;
}

/*-- spOverflow --*/
.spOverflow{
    position: relative;
}


/*-- table --*/
.table01 > dl{
    display: flex;
    justify-content: space-between;
}
.table01 > dl > dt{
    width: 25%;
    border-bottom: 1px solid #1e2b3a;
    padding: 40px 20px 40px 0;
}
.table01 > dl > dd{
    width: 75%;
    border-bottom: 1px solid #d2d5d8;
    padding: 40px 0;
}
.table01 > dl:first-of-type > dt{
    border-top: 1px solid #1e2b3a;
}
.table01 > dl:first-of-type > dd{
    border-top: 1px solid #dfe4e8;
}

/*--- backSqBox ---*/
.backSqBox{
    position: relative;
    padding: 120px 0;
}
.backSqBox::before{
    z-index: 0;
    content: '';
    display: block;
    width: calc(50vw + 30%);
    height: 100%;
    position: absolute;
    left: calc(50% - 50vw);
    top: 0;
    background: #dfe4e8;
}
.backSqBox > div{
    position: relative;
    z-index: 1;
}

/*--- contact ---*/
#contactBox{
    background: url("../images/common/bg_contact.jpg") center top / cover no-repeat;
    padding: 120px 0;
    color: #fff;
    text-align: center;
}
#contactBox a{
    color: #fff;
}

#contactBox .tel a{
    font-size: 37px;
    transition: .4s;
}
#contactBox .tel a{
    display: flex;
    justify-content: center;
    align-items: center;
}
#contactBox .tel a::before{
    width: .8em;
    height: .8em;
    background: url("../images/common/icon_tel.svg") center center /contain no-repeat;
    display: block;
    content: "";
    margin-right: 0.4em;
}

#contactBox .btn01 a{
    border-color: #fff;
}
#contactBox .btn01 a::after{
    background-image: url("../images/common/arrow_01_white.svg");
}

/*----------------------------------------------------
	☆ANIMATION
----------------------------------------------------*/

.out.slidein,
.out .slidein{
    opacity: 0;
}

.in.slidein,
.in .slidein{
    animation: slidein 1.5s ease forwards;
}

@keyframes slidein{
    0%{ transform: translate(0,10px); opacity: 0; }
    100%{  transform: translate(0,0);opacity: 1;}
}

.clip01 {
    transition: 1s;
    clip-path: inset(0 100% 0 0);
}
.in .clip01,
.in.clip01{
    clip-path: inset(0 0 0 0);
}

.clip02 {
    transition: .4s;
    clip-path: inset(50% 50% 50% 50%);
}
.in .clip02,
.in.clip02{
    clip-path: inset(0 0 0 0);
}

.zoom01 {
    transition: .3s;
    transform: scale(0);
}
.in .zoom01,
.in.zoom01{
    transform: scale(1);
}

@keyframes slide {
	0% { transform: translateX(10px); opacity: 0;}
	3% { transform: translateX(10px); opacity: 1;}
	100% { transform: translateX(-10px); opacity: 0; }
}


.fadein{
    opacity: 0;
}
.in.fadein,
.in .fadein,
#mv.fadein,
#mv .fadein,
#mainTitle .fadein{
    animation: fadein 1s ease forwards;
}


@keyframes fadein {
	0% { opacity: 0; }
	100% { opacity: 1; }
}


@keyframes menuBtn {
	0% { transform: translateX(0px) scale(1,1); opacity: 1; }
	50% { transform: translateX(-10px) scale(.2,1); opacity: 0;}
	100% { transform: translateX(0px) scale(1,1); opacity: 1;}
}


.delay02{ animation-delay: 0.2s !important;}
.delay04{ animation-delay: 0.4s!important;}
.delay06{ animation-delay: 0.6s!important;}
.delay08{ animation-delay: 0.8s !important;}
.delay10{ animation-delay: 1s !important;}
.delay12{ animation-delay: 1.2s!important;}
.delay14{ animation-delay: 1.4s!important;}
.delay16{ animation-delay: 1.6s!important;}
.delay18{ animation-delay: 1.8s!important;}
.delay20{ animation-delay: 2.0s!important;}

.clip01.delay02{ transition-delay: 0.2s !important;}
.clip01.delay04{ transition-delay: 0.4s !important;}
.clip01.delay06{ transition-delay: 0.6s !important;}
.clip01.delay08{ transition-delay: 0.8s !important;}
.clip01.delay10{ transition-delay: 1s !important;}

/*----------------------------------------------------
	☆901以上　PCのみ & HOVER
----------------------------------------------------*/

@media screen and (min-width:901px) {
    
    
    /*--- PCのみ指定 ---*/
    
    /*--- bace pc hover ---*/
    
    a.link:hover{
        text-decoration: none;
    }
    
    .btn01 a:hover::after{
        transform: translate(100%,0);
        opacity: 0;
    }
    
    #gnav ul li a:hover::before{
        transform: translateX(10px);
        opacity: 0;
    }
    
    #breadcrumb p a:hover{
        letter-spacing: 0.3em;
    }
    
    #footer .footerInr .footerR .footerMenu01 ul li a:hover{
        transform: scale(1.08);
    }
    
}


/*----------------------------------------------------
	☆UNDER 900
----------------------------------------------------*/

@media screen and (max-width:900px) {
    
    body {
	    font-size:14px;
    }
    
    .tab{ display:block;}
    .pc{ display:none;}
    
    
    /*--- header ---*/
    
    /*--- footer ---*/
    
    #footer .footerInr{
        flex-direction: column;
        align-items: center;
    }
    #footer .footerInr .footerLogo{
        margin-bottom: 60px;
    }
    #footer .footerInr .footerR{
        width: 100%;
        padding: 0;
    }
    #footer .footerInr .footerR .footerMenu01 ul{
        justify-content: center;
    }
    #footer .footerInr .footerR .footerMenu01 ul li,
    #footer .footerInr .footerR .footerMenu01 ul li + li{
        margin: 0 30px 30px;
    }
    #footer address{
        justify-content: center;
        text-align: center;
    }
    
    /*----------------------------------------------------
        ☆INNER BASE PARTS
    ----------------------------------------------------*/
    
    #breadcrumb{
        margin-bottom: 90px;
    }
    
    .inrPage section:not(#contactBox){
        margin-bottom: 80px;
    }
    
    /*----------------------------------------------------
        ☆COMPONENT TABLET
    ----------------------------------------------------*/
    
    .head01 {
        margin-bottom: 40px;
    }
    .head01 .en {
        font-size: 60px;
    }
    .head02 {
        margin-bottom: 20px;
    }
    .head03 {
        font-size: 36px;
    }
    
    .backSqBox {
        position: relative;
        padding: 80px 0;
    }
    
    #contactBox {
        padding: 80px 0;
    }
    
}


/*----------------------------------------------------
	☆UNDER 600
----------------------------------------------------*/

@media screen and (max-width:600px) {
    
    body {
        font-size: 14px;
    }
    
    .sp{ display:block;}
    
    /*--- header ---*/
    
    #header::before{
        height: 55px;
    }
    #header .headerLogo {
        padding: 10px 0 0 20px;
    }
    #header .headerLogo .logoImg {
        width: 130px;
    }
    #header .headerR .menuBtn {
        top: 18px;
        right: 20px;
    }
    
    .nav-close {
        right: 20px;
        top: 25px;
    }
    
    #nav-content{
        padding: 80px 40px;
    }
    #nav-content .nav-inner {
        width: 80%;
        height: auto;
    }
    #gnav ul li a{
        padding: 30px 20px 30px 0;
    }
    #gnav ul li a::before{
        width: 20px;
    }
    
    #nav-content .navLogo {
        left: 20px;
        top: 10px;
    }
    #nav-content .navLogo .logoImg{
        width: 130px;
    }
    
    /*--- footer ---*/
    
    #footer {
        padding: 60px 0;
    }
    #footer .footerInr .footerLogo {
        margin-bottom: 30px;
        width: 150px;
    }
    #footer .footerInr .footerR .footerMenu01 ul li,
    #footer .footerInr .footerR .footerMenu01 ul li + li {
        margin: 0 15px 20px;
        font-size: 12px;
    }
    #footer .footerInr .footerR .footerMenu01 {
        margin-bottom: 10px;
    }
    #footer address{
        font-size: 11px;        
    }
    
    /*--- pagetop ---*/
    #pagetop{
        width: 45px;
        height: 45px;
    }
    
    /*----------------------------------------------------
        ☆INNER BASE PARTS
    ----------------------------------------------------*/
    
    #mainTitle {
        padding-top: 70px;
        margin-top: 55px;
    }
    #mainTitle::before{
        height: 120px;
    }
    
    #breadcrumb {
        justify-content: flex-start;
        transform: translateY(0px);
        margin: 20px 7.5% 60px;
    }
    
    .inrPage section:not(#contactBox){
        margin-bottom: 60px;
    }
    
    /*----------------------------------------------------
        ☆COMPONENT SP
    ----------------------------------------------------*/
    
    .head01 {
        margin-bottom: 20px;
    }
    .head01 .jp {
        font-size: 4vw;
        padding-left: 20px;
        padding-right: 20px;
    }
    .head01 .en {
        font-size: 9vw;
        margin-top: -5px;
        padding-left: 20px;
        padding-right: 20px;
    }
    .head02 .en {
        font-size: 9vw;
        margin-top: 10px;
    }
    .head03 {
        font-size: 30px;
        margin-bottom: 30px;
    }
    
    
    .btn01{
        max-width: 250px;
        width: 80%;
        margin-top: 40px;
    }
    .btn01 a{
        padding: 22px 0;
    }
    .btn01 a::after{
        width: 1.5em;
    }
    
    .table01 > dl > dt,
    .table01 > dl > dd{
        padding: 25px 0;
    }
    .table01 > dl > dd{
        padding-left: 20px;
    }
    
    .backSqBox {
        padding: 60px 0;
    }
    .backSqBox::before{
        width: 100vw;
    }
    
    #contactBox {
        padding: 60px 0;
    }
    #contactBox .tel a {
        font-size: 30px;
    }
    
}

