@charset "UTF-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Noto+Serif+JP:wght@300;400;500;600;700&display=swap');
@import '_default';
@import '_general';
@import '_animation';


/*------------------
*  共通
*------------------*/

html{
	font-size: 15px;
	font-family: "dnp-shuei-gothic-gin-std", "DM Sans","sans-serif";
	color: #000000;
	scroll-behavior: smooth;
	font-feature-settings: "palt";
}

body{
	min-width: 1100px;
	min-width: inherit;
}

 

/*-----------------------
		


			PC



--------------------------*/


	

	
	

.pc{
	display: block;
}

.sp{
	display: none;
}

/*-----------------------
		


			SP



--------------------------*/





@media screen and (max-width:768px){	
	
	
	.pc{
		display: none;
	}	
	
	.spbr{
		display: block;
	}
	/*------------------
	*  共通
	*------------------*/
	
	.sp{
		display: block;
		float: none;
	}
	
	
	
	
}


/*ーーーーーーーーーーーーーーーー*/





.main_visual{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 0 50px;
    height: 100vh;
}

.maintitle{
    max-width: 350px;
    width: 60%;
    margin: 0;
}
.mainimg{
    max-width: 600px;
    width: 100%;
    margin: 100px 0 0 0px;
}

.main_visual_h{
    margin: 0 auto;
    max-width: 100%;
    min-height: 100vh;
     /* 画像ファイルの指定 */
    /* background-image: url( "../images/S__15843525.jpg"); */
   
  /* 画像を常に天地左右の中央に配置 */
    background-position: center center;
   
  /* 画像をタイル状に繰り返し表示しない */
    background-repeat: no-repeat;
   
  /* コンテンツの高さが画像の高さより大きい時、動かないように固定 */
    background-attachment: fixed;
   
  /* 表示するコンテナの大きさに基づいて、背景画像を調整 */
    background-size: cover;
   
  /* 背景画像が読み込まれる前に表示される背景のカラー */
    background-color: #fff;
}



@media only screen and (max-width: 767px) {
.main_visual{
    display: block;
    min-height: 100vh;
    width: 100%;
    margin: 0 auto;
    padding: 0 30px;
  }
    .main_visual_h{
    min-height: 100vh;
    max-width: 100%;
    margin: 0px auto;
    background-color: #fff;
    /*    background-image: url( "../images/S__15843525.jpg");*/
  }

.maintitle{
    max-width: 350px;
    width: 45%;
    margin: 100px 0 0;
}
.mainimg{
    max-width: 600px;
    width: 95%;
    margin: -110px 0 0;
}

}

	
.example {
    margin: 0 auto;
    width: 80px;
    left: 50%;
    top: 50%;
    position: absolute;
  }


.example img{transform: translate(-50%,-50%);}


.wrap{
	background: greenyellow;
}
@media screen and (max-width:768px){
    .wrap{
        overflow: hidden;
    }
    
}
img{
	width: 100%;
	height: auto;
}

	br.sp{
	/* display: none; */
}


.text_center{
	text-align: center;
}
.under{
	border-bottom: double 3px #b80000;
	font-weight: bold;
}


h2{
    color: #000;
    font-size: 4rem;
    text-align: center;
    letter-spacing: .2em;
    font-family: system-ui;
    font-weight: lighter;
}


h3{

	color: #231815;
	font-size: 18px;
	text-align: center;
	font-weight: normal;
	margin-bottom: 40px;
	
	}


.button{
	display: flex;
	justify-content: center;
	margin-top: 60px;
	
}
	span,a{cursor: pointer;display: inline-block;padding: 0px;text-align: center;transition: opacity .2s;}
a{
	color: #231815;
}
.text_link ::before{
	position: relative;
	display: inline-block;
	
		content: "";
		width: 0;
		height: 1px;
		background: #231815;
		position: absolute;
		top: 50%;
		left: -10px;
		transition: width .2s;
	}
	
.text_link :hover ::before{
			width: calc(100% + 20px);
		}
	
.text_link .active{
		pointer-events: none;
	
	
}
.text_link .active ::before{
	width: calc(100% + 20px);
		}



#content_wrap{
	
	overflow: hidden;
	position: relative;
	padding-top: 130px;
	
}

.content_width{
	width: vw_lt(880);
	
}

.content_width_wide{
	width: vw_lt(940);
	
}

/*========= LoadingのためのCSS ===============*/

/* Loading背景画面設定　*/
#splash {
  /*fixedで全面に固定*/
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 999999;
  background:#fff;
  text-align:center;
  color:#fff;
}

/* Loading画像中央配置　*/
#splash_logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* Loading アイコンの大きさ設定　*/
#splash_logo svg{
    width:200px;
}
@media screen and (max-width:768px){
    #splash_logo svg{
    width:200px;
}
}



/*========= ローディング画面のためのCSS MODELS===============*/
#splash2 {
	position: fixed;
	width: 100%;
	height: 100%;
	background: #fff;
	z-index: 999999;
	text-align:center;
	color:#fff;
}

#splash-logo2 {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/*========= 画面遷移のためのCSS ===============*/

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

/*bodyにappearクラスがついたら出現*/
body.appear .splashbg2{
    display: block;
    content: "";
    position:fixed;
    z-index: 999;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    transform: scaleX(0);
    background-color: #000;
    animation-name: PageAnime;
    animation-duration: 1.9s;
    animation-timing-function:ease-in-out;
    animation-fill-mode:forwards;
}
/*猫の動きのためのもの
.splashbg2 img{
    display: block;
    width: 150px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
*/
@keyframes PageAnime{
	0% {
		transform-origin:left;
        transform:scaleX(0);
/*        transform: translateX(-200%);*/
	}
	50% {
		transform-origin:left;
		transform:scaleX(1);
	}
	50.001% {
		transform-origin:right;
	}
	100% {
		transform-origin:right;
        transform:scaleX(0);
/*        transform: translateX(200%);*/
	}
}

/*画面遷移の後現れるコンテンツ設定*/
#container2{
	opacity: 0;/*はじめは透過0に*/
}

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

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


/*========= 画面遷移のためのCSS ここまで===============*/

/*=============== SVGアニメーション内の指定 =================*/

/*アニメーション前の指定*/
#mask path {
		fill-opacity: 0;/*最初は透過0で見えない状態*/
		transition: fill-opacity .5s;/*カラーがつく際のアニメーション0.5秒で変化*/
		fill: none;/*塗りがない状態*/
		stroke: #5b5b5b;/*線の色*/
	}

/*アニメーション後に.doneというクラス名がで付与された時の指定*/
#mask.done path{
	  fill: #5b5b5b;/*塗りの色*/
	  fill-opacity: 1;/*透過1で見える状態*/
	  stroke: none;/*線の色なし*/
	}

/*=============== モデル事業　SVGアニメーション内の指定 =================*/

#logo_loader {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 9999;
    background-color: #fff;
}
#logo_loader .f_logo {
    position: absolute;
    top: 100px;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 250px;
    height: 350px;
    text-align: center;
    color: #fff;
    font-size: 30px;
}
#logo_loader .f_logo img {
    width: 100%;
    height: auto;
}

#logo_loader .f_logo:before {
    content: "";
    display: block;
    width: 100%;
    height: 110%;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 100%;
    animation: loadLogo 1.5s;
}
@keyframes loadLogo {
  0% {
    left: 0;
  }
  50% {
    left: 0;
  }
  100% {
    left: 100%;
  }
}
#logo_loader .f_logo:before {
    animation: loadLogo 1.5s;
}


#logo_loader.open {
    animation-name: slideOut;
    animation-fill-mode: forwards;
    animation-duration: 2s;
    animation-delay: 2s;
}

@keyframes slideOut {
  0% {
    transform: translateX(0%);
  }
  50% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(100%);
  }
}



@media screen and (max-width:768px){
    
    #logo_loader .f_logo {
    position: absolute;
    top: 200px;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 200px;
    height: 350px;
    text-align: center;
    color: #fff;
    font-size: 30px;
}
    
    
    
}
#header pc{
    display: flex;
}
@media screen and (max-width:768px){
    #header pc{
    display: none;
}
}




/*========= PC    ナビゲーションドロップダウンのためのCSS ===============*/

/*==ナビゲーション全体の設定*/
nav{
	color: #fff;
	text-align: center;
	margin: 0;
	padding: 0;
	background-color: #fff;
	border: solid 1px #000;
	border-radius: 30px;
}
/*ナビゲーションを横並びに*/
nav ul{
	list-style: none;
	display: flex;
}
/*2階層目以降は横並びにしない*/
nav ul ul{
	display: block;
}

/*下の階層のulや矢印の基点にするためliにrelativeを指定*/
nav ul li{
	position: relative;
	text-align: left;
}

/*ナビゲーションのリンク設定*/
nav ul li a{
	font-size: 12px;
	letter-spacing: 1px;
	display: block;
	text-decoration: none;
	color: #000;
	padding: 20px 20px;
	transition:all .3s;
}

nav ul li li a{
	padding: 15px 15px;
	width: 130px;
}

nav ul li a:hover{
	color:#edf3fa;
    text-decoration: none;
}

/*==矢印の設定*/

/*2階層目を持つliの矢印の設定*/
nav ul li.has-child::before{
	content:'';
	position: absolute;
	left:15px;
	top:25px;
	width: 6px;
	height:6px;
	/* border-top: 2px solid #999; */
	/* border-right:2px solid #999; */
	transform: rotate(135deg);
}

/*3階層目を持つliの矢印の設定*/
nav ul ul li.has-child::before{
	content:'';
	position: absolute;
	left:6px;
	top:17px;
	width:6px;
	height:6px;
    border-top: 2px solid #fff;
    border-right:2px solid #fff;
    transform: rotate(45deg);
}

/*== 2・3階層目の共通設定 */

/*下の階層を持っているulの指定*/
nav li.has-child ul{
    /*絶対配置で位置を指定*/
    position: absolute;
    left: 9px;
    top:69px;
    z-index: 4;
    /*形状を指定*/
    background-color: rgba(255, 255, 255, 0.562);
    width: 160px;
    /*はじめは非表示*/
    visibility: hidden;
    opacity: 0;
    /*アニメーション設定*/
    transition: all .3s;
}

/*hoverしたら表示*/
nav li.has-child:hover > ul,
nav li.has-child ul li:hover > ul,
nav li.has-child:active > ul,
nav li.has-child ul li:active > ul{
  visibility: visible;
  opacity: 1;
}

/*ナビゲーションaタグの形状*/
nav li.has-child ul li a{
	color: #000;
	border-bottom:solid 1px rgba(255,255,255,0.6);
}

nav li.has-child ul li:last-child > a{
 border-bottom:none;
 }

/*
nav li.has-child ul li a:hover,
nav li.has-child ul li a:active{
	background:#e2e2e2;
}
*/


/*==3階層目*/

/*3階層目の位置*/
nav li.has-child ul ul{
	top:0;
	left:182px;
	background:#66ADF5;
}

nav li.has-child ul ul li a:hover,
nav li.has-child ul ul li a:active{
	background:#448ED3;
}


/*==768px以下の形状*/

@media screen and (max-width:768px){
	nav{
		margin: 20px 0 0 auto;
		padding: 0px;
		width: fit-content;
	}
	
	nav ul{
		/* display: block; */
		padding: 0 10px;
	}
	
	nav li.has-child ul,
	nav li.has-child ul ul{
  	position: relative;
	left:0;
	top:0;
	width:100%;
	visibility:visible;/*JSで制御するため一旦表示*/
	opacity:1;/*JSで制御するため一旦表示*/
	display: none;/*JSのslidetoggleで表示させるため非表示に*/
	transition:none;/*JSで制御するためCSSのアニメーションを切る*/
}
	
nav ul li a{
    font-size: 10px;
    padding: 10px 10px;
    display: grid;
    place-content: center;
}

/*矢印の位置と向き*/

nav ul li.has-child::before{
	left:20px;	
}

nav ul ul li.has-child::before{
    transform: rotate(135deg);
	left:20px;
}
    
nav ul li.has-child.active::before{
    transform: rotate(-45deg);
}

}


/*==================================================
　5-3-3 左から右に線が伸びる（下部）
===================================*/
.gnavi li a{
    /*線の基点とするためrelativeを指定*/
    position: relative;
}

.gnavi li.current a,
.gnavi li a:hover{
	color:#adadad;
}

.gnavi li a::after {
    content: '';
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom: 22%;
    left: 15%;
    /*線の形状*/
    width: 70%;
    height: 1px;
    background: #b0b0b0;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: left top;/*左上基点*/
}

/*現在地とhoverの設定*/
.gnavi li.current a::after,
.gnavi li a:hover::after {
    transform: scale(1, 1);/*X方向にスケール拡大*/
}



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

.global_nav{
}
#g-nav .nav_bg {
    width: 50%;
    height: 100vh;
    background-image: url(  "../images/imges/4FB87827-132E-4FE1-B9D0-A82D9B12CD85.jpg");
    background-size: cover;
    background-position: center top;
}
#g-nav{
    pointer-events: none;
    display: flex;
    top: 0;
    right: 0;
    /*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
    position:fixed;
    z-index: -1;
    opacity: 0;/*はじめは透過0*/
    /*ナビの位置と形状*/
    width:100%;
    height: 100vh;/*ナビの高さ*/
    background: #890000;
    /*動き*/
    transition: all 0.3s;
}


/*アクティブクラスがついたら透過なしにして最前面へ*/
#g-nav.panelactive{
	opacity: 1;
	z-index:999;
    pointer-events: initial;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999;
    width: 150%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav ul {
    display: none;
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top: 45%;
    left:50%;
    transform: translate(-50%,-50%);
}

#g-nav.panelactive ul {
    display: block;
}

/*リストのレイアウト設定*/

#g-nav li{
	list-style: none;
    text-align: center; 
}

#g-nav li a{
	color: #fff;
	text-decoration: none;
	padding: 10px;
	display: block;
	line-height: 40px;
	letter-spacing: 0;
	text-align: center;
	font-size: 45px;
	font-weight: lighter;
	font-family: system-ui;
     transition: .3s;
     -webkit-transform: scale(1);
     transform: scale(1);
}

#g-nav li a:hover{
    -webkit-transform: scale(1.1);
  transform: scale(1.1);
    
}
@media screen and (max-width:768px){
    /*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999;
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
    
    
}
/*========= ボタンのためのCSS ===============*/

.openbtn{
	position:fixed;
	z-index: 9999;/*ボタンを最前面に*/
	right: 10px;
	cursor: pointer;
	width: 100px;
	height:50px;
}
	
/*×に変化*/	
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 1px;
    border-radius: 2px;
    background-color: #fff;
    width: 45%;
  }

.openbtn span:nth-of-type(1) {
	top: 20px;
}

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

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

.openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}

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

.openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}

#g-nav #g-nav-list ul li:nth-last-child(2) {
    border-bottom: 1px solid #fff;
    padding-bottom: 20px;
    width: 350px;
}
#g-nav #g-nav-list ul li:last-child {
    width: 200px;
    margin: 35px auto;
    border: 0.2px solid #d9d9d9;
    border-radius: 10px;
    display: block;
    padding: 0.5em 1.4em 0.5em;
    transition: .5s ease-in-out;
}
#g-nav #g-nav-list ul li:last-child :hover{
    
}
#g-nav #g-nav-list .link_insta:last-child {
    display: flex;
    font-size: 13px;
    align-items: center;
    justify-content: space-between;
}
#g-nav #g-nav-list .link_insta img:last-child {
    margin: -3px auto;
    width: 15px;
}



@media screen and (max-width:768px){
.openbtn{
	position:fixed;
	z-index: 9999;/*ボタンを最前面に*/
	right: 0px;
	cursor: pointer;
	width: 60px;
	height:50px;
}
	
/*×に変化*/	
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 1px;
    border-radius: 2px;
    background-color: #fff;
    width: 45%;
  }

.openbtn span:nth-of-type(1) {
	top: 22px;
}

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

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

.openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}

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

.openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}

   
}

/*========= 上部固定させるためのCSS ===============*/

.header{
    margin: 0 auto;
    height: 80px;
    display: flex;
    align-items: center;
    /*    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05); これを付け足し*/
    justify-content: center;
}
.header img{
    margin: 0px auto;
}
.header2{
    margin: 0 auto;
    height: 80px;
    display: flex;
    align-items: center;
    /*    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05); これを付け足し*/
    justify-content: center;
}
.header2 img{
    margin: 0px auto;
}
#header{
	/*高さ指定*/
	width: 100%;/*横幅指定*/
	/*以下はレイアウトのためのCSS*/
	color:#000;
	text-align: center;
	padding: 0;
	position: fixed;
	z-index: 9998;
}

/*JSを使いfixedクラスが付与された際の設定*/
#header.fixed{
  position: fixed;/*fixedを設定して固定*/
  z-index: 800;/*最前面へ*/
  top:0;/*位置指定*/
  left:0;/*位置指定*/
}




@media screen and (max-width:768px){
 
.header{
    margin: 0 auto;
    text-align: center;
    display: block;
    height: 50px;
}
.header img{
    text-align: center;
    margin: 15px;
    width: 30%;
}
.header2{
    margin: 0 auto;
    text-align: center;
    display: block;
    height: 50px;
}
.header2 img{
    text-align: center;
    margin: 0 15px 0;
    width: 30%;
}
    #header{
	height: 50px;/*高さ指定*/
	width: 95%;/*横幅指定*/
	/*以下はレイアウトのためのCSS*/
	/* display: flex; */
	color:#fff;
	text-align: center;
	padding: 0;
}
    
    
  
}
/*========= 上部固定させるためのCSS 終わり===============*/


.mup{
     position: fixed;
     z-index: 9999;
     /* top: 30px; */
     left: 20px;
     cursor: pointer;
}
    
.mup img{
    width: 80px;
}
h1 img{
    padding-top: 10px;
    width: 25%;
}
.logo{
    position: fixed;
    z-index: 9999;
    left: 50px;
    cursor: pointer;
}
.logo img{
    width: 100px;
}


#fixed-header {
  position: fixed;
  top: -70px;
  line-height: 70px;
  font-size: 2em;
  text-align: center;
  box-sizing: border-box;
  transition: .5s; /* アニメーションタイミング */
}
#fixed-header.is-show {
  top: 15px;
}
@media screen and (max-width:768px){
 
    h1 img{
        padding-top: 10px;
        width: 195px;
    }
    
    .logo{
    position: fixed;
    z-index: 9999;
    left: 15px;
    cursor: pointer;
}
    .logo img{
    width: 70px;
    }
    
    #fixed-header.is-show {
  top: 0;
}
    
			
}
/*========= 上部固定させるためのCSS 終わり===============*/



/* ランダムテキスト　*/

.randomAnime {
	visibility: hidden;
}


.box{
  width: 220px;
  padding: 20px;
  margin: 0 20px 20px 20px;
  background: #666;
  color: #fff;
  box-sizing:border-box;
}
/* なめらかテキスト　*/
span.smoothText {
	overflow: hidden;
	display: block;
}

/* アニメーションで傾斜がついている文字列を水平に戻す*/
span.smoothTextTrigger{
	transition: .8s ease-in-out;
	transform: translate3d(0,100%,0) skewY(12deg);
	transform-origin: left;
	display: block;
}
span.smoothTextTrigger.smoothTextAppear{
    transform: translate3d(0,0,0) skewY(0);
}
/*==================================================
ふわっ
===================================*/

/* その場で */
.fadeIn{animation-name:fadeInAnime;animation-duration: 3s;animation-fill-mode:forwards;opacity:0;}

@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* 下から */

.fadeUp{
    animation-name:fadeUpAnime;
    animation-duration: 1s;
    animation-fill-mode:forwards;
    opacity:0;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
    transform: translateY(100px);
    filter: blur(4px);
  }

  to {
    opacity: 1;
	transform: translateY(0);
    filter: blur(0px);
  }
}

/* 上から */

.fadeDown{
    animation-name:fadeDownAnime;
    animation-duration: 1s;
    animation-fill-mode:forwards;
    opacity:0;
}

@keyframes fadeDownAnime{
  from {
    opacity: 0;
	transform: translateY(-100px);
    filter: blur(4px);
  }

  to {
    opacity: 1;
	transform: translateY(0);
    filter: blur(0px);
  }
}

/* 左から */

.fadeLeft{
animation-name:fadeLeftAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeLeftAnime{
  from {
    opacity: 0;
	transform: translateX(-100px);
  }

  to {
    opacity: 1;
	transform: translateX(0);
  }
}

/* 右から */

.fadeRight{
animation-name:fadeRightAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeRightAnime{
  from {
    opacity: 0;
	transform: translateX(100px);
  }

  to {
    opacity: 1;
	transform: translateX(0);
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger{
    opacity: 0;
}

/*==================================================
じわっ
===================================*/

/* ぼかしから出現 */
.blur{
  animation-name:blurAnime;
  animation-duration: 2s;
  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;
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.blurTrigger{
    opacity: 0;
}



/*========= 流れるテキスト ===============*/

/*全共通*/

.slide-in {
	overflow: hidden;
	display: inline-block;
}

.slide-in_inner {
	display: inline-block;
}

/*左右のアニメーション*/
.leftAnime{
    opacity: 0;/*事前に透過0にして消しておく*/
}

.slideAnimeLeftRight {
	animation-name:slideTextX100;
	animation-duration: 1s;
	animation-fill-mode:forwards;
	opacity: 0;
}

@keyframes slideTextX100 {
  from {
	transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.slideAnimeRightLeft {
	animation-name:slideTextX-100;
	animation-duration: 1s;
	animation-fill-mode:forwards;
	opacity: 0;
}


@keyframes slideTextX-100 {
  from {
	transform: translateX(100%);/*要素を右の枠外に移動*/
    opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}



/*------------------
	*  footer
*------------------*/

	.footer{
		margin-top: -2px;
		padding: 0px 20px 20px;
		text-align: center;
		background-color: greenyellow;
		border-top: solid 1px #000;
		color: #000;
		position: relative;
		z-index: 1;
		font-family: system-ui
	}
	.footer-logo{
		width: 20%;
		margin-top: 40px;
	}
.footer-logop{
	margin: 0 auto;
	padding: 0 0 20px 0;
	
}
.footer-access{
	font-size: 1rem;
}
	.footer-copyright{
		font-size: 1rem;
		left: 50%;
		transform: translate(-50%);
	}

.footer-global_nav-main{
	display: none;
    padding: 30px 50px 0;
	margin: 0 auto;
	
}
.footer-global_nav-main　li {
    border-bottom: solid 1px #ffffff;
    list-style: none;
	
}
.footer-global_nav-main a {

    display: inline-block;
	text-align: left;
    width: 100%;
    font-size: 20px;
    box-sizing: border-box;
	color:#000000;
    letter-spacing: 5px;
    text-decoration: none;
    padding: 25px 15px 10px 0;
    position: relative;
}

.footer-global_nav-main　ul li a::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: solid 2px #ffffff;
    border-right: solid 2px #ffffff;
    transform: rotate(45deg);
    position: absolute;
    right: 11px;
    top: 16px;
}
	
.footer-global_nav-sub{
    margin: 0 0 0 25px;
    padding: 30px 0 15px 0;
    list-style: none;
    font-size: 22px;
	display: inline-flex;
	width: 55px;
}

	
.footer-global_nav-sub　li {
    display: inline-block;
    vertical-align: top;
   
}
.footer-global_nav-sub a {
    float: left;
	padding: 0 25px 0 0;
}
.footer-global_nav-sub　ul li a::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: solid 2px #ffffff;
    border-right: solid 2px #ffffff;
    transform: rotate(45deg);
    position: absolute;
    right: 11px;
    top: 16px;
}





/*========= ページトップのためのCSS ===============*/
/*リンクの形状*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	background: #000;
	border-radius: 60px;
	width: 60px;
	height: 60px;
	color: #fff;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	font-size: 1rem;
	transition:all 0.3s;
}

#page-top a:hover{
	background: #777;
}

/*リンクを右下に固定*/
#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);
  }
}





/*----------------	
	
	
	main
	
-------------------*/
	






/*-----------------------


       modelsここから


------------------------*/


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

#g-nav2{
    z-index: 89;
    /*ナビのスタート位置と形状*/
	top:0;
	width:100%;
}


/*ナビゲーション*/

#g-nav2 ul {
    /*ナビゲーション天地中央揃え*/
    position: fixed;
    z-index: 89;
    top:100px;
    left:20px;

}
.nav05b2 span{
    font-size: 25px;
    font-weight: bold;
    font-family: "IBM Plex Sans";
}

/*リストのレイアウト設定*/


#g-nav2 li a{
	color: #000;
	text-decoration: none;
	padding: 8px 0;
	display: block;
	
	letter-spacing: 0.1em;
	font-weight: bold;
    text-align: left;
}



@media screen and (max-width:768px){
#g-nav2 ul {
    /*ナビゲーション天地中央揃え*/
    position: fixed;
    z-index: 89;
    top:65px;
    left:15px;

}
.nav05b2 span{
    font-size: 15px;
    font-weight: bold;
    font-family: "IBM Plex Sans"
}
#g-nav2 li a{
	color: #000;
	text-decoration: none;
	padding: 3px 0;
	display: block;
	
	letter-spacing: 0.1em;
	font-weight: bold;
    text-align: left;
}

    
}




/*--------------------------------
news
---------------------------------*/
#area-5{
    margin: 0 auto;
    text-align: center;
    padding: 120px 0 50px;
    color: #585757;
    font-weight: lighter;
    width: 700px;
    font-family: system-ui;
}
.news-list{
  position: relative;
  list-style: none outside;
  margin: 0 auto;
  padding: 40px 0;
  font-size: 15px;
}
.news-list .item_news a{
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  flex-wrap: nowrap;
  text-decoration: none;
  color: #333;
  /*  border-bottom: 1px solid #CCC;*/
  padding: 20px 0px;
}
.news-list .item_news:first-child a{/* border-top: 1px solid #CCC; */}
.news-list .item_news .date{
  margin: 0;
  min-width: 140px;
  font-size: 14px;
  color: #000;
  padding: 0 20px 0 0;
}
.news-list .item_news .category{
  margin: 0;
  min-width: 140px;
  padding: 0 20px 0 0;
}
.news-list .item_news .category span{
  background: #fff;
  border-radius: 20px;
  color: #5c5c5c;
  border: 1px solid #5c5c5c;
  text-align: center;
  display: inline-block;
  padding: 7px 30px;
  font-size: 11px;
  line-height: 1;
}
.news-list .item_news .title{
  text-align: left;
  margin: 0;
  width: 100%;
  padding: 0 0px 0 30px;
  font-size: 13px;
}
.news-list .item_news a:hover .title{
  color: #d9d9d9;
  transition:ease-in-out 0.3s;
}



.blog-article-content{
    padding: 10px 0;
    border-bottom: 1px solid #999999;
    border-top: 1px solid #999999;
}

.blog-article-content h2{
    color: #000;
    width: 720px;
    font-size: 30px;
    padding: 20px 0;
}

#area-10{
    margin: 50px auto 0;
    width: 720px;
    text-align: left;
    padding: 0px 0 40px;
    color: #585757;
}
#area-10 img{
    width: 90%;
}


/*////////////////////////ボタン////////////////////////*/


a.btn_23 {
    display: block;
    text-align: center;
    align-items: center;
    vertical-align: middle;
    text-decoration: none;
    width: 235px;
    height: 40px;
    letter-spacing: 2px;
    padding: 1rem 3rem 1.5rem;
    font-weight: bold;
    border: 1px solid #000;
    color: #000;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    z-index: 1;
}
a.btn_23::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	transform: translateX(-100%);
	transition: all .3s;
	z-index: -1;
}
a.btn_23:hover::before {
	transform: translateX(0);
}
a.btn_23:hover {
	color: #fff;
}

a.btn_24 {
    display: grid;
    text-align: center;
    justify-items: center;
    align-items: center;
    vertical-align: middle;
    text-decoration: none;
    width: 230px;
    height: 25px;
    letter-spacing: 2px;
    margin: auto;
    padding: 10px;
    font-weight: lighter;
    border: 1px solid #000;
    color: #000;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    z-index: 1;
}
a.btn_24::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	transform: translateX(-100%);
	transition: all .3s;
	z-index: -1;
}
a.btn_24:hover::before {
	transform: translateX(0);
}
a.btn_24:hover {
	color: #fff;
}


@media screen and (max-width: 767px){
#area-5{
    margin: 0 auto;
    text-align: center;
    padding: 90px 0 90px;
    color: #585757;
    width: 100%;
}
    
.news-list{
  width: 75%;
  list-style: none outside;
  margin: 0 auto;
  padding: 30px 0;
  line-height: 40px;
}
.news-list .item_news a{
  flex-wrap: wrap;
}
.news-list .item_news .date{
  min-width: 100px;
}
.news-list .item_news .title{
  margin-top: 10px;
}
.blog-article-content{
    border-bottom: 1px solid #999999;
    border-top: 1px solid #999999;
    padding: 10px 0;
}

.blog-article-content h2{
    color: #000;
    width: 360px;
    font-size: 30px;
    padding: 20px 0;    
}

#area-10{
    margin: 50px auto 0;
    width: 360px;
    text-align: left;
    padding: 0px 0 40px;
    color: #585757;
}
#area-10 img{
    width: 100%;
}
    
    
a.btn_23 {
	font-family: system-ui;
	display: block;
	text-align: center;
	align-items: center;
	vertical-align: middle;
	wid;
	width: 200px;
	letter-spacing: 2px;
	/* padding: 10px 10px; */
	border: 1px solid #000;
	color: #000;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	z-index: 1;
}
a.btn_23::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	transform: translateX(-100%);
	transition: all .3s;
	z-index: -1;
}
a.btn_23:hover::before {
	transform: translateX(0);
}
a.btn_23:hover {
	color: #fff;
}

    a.btn_24 {
	display: block;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	width: 150px;
	height: 13px;
	letter-spacing: 2px;
	margin: auto;
	padding: 1rem 2rem;
	border: 1px solid #000;
	color: #000;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	z-index: 1;
}
a.btn_24::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	transform: translateX(-100%);
	transition: all .3s;
	z-index: -1;
}
a.btn_24:hover::before {
	transform: translateX(0);
}
a.btn_24:hover {
	color: #fff;
}
    
}



/*--------------------------------
news おわり
---------------------------------*/



/*--------------------------------
about
---------------------------------*/
#about .about_h{
    
}
.about_h{
    font-size: 2.5rem;
    font-weight: lighter;
    font-family: system-ui;
    letter-spacing: .2rem;
}
.about_p{
    font-size: 16px;
    letter-spacing: .075rem;
}
#about{
    padding: 10px 0 0;
    margin: -100px auto 50px;
    max-width: 100%;
    /* min-height: 90vh; */
}
.aboutback{
    position: relative;
    margin: 100px auto 0;
    width: 80%;
    left: 0;
    top: 0;
}

.aboutback p{
    color: #000;
}
#about span{
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    line-height: 2.8;
    text-align: left;
}


@media screen and (max-width: 767px){
    #about .about_h{
    font-size: 25px;
    font-weight: normal;
}
    .about_p {
    font-size: 14px;
    /* margin: 0px 15px 0px 15px; */
}
    .aboutback {
    margin: 0 auto;
    padding: 30px 0 30px;
}
    #about span{
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    line-height: 2.8;
    text-align: left;
}

}


/*--------------------------------
about おわり
---------------------------------*/


/*--------------------------------
skills
---------------------------------*/
#skill .skill_h{
    font-size: 2.5rem;
    font-weight: normal;
    font-family: system-ui;
}
#skill{
    padding: 100px 0 0;
    margin: -50px auto 0;
    max-width: 100%;
    min-height: 90vh;
}
.skillback{
    /* position: relative; */
    margin: 0 auto;
    padding: 50px 0;
    width: 80%;
    left: 0;
    top: 0;
}

.skillback p{
    color: #000;
}
#skill span{
    padding: 10px 0 0;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    line-height: 2;
    letter-spacing: .2rem;
}

.skilltitle{text-align: center;}
.skilltitle span{
    font-size: 15px;
    color: #000;
    font-weight: normal;
}
.skill_p{
    font-size: 14px;
    padding: 25px;
    text-align: justify;
    letter-spacing: .075rem;
    line-height: normal;
}
.skill_list{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    padding: 10px 0 10px;
}
.skill_list p{
    font-size: 12px;
    border: solid 1px #000;
    border-radius: 30px;
    padding: 10px;
    margin: 3px;
}
.flex_test-box {
    display: flex;              /* フレックスボックスにする */
    /* background-color: #eee; */     /* 背景色指定 */
                 /* 余白指定 */
    align-items:stretch;        /* 縦の位置指定 */
    justify-content: space-between;
}

.flex_test-item {
    padding: 10px;
    color:  #fff;               /* 文字色 */
    margin: 0 10px 0 0px;              /* 外側の余白 */
    border-radius:  5px;        /* 角丸指定 */
    width: 30%;                 /* 幅指定 */
    text-align: center;
}
.flex_test-item img{
    width: 45%;
    padding: 40px 0 30px;
}
.flex_test-item p{
   /* margin: 0px 15px 0px 15px; */
}

.flex_test-item:nth-child(1) {
     /* 背景色指定 */
     border: solid 1px #000;
     background-color: #fff;
}

.flex_test-item:nth-child(2) {
     /* 背景色指定 */
     border: solid 1px #000;
     background-color: #fff;
}

.flex_test-item:nth-child(3) {
    border: solid 1px #000;
    background-color: #fff; /* 背景色指定 */
}

.flex_test-item:nth-child(4) {
    background-color:  #00BCD4; /* 背景色指定 */
}


@media screen and (max-width: 767px){
    #skill .skill_h{
    font-size: 2rem;
    font-weight: normal;
    font-family: system-ui;
}
   
    #skill p {
    /* margin: 0px 15px 0px 15px; */
}
    .skillback {
    margin: 0 auto;
    padding: 30px 0 30px;
}
    .flex_test-box {
    display: block;              /* フレックスボックスにする */
    /* background-color: #eee; */     /* 背景色指定 */
    /* padding:  10px; */             /* 余白指定 */
    /* align-items:stretch; */        /* 縦の位置指定 */
    /* justify-content: space-evenly; */
}
    .flex_test-item {
    padding: 10px;
    color:  #fff;               /* 文字色 */
    margin: 20px 0;              /* 外側の余白 */
    border-radius:  5px;        /* 角丸指定 */
    width: 95%;                 /* 幅指定 */
    text-align: center;
}
}


/*--------------------------------
about おわり
---------------------------------*/

/*--------------------------------
ギャラリー 
---------------------------------*/



/*==================================================
ギャラリーのためのcss
===================================*/
#works .works_h{
    font-size: 2.5rem;
    font-weight: normal;
    font-family: system-ui;
}
#works{
    padding: 100px 0 0;
    margin: -50px auto 0;
    max-width: 100%;
    min-height: 90vh;
}
.worksback{
    /* position: relative; */
    margin: 0 auto;
    padding: 50px 0;
    width: 80%;
    left: 0;
    top: 0;
}

.worksback p{
    color: #000;
}
#works span{
    padding: 10px 0 0;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    line-height: 2;
    letter-spacing: .2rem;
}
@media screen and (max-width: 767px){
    
    #works .works_h{
    font-size: 2rem;
    font-weight: normal;
    font-family: system-ui;
}
    
}
/*＝＝＝並び替えボタンのCSS*/
.sort-btn{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	padding:50px 20px;
}

.sort-btn li{
	/* background: #245aa8; */
	border: solid 1px #000;
	list-style:none;
	border-radius: 20px;
	cursor: pointer;
	padding: 10px;
	margin:0 10px;
	color: #000;
}

.sort-btn li.active{/*ボタンに現在地＝activeというクラス名がついたら背景色を変更*/
	background: #fff;
	color: #000;
}

/*横幅が480px以下になった際の指定*/
@media only screen and (max-width: 480px) {
.sort-btn{
	display: flex;
	justify-content: space-between;
	padding: 30px 0 40px;
	font-size: 13px;
}
	
.sort-btn li{
	margin:0 0 10px 0;
	text-align:center;
	}	
}

/*＝＝＝Muuriのレイアウトのための調整 */
.grid {
  position: relative;/*並び替えの基準点を指定*/
}

/*各画像の横幅などの設定*/
.item {
  display: block;
  position: absolute;
  width: 33%;/*横並びで3つ表示*/
  z-index: 1;
list-style:none;
}

/*内側のボックスの高さが崩れないように維持*/
.item-content {
  position: relative;
  width: 100%;
  height: 100%;
/*  hover時のマスク↓  */
  display: block;
  line-height: 0;/*行の高さを0にする*/
  overflow: hidden;/*拡大してはみ出る要素を隠す*/
}

/*画像の横幅を100%にしてレスポンシブ化*/
.grid img{
	width:100%;
	height:auto;
	vertical-align: bottom;/*画像の下にできる余白を削除*/
   /*画像を拡大させる↓*/
	transform: scale(1);
	transition: .4s ease-in-out;/*移り変わる速さを変更したい場合はこの数値を変更*/
}
/*hoverで画像を拡大させる↓*/
.grid a:hover img{/*hoverした時の変化*/
	transform: scale(1.2);/*拡大の値を変更したい場合はこの数値を変更*/
}


/*横幅が768px以下になった際の指定*/
@media only screen and (max-width: 768px) {
.item {
  width: 49.5%;/*横並びで2つ表示*/
}
}



/*--------------------------------
works　作品
---------------------------------*/



/*左と右を囲う全体のエリア*/
#wrapper{
	position: relative;/*position stickyの基点にするため relativeをかける*/
	display: flex;/*左エリア、右エリア横並び指定*/
	flex-wrap: wrap;/*ボックスの折り返し可*/
}

/*左エリア*/
#fixed-area{
  /*左固定記述*/
  position: -webkit-sticky;/*Safari用*/
  position: sticky;
  top: 50px;
	/*横半分50%　縦を100vhにする*/
  width: 50%;
  height: 100vh;
}

.works_list{
    margin: 60px;
}
.skilltype p{
    width: fit-content;
    font-size: 12px;
    border: solid 1px #000;
    border-radius: 30px;
    padding: 10px;
    margin: 3px;
    background-color: #fff;
}
.credit{
    padding: 20px 0 0;
}
.credit span{
    font-weight: bold;
}
.credit a{
    border: solid 1px #000;
    background-color: #fff;
    text-decoration: none;
    padding: 3px 5px;
    border-radius: 5px;
}
.works_p{
    margin: 20px 0 20px;
    padding: 0px 0 20px;
    text-align: justify;
    letter-spacing: .075rem;
    line-height: normal;
    border-bottom: solid 1px #000;
}
.works_p span{
     font-size: 2rem;
     font-weight: bold;
     text-align: left;
     line-height: 2.5rem;
     padding: 0 0 20px;
}
.point{
    margin-bottom: 50px;
}
.point p{
    padding: 10px 0;
    text-align: justify;
    letter-spacing: .075rem;
    line-height: normal;
    font-size: 12px;
}
/*右エリア*/
#container{
	/*横半分50%にする*/
	width:50%;
}

/*＝＝＝＝＝＝＝＝＝＝＝768px以下の見え方＝＝＝＝＝＝＝＝＝＝＝＝＝*/

@media screen and (max-width: 768px){
#wrapper{
	display: block;
	/*display:flex;を解除*/
}
#fixed-area{
 	/*position stickyを解除*/
 	position: relative !important;
 	width:100%;/*横幅を100%にして1列に見せる*/
 	height: 40vh;/*縦幅を100vh⇒40vh　※任意の高さに設定可能*/
}
#container{
	margin: 450px 0 0;
	width:100%;/*横幅を100%にして1列に見せる*/
}
    #container div{
        /* margin-top: 100px; */
    }
    
.works_list{margin: 40px;}
.works_p{
    margin: 20px 0 20px;
    padding: 0px 0 20px;
    text-align: justify;
    letter-spacing: .075rem;
    line-height: normal;
    border-bottom: solid 1px #000;
}
.works_p span{
     font-size: 2rem;
     font-weight: bold;
     text-align: left;
     line-height: 2.5rem;
     padding: 0 0 20px;
}
}