@charset "utf-8";

/*　font　
-----------------------------------------------------------------------------*/
.cata,
.nav_en,
#companyName .aqua_name,
#page_top,
.contentImg_ttl .en {
	font-family: 'Catamaran', sans-serif;
	font-weight: 700;
	letter-spacing:0.06em;
	line-height: 1.05;
	}
.serif,
.footer_contact_l h2,
#concept h2,
.contentImg_ttl .jp,
.ttl_2,
.pool_merit .num,
.pool_merit h3,
.awajio_feature .ttl,
#radonpit .h_2 .num,
.barrel_sauna_point h3 .num,
.case_year {
	font-family: 'Noto Serif JP', "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	letter-spacing:0.06em;
	font-weight: 600;
	}

/*　wrap　
-----------------------------------------------------------------------------*/
#wrap {
	width:100%;
	margin:0 auto;
	position:relative;
	padding:0;
	overflow:hidden;
	}

/*　layout　
-----------------------------------------------------------------------------*/
header, footer {
	width:100%;
	margin:0 auto;
	position:relative;
	}
#content {
	margin:0 auto;
	text-align: left;
	}
	section, .section {
		margin:0 auto;
		}
.inner {
	display: block;
	position:relative;
	margin:0 auto;
	padding: 0;
	}
@media screen and (max-width: 767px) {
#content {
	padding-top: 30px;
	margin-bottom: 60px;
	}
	section, .section {
	padding:0;
	margin-bottom:50px;
	}
	.inner {
	padding-inline:15px;
	}
}
@media screen and (min-width: 768px) {
#content {
	padding-top: 50px;
	margin-bottom: 100px;
	}
	section, .section {
	padding:0;
	margin-bottom:100px;
	}
	.inner {
	width: 80%;
	min-width:1040px;
	max-width: 1280px;
	}
	.w_1200 {
/*	width: 76%;
	min-width:980px;
	max-width: 1200px;*/
	}
	.w_92 {
	width: 92%;
	max-width: 1760px;
	}
	.w_col_2 {
	width: 80%;
	min-width:1040px;
	max-width: 1120px;
	}
	.w_col_1 {
	width: 72%;
	min-width: 960px;
	max-width: 1120px;
	}
	
}

/*#content section:last-child,
#content .section:last-child { margin-bottom: 0;}*/

body:not(#top) #contentWrap {
	opacity: 0;
	transform: translateY(10px);
	}
	body:not(#top) #contentWrap.onload {
	opacity: 1;
	transform: translateY(0);
	transition:transform 0.6s ease-in-out, opacity 0.6s ease-in-out;
	transition-delay: 0.4s;
	}

/*　header　
-----------------------------------------------------------------------------*/
header a {	outline:none;	text-decoration:none;}
header {
	}
	#top header {
	position: absolute;
	}
header .logo {
	display: flex;
	align-items: center;
	}
@media screen and (max-width: 767px) {
header {
	height: 56px;
	padding:0 5px;
	}
header .logo .logo_description {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
	}
	header .logo a {
		display:inline-block;
		margin: 8px 0 6px;
		height: 42px;
	}
	header .logo img {
	height: 100%;
	}
}
@media screen and (min-width: 768px) {
header {
	height:90px;
	padding:0 1%;
	}
header .logo .logo_description {
	font-size: min(1vw, 14px);
	line-height: 1.5;
	padding: 0 10px;
	}
	header .logo a {
		display:inline-block;
		margin:15px 0;
		height:60px;
	}
	header .logo img {
	height: 100%;
	}
header .header_sub {
	position:absolute;
	right: 1%;
	top: 27px;
	}
}
@media screen and (min-width: 1200px) {
header .logo .logo_description {
/*	font-size: 14px;*/
	}
}

/*　navBtn
-----------------------------------------------------------------------------*/
#navBtn_wrap a {	outline:none;}
#navBtn_wrap {
	position: fixed;
	top:0;
	right: 0;
	z-index: 400;
	transition: 0.5s ease;
	}
	#navBtn_wrap.slideout {
	top: -105%;
	transition: 1.5s ease-in-out;
	}
#navBtn_wrap ul {
	display: flex;
	opacity: 0.95;
	}
	#navBtn_wrap ul li {
	text-align: center;
	}
	#navBtn_wrap ul li a {
	position: relative;
	display: block;
	color: #fff;
	}
	.navBtn_menu a { background-color: #079292;}
	.navBtn_case a { background-color: #0A3E8A;}
	.navBtn_catalog a { background-color: #1190BF;}
	.navBtn_contact a { background-color: #262626;}
	.navBtn_i {
	position: relative;
	display: block;
	}
	ul li a .txt {
	position: relative;
	display: block;
	}
	
@media screen and (max-width: 767px) {
	#navBtn_wrap ul {
	flex-direction: row-reverse;
	}
	#navBtn_wrap ul li a {
		width: 56px;
		height: 56px;
		padding-top: 5px;
		}
	.navBtn_i {
		width: 32px;
		height: 32px;
		margin: 0 auto;
		}
	#navBtn_wrap ul li a .txt {
		font-size: 10px;
		line-height: 1;
		margin-top: 0px;
		letter-spacing: 0.08em;
		transform: scale(0.7);
	}
	.navBtn_catalog, .navBtn_contact { display: none;}
}
@media screen and (min-width: 768px) {
	#navBtn_wrap ul li a {
		width: 90px;
		height: 90px;
		padding-top: 10px;
		transition: 0.2s ease-out;
		}
	.navBtn_menu a:hover { background-color: #057F7F;}
	.navBtn_case a:hover { background-color: #073077;}
	.navBtn_catalog a:hover { background-color: #0C7DB1;}
	.navBtn_contact a:hover { background-color: #161616;}
	.navBtn_i {
		width: 50px;
		height: 50px;
		margin: 0 auto;
		}
	#navBtn_wrap ul li a .txt {
		font-size: 10.5px;
		line-height: 1;
		letter-spacing: 0.08em;
		margin-top: 3px;
	}
}

/*　navBtn_i　
-----------------------------------------------------------------------------*/
.navBtn_i span {
	position:absolute;
	top:50%;
	left: 50%;
	display: inline-block;
	width:68%;
	height:2px;
	background-color:#fff;
	transform: translate(-50%, -1px);
	}
	.navBtn_i span::before, .navBtn_i span::after {
	content:"";
	position:absolute;
	left:0;
	display: inline-block;
	width:100%;
	height:100%;
	background-color: #fff;
	transition:all 0.3s ease;
	}
		.navBtn_i span::before { top:-12px;}
		.navBtn_i span::after { top:12px;}
.on .navBtn_i {
	}
	.on .navBtn_i span {
	background-color: transparent;
	}
	.on .navBtn_i span::before, .on .navBtn_i span::after {
	content:"";
	position:absolute;
	top:50%;
	display: inline-block;
	width:100%;
	background-color:#fff;
	transform-origin:center center;
	}
		.on .navBtn_i span::before {
		transform:rotate(45deg);
		}
		.on .navBtn_i span::after {
		transform:rotate(-45deg);
		}
@media screen and (max-width: 767px) {
	.navBtn_i span::before { top:-7px;}
	.navBtn_i span::after { top:7px;}
}

/*　nav　
-----------------------------------------------------------------------------*/
nav a {	outline:none;}

nav {
 	opacity:0;
	visibility:hidden;

	position:fixed;
	top:0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	display:block;
	
	text-align: left;
	line-height: 1.7;
	color:#fff;
	z-index:300;
	transition:all 0.3s ease;
	overflow:auto;
	-webkit-overflow-scrolling: touch;
	
	margin: 0 auto;
	max-width: 2000px;
	}
		nav.show {
		opacity:1;
		visibility:visible;
		}
	nav a { color:#fff; text-decoration:none;}
	
@media screen and (min-width: 768px) {
#nav_flex {
	position: absolute;
	width: 80%;
	left: 15%;
	top: 54%;
	transform: translateY(-50%);
	}
	nav ul {
	display: flex;
	flex-wrap: wrap;
	}
	nav ul li {
	width: 47%;
	margin: 0.6em 0;
	}
	nav ul li.nav-flexible-pool { width: 53%;}
	#nav_flex ul.nav_main {
	margin-bottom: 4%;
	}
}
@media screen and (min-width: 768px) and (max-width: 1280px) {
#nav_flex {
	width: 85%;
	left: 10%;
	top: 50%;
	transform: translateY(-50%);
	}
}
@media screen and (max-width: 767px) {
	nav ul li {
	margin: 1em 0;
	}
}

	nav ul li a {
	overflow: hidden;
	}
	nav ul li a div {
	transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out;
	transform: translateY(100%);
	opacity: 0;
	}
	nav.show ul li a div {
	transition-delay: 0.3s;
	transform: translateY(0);
	opacity: 1;
	}
	nav ul li a:hover div {transition-delay: 0s;}

nav ul li a {
	display: inline-block;
	text-decoration:none;
	position:relative;
	color: #fff;
	padding-right: 1em;
	}
	@media screen and (min-width: 768px) {
/*		ul:has(a:hover) li a:not(:hover) { color: #999;}*/
		nav ul li a {transition: color 0.2s ease-in-out;}
		nav ul li a:hover { color: #079292;}
	}

@media screen and (max-width: 767px) {
	nav {
	font-size: 3vw;
	padding: 6% 8% 15%;
	}
	.nav_en {
	font-size: 195%;
	margin-bottom: -0.15em;
	}
	.nav_jp {
	font-size: 105%;
	}
	.logo_nav {
	position: relative;
	margin-left: -4%;
	margin-bottom: 10%;
	}
	.logo_nav img {
	width: 11em;
	}
}	
@media screen and (min-width: 768px) {
	nav {font-size: 1vw;}
	.nav_sub {
	font-size: 80%;
	}
	.nav_en {
	font-size: 250%;
	margin-bottom: -0.15em;
	}
	.nav_jp {
	font-size: 85%;
	}
	.logo_nav {
	position: absolute;
	left: 3%;
	top: 4%;
	}
	.logo_nav img {
	width: 12.5em;
	}
}
@media screen and (min-width: 768px) and (max-width: 1280px) {
	nav {font-size: 18px;}
}

.logo_nav {
	}
	.logo_nav a {
	transition: 0.5s ease-in-out;
	transform: translateY(-50%);
	opacity: 0;
	}
	.show .logo_nav a {
	transform: translateY(0);
	opacity: 1;
	}
	

	.logo_nav a {
		display:inline-block;
	}

#closeBtn {
	position: fixed;
	right: 3%;
	top: 4%;
	padding: 0.5em 0;
	}
@media screen and (min-width: 768px) {
	#closeBtn:hover { cursor: pointer; opacity: 0.5;}
}
#closeBtn span {
	position: relative;
	display: inline-block;
	width:2.5em;
	bottom: 0.5em;
	height:2px;
	margin-left: 0.3em;
	background-color: transparent;
	}
	#closeBtn span::before, #closeBtn span::after {
	content:"";
	position:absolute;
	top:50%;
	display: inline-block;
	width:100%;
	height: 100%;
	background-color:#fff;
	transform-origin:center center;
	}
		#closeBtn span::before {
		transform:rotate(45deg);
		}
		#closeBtn span::after {
		transform:rotate(-45deg);
		}

#layer {
		display:none;
		position:fixed;
		top:0;
		left:0;
		width:100%;
		height:100vh;
		background-color:#111;
		opacity: 0.95;
		z-index:200;
		}

#wrap.navIn header .logo,
#wrap.navIn #contentWrap,
#wrap.navIn footer {
	filter:blur(3px);
	}

/*　footer　
-----------------------------------------------------------------------------*/
footer a {	outline:none; color:inherit; text-decoration:none;}
footer a:hover {text-decoration: underline;}

/* footer_contact
-----------------------------------------------------------------------------*/
#footer_contact {
}
.footer_contact_in {
	margin: 0 auto;
	background-color: #fff;
	box-shadow: 1px 1px 25px rgb(0 0 0 / 0.5);
	}
.footer_contact_l {}
	.footer_contact_l .footer_logo img {
	width: 35%;
	max-width: 160px;
	margin-bottom: 1em;
	}
	.footer_contact_l h2 {
	font-size: 175%;
	letter-spacing: 0.12em;
	margin-bottom: 0.7em;
	}
		.footer_contact_l h2 .en {
		display: block;
		font-size: 60%;
		letter-spacing: 0.06em;
		}
	.footer_contact_l p {
	font-size: 85%;
	}
.footer_contact_r {}
	.footer_contact_r .tel_link {
	display: block;
	}
.footer_btn a {
	display: block;
	background-color: #079292;
	line-height: 1;
	padding: 8% 0;
	color: #fff;
	text-decoration: none;
	font-size: 115%;
	transition: 0.2s ease-out;
	}
	.footer_btn .icon {
	position: relative;
	display: inline-block;
	padding-left: 40px;
	}
	.footer_btn .icon::before {
	content: '';
	background-repeat: no-repeat;
	background-size: contain;
	display: inline-block;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	}
	.footer_btn .icon_contact::before { content: url("../images/navBtn_i_contact.svg");}
	.footer_btn .icon_catalog::before {content: url("../images/navBtn_i_catalog.svg");}
	
@media screen and (max-width: 767px) {
	#footer_contact {
	background: url("../images/footer_contact_bg_sp.jpg") no-repeat center center;
	background-size: cover;
	padding: 35px 20px;
	}
	.footer_contact_in {
	padding: 20px;
	}
	.footer_contact_l {
	padding-bottom: 15px;
	margin-bottom: 15px;
	border-bottom: 1px solid #ccc;
	}
	.footer_contact_r .tel_link {
	font-size: 220%;
	font-weight: 600;
	margin: 0 auto 10px;
	}
	.footer_btn li {
	display: inline-block;
	margin: 5px;
	width: 70%;
	min-width: 180px;
	max-width: 230px;
	}
	.footer_btn a {
	font-size: 100%;
	}

}
@media screen and (min-width: 768px) {
	#footer_contact {
	background: url("../images/footer_contact_bg_pc.jpg") no-repeat center center;
	background-size: cover;
	padding: 35px 50px;
	}
	.footer_contact_in {
	max-width: 1280px;
	padding: 30px 0;
	display: flex;
	}
	.footer_contact_l {
	width: 40%;
	padding: 20px;
	border-right: 1px solid #ccc;
	}
	.footer_contact_r {
	padding: 20px;
	width: 60%;
	}
	.footer_contact_r .tel_link {
	font-size: 265%;
	color: #222;
	margin: 15px auto 5px;
	}
	.footer_btn li {
	display: inline-block;
	margin: 8px;
	width:260px;
	}
	.footer_btn a:hover {
	background-color: #222;
	}

}

/* footer_nav
-----------------------------------------------------------------------------*/
#footer_nav {
	padding: 50px 50px 60px;
	}
	#footer_nav ul {
	display: flex;
	}
@media screen and (max-width: 767px) {
#footer_nav {
	padding: 20px 40px;
	}
	#footer_nav ul {
	font-size: 100%;
	flex-wrap: wrap;
	}
	#footer_nav ul li {
	text-align: left;
	width: 44%;
	margin: 0 3% 7px;
	border-bottom: 1px solid #e5e5e5;
	}
	#footer_nav ul li a {
	display: block;
	padding: 3px 0;
	}
}
@media screen and (min-width: 768px) {
	#footer_nav ul {
	font-size: 110%;
	justify-content: center;
	}
	#footer_nav ul li::before {
	content: '│';
	padding: 0 0.7em;
	}
	#footer_nav ul li:first-child::before { content: none;}
	#footer_nav ul li a { transition: 0.2s ease;}
	#footer_nav ul li a:hover { color: #079292;}
}

/* copyright
-----------------------------------------------------------------------------*/
#copyright {
	font-family: Arial, Roboto, Verdana, “Droid Sans”, sans-serif;
	font-size:13px;
	line-height:1.8;
	color:#eee;
	background-color: #404040;
	padding: 30px 40px;
	}
	#copyright .small {
	font-family: Arial, Roboto, Verdana, “Droid Sans”, sans-serif;
	}
	#copyright .company_name { font-size: 120%;}
	#copyright a {
	text-decoration: underline;
	display: inline-block;
	}
	
@media screen and (max-width: 767px) {
	#copyright {
	font-size: 11px;
	padding: 20px;
	}
	#copyright .copyright_r a {margin:0 1em 4% 0;}
	#page_top {
	text-align: center;
	font-size: 14px;
	background-color: #333;
	padding: 18px 0;
	width: 100%;
	margin: 30px auto 10px;
	}
	
}
@media screen and (min-width: 768px) {
	#copyright {
	text-align: left;
	}
	#copyright  .copyright_in {
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
	}
	#copyright .copyright_r a {margin-left: 1em;}
	#page_top {display: none;}
}

/* footer_topicsWrap
-----------------------------------------------------------------------------*/
#footer_topicsWrap {
	font-size: 115%;
	}
	#footer_topicsWrap a {
	color: #079292;
	text-decoration: underline;
	display: inline-block;
	}
	.footer_topics_ttl {
	display: inline-block;
	font-size: 90%;
	color: #ffff00;
	padding: 0 0.5em;
	margin: 0 0.5em;
	background-color:  #079292;
	}
@media screen and (max-width: 767px) {
#footer_topicsWrap {
	margin: 1.5em -10px 1em;
	}
}
@media screen and (min-width: 768px) {
#footer_topicsWrap {
	margin: 1.5em auto -1em;
	}
	#footer_topicsWrap a:hover { text-decoration: none;}
}

#footer_topicsWrap {}
