@charset "utf-8";
/* CSS Document */

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

/* Float Elements
---------------------------------*/
.fl-lt {float:left;}
.fl-rt {float:right;}

/* Clear Floated Elements
---------------------------------*/
.clear {
  clear: both;
  display: block;
  overflow: hidden;
  visibility: hidden;
  width: 0;
  height: 0;
}

.clearfix{
    clear:both;
}

.clearfix:before,
.clearfix:after {
  content: '\0020';
  display: block;
  overflow: hidden;
  visibility: hidden;
  width: 0;
  height: 0;
}

.clearfix:after {
  clear: both;
}
ul{ list-style:none;}

.figure{ margin:0px;}

img{ max-width:100%;}

a, a:hover, a:active{ outline:0px !important}

/* Primary Styles
---------------------------------*/
body {
	background:#fff;
	font-size:15px;
	font-weight:normal;
	line-height: 2.1;
	color:#444;
	margin:0;
	padding:0;
    width:100%;
	min-width: 360px;
	animation: fade_load forwards 2s ease 1s;
	opacity: 0;
	font-family:'Noto Sans JP', sans-serif;
}
@keyframes fade_load {
    0% {opacity: 0}
    100% {opacity: 1}
}

h2,h3,h4,h5,h6,p{
	font-family:'Noto Sans JP', sans-serif;
}

h2{
	font-size:28px;
	font-weight:700;
	line-height: 1.5;
	letter-spacing: 0.05em;
	text-indent: 0.05em;
	text-align:center;
	color: #28a3c2;
    margin:40px auto ;
}

h3{
	font-size:17px;
	font-weight: 600;
	line-height: 1.7;
	margin:0 0 5px 0;
}

h4{
	font-size:16px;
	font-weight: 500;
	margin:0 0 5px 0;
}

p{
	margin:0;
}

.h_line {
	position: relative;

  }
  .h_line:before {
	content: '';
	position: absolute;
	bottom: -15px;
	display: inline-block;
	width: 60px;
	height: 4px;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	background-color: #28a3c2;

	border-radius: 2px;
  }

.fook{
    width:500px;
    margin:20px auto;
}

.sp_br{
	display: inline;
}
.inline_br {
	display: inline-block;
	text-indent: 0;
}

@media only screen and (max-width: 767px) {
	.sp_br{
		display: block;
	}

    .fook{
        width:100%;
        margin:20px auto;
    }
}


/* Header Styles
---------------------------------*/
#header_outer{
	background:#fff;
	padding:15px 0;
    width:100%;
}

.header_section{
	position:relative;
}

.logo{
    text-align:center;
    width:200px;
    margin:0 auto;
    margin-top:20px;
}

@media only screen and (max-width: 767px) {
	#header_outer{
		padding:0px;
	}
	#header_outer .container {
		padding: 0;
	}
	.h_fixed {
		position: fixed;
		top: 0;
		left:0;
		width: 100%;
   	 	background: #fff;
		box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
		z-index: 1000;
		animation: h_fixed_fadeIn1 1s ease 1 normal forwards;
	}
	@keyframes h_fixed_fadeIn1 {
		from {
			transform: translateY(-100px);
		}
		to {
			transform: translateY(0);
		}
	  }
	.logo{
		padding:8px 0;
		text-align:center;
		float:left;
		background-size:20px 20px;
		background-position:20px 10px;
	}
}

.res-nav_click{ display:none;}


/* Nav Styles
---------------------------------*/

.nav{
    margin:30px 0;
    z-index:100;
}

.nav ul{
	list-style:none;
	padding:0px;
    margin:0 auto;
    text-align:center;
}
.nav ul.toggle{
	display:none;
	visibility:hidden;
	height:0px;
	overflow:hidden;
	margin-bottom: 0;
}

.nav ul li{
	display:inline-block;
	margin:0 23px;
}
.nav ul li:last-child{
	margin:0 0 0 23px;
}

/**/
@media only screen and (min-width: 767px) {
	.h_fixed #nav {
		position: fixed;
		top: 0;
		left: 0;
		margin: 0;
		padding: 20px 0;
		width: 100%;
		background-color: #fff;
		box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
		animation: h_fixed_fadeIn2 1s ease 1 normal forwards;
	}
	@keyframes h_fixed_fadeIn2 {
		from {
			transform: translateY(-100px);
		}
		to {
			transform: translateY(0);
		}
	}
}
/**/

@media only screen and (max-width: 767px) {
	.nav ul li:last-child{
		margin:0 0 0 0;
	}
}

.nav ul li a{
	display:block;
	font-size:14px;
    color:#333;
	text-decoration:none;
	font-weight: 500;
    padding-top:12px;
	transition:all 0.3s ease;
}

.nav ul li a:hover{
    color:#28a3c2;
}

/* id
---------------------------------*/
#company,
#recruit,
#contact{
    margin-top:45px;
}


/* About
---------------------------------*/
#about{
	position:relative;
	width: 100%;
	height: calc(100vh - 220px);
	min-height: 600px;
	display: flex;
  justify-content: center;
  align-items: center;
	overflow: hidden;
}
.kv_video video {
	position: absolute;
    top: 50%;
    left: 50%;
	transform: translateX(-50%) translateY(-50%);
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
}
#about p{
	font-size:230%;
	font-weight:bold;
	line-height:70px;
	letter-spacing: 0.05em;
	color:#fff;
	text-align:center;
	text-shadow: 5px 5px 10px rgba(14, 209, 231, 0.8);
	width:100%;
}
#about p span{
	display: block;
}

/* Services
---------------------------------*/

#service{
	padding:20px 0px;
}

#service p:not( :first-child ){
    margin-top:20px;
}

.service_block{
	text-align:center;
	margin-top: 35px;
	padding-left: 15px;
    padding-right: 15px;
}

.service_icon{
	border:2px solid #55B488;
	border-radius:50%;
	width:70px;
	height:70px;
	margin:0px auto 15px;
}

.service_icon.icon2{
	border:2px solid #28a3c2;
}

.service_icon.icon3{
	border:2px solid #28a3c2;
}

.service_icon span {
    background:#55B488;
    border: 3px solid #fff;
    border-radius: 50%;
    display: block;
    height: 100%;
    width: 100%;
}
.service_icon.icon2 span {
    background:#28a3c2;
}
.service_icon.icon3 span{
    background:#28a3c2;
}
.service_icon i{
	color: #fff;
    font-size: 30px;
    margin-top: 0;
    position: relative;
    top: 14px;
    z-index: 20;
}

.service_block h3{
	margin:0 0 20px;
}

.service_block h4{
	margin:35px 0 18px;
}

.service_block p{
    text-align:center;
}

/* Company
---------------------------------*/
.company_area{
    margin:0 auto;
}

.tbl_company{
    width:750px;
    margin:0 auto;
}
.tbl_company tr{
    height:50px;
    border-bottom: 1px solid #eee;
}
.tbl_company th{
    font-weight:normal;
    width:25%;
}

.tbl_company td{
    font-weight:normal;
    padding:15px 0;
}

.iframe-wrap iframe{
    width:100%;
    height:400px;
}

/**/
.tbl_recruit {
	line-height: 1.75;
}
.tbl_recruit th {
	width:160px;
}
.tbl_recruit td ul {
    padding: 0;
}
.tbl_recruit_flex {
	display: flex;
}
.tbl_recruit_flex_left {
	width: 120px;
}
.tbl_recruit_inline {
	display: inline-block;
}
.recruit_txt {
	display: inline-block;
	font-weight: 700;
	line-height: 1.8;
	margin-top: 30px;
	background: linear-gradient(transparent 70%, rgba(0,7,99,0.3) 0%);
}
/**/

/* Contact
---------------------------------*/
.contact_txt {
	letter-spacing: 0.05em;
	text-align: center;
}
.contact_privacy{
  margin:15px 0 15px 0;
  padding:15px;
  text-align:center;
	background-color: #efefef;
}
.agree{
    margin-left:10px;
}
.required{
	font-size: 13px;
	color:#F26964;
	margin-left: 10px;
}
.form{
  margin:30px auto;
}

/***** Mail Form *****/
#formWrap {
	width:700px;
	margin:0 auto;
	color:#555;
	line-height:120%;
	font-size:90%;
}
table.formTable{
	width:100%;
	margin:0 auto;
	border-collapse:collapse;
}
table.formTable td,
table.formTable th{
	display: block;
	border:1px solid #ccc;
	padding:10px;
	width:100%;
}
table.formTable th{
	background:#efefef;
	text-align:left;
}
form .formTable input[type="text"], form textarea {
	width:95%;
	padding:5px;
	display:block;
}

/* Footer
---------------------------------*/

.footer_section{
    background-color:#28a3c2;
}

.footer_bottom{
	padding:20px 0;
}

.footer_bottom span{
	display:block;
	font-size:14px;
	color:#fff;
	text-align:center;
	margin-bottom: 5px;
}

.footer_bottom span a {
    display: inline-block;
    color: #fff;
    font-size: 16px;
    transition: all 0.3s ease-in-out;
}


@media only screen and (max-width: 767px) {
	.scroll-to-fixed-fixed {
		box-shadow:0 0 5px rgba(0, 0, 0, 0.15);
	}
    #company,
    #recruit,
    #contact{
        margin-top:20px;
    }

	#about{
	    position:relative;
		/* padding: 100px 0;
		background-attachment: inherit;
		background-size: cover;
		background-position: center top; */
		min-height: 480px;
	}

	#about p {
		font-size: 160%;
	    line-height: 1.85;
	}

    .tbl_company{
        width: 90%;
        margin:0 auto;
    }
	.tbl_company tr{
		border: none;
	}
	.tbl_company th,
	.tbl_company td{
		display: block;
		width: 100%;
		padding: 5px 20px;
	}

	.tbl_company th{
		font-weight: 500;
		color: #fff;
		background-color: #28a3c2;
	}

	.tbl_company td{
		border: solid #eee;
		border-width: 0 1px;
	}
	.tbl_company tr:last-of-type td {
		border-bottom-width: 1px;
	}
	.map_ttl {
		margin: 30px auto 35px;
	}
	.required{
		font-size: 12px;
		margin-left: 5px;
	}
}


/* Animation Timers
---------------------------------*/
.delay01 {animation-delay: 2.2s;}
.delay02 {animation-delay: 2.4s;}
.delay03 {animation-delay: 2.6s;}
.delay04 {animation-delay: 2.8s;}

.delay-02s {
	animation-delay: 0.2s;
	-webkit-animation-delay: 0.2s;
}
.delay-03s {
	animation-delay: 0.3s;
	-webkit-animation-delay: 0.3s;
}
.delay-04s {
	animation-delay: 0.4s;
	-webkit-animation-delay: 0.4s;
}

.delay-05s {
	animation-delay: 0.5s;
	-webkit-animation-delay: 0.5s;
}
.delay-06s {
	animation-delay: 0.6s;
	-webkit-animation-delay: 0.6s;
}

.delay-07s {
	animation-delay: 0.7s;
	-webkit-animation-delay: 0.7s;
}
.delay-08s {
	animation-delay: 0.8s;
	-webkit-animation-delay: 0.8s;
}

.delay-09s {
	animation-delay: 0.9s;
	-webkit-animation-delay: 0.9s;
}
.delay-1s {
	animation-delay: 1s;
	-webkit-animation-delay: 1s;
}
.delay-12s {
	animation-delay: 1.2s;
	-webkit-animation-delay: 1.2s;
}


/* ==========================================================================
   Media Queries
   ========================================================================== */

@media only screen and (min-width: 768px) and (max-width: 991px) {
	h2{ font-size:30px}
	h3{ font-size:15px;}
	.form{ margin:0;}
	#service{ padding:40px 0px;}
}

@media only screen and (max-width: 767px) {
	#service{ padding:20px 0px;}
	body{ font-size:13px;}
	h2{ font-size:26px; margin: 25px auto 30px;}
	h3{ font-size:14px;}

	.form{ margin:15px auto 0; max-width: 480px;}
	.logo{ width:200px;margin:0 auto; float:none;}
	.nav{ float:none; position:absolute; width:100%; top: 45px;}
	.nav ul li{ border-bottom:1px solid #CCC; display:block; float:none; width:100%; margin:0px; text-align:center;}
	.nav ul li a{ padding:6px 0px}
	.res-nav_click{
		bottom: 3px;
		font-size: 40px;
		right: 15px;
		line-height: 1.5;
		position: absolute;
		top:0;
		bottom:0;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.nav ul{ display:none; background:#fff;}

	.nav ul.toggle{
		display:none;
		visibility:visible;
		height:auto;
		overflow:auto;
	}
}
