@charset "UTF-8";

/*==================================================================
	Style setting
===================================================================*/
html {
	overflow-x: hidden;
	font-size: 62.5%;
}

body {
	color: #4d4d4d;
	font-family: 'Raleway', -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", HelveticaNeue, "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Sogoe UI", Verdana, "メイリオ", Meiryo, sans-serif;
	font-size: 14px;
	line-height: 1.75;
	overflow-x: hidden;
	-webkit-text-size-adjust: none;
	-ms-text-size-adjust: none;
	word-wrap: break-word;
	letter-spacing: 0.05em;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}

#header .inner {
	margin: auto;
	max-width: 1920px;
	padding-left: 15px;
	padding-right: 15px;
}
.navbar-brand img{
	width: 160px;
}
@media only screen and (max-width: 1235px) {
	.inner {
		padding-left: 15px;
		padding-right: 15px;
	}
}

@media only screen and (max-width: 991px) {
	#header .inner {
		background: #fff;
	}

	#contact a {
		width: 100% !important;
		margin: 20px 0;
	}
}

.background {
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	z-index: -1;
}

/* reveal */
:root {
	--delay: 0;
	--duration: 800ms;
	--iterations: 1;
}

.reveal,
.reveal::after {
	animation-delay: var(--animation-delay, 2s);
	animation-iteration-count: var(--iterations, 1);
	animation-duration: var(--duration, 800ms);
	animation-fill-mode: both;
	animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
}

.reveal {
	--animation-delay: var(--delay, 0);
	--animation-duration: var(--duration, 800ms);
	--animation-iterations: var(--iterations, 1);
	position: relative;
	font-size: 10vw;
	animation-name: clip-text;
	white-space: nowrap;
	cursor: default;
}

.web .reveal.on::after {
	background-color: #f0f0f0;
}

.graphic .reveal.on::after {
	background-color: #9c9c9c;
}

.sec_works .reveal.on::after {
	background-color: #fff;
}

.reveal.on::after {
	content: "";
	position: absolute;
	z-index: 999;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #000;
	transform: scaleX(0);
	transform-origin: 0 50%;
	pointer-events: none;
	animation-name: text-revealer;
}


@keyframes clip-text {
	from {
		clip-path: inset(0 100% 0 0);
	}

	to {
		clip-path: inset(0 0 0 0);
	}
}


@keyframes text-revealer {

	0%,
	50% {
		transform-origin: 0 50%;
	}

	60%,
	100% {
		transform-origin: 100% 50%;
	}


	60% {
		transform: scaleX(1);
	}

	100% {
		transform: scaleX(0);
	}
}

/* fade_up */
.fade_up {
	opacity: 0;
	transform: translateY(20px);
	transition-duration: 1s;
}

.fade_up.on {
	opacity: 1;
	transform: translateY(0);
}

.item_02 {
	transition-delay: .2s;
}

.item_03 {
	transition-delay: .4s;
}

.item_04 {
	transition-delay: .6s;
}

/*==================================================================
	Header setting
===================================================================*/
#header {
	left: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 999;
}

#header.fixed {
	background: #222;
	border-bottom: 1px solid #8e8e8e;
	transition: 1s;
}

#header_inner {
	display: flex;
	justify-content: space-between;
}

#logo {
	width: 150px;
	padding-top: 15px;
}

#h_right {
	align-items: center;
	display: flex;
}

#contact a {
	background: #007FBA;
	color: #fff;
	text-decoration: none;
	display: block;
	width: 240px;
	text-align: center;
	padding: 20px 0;
	font-size: 1.6rem;
	font-weight: 700;
}

.gg-mail,
.gg-mail::after {
	display: inline-block;
	box-sizing: border-box;
	height: 14px;
	border: 2px solid;
	vertical-align: middle;
}

.gg-mail {
	overflow: hidden;
	transform: scale(var(--ggs, 1));
	position: relative;
	width: 18px;
	border-radius: 2px;
	margin-left: 5px;
}

.gg-mail::after {
	content: "";
	position: absolute;
	border-radius: 3px;
	width: 14px;
	transform: rotate(-45deg);
	bottom: 3px;
	left: 0
}

/*==================================================================
	mainvisual setting
===================================================================*/
#mainvisual {
	position: relative;
}

#mainvisual .main_txt {
	position: absolute;
	bottom: 5%;
	left: 0;
	right: 0;
	max-width: 728px;
	width: 75%;
	margin: 0 auto;
}

@media only screen and (max-width: 767px) {
	#mainvisual .main_txt {
		width: 100%;
	}
}

/*==================================================================
	contents setting
===================================================================*/

section {
	padding: 80px 0 65px;
}

.sec_title {
	position: relative;
}

.sec_title::before {
	content: '';
	display: inline-block;
	width: 15px;
	height: 30px;
	background: url(../imgs/icon_01.svg) no-repeat;
	background-size: contain;
	vertical-align: middle;
	position: absolute;
	top: 0;
	left: -25px;
}

.sec_title img {
	height: 85px;
	width: auto;
}

.sec_title+p {
	font-weight: 700;
	font-size: 16px;
}

.txt_slogan {
	font-size: 36px;
	line-height: 52px;
	letter-spacing: 2.7px;
	color: #00A4E4;
	font-weight: 700;
	margin-bottom: 20px;
	text-align: justify;
}

.txt_slogan+p {
	font-size: 16px;
	font-weight: 700;
}

.sec_service h3 {
	font-weight: 700;
	font-size: 18px;
	margin-bottom: 15px;
	line-height: 1.75;
}

.sec_service h3 {
	display: inline;
	color: #00A4E4;
	font-size: 250%;
	background: #fff;
	padding: 10px;
}

.sec_service h3+p {
	text-align: justify;
	margin-top: 15px;
}

.btn_more {
	display: block;
	background: #0071E4;
	width: 350px;
	margin: 40px auto;
	padding: 20px 0;
	color: #fff;
	text-align: center;
	font-size: 16px;
	font-weight: 700;
}

.sec_contact {
	background: -webkit-linear-gradient(60deg, rgba(56, 128, 208, 1) 0%, rgba(60, 131, 209, 1) 17.42%, rgba(72, 140, 212, 1) 34.63%, rgba(92, 156, 218, 1) 51.77%, rgba(119, 177, 226, 1) 68.86%, rgba(155, 205, 236, 1) 85.76%, rgba(191, 233, 246, 1) 100%);
	background: -webkit-gradient(linear, 33.76% 212.9%, 66.24% -112.9%, color-stop(0, rgba(56, 128, 208, 1)), color-stop(0.1742, rgba(60, 131, 209, 1)), color-stop(0.3463, rgba(72, 140, 212, 1)), color-stop(0.5177, rgba(92, 156, 218, 1)), color-stop(0.6886, rgba(119, 177, 226, 1)), color-stop(0.8576, rgba(155, 205, 236, 1)), color-stop(1, rgba(191, 233, 246, 1)));
	background: -ms-linear-gradient(60deg, rgba(56, 128, 208, 1) 0%, rgba(60, 131, 209, 1) 17.42%, rgba(72, 140, 212, 1) 34.63%, rgba(92, 156, 218, 1) 51.77%, rgba(119, 177, 226, 1) 68.86%, rgba(155, 205, 236, 1) 85.76%, rgba(191, 233, 246, 1) 100%);
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#3880D0', endColorstr='#BFE9F6' ,GradientType=0)";
	background: linear-gradient(30deg, rgba(56, 128, 208, 1) 0%, rgba(60, 131, 209, 1) 17.42%, rgba(72, 140, 212, 1) 34.63%, rgba(92, 156, 218, 1) 51.77%, rgba(119, 177, 226, 1) 68.86%, rgba(155, 205, 236, 1) 85.76%, rgba(191, 233, 246, 1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3880D0', endColorstr='#BFE9F6', GradientType=1);
	color: #fff;
	font-weight: 700;
}

.table-type-01,
.table-type-02,
.table-type-03,
.table-form-01 {
	text-align: left;
	margin-top: 40px;
	border-top: 1px solid #d8dadc;
}

.pc-w-25p {
	width: 25% !important;
}

.pc-w-100p {
	width: 100% !important;
}

.pc-w-75p {
	width: 75% !important;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

.table-type-01_header,
.table-type-01_data,
.table-type-02_header,
.table-type-02_data,
.table-type-03_header,
.table-type-03_data,
.table-form-01_header,
.table-form-01_data {
	padding: 20px 25px;
	border-bottom: 1px solid #d8dadc;
	vertical-align: top;
	text-align: left;
	background-color: #fff;
}

.btn_contact {
	display: block;
	text-align: center;
	background: #007FBA;
	color: #fff;
	font-size: 16px;
	padding: 30px 0;
}

.col-md-6,
.col-md-4 {
	margin-bottom: 20px;
}

.service_wrap {
	position: relative;
}

.service_item {
	position: absolute;
	top: 20px;
	left: 20px;
	color: #fff;
	max-width: 450px;
	padding: 0 15px;
}

.no-gutters .col-md-6 {
	margin-bottom: 0;
}

@media only screen and (max-width: 767px) {
	.sp-w-30p {
		width: 30% !important;
	}

	.sp-w-70p {
		width: 70% !important;
	}

	.table-type-02_header {
		padding-left: 0;
		padding-right: 20px;
	}

	section {
		padding: 40px 0 35px;
	}

	.sec_title::before {
		content: '';
		display: inline-block;
		width: 15px;
		height: 30px;
		background: url(../imgs/icon_01.svg) no-repeat;
		background-size: contain;
		vertical-align: middle;
		position: absolute;
		top: 0;
		left: 0px;
	}

	.sec_title img {
		height: 40px;
		width: auto;
		padding-left: 20px;
	}

	.txt_slogan {
		font-size: 24px;
		line-height: 1.45;
	}

	.btn_more {
		width: 87.5%;
		margin: 20px auto 0;
	}
	.service_item {
		left: 0;
	}
}

/*==================================================================
	Footer setting
===================================================================*/
#footer {
	background: #222;
	padding: 13px 0;
}

#fnavi>ul {
	display: flex;
	justify-content: center;
	margin-bottom: 23px;
}

#fnavi>ul>li {
	padding: 0 5px;
}

#fnavi>ul>li>a {
	color: #fff;
	font-size: 10px;
	font-weight: bold;
	text-decoration: none;
	text-transform: uppercase;
}

#fnavi>ul>li>a:hover {
	text-decoration: underline;
}

#copyright {
	color: #fff;
	font-size: 8px;
	text-align: center;
}