
@charset "utf-8";
/*@import url(https://fonts.googleapis.com/css?family=Rajdhani);*/
/* CSS Document */

body{
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    line-height: 1.4em;
}

/*------------------------------------------
header
------------------------------------------*/


/*========= ボタンのためのCSS ===============*/

/*ボタン全体の形状*/
.openbtn{
	/*はじめは非表示に*/
	display: none;
	/*ボタンの位置*/
	position:fixed;
	top:10px;
	right: 10px;
	z-index: 999;
	/*ボタンの形状*/
	background:#666;
	cursor: pointer;
	width: 50px;
	height:50px;
	border-radius: 5px;
}

/*ボタンのアイコン設定*/
.openbtn span{
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 14px;
	height: 3px;
	border-radius: 2px;
	background-color: #fff;
	width: 45%;
}

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

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

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

/*activeクラスが付与された後のボタンのアイコン設定*/
.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%;
}

/*fadeDownクラスが付与された後のボタンの出現アニメーション設定*/
.fadeDown {
    animation-name: fadeDownAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
    display: block;
}
@keyframes fadeDownAnime{
	from {
		opacity: 0;
		transform: translateY(-100px);
	}

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



/*==ヘッダーの形状*/
header{
	height: 70px;
	width:calc(100% - 40px);
	padding: 20px;
	/*display: flex;*/
	justify-content: space-between;
	align-items: center;
	background:#333;
	color:#fff;
	text-align: center;
}

/*.doneクラスがついたヘッダー*/
header.dnone {
    height: 40px;
	/*opacity: 0;/*透過0にして非表示に*/
}

/*メニューボタンをクリックした際に付与されるpanelactiveクラスがついたら*/
header.dnone.panelactive {
	opacity: 1;/*不透明にして出現*/
}


/*==ヘッダーのテキストナビゲーションの形状*/
header #g_navi ul{
	list-style: none;
	display: flex;
	justify-content: center;
    padding: 0;
}

header #g_navi ul li a{
	display: block;
	text-decoration: none;
	color: #666;
	padding:10px;
}



/*.doneクラスがついたヘッダーのテキストナビゲーションの形状*/
header.dnone #g_navi{
	/*固定位置にして最背面に*/
	position:fixed;
	top: 0;
	left: 0;
	z-index: -1;
	/*高さと幅*/  
	width:100%;
	height: 100vh;
	/*天地中央＆テキスト中央揃え*/  
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	/*はじめは透過0に*/  
	opacity: 0;
	transition: all 0.4s;
}

/*メニューボタンをクリックした際に付与されるpanelactiveクラスがついたナビゲーションの形状*/
header.dnone.panelactive #g_navi{
	opacity: 1;/*不透明に*/
	z-index:3;/*最前面に*/
	background:#eee;
}

header.dnone.panelactive #g_navi ul{
	display:block;/*flexの横並びをblockにして縦並びに*/
}


/*リストの形状*/

header.dnone.panelactive #g_navi li a{
	color: #333;
	text-decoration: none;
	padding:10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
	transition:all 0.3s;
}

section{
    position: relative;
    z-index: 1;
}



@media (max-width: 991px){
    header #g_navi ul {
        flex-wrap: wrap;
    }   
}




/*------------------------------------
header
-----------------------------------*/
header{
	background: none;
}

header .inner{
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 var(--padding);
	display: flex;
	justify-content: space-between;
}

header h1{
	margin: 0;
    opacity: 0;
}

header h1 img{
	width: 75px;
    height: 100%;
}

header.dnone.panelactive #g_navi ul{
	padding: 0;
}


@media (max-width: 991px){
    header{
        height: 100%;
    }
	header .inner{
		width: auto;
		padding: 0;
		margin: 0;
        display: block;
	}
    
    header h1{
        position: absolute;
    }
    
    header h1 img{
        height: 50px;
        width: 50px;
    }
}




/*-----------------------------------
main_visual
-----------------------------------*/

#main_visual{
	background: var(--bg);
	width: 100%;
	height: calc(100vh - 250px);
	position: relative;
	background: url("../../images/top.png") no-repeat center center / cover;
}


#main_visual .fede {
	font-size: 80px;
	font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-weight: bold;
}

.fade_txt {
    width: 100%;
	font-size: 35px;
	font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-weight: bold;
    text-align: center;
    color: #000;
    position: absolute;
    top: 80%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.current{
	font-size: 830px;
	font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-weight: bold;

}

#main_visula .fede p ul li{
 font-family:"Roboto Slab" , Garamond , "Times New Roman" , "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , "HGS明朝E" , "ＭＳ Ｐ明朝" , "MS PMincho" , serif;
  font-size:340px;
  margin:0;
}
/*-----------------------------------
svganimeblock
----------------------------------*/
/*=============== SVGアニメーション内の指定 =================*/

/*SVGの横幅*/
.svganimeblock{
	max-width:800px;
	width:100%;
}

/*SVGの可変*/
.svganimeblock svg{
	width:100%;
}

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

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


.svganimeblock{
	position: absolute;
	top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}




.svganimeblock{
	padding: 0 20px;
	width: calc(100% - 40px);
}





@media (max-width: 991px){
    .fade_txt {
        width: 9em;
        line-height: 1.5em;
    }
}


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

main{
	background: var(--gray);
	padding: 0;
}

main > section{
	padding: calc(var(--padding) * 4) 0;
}

main .container{
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 calc(var(--padding) * 2) ;
}




@media (max-width: 991px){
	main .container{
		padding: 0 var(--padding) ;
	}
}



/*------------------------------
content
-------------------------------*/

main .container .content{
	padding-bottom: calc(var(--padding) * 2);
}

main .container .content:last-child{
	padding-bottom: 0;
}




/*-------------------------------
section_h2
--------------------------------*/
section .section_h2{
	line-height: 2em;
    text-align: left;
}
section .section_h2 .text1{
	font-size: 3em;
	display: block;
	font-weight: normal;
    line-height: 1em;
}

section .section_h2 .text1:first-letter{
	color: var(--att);
}

section .section_h2 .text2{
	font-size: 0.7em;
	letter-spacing: 2px;
}





/*-------------------------------
section_h3
--------------------------------*/
section .section_h3{
	font-size: 2em;
    margin-top: 0;
}





@media (max-width: 991px){
    section .section_h3{
        font-size: 6vw;
    }
}


/*-------------------------------
banner
---------------------------------*/

#banner{
	text-align: center;
}





/*-------------------------------
works_box
--------------------------------*/



.works_box .inner{
	max-width: 1600px;
	padding-bottom: 20%;
	display: flex;
}


.works_box .inner:nth-child(odd){
	margin-left: auto;
}
.works_box .inner:nth-child(even){
	margin-right: auto;
	flex-direction: row-reverse;
}

.works_box .inner .text_box{
	padding: 20px;
    padding-top: 0;
}


.works_box .inner .text_box{
	width: 50%;
}

.works_box .inner .thum_box p{
    margin: 0;
}


@media (max-width: 991px){
	.works_box .inner{
		display: block;
	}
	.works_box .inner .text_box{
		width: calc(100% - 40px);
        padding-top: 20px;
	}
	.works_box .inner .thum_box{
		width: 100%;
	}
}




/*------------------------------
sdgs
------------------------------*/
#sdgs{
    text-align: center;
}

#sdgs .sdgs_box{
    
    max-width: 800px;
    background: #fff;
    border: #e8e8e8 solid 1px;
    padding: 20px;
    margin: 0 auto;
}
#sdgs .sdgs_box h3{
    font-size: 2em;
}

#sdgs .inner{
    
    display: table;
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    border: var(--att) solid 1px;
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 20px;
}


#sdgs .inner p{
    margin: 0;
    display: table-cell;
    vertical-align: middle;
    text-align: left;
}


#sdgs .inner .icon{
    width: 100px;
    padding-right: 20px;
}


@media (max-width: 991px){
    #sdgs .inner{
        display: block;
        width: auto;
    }
    
    #sdgs .sdgs_box{
        max-width: 100%;
        border: none;
        padding: 0;
    }
    
    #sdgs .sdgs_box h3{
        text-align: center;
    }
}


/*------------------------------
tb01
------------------------------*/


.tb01{
	border-collapse: collapse;
	max-width: 800px;
	width: 100%;
	margin: 0 auto;
}

.tb01 th{
	width: 200px;
}
.tb01 th,
.tb01 td{
	padding: 10px;
	border: solid 1px #ccc;
	text-align:center;
	box-sizing:border-box;
	background: var(--bg);
	word-break: break-all;
}
.tb01 th {
	background: var(--color);
	color: #fff;
}

.tb01 td{
    text-align: left;
}
@media screen and (max-width: 640px) {
	.tb01 {
		width: 100%;
	}
	.tb01 th,
	.tb01 td {
		display: block;
		width: 100%;
		border-bottom:none;
	}
	.tb01 tr:last-child{
		border-bottom: solid 1px #ccc;
    }
    .tb01 td{
        text-align: center;
    }
}






/*----------------------------------
formTable
----------------------------------*/

.formTable,
.formTable tbody,
.formTable tr,
.formTable th,
.formTable td{
    width: 100%;
	max-width: 800px;
	margin: 0 auto;
    display: block;
	text-align: left;

}

.formTable td input,
.formTable td textarea{
    padding: var(--padding);
	width: calc(100% - var(--padding) - var(--padding) - 2px);
	border: #ccc solid 1px;
	border-radius: 5px;
}

.formTable tr{
    padding-bottom: 0.5em;
}

.formTable span{
    font-size: 0.8em;
    color: red !important;
    font-weight: normal;
}

.cp_form .submit .btn_p {
	margin: 0 auto;
	text-align: center;
}
.cp_form .submit .btn_p input{
	display: inline-block;
	border-radius: 5px;
	border: #000 solid 1px;
	font-size: 1.2em;
	font-weight: bold;
	text-align: center;
	cursor: pointer;
	padding: var(--padding) calc(var(--padding)*2);
	background: #000;
	color: #fff;
	line-height: 1em;
	transition: 0.5s;
}

.cp_form .submit .btn_p input:hover{
	background: #fff;
	color: #000;
}


.cp_form .btn_prev {
	text-align: center;
}
.cp_form .btn_prev input{
	border: none;
	text-decoration: underline;
	background: none;
	text-align: center;
}



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

footer{
	background: #fff;
	position: relative;
	z-index: 1;
}


footer .inner{
	max-width: 1280px;
	margin: 0 auto;
	padding: calc(var(--padding) * 4) var(--padding);
	display: flex;
	justify-content:space-between;
	
}

footer .inner .logo_box{
	display:flex;
    width: 30%;
}

footer .inner .logo_box .logo{
    margin: 0;
}

footer .inner .logo_box .text_box{
	padding: 0 0 0 20px;
    line-height: 1.5em;
}

footer .inner .logo_box .text_box p{
    margin-top: 0;
}

footer .inner .logo_box .text_box strong{
	font-size: 1.2em;
}

footer address{
	font-style: normal;
	font-size: 0.8em;
	text-align: center;
}





footer .link_box ul{
	padding: 0;
	margin: 0;
	display: flex;
	grid-gap: 10px;
	justify-content: center;
}


footer .link_box ul li{
	list-style: none;
}

footer .googlemap {
    width: 65%;
}
footer .googlemap iframe{
    width: 100%;
    height: 300px;
}




@media (max-width: 991px){
    
    footer .inner{
        display: block;
    }
    footer .inner .logo_box,
    footer .inner .googlemap{
        width: 100%;
    }
    
    footer .link_box ul{
        display: block;
        padding: 60px 20px;
        border-top: #c2c2c2 solid 1px;
    }
    
    footer .inner .logo_box .logo{
        width: 100px;
    }
}



/*-----------------------------
loding
-------------------------------*/

#loding{
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	background: var(--att);
	width: 100%;
	height: 100vh;


	animation-name: fadeInAnime;
	animation-fill-mode:forwards;
	animation-duration:0.5s;
	animation-timing-function:ease;
	animation-delay: 1s;
	animation-direction:normal;
}

#loding p{
	margin: 0;
	background: #fff;
	display: block;
	width: 20px;
	height: 20px;
	opacity: 0;
	

}

#loding div{
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);

	display: flex;
	grid-gap:20px;
}


#loding p:nth-child(1){
	animation:2s linear infinite rotation;
	animation-delay: 0.2s;
}

#loding p:nth-child(2){
	animation:2s linear infinite rotation;
	animation-delay: 0.4s;
}

#loding p:nth-child(3){
	animation:2s linear infinite rotation;
	animation-delay: 0.6s;
}


@keyframes rotation{
	0%{ opacity:0; transform:rotate(0);}
	50%{ opacity:1; }
	100%{ opacity:0; transform:rotate(360deg); }
}

@keyframes show{
	0%{ }
	100%{  }
}


@keyframes fadeInAnime{
	0% {
	  opacity: 1;
	}
  
	100% {
	  opacity: 0;
	  display: none;
	}
  }


/* about_box
-----------------------------------*/

/*------------------------------------
container
------------------------------------*/
#container {
    position: relative;
    z-index: 10;
}

#container.content {
   /* background: #fbfbfb;*/
	padding-top: 0;
}

#container .container{
	padding: 10em 1em;
}


#container section article{
	padding: 0.5em;
}



#container section article.box{
	padding-top: 5em;
}

#container section article em{
	font-weight: bold;
	color: #e09b57;
	font-style:normal;
}




#container .link{
    font-size: 1.1em;
    color: #196ac5;
    font-weight: bold
}

#container .link a:hover{
    text-decoration: none;
}


#container section{
    padding-bottom: 5em;
}




@media all and (max-width: 767px) {
/* 767pxまでの幅の場合に適応される */
	#container.content .container{
		padding-top: 0;
	}
}



/* h
---------------------------------------*/

#container h3{
    word-wrap:break-word;
}

.section_h2{
    font-weight: bold;
    font-size: 1.8em;
	line-height: 2em;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	margin-bottom: 3em;
}

.section_h2 span{
	font-size: 3em;
	font-family: 'Roboto', sans-serif;
	font-weight: 400;
}





#container section .section_h3{
    font-size: 1.4em;
    font-weight: bold;
    display: inline-block;
    border-bottom: #196ac5 solid 3px;
    line-height: 1.5em;
    margin: 1em 0 1em 0;
}

#container section .section_h4{
    font-weight: bold;
}
#container section .section_h4 img{
    vertical-align:bottom;
    padding-right: 0.5em;
}


#container h4 .small{
    font-weight: bold;
    color: #252525;
    font-style: normal;
}


#container h4.cp_h1title{
	position: relative;
	overflow: hidden;
	padding: .3em;
}
#container h4.cp_h1title::before,
#container h4.cp_h1title::after{
	content: "";
	position: absolute;
	bottom: 0;
}
#container h4.cp_h1title:before{
	border-bottom: 4px solid #2ea7e0;
	width: 100%;
}
#container h4.cp_h1title:after{
	border-bottom: 4px solid #a2dcf7;
	width: 100%;
}



@media all and (max-width: 767px) {
/* 767pxまでの幅の場合に適応される */
    #container section .section_h2{
        font-size: 1.5em;
    }
}




/* about_box
-----------------------------------*/
#about_box{
	background:url("../../images/about.jpg") center bottom no-repeat;
	background-size: contain;
	margin-top: 20em;
}



@media all and (max-width: 767px) {
/* 767pxまでの幅の場合に適応される */
    #about_box{
        background-size:auto;
    }
}


/* text_grow
-----------------------------------*/

.text_grow{
	text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 6px #fff;
}
