@charset "utf-8";

@import url('https://fonts.googleapis.com/css?family=Barlow:100,200,300,400,500,600,700&display=swap');
/* font-family: 'Barlow', sans-serif; */

@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src:	local('Noto Sans CJK JP'),
			local('Noto Sans JP'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format('woff2'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format('woff'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format('opentype');
}

@font-face {
	font-family: 'Noto Sans JP Thin';
	font-style: normal;
	font-weight: 100;
	font-display: swap;
	src:	local('Noto Sans CJK JP Thin'),
			local('Noto Sans JP Thin'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Thin.woff2) format('woff2'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Thin.woff) format('woff'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Thin.otf) format('opentype');
}

@font-face {
	font-family: 'Noto Sans JP Light';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src:	local('Noto Sans CJK JP Light'),
			local('Noto Sans JP Light'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Light.woff2) format('woff2'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Light.woff) format('woff'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Light.otf) format('opentype');
}

@font-face {
	font-family: 'Noto Sans JP Medium';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src:	local('Noto Sans CJK JP Medium'),
			local('Noto Sans JP Medium'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Medium.woff2) format('woff2'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Medium.woff) format('woff'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Medium.otf) format('opentype');
}

@font-face {
	font-family: 'Noto Sans JP Bold';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src:	local('Noto Sans CJK JP Bold'),
			local('Noto Sans JP Bold'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.woff2) format('woff2'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.woff) format('woff'),
			url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.otf) format('opentype');
}

@font-face {
	font-family: 'Dense Regular';
	font-style: normal;
	font-weight: normal;
	src:	local('Dense Regular'),
url('../fonts/Dense-Regular.woff') format('woff');
}

@font-face {
	font-family: 'BauerB';
	font-style: normal;
	font-weight: normal;
	src:	url('../fonts/BauerB.ttf') format('truetype');
}

body {
	font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
}

@media screen and (max-width: 750px) {
	img {
		max-width: 100%;
		height: auto;
	}
}


.wrapper {
	background-color: #f4f3ef;
}
#body {
	position: relative;
	z-index: 2;
}

@media screen and (min-width: 751px) {
	.wrapper {
		min-width: 1180px;
		padding-top: 70px;
	}
}

@media screen and (max-width: 750px) {
	.wrapper {
		padding-top: 50px;
	}
}


/* ------------------------------------------------------------

HEADER

------------------------------------------------------------ */
#header {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	z-index: 1024;
	background-color: #fff;
	box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}

@media screen and (min-width: 751px) {
	#header {
		display: flex;
		min-width: 1180px;
		height: 70px;
		overflow: hidden;
	}
	#header h1 {
		padding: 15px 0 15px 30px;
	}
	#header h1 img.company-logo {
		width: 286px;
	}
	
	#header .menu-opener {
		display: none;
	}
}

@media screen and (max-width: 750px) {
	#header {
		height: 50px;
	}
	#header h1 {
		padding: 10px;
	}
	#header h1 img.company-logo {
		width: 214px;
	}
	
	#header .menu-opener {
		position: absolute;
		z-index: 4;
		right: 0;
		top: 0;
	}
	#header .menu-opener a {
		display: block;
		width: 50px;
		height: 50px;
		background-color: #0198c3;
		text-decoration: none;
		transition-property: background-color;
		transition-duration: 200ms;
	}
	#header .menu-opener.on a {
		background-color: #fff;
	}
	#header .menu-opener a span {
		position: absolute;
		left: 8px;
		display: block;
		width: 34px;
		height: 1px;
		background-color: #fff;
		transition-property: background-color, transform;
		transition-duration: 200ms, 650ms;
	}
	#header .menu-opener.on a span {
		background-color: #0198c3;
	}
	
	#header .menu-opener a span:nth-child(1) { top: 18px; }
	#header .menu-opener a span:nth-child(2) { top: 25px; }
	#header .menu-opener a span:nth-child(3) { top: 32px; }
	
	#header .menu-opener.on a span:nth-child(1) { transform: translateY(7px) rotate(135deg); }
	#header .menu-opener.on a span:nth-child(2) { transform: translateX(-17px) scaleX(0); }
	#header .menu-opener.on a span:nth-child(3) { transform: translateY(-7px) rotate(-135deg); }
}


#gnav {
}
#gnav .wrap ul.menu li a {
	display: block;
	text-decoration: none;
}
#gnav .wrap ul.menu li a span {
	position: relative;
	display: block;
}

@media screen and (min-width: 751px) {
	#gnav {
		flex: 1;
	}
	
	#gnav .wrap ul.menu {
		float: right;
		display: flex;
	}
	#gnav .wrap ul.menu li {
	}
	#gnav .wrap ul.menu li a {
		padding: 0 18px;
	}
	#gnav .wrap ul.menu li a span {
		padding: 27px 0;
		font-size: 16px;
		font-family: 'Noto Sans JP Light', sans-serif;
		transition-property: color;
		transition-duration: 200ms;
	}
	#gnav .wrap ul.menu li a:hover span,
	#gnav .wrap ul.menu li.active a span {
		color: #a0926e;
	}
	
	#gnav .wrap ul.menu li a span::after {
		position: absolute;
		left: 0;
		bottom: 0;
		display: block;
		width: 100%;
		height: 30px;
		background-color: #a0926e;
		opacity: 0;
		content: '';
		transform: translateY(0);
		transition-property: transform, opacity;
		transition-duration: 200ms;
	}
	#gnav .wrap ul.menu li a:hover span::after,
	#gnav .wrap ul.menu li.active a span::after {
		transform: translateY(26px);
		opacity: 1;
	}
	
	#gnav .wrap:after {
		content: '';
		display: block;
		clear: both;
		height: 0;
	}
	
	#gnav .wrap .telephone {
		display: none;
	}
}

@media screen and (max-width: 750px) {
	#gnav {
		position: absolute;
		z-index: 2;
		left: 0;
		top: 0;
		width: 100%;
		height: 100vh;
		overflow: hidden;
		background-image: url('../img/bg_menu_sp.png');
		background-position: center center;
		background-size: cover;
		transition-property: height;
		transition-duration: 350ms;
	}
	#gnav:not(.active) {
		height: 0;
	}
	
	#gnav .wrap {
		position: relative;
		height: 100vh;
		padding-top: 50px;
		box-sizing: border-box;
	}
	#gnav .wrap ul.menu {
		margin-top: 25px;
	}
	#gnav .wrap ul.menu li {
	}
	#gnav .wrap ul.menu li a {
		padding: 9px 0 9px 30px;
		background-image: url('../img/ico_menu-arr_sp.svg');
		background-repeat: no-repeat;
		background-position: right 20px center;
		background-size: 13px auto;
	}
	#gnav .wrap ul.menu li a span {
		font-size: 36px;
		font-family: 'Noto Sans JP Thin', sans-serif;
		color: #fff;
	}
	
	#gnav .wrap .telephone {
		margin-top: 20px;
		text-align: center;
		font-size: 0;
	}
	#gnav .wrap .telephone a {
		display: inline-block;
		padding: 9px 0 9px 50px;
		text-decoration: none;
		border-bottom-width: 1px;
		border-bottom-style: solid;
		border-bottom-color: #fff;
		background-image: url('../img/ico_menu-telephone_sp.png');
		background-repeat: no-repeat;
		background-position: left center;
		background-size: 40px 40px;
	}
	#gnav .wrap .telephone a span {
		font-size: 36px;
		font-weight: 300;
		font-family: 'Barlow', sans-serif;
		letter-spacing: 0.0625em;
		color: #fff;
	}
}


#gnav .wrap .floow-login a {
	position: relative;
	display: block;
	text-decoration: none;
}
#gnav .wrap .floow-login a span {
	display: block;
	font-weight: 300;
	font-family: 'Barlow', sans-serif;
	letter-spacing: 0.0625em;
}

/* #gnav .wrap .floow-login a svg.ico-floowlogin {
} */

@media screen and (min-width: 751px) {
	#gnav .wrap .floow-login {
		float: right;
		margin-left: 20px;
		background-image: url(/wp-content/themes/404/img/ico_login-hover.png);
		background-size: contain;
		background-repeat: no-repeat;
	}
	#gnav .wrap .floow-login .ico-floowlogin {
		display: block;
		width: 172px;
		height: 70px;
		color: transparent;
		font-size: 0;
		text-indent: 110%;
		white-space: nowrap;
		background-image: url(/wp-content/themes/404/img/ico_login.png);
		background-size: contain;
		background-repeat: no-repeat;
		opacity: 1;
		transition-property: opacity;
		transition-duration: 200ms;
		overflow: hidden;
	}
	
	#gnav .wrap .floow-login .ico-floowlogin:hover {
		opacity: 0;
	}
	svg.ico-floowlogin g {
		display: none;
	}
	#gnav .wrap .floow-login a span {
		display: none;
	}
	/* #gnav .wrap .floow-login a {
		width: 172px;
		height: 70px;
		padding: 27px 0 27px 46px;
		box-sizing: border-box;
		background-color: #0198c3;
		transition-property: background-color;
		transition-duration: 200ms;
	}
	#gnav .wrap .floow-login a svg.ico-floowlogin {
		position: absolute;
		left: 16px;
		top: 27px;
		width: 16px;
		fill: #fff;
		transition-property: fill;
		transition-duration: 200ms;
	}
	body.ms-ie .floow-login a svg.ico-floowlogin {
		height: 16px;
	}
	#gnav .wrap .floow-login a span {
		font-size: 16px;
		color: #fff;
		transition-property: color;
		transition-duration: 200ms;
	}
	#gnav .wrap .floow-login a:hover {
		background-color: #fff;
	}
	#gnav .wrap .floow-login a:hover svg.ico-floowlogin {
		fill: #0198c3;
	}
	#gnav .wrap .floow-login a:hover span {
		color: #0198c3;
	} */
}

@media screen and (max-width: 750px) {
	#gnav .wrap .floow-login {
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
	}
	body.ios #gnav .wrap .floow-login {
		padding-bottom: 75px;
		background-color: #fff;
	}
	#gnav .wrap .floow-login .ico-floowlogin {
		display: block;
		width: 100%;
		 height: 16vw;
		/*padding: 18px 0; */
		color: transparent;
		font-size: 0;
		text-indent: 110%;
		white-space: nowrap;
		background-image: url(/wp-content/themes/404/img/ico_login_sp.png);
		background-size: contain;
		background-repeat: no-repeat;
		box-sizing: border-box;
		background-color: #fff;
		text-align: center;
		overflow: hidden;
	}
	svg.ico-floowlogin g {
		display: none;
	}
	#gnav .wrap .floow-login a span {
		display: none;
	}
	/* #gnav .wrap .floow-login a {
		width: 100%;
		height: 60px;
		padding: 18px 0;
		box-sizing: border-box;
		background-color: #fff;
		text-align: center;
		font-size: 0;
	}
	#gnav .wrap .floow-login a svg.ico-floowlogin {
		display: inline-block;
		margin: 0 15px 0 0;
		width: 24px;
		fill: #0198c3;
	}
	#gnav .wrap .floow-login a span {
		display: inline-block;
		vertical-align: top;
		font-size: 24px;
		color: #0198c3;
	} */
}



.bg-sub-ttl {
	position: absolute;
	z-index: 0;
	left: 0;
	top: 0;
	color: #fff;
	font-family: 'BauerB', sans-serif;
	font-weight: normal;
	line-height: 0.75;
	pointer-events: none;
}
body.ms-ie .bg-sub-ttl {
	font-family: 'Barlow', sans-serif;
}
body:not(.ms-ie) .bg-sub-ttl div {
	overflow: hidden;
}
.bg-sub-ttl span {
	display: block;
	transition-property: transform, opacity;
	transition-duration: 900ms, 0ms;
}

@media screen and (min-width: 751px) {
	.bg-sub-ttl {
		font-size: 200px;
	}
}

@media screen and (max-width: 750px) {
	.bg-sub-ttl {
		font-size: 21.333333333333333vw;
	}
}



/* ------------------------------------------------------------

FOOTER

------------------------------------------------------------ */
#footer {
	position: relative;
	background-color: #fff;
	color: #a0926e;
}
#footer .wrap .footer-copyright {
	text-align: center;
}
#footer .wrap .footer-copyright small {
	display: block;
	font-weight: 300;
	font-family: 'Barlow', sans-serif;
	letter-spacing: 0.125em;
}

@media screen and (min-width: 751px) {
	#footer .wrap .footer-copyright {
		padding: 50px 0;
	}
	#footer .wrap .footer-copyright small {
		font-size: 10px;
	}
}

@media screen and (max-width: 750px) {
	#footer .wrap .footer-copyright {
		padding: 5.333333333333333vw 0;
	}
	#footer .wrap .footer-copyright small {
		font-size: 2.666666666666667vw;
	}
}


#btn-page-top {
	position: absolute;
	z-index: 4;
	display: block;
	overflow: hidden;
	background-color: #fff;
	text-indent: -9999px;
}
#btn-page-top::after {
	position: absolute;
	display: block;
	transform: rotate(45deg);
	border-style: solid;
	border-width: 2px;
	border-color: #a0926e;
	border-right: none;
	border-bottom: none;
	content: '';
}

@media screen and (min-width: 751px) {
	#btn-page-top {
		right: 30px;
		top: -40px;
		width: 80px;
		height: 80px;
		border-radius: 80px;
		box-shadow: 20px 20px 20px 0 rgba(0,0,0,0.1);
	}
	#btn-page-top::after {
		left: calc(50% - 6px);
		top: calc(50% - 6px);
		width: 12px;
		height: 12px;
	}
}

@media screen and (max-width: 750px) {
	#btn-page-top {
		right: 4vw;
		top: -5.333333333333333vw;
		width: 10.666666666666667vw;
		height: 10.666666666666667vw;
		border-radius: 10.666666666666667vw;
		box-shadow: 2.666666666666667vw 2.666666666666667vw 2.666666666666667vw 0 rgba(0,0,0,0.1);
	}
	#btn-page-top::after {
		left: calc(50% - 0.8vw);
		top: calc(50% - 0.8vw);
		width: 1.6vw;
		height: 1.6vw;
	}
}



/* ------------------------------------------------------------

アニメーションパーツ

------------------------------------------------------------ */
@keyframes hover-blink {
	0%		{ opacity: 1; }
	8%		{ opacity: 0.2; }
	100%	{ opacity: 1; }
}

