@charset "UTF-8";

/*
	Theme Name: heart
	Version: 1.0
	Author: T Hira
	Description: 2023/03/20 Ver1.0 新規制作.
*/

@import url("reset.css");
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;700;800&family=Noto+Sans+JP:wght@400;700&display=swap');

/* ------------------------------
body
------------------------------ */
body {
	min-width: 320px;
	width: 100%;
	font-size: 16px;
	font-family: 'M PLUS Rounded 1c', sans-serif;	
	letter-spacing: 1px;
	color: #000;
}
body a ,
ul li a img {
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
	text-decoration: none;
}
body a:hover ,
ul li a:hover img {
	text-decoration: underline;
	filter: alpha(opacity=70);
	-moz-opacity: 0.7;
	opacity: 0.7;
}
body a.notOpacity ,
ul li a.notOpacity img {
	-webkit-transition: none;
	-moz-transition: none;
	-o-transition: none;
	transition: none;
	text-decoration: none;
}
body a.notOpacity:hover ,
ul li a.notOpacity img:hover {
	filter: alpha(opacity=100);
	-moz-opacity: 1.0;
	opacity: 1.0;
}
nav {
	letter-spacing: 2px;
}
img {
	max-width: 100%;
	vertical-align: bottom;
	height: auto;
}
img {
	max-width: 100%;
	vertical-align: bottom;
	height: auto;
}
h1, h2, h3, h4, h5, h6, th {
	font-weight: 600;
}

/* ブロック要素に丸ごとリンク */
.blockLink {
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
	text-decoration:none;
	cursor:pointer;
}
.blockLink:hover  {
	filter: alpha(opacity=70);
	-moz-opacity: 0.7;
	opacity: 0.7;
	text-decoration: none;
}

/* ライトボックス系に影響がないよう範囲を指定 */
img.x2 {
	zoom: 0.5;
}
/* Firefox用 */
@-moz-document url-prefix() {
	img.x2 {
		transform-origin: 0 0;
		transform: scale(0.5);
	}
}

.over1200 {
	display: inline;
}
.under1200 {
	display: none;
}
.over1200_block {
	display: block;
}
.under1200_block {
	display: none;
}


/* ------------------------------
header
------------------------------ */
header {
	overflow: hidden;
	position: relative;
	text-align: center;
}
header .logo {
	float: left;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0px 20px;
	height: 140px;
}
header .tel {
	float: right;
	width: 350px;
	height: 140px;
	padding: 40px 0px;
}
header .tel a {
	display: block;
	font-size: 24px;
	font-weight: bold;
	line-height: 60px;
	text-align: center;
	background-color: #7AC4D3;
	color: #fff;
}
header .tel a:hover {
	text-decoration: none;
}
header .tel a .number {
	font-size: 30px;
	font-weight: 800;
	margin-left: 0.5em;
}
header .nav-area {
	overflow: hidden;
}
/* デスクトップ用メニュー */
header .desktop-nav {
	display: inline-block;
	text-align: center;
	font-size: 0px;
	margin: 40px 0px;
}
header .desktop-nav ul li {
	font-size: 24px;
	font-weight: bold;
	display: inline-block;
	vertical-align: top;
	padding: 0px 0.5em;
	border-left: solid 2px #7AC4D3;
}
header .desktop-nav ul li a {
	display: inline-block;
	line-height: 60px;
	padding: 0px 0.5em;
	color: #000;
	border-bottom: solid 2px transparent;
}
header .desktop-nav ul li a:hover {
	border-bottom: solid 2px #7AC4D3;
	text-decoration: none;
}
/* モバイル用メニュー */
header .mobile-nav {
	display: none;
}
header .mobile-nav > ul {
	position: fixed;
	background-color: #fff;
	padding: 0;
	z-index: 102;
	top: 0px;
	right: 0;
	width: 100%;
	transform: translateY(-100%);
	transition: all 1.0s;
	border: solid 1px #7AC4D3;
	overflow: auto;
	max-height: 100%;
}
header .mobile-nav ul li {
	list-style-type: none;
	padding: 0;
	width: 100%;
	border-bottom: 1px solid #7AC4D3;
}
header .mobile-nav ul li:last-child {
	border-bottom: none;
}
header .mobile-nav ul li .noLink ,
header .mobile-nav ul li a {
	display: block;
	text-align: center;
	line-height: 1.25;
	color: #000;
	padding: 0.5em;
	font-size: 18px;
	font-weight: bold;
}
header .mobile-nav ul .current {
	display: block;
	text-align: left;
	line-height: 1.25;
	padding: 0.5em;
	font-size: 16px;
	background-color: #7AC4D3;
	color: #fff;
}
header .mobile-nav ul li a:hover {
	text-decoration: none;
	background-color: #7AC4D3;
	color: #fff;
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	opacity: 0.5;
}
header .mobile-nav ul.active {
	transform: translate(0px,0px);
}
header .mobile-nav .toggle {
	display: block;
	position: fixed;
	right: 10px;
	top: 10px;
	width: 56px;
	height: 56px;
	cursor: pointer;
	z-index: 103;
	background-color: #fff;
	border: solid 2px #7AC4D3;
	border-radius: 5px;
	text-align: center;
}
header .mobile-nav .toggle span {
	display: block;
	position: absolute;
	width: 40px;
	border-bottom: solid 3px #7AC4D3;
	-webkit-transition: .35s ease-in-out;
	-moz-transition: .35s ease-in-out;
	transition: .35s ease-in-out;
	left: 6px;
}
header .mobile-nav .toggle span:nth-child(1) {
	top: 9px;
}
header .mobile-nav .toggle span:nth-child(2) {
	top: 18px;
}
header .mobile-nav .toggle span:nth-child(3) {
	top: 27px;
}
header .mobile-nav .toggle span:nth-child(4) {
	border: none;
	color: #7AC4D3;
	font-size: 12px;
	top: 37.5px;
}
header .mobile-nav .toggle.active span:nth-child(1) {
	top: 18px;
	left: 6px;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
header .mobile-nav .toggle.active span:nth-child(2),
header .mobile-nav .toggle.active span:nth-child(3) {
	top: 18px;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
}
header .mobile-nav .child {
	display: none;
	background-color: #fff;
}
header .mobile-nav .parent:after {
	content: '+';
	font-weight: 600;
	margin-left: 0.5em;
	background: #fff;
	display: inline-block;
	text-align: center;
	width: 1em;
	border-radius: 0.5em;
}
header .mobile-nav .parent.active:after {
	content: '-';
}

/* -------------------------------
main
-------------------------------- */
main {
	overflow: hidden;
}
main .common-inner {
	clear: both;
	overflow: hidden;
	max-width: 1280px;
	margin: 0px auto;
	padding: 80px 10px;
}
main .border-h {
	background: url('./images/common/border-h_bg.png') no-repeat center bottom;
	font-size: 48px;
	line-height: 2;
	color: #43B9D1;
	text-align: center;
	margin-bottom: 1em;
}
main .border-h span {
	display: inline-block;
}

/* ------------------------------
footer
------------------------------ */
footer {
	overflow: hidden;
	text-align: center;
	background-color: #7AC4D3;
	color: #fff;
}
/* デスクトップ用メニュー */
footer .desktop-nav {
	display: inline-block;
	text-align: center;
	font-size: 0px;
	margin: 60px 0px;
}
footer .desktop-nav ul li {
	font-size: 24px;
	font-weight: 700;
	display: inline-block;
	vertical-align: top;
	padding: 0px 0.5em;
	border-left: solid 2px #fff;
}
footer .desktop-nav ul li:first-child {
	border-left: solid 2px transparent;
}
footer .desktop-nav ul li a {
	display: inline-block;
	line-height: 60px;
	padding: 0px 0.5em;
	color: #fff;
	border-bottom: solid 2px transparent;
}
footer .desktop-nav ul li a:hover {
	border-bottom: solid 2px #fff;
	text-decoration: none;
}
footer .logo {
	margin-bottom: -100px;
}
footer .access {
	font-size: 36px;
	font-weight: bold;
	line-height: 1.25;
	text-align: left;
	max-width: 1040px;
	margin: 0px auto 80px;
	padding-left: 220px;
}
footer .post {
	font-size: 27px;
	line-height: 2;
	margin-right: 0.5em;
}
footer .copy-right {
	background-color: #372D27;
	color: #fff;
	text-align: center;
	padding: 20px;
	line-height: 1.25;
}
footer .page-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	max-width: 16%;
}

/* ------------------------------
common
------------------------------ */
/* margin */
.mb_0 {
	margin-bottom: 0px !important;
}
.mb_10 {
	margin-bottom: 10px !important;
}
.mb_20 {
	margin-bottom: 20px !important;
}
.mb_30 {
	margin-bottom: 30px !important;
}
.mb_40 {
	margin-bottom: 40px !important;
}
.mb_80 {
	margin-bottom: 80px !important;
}
.mt_minus20 {
	margin-top: -20px;
}
.mt_minus30 {
	margin-top: -30px;
}
/* float */
.f_left {
	float: left;
	margin-right: 10px;
}
.f_right {
	float: right;
	margin-left: 10px;
}
/* clear */
.c_both {
	clear: both;
}

.under600 {
	display: none;
}
.over600 {
	display: block;
}
img.over600 ,
span.over600 {
	display: inline;
}

.fs14 {
	font-size: 14px !important;
}

/* ------------------------------
wordpress
------------------------------ */
.alignnone {
	margin: 10px;	
}
.aligncenter {
	display: block;
	margin: 10px auto;
}
.alignleft {
	float: left;
	margin: 10px;
}
.alignright {
	float: right;
	margin: 10px;
}
.size-full {
	max-width: 100%;
	height: auto;
	margin-top: 10px;
	margin-bottom: 10px;
}

/* ------------------------------
top トップ  
------------------------------ */
/* 導入部分 */
#page-top #introduction {
	text-align: center;
	background-color: #FFFDE9;
}
#page-top #introduction h2 {
	font-size: 48px;
	line-height: 1.25;
	color: #43B9D1;
	text-align: center;
	margin-bottom: 40px;
}
#page-top #introduction h3 {
	font-size: 24px;
	line-height: 1.5;
	text-align: left;
	max-width: 880px;
	margin: 0px auto 40px;
}
#page-top #introduction ul {
	text-align: center;
	font-size: 0px;
	margin-bottom: -20px;
}
#page-top #introduction ul li {
	display: inline-block;
	vertical-align: top;
	max-width: 540px;
	width: 100%;
	margin: 0px 10px 20px;
	font-size: 16px;
	background-color: #fff;
	border: solid 3px #F2A0A2;
	padding: 20px;
	border-radius: 10px;
}
#page-top #introduction ul li h4 {
	font-size: 36px;
	font-weight: 800;
	color: #F27186;
	line-height: 1.5;
	margin-bottom: 0.25em;
}
#page-top #introduction ul li .text {
	font-size: 21px;
	line-height: 1.5;
	margin-bottom: 0.25em;
}
/* サービスのご案内 */
#page-top #service ul li {
	position: relative;
	list-style: none;
	text-align: left;
	margin-bottom: 80px;
}
#page-top #service ul li .text-area h3 {
	font-size: 36px;
	line-height: 1.5;
	color: #43B9D1;
	margin-bottom: 0.25em;
}
#page-top #service ul li .text-area h3 .number {
	display: inline-block;
	width: 1.5em;
	background-color: #43B9D1;
	color: #fff;
	text-align: center;
	border-radius: 50%;
	margin-right: 0.25em;
}
#page-top #service ul li .text-area .detail {
	font-size: 30px;
	line-height: 1.75;
	padding-left: 2.25em;
}
#page-top #service ul li:nth-of-type(1) {
	height: 360px;
}
#page-top #service ul li:nth-of-type(1) .text-area {
	position: absolute;
	top: 0px;
	left: 16%;
}
#page-top #service ul li:nth-of-type(1) .image {
	position: absolute;
	left: 54%;
	bottom: 0px;
}
#page-top #service ul li:nth-of-type(2) {
	height: 480px;
}
#page-top #service ul li:nth-of-type(2) .text-area {
	position: absolute;
	top: 0px;
	left: 40%;
}
#page-top #service ul li:nth-of-type(2) .image {
	position: absolute;
	left: 4%;
	bottom: 0px;
}
#page-top #service ul li:nth-of-type(3) {
	height: 360px;
}
#page-top #service ul li:nth-of-type(3) .text-area {
	position: absolute;
	top: 0px;
	left: 16%;
}
#page-top #service ul li:nth-of-type(3) .image {
	position: absolute;
	left: 64%;
	bottom: 0px;
}
#page-top #service ul li:nth-of-type(4) {
	height: 380px;
}
#page-top #service ul li:nth-of-type(4) .text-area {
	position: absolute;
	top: 0px;
	left: 40%;
}
#page-top #service ul li:nth-of-type(4) .image {
	position: absolute;
	right: 60%;
	bottom: 0px;
}
#page-top #service ul li:nth-of-type(5) {
	height: 520px;
}
#page-top #service ul li:nth-of-type(5) .text-area {
	position: absolute;
	bottom: 0px;
	left: 20%;
}
#page-top #service ul li:nth-of-type(5) .image {
	position: absolute;
	top: 0px;
	left: 30%;
}

/* ご利用方法 */
#page-top #how-to-start {
	background-color: #FFFDE9;
	text-align: center;
}
#page-top #how-to-start .text {
	display: inline-block;
	text-align: left;
	font-size: 30px;
	line-height: 1.75;
	margin-bottom: 2em;
}
#page-top #how-to-start .image {
	padding-left: 16%;
}

/* 概要 */
#page-top #overview ul {
	text-align: center;
	font-size: 0px;
	margin-bottom: 40px;
}
#page-top #overview ul li {
	display: inline-block;
	vertical-align: top;
	font-size: 16px;
	width: 400px;
	min-height: 320px;
	border: solid 3px #7AC4D3;
	padding: 20px;
	margin: 0px 10px 20px;
}
#page-top #overview ul li h3 {
	font-size: 42px;
	line-height: 1.75;
	color: #7AC4D3;
	border-bottom: solid 3px #7AC4D3;
	margin-bottom: 0.25em;
}
#page-top #overview ul li .text {
	font-size: 30px;
	line-height: 1.75;
}
#page-top #overview ul li .text strong {
	font-size: 36px;
}
#page-top #overview ul li:nth-child(3) .text {
	text-align: left;
}
#page-top #overview .logo {
	float: left;
	width: 50%;
}
#page-top #overview .access-area {
	float: left;
	width: 50%;
}
#page-top #overview .access-area .address {
	font-size: 36px;
	line-height: 1.25;
	margin-bottom: 0.25em;
}
#page-top #overview .access-area .address .post {
	font-size: 32px;
}
#page-top #overview .access-area .tel {
	font-size: 36px;
	font-weight: bold;
}
#page-top #overview .access-area .tel a {
	display: inline-block;
	background-color: #7AC4D3;
	color: #fff;
	padding: 0.5em;
}
#page-top #overview .access-area .tel a .number {
	font-size: 48px;
	font-weight: 800;
	margin-left: 0.25em;
}
#page-top #overview .access-area .fax {
	font-size: 36px;
	font-weight: bold;
	padding: 0.5em;
	color: #7AC4D3;
}

/* MAP */
#page-top .map-area iframe {
	width: 100%;
	height: 800px;
}

/* お問い合わせ */
#page-top #contact {
	background-color: #D7EDF2;
	padding: 160px 10px;
}
#page-top #contact .border-area {
	max-width: 720px;
	margin: 0px auto;
	background-color: #fff;
	border: solid 3px #7AC4D3;
	text-align: center;
	padding: 40px;
}
#page-top #contact h2 {
	font-size: 48px;
	color: #7AC4D3;
	line-height: 1.5;
	margin-bottom: 0.5em;
}
#page-top #contact .tel {
	font-size: 40px;
	font-weight: 700;
	margin-bottom: 0.5em;
}
#page-top #contact .tel a {
	display: inline-block;
	background-color: #7AC4D3;
	color: #fff;
	padding-left: 20px;
}
#page-top #contact .tel a .number {
	background-color: #fff;
	color: #000;
	font-size: 48px;
	font-weight: 800;
	padding: 0em 0.5em;
	margin-left: 20px;
}
#page-top #contact .text {
	font-size: 18px;
	line-height: 1.5;
	margin-bottom: 80px;
}


#page-top #contact .wpcf7 {
	max-width: 540px;
	margin: 0px auto;
	padding: 0px 10px;
	text-align: left;
}
#page-top #contact input[type="text"] ,
#page-top #contact input[type="tel"] ,
#page-top #contact input[type="email"] ,
#page-top #contact textarea {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	font-size: 18px;
	font-family: 'Noto Sans JP', serif;
	line-height: 2.0;
	padding: 5px 1em;
	margin-top: 5px;
	margin-bottom: 20px;
	box-sizing: border-box;
	border-radius: 10px;
}
#page-top #contact .wpcf7-radio ,
#page-top #contact .wpcf7-checkbox {
	display: inline-block;
	line-height: 2.0;
	margin-bottom: 20px;
}
#page-top #contact .wpcf7-radio .wpcf7-list-item {
	padding: 5px;
}
#page-top #contact input[type="submit"] {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	background-color: #7AC4D3;
	color: #fff;
	border-radius: 10px;
	border: none;
	font-size: 18px;
	font-family: 'Noto Sans JP', serif;
	padding: 1em;
	text-align: center;
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}
#page-top #contact input[type="submit"]:hover {
	filter: alpha(opacity=70);
	-moz-opacity: 0.7;
	opacity: 0.7;
}






/* ------------------------------
reserve RESERVE  
------------------------------ */
#reserve .form-area {
	max-width: 900px;
	margin: 0px auto 120px;
	padding: 20px;
}
#reserve .form-area table {
	font-family: 'Noto Sans JP', sans-serif;
}
#reserve .form-area table caption {
	padding: 0.5em;
}
#reserve .form-area table th {
	border: solid 1px #ccc;
	padding: 0.25em;
}
#reserve .form-area table td {
	border: solid 1px #ccc;
	padding: 0.25em;
}
#reserve .form-area .monthly-prev-next {
	font-family: 'Noto Sans JP', sans-serif;
	padding: 0.5em;
}

#reserve .form-area #booking-form th {
	padding: 15px;
	line-height: 2;
}
#reserve .form-area #booking-form td {
	padding: 15px;
	line-height: 2;
}


/* レスポンシブWEBデザイン */
@media screen and (max-width:1260px) {

	.over1200 {
		display: none;
	}
	.under1200 {
		display: inline;
	}
	.over1200_block {
		display: none;
	}
	.under1200_block {
		display: block;
	}

	/* header */
	header .logo {
		padding: 0px 20px;
		height: 70px;
	}
	header .logo img {
		max-width: 243px;
	}
	header .tel {
		width: 260px;
		height: 70px;
		padding: 20px 0px;
	}
	header .tel a {
		display: block;
		font-size: 15px;
		line-height: 36px;
		text-align: left;
		padding-left: 0.5em;
	}
	header .tel a .number {
		font-size: 18px;
		font-weight: bold;
	}
	header .desktop-nav {
		display: none;
	}
	header .mobile-nav {
		display: block;
	}

	/* main */
	main .common-inner {
		padding: 60px 10px;
	}
	main .border-h {
		font-size: 32px;
	}
	/* footer */
	/* デスクトップ用メニュー */
	footer .desktop-nav {
		display: none;
	}
	footer .logo {
		width: 320px;
		margin: 60px auto -25px;
	}
	footer .access {
		font-size: 18px;
		max-width: 320px;
		margin: 0px auto 60px;
		padding-left: 65px;
	}
	footer .post {
		display: block;
		font-size: 15px;
		margin-right: 0em;
	}
	footer .devide {
		display: block;
		font-size: 0px;
	}

	/* top トップ */
	#page-top #introduction h2 {
		font-size: 28px;
		margin-bottom: 20px;
	}
	#page-top #introduction h3 {
		font-size: 18px;
		max-width: 680px;
		margin: 0px auto 20px;
	}
	#page-top #introduction ul {
		text-align: center;
		font-size: 0px;
		margin-bottom: -20px;
	}
	#page-top #introduction ul li {
		display: block;
		max-width: 340px;
		margin: 0px auto 10px;
		font-size: 16px;
		padding: 10px 5px;
		border-radius: 5px;
	}
	#page-top #introduction ul li h4 {
		font-size: 24px;
	}
	#page-top #introduction ul li .text {
		font-size: 15px;
		letter-spacing: 0px;
	}
	#page-top #service ul li {
		margin-bottom: 40px;
	}
	#page-top #service ul li .text-area h3 {
		font-size: 24px;
	}
	#page-top #service ul li .text-area .detail {
		font-size: 15px;
		padding-left: 3em;
	}
	#page-top #service ul li {
		height: auto !important;
	}
	#page-top #service ul li .text-area {
		position: static !important;
		max-width: 520px;
		margin: 0px auto 20px;
	}
	#page-top #service ul li .image {
		position: static !important;
		text-align: center;
		max-width: 520px;
		margin: 0px auto 0px;
	}
	#page-top #service ul li .image img {
		max-width: 50%;
		max-height: 360px;
	}
	#page-top #how-to-start .text {
		font-size: 18px;
	}
	#page-top #how-to-start .image {
		max-width: 640px;
		margin: 0px auto;
		padding-left: 0%;
	}
	#page-top #overview ul li {
		display: block;
		width: 320px;
		min-height: auto;
		padding: 10px;
		margin: 0px auto 20px;
	}
	#page-top #overview ul li h3 {
		font-size: 32px;
	}
	#page-top #overview ul li .text {
		font-size: 18px;
	}
	#page-top #overview ul li .text strong {
		font-size: 24px;
	}
	#page-top #overview .logo {
		float: none;
		width: 240px;
		margin: 0px auto;
		text-align: center;
	}
	#page-top #overview .access-area {
		float: none;
		width: 320px;
		margin: 0px auto;
	}
	#page-top #overview .access-area .address {
		font-size: 18px;
	}
	#page-top #overview .access-area .address .post {
		font-size: 15px;
	}
	#page-top #overview .access-area .tel {
		font-size: 21px;
	}
	#page-top #overview .access-area .tel a .number {
		font-size: 28px;
	}
	#page-top #overview .access-area .fax {
		font-size: 21px;
	}

	/* MAP */
	#page-top .map-area iframe {
		height: 300px;
	}

	/* お問い合わせ */
	#page-top #contact {
		padding: 60px 10px;
	}
	#page-top #contact .border-area {
		max-width: 320px;
		padding: 10px;
	}
	#page-top #contact h2 {
		font-size: 32px;
	}
	#page-top #contact .tel {
		font-size: 21px;
	}
	#page-top #contact .tel a {
		padding-left: 10px;
	}
	#page-top #contact .tel a .number {
		background-color: #fff;
		color: #000;
		font-size: 24px;
		margin-left: 10px;
	}
	#page-top #contact .text {
		font-size: 15px;
		margin-bottom: 40px;
	}
	#page-top #contact .wpcf7 {
		margin: 0px auto 40px;
	}
	#page-top #contact input[type="text"] ,
	#page-top #contact input[type="tel"] ,
	#page-top #contact input[type="email"] ,
	#page-top #contact textarea {
		font-size: 15px;
	}
	#page-top #contact input[type="submit"] {
		font-size: 15px;
	}


}

@media screen and (max-width: 620px) {
	.under600 {
		display: block;
	}
	img.under600 ,
	span.under600 {
		display: inline;
	}
	.over600 {
		display: none !important;
	}
	
}

@media screen and (min-width: 620px) {
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}