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

/* ----------------------------------------------
	base
---------------------------------------------- */
body {
	font-family:YuGothic, '游ゴシック', sans-serif;
	font-size: 16px;
	font-weight: 500;
	color: #222;
}
#wrapper {
	min-width: 1000px;
	overflow: hidden;
}
.inner {
	width: 1000px;
	margin: 0 auto;
}
img {
	vertical-align: bottom;
}
a {
	text-decoration: none;
	color: #222;
}
a.btn {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 50px;
	background: #555;
	color: #fff;
	box-shadow: 0 5px 10px rgba(0,0,0,.12);
	transition: 0.3s ease;
	position: relative;
	overflow: hidden;
}
a.btn::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(255,255,255,.2);
	position: absolute;
	top: 0;
	left: -100%;
	transition: left 0.3s ease;
}
a.btn span {
	display: inline-block;
	padding-left: 24px;
	position: relative;
}
a.btn span::before {
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4px 0 4px 10px;
	border-color: transparent transparent transparent #fff;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
	transition: left 0.3s ease;
}
a.btn:hover {
	box-shadow: 0 1px 3px rgba(0,0,0,.1);
	transition: 0.3s ease;
}
a.btn:hover::before {
	left: 0;
	transition: 0.3s ease;
}
a.btn:hover span::before {
	left: 4px;
	transition: 0.3s ease;
}

a.text_link {
	text-decoration: underline;
	transition: 0.3s ease;
}
a.text_link:hover {
	color: #33c3cc;
	text-decoration: none;
	transition: 0.3s ease;
}

h3 {
	margin-bottom: 28px;
	padding: 4px 0 4px 15px;
	border-left: 1px solid #222;
	font-size: 1.375em;
	font-weight: 600;
	letter-spacing: .07em;
}

/* ----------------------------------------------
	header
---------------------------------------------- */
header {
	display: flex;
	width: 100%;
	height: 100px;
	min-width: 1000px;
	align-items: center;
	justify-content: space-between;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
}
.headHide header {
	height: 80px;
	background: #fff;
	box-shadow: 0 5px 15px rgba(0,0,0,.1);
	position: fixed;
	z-index: 200;
	top: -100px;
}
.headOn header {
	top: 0;
	transition: top 1s ease;
}
.logo {
	margin-left: 30px;
}
.g_nav {
	margin-right: 30px;
}
.g_nav ul {
	display: flex;
}
.g_nav li + li {
	border-left: 1px solid #eee;
}
.g_nav li.nav_contact {
	margin-left: 12px;
	border-left: none;
}
.g_nav li a {
	display: flex;
	align-items: center;
	height: 46px;
	padding: 0 28px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.28;
	text-align: center;
}
.g_nav li a:hover,
.g_nav li a.active {
	color: #33c3cc;
	transition: 0.3s ease;
}
.g_nav li a.active {
	font-weight: bold;
}
.g_nav li.nav_contact a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 160px;
	height: 40px;
	padding: 0;
	border-radius: 20px;
	background: #d0111b;
	color: #fff;
	box-shadow: 0 5px 10px rgba(0,0,0,.12);
	position: relative;
	overflow: hidden;
}
.g_nav li.nav_contact a::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(255,255,255,.4);
	position: absolute;
	left: -100%;
	top: 0;
	transition: left 0.3s ease;
}
.headHide .g_nav li.nav_contact a {
	box-shadow: none;
}
.g_nav li.nav_contact a span {
	display: inline-block;
	padding-left: 30px;
	background: url(../img/mail.png) left center / 20px 12px no-repeat;
	transition: 0.3s ease;
}
.g_nav li.nav_contact a:hover::before {
	left: 0;
	transition: 0.3s ease;
}
.g_nav li.nav_contact a:hover span {
	background-position: left 3px center;
	transition: 0.3s ease;
}

@media(max-width:1200px) {
	.logo img {
		width: 180px;
	}
	.g_nav li a {
		font-size: 12px;
		padding: 0 20px;
	}
}

/* ----------------------------------------------
	main
---------------------------------------------- */
main {
	display: block;
}

/* ----------------------------------------------
	contact
---------------------------------------------- */
.contact {
	padding: 60px 0 75px;
	text-align: center;
	position: relative;
	background: url(../img/contact_bg.jpg) center / cover no-repeat;
	background-attachment: fixed;
}
.contact::after {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(36,174,183,.7);
	position: absolute;
	top: 0;
	left: 0;
}
.contact p {
	font-size: 1.375em;
	font-weight: 600;
	line-height: 1.6363;
	letter-spacing: .1em;
	color: #fff;
	position: relative;
	z-index: 1;
	opacity: 0;
	transform: translate(0, 20px);
}
.contact.on p,
.iPhone .contact p,
.iPad .contact p,
.Android .contact p {
	transform: translate(0, 0);
	opacity: 1;
	transition: 1s ease;
}
.contact .btn {
	width: 500px;
	height: 70px;
	margin: 20px auto 0;
	position: relative;
	z-index: 1;
	background: #fff;
	color: #464646;
	font-size: 1.1875em;
	font-weight: 600;
	box-shadow: 0 5px 10px rgba(0,0,0,.2);
	opacity: 0;
	transform: translate(0, 20px);
}
.contact.on .btn,
.iPhone .contact .btn,
.iPad .contact .btn,
.Android .contact .btn {
	opacity: 1;
	transform: translate(0, 0);
	transition: 1s ease 0.5s;
}
.contact .btn::before {
	background: rgba(51,204,204,.15);
}
.contact .btn span {
	padding-left: 54px;
}
.contact .btn span::before {
	width: 30px;
	height: 18px;
	border: none;
	background: url(../img/mail_blue.png) center / cover no-repeat;
}

@media(max-width:1000px) {
	.contact p {
		transform: translate(0, 0);
		opacity: 1;
	}
	.contact .btn {
		opacity: 1;
		transform: translate(0, 0);
	}
}

/* ----------------------------------------------
	footer
---------------------------------------------- */
footer .inner {
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
footer a {
	display: inline-block;
	padding-left: 20px;
	font-size: .875em;
	color: #777;
	position: relative;
	transition: 0.3s ease;
}
footer a::before {
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4px 0 4px 10px;
	border-color: transparent transparent transparent #888;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
	transition: left 0.3s ease;
}
footer a:hover {
	opacity: 0.6;
	transition: 0.3s ease;
}
footer a:hover::before {
	left: 3px;
	transition: 0.3s ease;
}
footer small {
	font-size: .75em;
	color: #aaa;
}

/* ----------------------------------------------
	lines
---------------------------------------------- */
.lines {
	width: 100%;
	min-width: 1000px;
	height: 100%;
	position: fixed;
	top: 0;
	z-index: -1;
}
.line {
	display: block;
	width: 1px;
	height: 100%;
	background: #f2f2f2;
	position: absolute;
	top: 0;
	left: 50%;
}
.line_1 {
	margin-left: -750px;
}
.line_2 {
	margin-left: -500px;
}
.line_3 {
	margin-left: -250px;
}
.line_5 {
	margin-left: 250px;
}
.line_6 {
	margin-left: 499px;
}
.line_7 {
	margin-left: 750px;
}

@media print {
	body {
		-webkit-print-color-adjust: exact;
	}
	header {
		position: absolute!important;
		background: none!important;
		box-shadow: none!important;
	}
	.mv {
		background-position: center top!important;
		background-attachment: inherit!important;
	}
	.contact {
		background-position: center bottom!important;
		background-attachment: inherit!important;
	}
	.contact p {
		transform: translate(0, 0);
		opacity: 1;
	}
	.contact .btn {
		opacity: 1;
		transform: translate(0, 0);
	}
}