@charset "utf-8";
/*------------- ページトップアニメのCSS -----------*/
/*リンクの形状*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	background:#252525;
	border-radius: 5px;
	width: 60px;
	height: 60px;
	color: #fff;
	text-align: center;
	/*text-transform: uppercase; */
	text-decoration: none;
	transition:all 0.3s;
}
.arrow{
    display: inline-block;
    vertical-align: middle;

    line-height: 1;
    position: relative;
    width: 0.3em;
    height: 1.3em;
    background: currentColor;
}
  
.arrow::before{
    content: '';
    width: 0.8em;
    height: 0.8em;
    border: 0.3em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: rotate(-45deg);
    position: absolute;
    top: 0;
    left: -0.275em;
    margin: auto;
}

#page-top a:hover{
    color: #252525;
	background: var(--basecolor);
}


/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 10px;
	z-index: 2;
    /*はじめは非表示*/
	opacity: 0;
	transform: translateY(100px);
}

/*　上に上がる動き　*/

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  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(100px);
  }
}

/*---------------  スライドマーカー -----------------*/
/* アニメーション前のスタイル */
.js-marker {
	display: inline;
	position: relative;
	background-image: linear-gradient(90deg,  #e333217d,  #e333217d); /* 単色の場合は同じ色、グラデーションさせる場合は別々の色 */
	background-repeat: no-repeat;
	background-position: bottom left;
	background-size: 0 50%; /* '30%'の部分にマーカーの太さを記入 */
	transition: all 1s ease-in-out; /* マーカーを引く速度を調整 */
	font-weight: bold; /* ついでに太字にしたい場合 */
}
  
/* アニメーション発火時 */
.js-marker.inview {
background-size: 100% 50%; /* '30%'の部分は上で設定した太さに合わせる */
}

/*-------------  ナビゲーションメニュー  ---------------*/

/* ナビゲーションのためのCSS */

/*アクティブになったエリア*/
#g-nav.panelactive{
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
    position:fixed;
    z-index: 999;
	top: 0;
	width:100%;
    height: 100vh;
}

/*丸の拡大*/
.circle-bg{
    position: fixed;
	z-index:3;
    /*丸の形*/
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #d4cbc2;
    /*丸のスタート位置と形状*/
	transform: scale(0);/*scaleをはじめは0に*/
	right:-50px;
    top:-50px;
    transition: all .6s;/*0.6秒かけてアニメーション*/
}

.circle-bg.circleactive{
	transform: scale(50);/*クラスが付与されたらscaleを拡大*/
}

/*ナビゲーションの縦スクロール*/
#g-nav-list{
    display: none;/*はじめは表示なし*/
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

#g-nav.panelactive #g-nav-list{
     display: block; /*クラスが付与されたら出現*/
}

/*ナビゲーション*/
#g-nav ul {
	opacity: 0;/*はじめは透過0*/
    /*ナビゲーション天地中央揃え※レイアウトによって調整してください。不必要なら削除*/
	position: absolute;
	z-index: 999;
	top:45%;
	left:50%;
	transform: translate(-50%,-50%);
	width: 75%;
	max-width:400px;
	font-size:calc(13px + 0.5vw);
}
#g-nav ul li:first-child{
	margin-bottom:40px;
}
#g-nav ul li:last-child{
	margin-top:-3px
}
#g-nav ul li:last-child i{
	display:inline-block;
	font-size:200%;
	color:#19ad1d;
	vertical-align:middle;
	margin-right:5px;
}

/*背景が出現後にナビゲーションを表示*/
#g-nav.panelactive ul {
    opacity:1;
    list-style-type: none;
    padding: 0;
}

/* 背景が出現後にナビゲーション li を表示※レイアウトによって調整してください。不必要なら削除*/
#g-nav.panelactive ul li{
animation-name:gnaviAnime;
animation-duration:1s;
animation-delay:.2s;/*0.2 秒遅らせて出現*/
animation-fill-mode:forwards;
opacity:0;
}
@keyframes gnaviAnime{
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}


/*リストのレイアウト設定*/
#g-nav li{
	text-align: center; 
	list-style: none;
}

#g-nav li a{
	color: #333;
	text-decoration: none;
	padding: 10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
    transition: 0.3s;
}
#g-nav li a:hover{
    color: #afafaf;
}

/* ボタンのためのCSS */
.openbtn{
	position:fixed;
	top: 15px;
	right: 15px;
	z-index: 9999; /*ボタンを最前面に*/
	cursor: pointer;
    width: 41px;
    height: 50px;
    border: 0;
    background:#ffffffcc;
    border-radius: 4px;
}
	
/*×に変化*/	
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
	left:7px;
    height: 3px;
    border-radius: 2px;
    background-color: #666;
    width: 64%;
  }
.openbtn p{
    display: inline-block;
    position: absolute;
	left:7px;
	bottom:0;
    width: 64%;
    font-size:10px;
  }
.openbtn span:nth-of-type(1) {
	top:9px;
}

.openbtn span:nth-of-type(2) {
	top:19px;
}

.openbtn span:nth-of-type(3) {
	top:30px;
}

.openbtn.active span:nth-of-type(1) {
    top: 13px;
    left: 10px;
    transform: translateY(6px) rotate(-225deg);
    width: 50%;
}

.openbtn.active span:nth-of-type(2) {
    width:0px;
    left:20px;
	opacity: 0;
}

.openbtn.active span:nth-of-type(3){
    top: 25px;
    left: 10px;
    transform: translateY(-6px) rotate(225deg);
    width: 50%;
}

/*電話*/

.header_menu_sp{
	background-color: #ffe0c1;
	border-radius: 5px;
}
.header_menu_sp img{
	width: 34px;
	vertical-align:bottom;
}

/*------------------ タイピングアニメのCSS --------------*/

.TextTyping span {
	display: none;
}
.TextTyping span:nth-child(n+5):nth-child(-n+9){
	font-family: 'Sawarabi Mincho', sans-serif;
    /*background: linear-gradient(transparent 60%, #002fff60 0%);*/
}

/*文字列後ろの線の設定*/
.TextTyping::after {
 	content: "|";
	animation: typinganime .8s ease infinite;
}

@keyframes typinganime{
	from{opacity:0}
	to{opacity:1}
}







