@charset "utf-8";

/*ローディング*/
#splash {
	position: fixed;
	width: 100%;
	height: 100%;
	background-color: #fff;
	z-index: 9999999;
	text-align:center;
}

#splash-logo{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50%;
    max-width: 250px;
}

/*画面遷移アニメーション*/
.splashbg{
	display: none;
}

body.appear .splashbg{
	display:block;
	animation-name:PageAnime;
	animation-duration:1.2s;
	animation-timing-function:ease-in-out;
	animation-fill-mode:forwards;
    content: '';
    position:fixed;
	z-index: 999;
    width: 50%;
    height: 100vh;
    top: 0;
	left: 0;
    transform: translateX(-300%) skewX(-45deg);
    background-color: #028BFE;
}

@keyframes PageAnime{
	0% {
		transform-origin:left;
		transform:translateX(-300%) skewX(-45deg);
	}
	100% {
		transform-origin:left;
		transform:translateX(500%) skewX(-45deg);
	}
}

/*画面遷移の後現れるコンテンツ設定*/
#wrapper{
	opacity: 0;
}

/*bodyにappearクラスがついたら出現*/
body.appear #wrapper{
	animation-name: PageAnimeAppear;
	animation-duration: 1s;
	animation-delay: 0.6s;
	animation-fill-mode: forwards;
	opacity: 0;
}

@keyframes PageAnimeAppear{
	0% {
	    opacity: 0;
	}
	100% {
	    opacity: 1;
    }
}
/*ヘッダー*/
#header{
	position: fixed;
    width: 95%;
    height: 80px;
    top: 20px;
    left: 50%;
    transform: translateX( -50%);
    z-index: 9;
    background-color: #fff;
    border: 1px solid #000;
    border-radius: 50px;
    transition: all .1s;
}

h1{
    position: fixed;
    left: 2rem;
    top: 0.7rem;
    z-index: 999;
}

h1 img{
    width: 220px;
}

#nav{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
    position: absolute;
    top: 1rem;
    left: 60%;
    transform: translateX( -50%);
}

#nav ul{
	display: flex;
	justify-content: center;
    gap: 15px;
    margin-bottom: 10px;
}

#nav li a{
	display: block;
	text-decoration: none;
    color: #000;
    font-weight: 700;
    font-size: 90%;
}

.contact-area{
    text-align: center;
    line-height: 1.2
}

.contact-area p:nth-of-type(1){
    font-size: 90%;
}

.contact-area p:nth-of-type(2){
    font-size: 200%;
}

#nav li a:hover{
	color: #028BFE;
}

/* ボタンの変化*/
.closebtn,
.openbtn{
    position: fixed;
    cursor: pointer;
    width: 50px;
    height: 50px;
    z-index: 9999;
    transition: all .3s;
    top: 1rem;
    right: 1.5rem;
}

/*ボタン内側*/
.closebtn span,
.openbtn span{
    display: inline-block;
    transition: all .3s;
    position: absolute;
    left: 8px;
    width: 60%;
    height: 2px;
    border-radius: 2px;
    background-color: #000;
}

.closebtn span:nth-of-type(1),
.openbtn.active span:nth-of-type(1){
    top: 10px;
    transform: translateY(6px) rotate(-135deg);
}

.closebtn span:nth-of-type(2),
.openbtn.active span:nth-of-type(2){
	opacity: 0;
}

.closebtn span:nth-of-type(3),
.openbtn.active span:nth-of-type(3){
	top: 22px;
    transform: translateY(-6px) rotate(135deg);
}

.closebtn::after,
.openbtn::after{
    content: 'CLOSE';
    position: absolute;
    font-family: "Crimson Text", serif;
    font-size: 0.8rem;
    font-weight: 700;
    top: 30px;
    left: 5px;
    transition: all .3s;
}

.openbtn::after{
    content: 'OPEN';
}

/*ヘッダーの開閉*/
#header.headerclose{
    width: 30%;
    min-width: 350px;
    left: inherit;
    transform: inherit;
    right: 3rem;
}

#header.headerclose h1{
    position: absolute;
}

#header.headerclose #nav{
    display: none;
}

.closebtn.close{
    position: absolute;
}

.closebtn.close span:nth-of-type(1),
.openbtn span:nth-of-type(1){
    top: 8px;
    transform: translateY(0) rotate(0deg);
}

.closebtn.close span:nth-of-type(2),
.openbtn span:nth-of-type(2){
    opacity: 1;
    top: 16px;
}

.closebtn.close span:nth-of-type(3),
.openbtn span:nth-of-type(3){
    top: 24px;
    transform: translateY(0) rotate(0deg);
}

.closebtn.close::after{
    content: 'OPEN';
    transform: rotate(360deg);
}

.openbtn.active::after{
    content: 'CLOSE';
    transform: rotate(360deg);
}

.openbtn{
    display: none;
}

@media screen and (max-width: 1200px) {
    h1{
        top:1rem;
    }
    
    h1 img{
        width: 180px;
    }
    
    #nav{
        opacity: 0;
        flex-direction: column;
        position: absolute;
        top: 58%;
        left: 50%;
        transform: translate( -50%, -50%);
    }
    
    #header{
        transition: all .3s;
    }
    
    #header.headerclose{
        width: 95%;
        left: 50%;
        transform: translateX( -50%);
    }
    
    #header.headerclose #nav{
        display: flex;
        
    }

    #header.panelactive{
        height: 400px;
        display: block;
    }
    
    #header.panelactive #nav{
        opacity: 1;
    }
    
    #header.panelactive #nav ul{
        flex-direction: column;
    }
    
    .closebtn{
        display: none;
    }
    
    .openbtn{
        display: block;
        position: absolute;
    }
}

@media screen and (max-width: 990px) {
     #header.panelactive{
         height: 380px;
    }
    
    #nav li a{
        font-size: 100%;
    }
}

@media screen and (max-width: 550px) {
    h1{
        left: 1.5rem;
    }
    
    .openbtn,
    .closebtn{
        top: 0.8rem;
        right: 1rem;
        
    }
}

/* ページトップ */
#page-top {
	position: fixed;
	right: 2rem;
	z-index: 2;
	opacity: 0;
	transform: translateY(120px);
    width: 95px;
    height: 95px;
}

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
	transform: translateY(120px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(120px);
  }
}

@media screen and (max-width: 767px) {
    #page-top {
        right: 1rem;
        width: 70px;
        height: 70px;
    }
}

/*---スクロールアニメーション---*/
/* ズームイン */
.zoomIn{
    animation-name:zoomInAnime;
    animation-duration:0.5s;
    animation-fill-mode:forwards;
}

@keyframes zoomInAnime{
    from {
    transform: scale(0.6);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 1;
  }
}

.zoomInTrigger{
    opacity: 0;
}

/* じわっと */
.blur{
	animation-name:blurAnime;
	animation-duration:1s;
	animation-fill-mode:forwards;
}

@keyframes blurAnime{
  from {
	filter: blur(10px);
	transform: scale(1.02);
	opacity: 0;
  }

  to {
	filter: blur(0);
	transform: scale(1);
	opacity: 1;
  }
}
 
.blurTrigger{
    opacity: 0;
}
/* 下へフリップ */
.flipDown{
animation-name:flipDownAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes flipDownAnime{
  from {
    transform: perspective(2500px) rotateX(100deg);
  opacity: 0;
  }

  to {
    transform: perspective(2500px) rotateX(0);
  opacity: 1;
  }
}

.flipDownTrigger{
    opacity: 0;
}

/* 1文字ずつ */
.eachTextAnime span{
    opacity: 0;
}
.eachTextAnime.appeartext span{
    animation:text_anime_on 1s ease-out forwards;
}
@keyframes text_anime_on {
  0% {opacity:0;}
  100% {opacity:1;}
}

/* br */
.br-sp,
.br-sp320{
    display: none;
}

@media screen and (max-width: 1024px) {
    .br-pc{
        display: none;
    }
}

@media screen and (max-width: 428px) {
    .br-sp{
        display: block;
    }   
}

@media screen and (max-width: 320px) {
    .br-sp320{
        display: block;
    }
}

/* 電話リンク */
@media (min-width: 751px) {
    a[href*="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
}
