/*--------------------------------------------------------------
# Define
--------------------------------------------------------------*/

/*
/*for xs -575px smartphone
@media(max-width: 575px) {

}

/*for sm 576px-767px smartphone
@media(min-width: 576px) and (max-width: 767px) {

}

/*for md 768px-991px tablet
@media(min-width: 768px) and (max-width: 991px) {

}

/*for lg 992px-1199px pc->tablet
@media(min-width: 992px) and (max-width: 1199px) {

}

/*for xl 1200px-1399px pc
@media(min-width: 1200px) and (max-width: 1399px) {

}

/*for xxl 1400px- pc
@media(min-width: 1400px) {

}
*/



/*--------------------------------------------------------------
# Const
--------------------------------------------------------------*/

:root {
	/* Fonts */
	--font-default:"Noto Sans JP","Montserrat",sans-serif;
	--font-default-size:18px;
	--font-default-size-sp:22px;

	/* Colors */
	--color-default-font:#000000;
	--color-default-bgcolor:#FFFFFF; /* 白 */
	--color-default-bgcolor2:#f2f2f2; /* グレー */
	--color-default-bgcolor3:#f7f5e9; /* アイボリー */


	--color1:#5D7D39; /* グリーン */
	--color2:#FFFFFF; /* 白 */
	--color3:#EEEEEE; /* グレー */

	--color-error:#FFFFFF;

	--color-hover-a:#4D6A30;
	--color-hover-btn:#4D6A30;
}

/*--------------------------------------------------------------
# Bootstrap Custom
--------------------------------------------------------------*/

.container-fluid {
	margin:0;
	padding:0;
	position:relative;
	z-index:0;
}
.back-w {
	background-color:#FFFFFF;
	border-radius:30px;
}

.box-center {
	margin:0 auto;
}
.bg-color1 {
	background-color:var(--color1);
}
.bg-color2 {
	background-color:var(--color2);
}
.bg-color3 {
	background-color:var(--color3);
}

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

body {
	font-family: var(--font-default);
	font-optical-sizing: auto;
	font-weight:400;
	font-style: normal;
	font-size:var(--font-default-size);
	color: var(--color-default-font);
	background:var(--color-default-bgcolor);


	scroll-behavior: smooth;

	position:relative;

}

/* for sm -767px smartphone */
@media(max-width: 767px) {

body {
	font-size:var(--font-default-size-sp);
}

}

main {
	overflow:hidden;
	position:relative;
	z-index:100;
}




a {
	color: var(--color-default-font);
	text-decoration: none;
}

a:hover {
	color: var(--color-hover-a);
	text-decoration: none;
}

h1{
	margin:0;
	font-size:48px;
	font-weight:700;
	line-height:1.5em;
}

h1 span{
	color:var(--color1);
}

h2{
	margin:0;
	font-size:32px;
	font-weight:700;
	line-height:1.5em;
}

h3{
	margin:0;
	font-size:24px;
	font-weight:700;
	line-height:1.5em;
}

h4{
	margin:0;
	font-size:20px;
	font-weight:700;
	line-height:1.5em;
}

/* for xs,sm,md -991px smartphone / tablet */
@media(max-width:991px){

	h1{
		font-size:38px;
	}

	h2{
		font-size:28px;
	}

	h3{
		font-size:24px;
	}

	h4{
		font-size:20px;
	}

}


p {
	line-height:1.8em;
}

i {
	font-size:20px;
}

table {
	width:100%;
	max-width:1000px;
	margin:0 auto;
	border-collapse: collapse;
	border:none;
}

table th {
	width:35%;
	font-weight:600;
	padding:2rem;
	text-align:center;
	vertical-align:top;
}

table td {
	padding:2rem;
	text-align:left;
	vertical-align:top;
}

.extable {
	background-color:#EEEEEE;
	border-radius:10px;
}

/* for xs,sm,md -991px sp */
@media(max-width: 991px) {

table th,table td {
	width:100%;
	padding:1rem;
	text-align:center;
	display:block;
}

}


select {
	width:100%;
	height:50px;
	font-size:var(--font-default-size);
	color:#000000;
}

input[type=text],input[type=password],input[type=date] {
	width:100%;
	height:50px;
	font-size:var(--font-default-size);
}

input[type="date"] {
	color:#000000;
}

input[type="checkbox"] {
	width:20px;
	height:20px;
	margin-right:15px;
}

textarea {
	width:100%;
	height:150px;
	font-size:var(--font-default-size);
	color:#000000;
}

.form-btn {
	width:80%;
	max-width:400px;
	margin:0 auto;
	padding:15px 0;

	color:#FFFFFF;
	background-color:#F38F32;
	border:0;
	border-radius:50px;
	display:block;
}

.form-btn:hover {
	filter: brightness(1.2);
}

#form-errorbox {
	display:none;
}


/*--------------------------------------------------------------
# Parts
--------------------------------------------------------------*/

.errorMsg{
	color:#FF0000;
}

.spacer {
	padding-bottom:6rem;
}

.tbform th {
	font-weight:400;
}

/*=========================================
	ボタン１
=========================================*/

.btn1{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;

	height:48px;
	width:180px;

	padding:0 20px;

	background:#5D7D39;
	color:#fff;

	border:0;
	border-radius:8px;

	font-size:15px;
	font-weight:600;
	line-height:1;
	text-decoration:none;

	cursor:pointer;
	box-sizing:border-box;
	transition:all .25s ease;
}
.btn1:hover{
	background:#4E6B2F;
	color:#fff;
	text-decoration:none;
}
.btn1 i{
	font-size:16px;
}
.btn1 span{
	line-height:1;
}

.btn1.btn-sm{
	width:180px;
}

.btn1.btn-md{
	width:220px;
}

.btn1.btn-lg{
	width:340px;
	height:60px;
	font-size:18px;
}

@media (max-width:991px){
	.btn1{
		width:100%;
		height:46px;
		padding:0 18px;
		font-size:14px;
		gap:6px;
	}

}




.btn2 {
	height:50px;

	padding:0 15px;

	font-size:18px;

	line-height:2.5em;

	border:1px solid #FFFFFF;
	border-radius:5px;

	background-color:#000000;

	display:block;
}

.btn2:hover,.btn:active {
	color:var(--color1) !important;
}


.list1 {
	width:100%;
	margin: auto;
	padding:0;

	list-style-type:none;

	display:grid;
	grid-template-columns: repeat(1,1fr);


}

.list1 li {
	padding: 10px;
	margin: 10px;

	background-color:var(--color-gray4);
	border-radius:10px;

	cursor: pointer;
}

.list1 li:hover {
	background-color:var(--color-hover-btn-red);
}

.list1 .list1sec {
	background-color:var(--color-hover-btn-red);
}

/* for xs,sm,md -991px sp */
@media(max-width: 991px) {

.list1 {
	display: block;
}

.list1 li {
	margin: 15px 0 15px 0;
}

}

.list2 {
	width:100%;
	margin: auto;
	padding:0;

	list-style-type:none;

	display:grid;
	grid-template-columns: 1fr 3fr;


}

.list2 li {
	padding: 10px;
	margin: 10px;
}

/* for xs,sm,md -991px sp */
@media(max-width: 991px) {

.list2 {
	display: block;
}

.list2 li {
	margin: 15px 0 15px 0;
}

}



#errorMsgBox ul {
	width:100%;
	padding:25px;

	color:var(--color-red1);
	list-style-type:none;

	border-radius:10px;
	background-color:#EEEEEE;
}

#errorMsgBox li {
	display:block;
}

/*--------------------------------------------------------------
# Section
--------------------------------------------------------------*/



/*--------------------------------------------------------------
# Modal
--------------------------------------------------------------*/



/*--------------------------------------------------------------
# SpMenu
--------------------------------------------------------------*/

#spmenuBack {
	width:100%;
	height:100%;
	left:0;
	top:0;

	background-color:#000000;
	opacity:0.6;

	position:fixed;
	z-index:1000;

	display:none;
}

#spmenuBase {
	width:400px;
	height:100%;
	left:-400px;
	top:0;

	overflow-y: scroll;

	background-color:#000000;

	position:fixed;
	z-index:2000;

}

#spmenuArea {
	width:100%;
	height:auto;

	color:#FFFFFF;
}

#spmenuArea a {
	color:#FFFFFF;
}

#spmenuArea a:hover {
	color:#FFFFFF;
}

#spmenuArea ul {
	width:100%;
	padding:0 15px 10px 15px;
	list-style:none;
}

#spmenuArea #fst {
	margin-top:22px;
}

#spmenuArea li {
	margin-bottom:11px;
}

#spmenuArea ul .tp {
	border-bottom:1px solid #FFFFFF;
}

#spmenuArea #snsmark i {
	font-size:26px;
	margin-right:23px;
}



/*--------------------------------------------------------------
# SP Menu Under
--------------------------------------------------------------*/

#spmenuUnder{
	position:fixed;
	left:15px;
	right:15px;
	bottom:15px;
	z-index:1000;
}

#spmenuUnder ul{
	margin:0;
	padding:0;
	list-style:none;
	display:flex;
	border-radius:40px;
	overflow:hidden;
	box-shadow:0 8px 20px rgba(0,0,0,.18);
}

#spmenuUnder li{
	height:64px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	font-size:16px;
	font-weight:700;
	cursor:pointer;
	transition:.25s;
}

#spmenuUnder li i{
	font-size:22px;
}

#spmenuUnder li span{
	white-space:nowrap;
}

#spmenuUnder .spmenuTel{
	flex:1;
	color:#FFFFFF;
	background:var(--color1);
}

#spmenuUnder .spmenuMail{
	flex:1;
	color:#FFFFFF;
	background:#6F9148;
}

#spmenuUnder .spmenuTop{
	width:72px;
	color:var(--color1);
	background:#FFFFFF;
	border-left:1px solid var(--color3);
}

#spmenuUnder .spmenuTop i{
	font-size:28px;
}

#spmenuUnder li:hover{
	filter:brightness(1.08);
}

/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/

#preloader {
	width:100vw;
	height:100vh;
	top:0;
	left:0;

	background-color:#FFFFFF;

	position:fixed;
	z-index:3000;

	display:flex;
	justify-content:center;
	align-items:center;
}

#preloaderMark {
	opacity:0;
	animation: blink 1.5s infinite linear;
}

#preloaderMark img {
	width:100px;
	height:100px;
}

@keyframes blink {
	50% {
		opacity: 1;
	}
}




/*--------------------------------------------------------------
# PagetopLink
--------------------------------------------------------------*/

#page-top{
	width:64px;
	height:64px;
	position:fixed;
	right:30px;
	bottom:30px;
	z-index:1000;

	display:flex;
	align-items:center;
	justify-content:center;

	background:var(--color1);
	border-radius:50%;
	box-shadow:0 8px 20px rgba(0,0,0,.18);

	cursor:pointer;

	opacity:0;

	transition:
		background .3s,
		transform .3s,
		box-shadow .3s,
		opacity .4s;
}

#page-top i{
	color:#FFFFFF;
	font-size:34px;
	line-height:1;
	transition:transform .3s;
}

#page-top:hover{
	background:#6F9148;
	box-shadow:0 12px 28px rgba(0,0,0,.25);
	transform:translateY(-4px);
}

#page-top:hover i{
	transform:translateY(-3px);
}

#page-top.UpMove{
	animation:UpAnime .4s forwards;
}

@keyframes UpAnime{
	from{
		opacity:0;
		transform:translateY(80px);
	}
	to{
		opacity:1;
		transform:translateY(0);
	}
}

#page-top.DownMove{
	animation:DownAnime .4s forwards;
}

@keyframes DownAnime{
	from{
		opacity:1;
		transform:translateY(0);
	}
	to{
		opacity:0;
		transform:translateY(80px);
	}
}

@media(max-width:991px){

	#page-top{
		width:56px;
		height:56px;
		right:18px;
		bottom:18px;
	}

	#page-top i{
		font-size:30px;
	}

}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/

header{
	width:100%;
	height:80px;

	display:flex;
	align-items:center;
	justify-content:space-between;

	padding:0 30px;

	box-sizing:border-box;

	position:relative;
}

header #logo{
	width:328px;
	height:70px;

	position:static;
	flex-shrink:0;
}

header #logo img{
	width:100%;
	height:100%;
	object-fit:contain;
}

#hmenu{
	position:static;
	height:auto;
	margin-left:auto;
}

#hmenu ul{
	margin:0;
	padding:0;

	list-style:none;

	display:flex;
	align-items:center;
	gap:20px;
}

#hmenu li{
	margin:0;
}




/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

footer {
	text-align:center;
	border-top:1px solid #DDDDDD;
	background-color:var(--color-default-bgcolor2);
}
footer img {
	width:274px;
	height:35px;
}
footer p {
	font-size:14px;
}

/* for sm -767px smartphone */
@media(max-width: 767px) {

footer {
	height:163px;
}

}



/*--------------------------------------------------------------
# index sec
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Top Image
--------------------------------------------------------------*/
#topimage{
	width:100%;
	background:#F8F7F1;
	overflow:hidden;
}

#topimage .row{
	min-height:600px;
}

#topimage #box1{
	min-height:600px;
	padding:70px 4% 60px 6%;

	background:
		linear-gradient(
			90deg,
			#F8F7F1 0%,
			#F8F7F1 82%,
			rgba(248,247,241,0) 100%
		);

	position:relative;
	z-index:10;

	display:flex;
	align-items:center;
}

#topimage .topimage-content{
	width:100%;
	max-width:620px;
	margin-left:auto;
}

#topimage h1{
	margin:0 0 22px;

	color:#222222;

	font-size:36px;
	font-weight:800;
	line-height:1.65em;
	letter-spacing:.02em;
}

#topimage h1 span{
	color:inherit;
}

#topimage h1 .color{
	color:#557D43;
}

#topimage h1 .size{
	font-size:1.25em;
}

#topimage h1 .size2{
	font-size:.7em;
}

#topimage p{
	margin:0 0 35px;

	color:#555555;

	font-size:16px;
	font-weight:400;
	line-height:1.9em;
}

#topimage .topimage-search{
	width:100%;
	max-width:570px;
}

#topimage .topimage-search-main{
	width:100%;

	display:flex;
	align-items:center;
	gap:10px;
}

#topimage .topimage-search-main input{
	width:calc(100% - 190px);
	height:52px;

	padding:0 18px;

	color:#333333;
	font-size:15px;

	background:#FFFFFF;

	border:1px solid #D7D7D7;
	border-radius:6px;

	box-sizing:border-box;
}

#topimage .topimage-search-main input::placeholder{
	color:#888888;
}

#topimage .topimage-search-main input:focus{
	border-color:#5D7D39;
	outline:none;
	box-shadow:0 0 0 3px rgba(93,125,57,.12);
}

#topimage .topimage-search-main .btn1{
	height:52px;
	flex-shrink:0;
}

#topimage .topimage-detail-btn{
	width:210px;
	height:48px;

	margin-top:14px;

	color:#41652F;

	font-size:14px;
	font-weight:700;

	background:#FFFFFF;

	border:1px solid #CDD5C6;
	border-radius:6px;

	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;

	box-sizing:border-box;
	transition:all .25s ease;
}

#topimage .topimage-detail-btn i{
	color:#41652F;
	font-size:16px;
}

#topimage .topimage-detail-btn:hover{
	color:#FFFFFF;
	background:#5D7D39;
	border-color:#5D7D39;
}

#topimage .topimage-detail-btn:hover i{
	color:#FFFFFF;
}


/*--------------------------------------------------------------
# Top Image Map
--------------------------------------------------------------*/
#topimage #box2{
	min-height:600px;

	position:relative;
	z-index:1;
}

#topimage #map{
	width:100%;
	height:100%;
	min-height:600px;

	background:#F2F2F2;

	position:relative;
	z-index:1;
}

/* Leafletが生成する地図本体 */
#topimage #map.leaflet-container{
	width:100%;
	height:100%;
	min-height:600px;

	font-family:var(--font-default);
	background:#F2F2F2;
}

/* Leafletのコントロールを左側コンテンツより前面へ */
#topimage #map .leaflet-control-container{
	position:relative;
	z-index:500;
}


/*--------------------------------------------------------------
# Facility Map Popup
--------------------------------------------------------------*/
.facility-map-popup{
	width:220px;
	max-width:100%;
}

.facility-map-popup-name{
	margin-bottom:12px;

	color:#222222;

	font-size:15px;
	font-weight:700;
	line-height:1.6em;
}

.facility-map-popup-link{
	width:100%;
	height:40px;

	padding:0 15px;

	color:#FFFFFF !important;

	font-size:13px;
	font-weight:700;
	line-height:1;

	background:#5D7D39;
	border-radius:5px;

	display:flex;
	align-items:center;
	justify-content:center;

	box-sizing:border-box;
	text-decoration:none !important;

	transition:.25s;
}

.facility-map-popup-link:hover{
	color:#FFFFFF !important;
	background:#4D6A30;
}

/* Leaflet標準ポップアップの余白調整 */
#topimage #map .leaflet-popup-content{
	margin:16px;
}

#topimage #map .leaflet-popup-content-wrapper{
	border-radius:8px;
	box-shadow:0 5px 18px rgba(0,0,0,.18);
}

#topimage #map .leaflet-popup-close-button{
	top:4px;
	right:5px;

	color:#777777;

	font-size:20px;
}


/*--------------------------------------------------------------
# Facility Map Error
--------------------------------------------------------------*/
.facility-map-error{
	width:100%;
	height:100%;
	min-height:600px;

	padding:20px;

	color:#666666;

	font-size:15px;
	text-align:center;

	background:#F2F2F2;

	display:flex;
	align-items:center;
	justify-content:center;

	box-sizing:border-box;
}


/*--------------------------------------------------------------
# Top Image PC 992px - 1399px
--------------------------------------------------------------*/
@media(min-width:992px) and (max-width:1399px){

	#topimage .row{
		min-height:520px;
	}

	#topimage #box1{
		min-height:520px;
		padding:55px 3% 50px 5%;
	}

	#topimage #box2,
	#topimage #map,
	#topimage #map.leaflet-container{
		min-height:520px;
	}

	#topimage h1{
		font-size:30px;
	}

	#topimage p{
		font-size:15px;
	}

	#topimage .topimage-search-main input{
		width:calc(100% - 170px);
	}

	.facility-map-error{
		min-height:520px;
	}

}


/*--------------------------------------------------------------
# Top Image Smartphone / Tablet - 991px
--------------------------------------------------------------*/
@media(max-width:991px){

	#topimage .row{
		min-height:0;
	}

	#topimage #box1{
		min-height:0;
		padding:55px 6% 50px;

		background:#F8F7F1;
	}

	#topimage .topimage-content{
		max-width:none;
		margin:0;
	}

	#topimage h1{
		margin-bottom:20px;

		font-size:34px;
		line-height:1.6em;
	}

	#topimage p{
		margin-bottom:30px;

		font-size:18px;
		line-height:1.8em;
	}

	#topimage .topimage-search{
		max-width:none;
	}

	#topimage .topimage-search-main{
		display:block;
	}

	#topimage .topimage-search-main input{
		width:100%;
		height:58px;

		margin-bottom:12px;

		font-size:17px;
	}

	#topimage .topimage-search-main .btn1{
		width:100%;
		height:58px;

		font-size:17px;
	}

	#topimage .topimage-detail-btn{
		width:100%;
		height:54px;

		margin-top:12px;

		font-size:16px;
	}

	#topimage #box2,
	#topimage #map,
	#topimage #map.leaflet-container{
		min-height:420px;
	}

	.facility-map-error{
		min-height:420px;
	}

}


/*--------------------------------------------------------------
# Top Image Smartphone - 767px
--------------------------------------------------------------*/
@media(max-width:767px){

	#topimage #box1{
		padding:45px 20px 40px;
	}

	#topimage h1{
		font-size:30px;
	}

	#topimage p{
		font-size:16px;
	}

	#topimage #box2,
	#topimage #map,
	#topimage #map.leaflet-container{
		min-height:430px;
	}

	.facility-map-popup{
		width:200px;
	}

	.facility-map-popup-name{
		font-size:14px;
	}

	.facility-map-popup-link{
		height:42px;
		font-size:14px;
	}

	.facility-map-error{
		min-height:430px;
		font-size:14px;
	}

}


/*--------------------------------------------------------------
# Inquiry Section
--------------------------------------------------------------*/

#inqsec{
	padding:30px 20px;
	background:#FFFFFF;
}

#inqsec .inqsec-inner{
	width:100%;
	max-width:1500px;
	margin:0 auto;
	padding:28px 40px;
	background:#FAFAFA;
	border-radius:8px;
	box-sizing:border-box;
}

#inqsec .row{
	margin:0;
}

#inqsec h2{
	margin:0 0 8px;
}

#inqsec p{
	margin:0;
	color:#666666;
	font-size:15px;
	line-height:1.7em;
}

#inqsec .btn1{
	margin:0 auto;
}

/*--------------------------------------------------------------
# Inquiry Section -991px
--------------------------------------------------------------*/

@media(max-width:991px){

	#inqsec{
		padding:20px 15px;
	}

	#inqsec .inqsec-inner{
		padding:35px 25px;
	}

	#inqsec h2{
		margin-bottom:12px;
	}

	#inqsec p{
		margin-bottom:25px;
		font-size:16px;
	}

	#inqsec .btn1{
		width:100%;
		max-width:320px;
	}

}

/*--------------------------------------------------------------
# Facility
--------------------------------------------------------------*/

#facility{
	padding:80px 30px;
	background:#FFFFFF;
}

#facility .container-fluid{
	width:100%;
	max-width:1800px;
	margin:0 auto;
}

#facility h2{
	text-align:center;
}

#facility .lead{
	margin:10px 0 45px;
	font-size:16px;
	line-height:1.8em;
}

#facility .row{
	margin-left:-10px;
	margin-right:-10px;
}

#facility .row > div{
	padding-left:10px;
	padding-right:10px;
}

.facilityCard{
	height:100%;
	padding:12px;
	background:#FFFFFF;
	border:1px solid #E7E7E7;
	border-radius:8px;
	box-shadow:0 5px 14px rgba(0,0,0,.06);
	display:flex;
	flex-direction:column;
	box-sizing:border-box;
}

.facilityCard img{
	width:100%;
	height:145px;
	object-fit:cover;
	border-radius:6px 6px 0 0;
	display:block;
}

.facilityCardStreetview{
	width:100%;
	height:145px;

	position:relative;

	overflow:hidden;

	background:#EEEEEE;
	border-radius:6px 6px 0 0;

	display:block;
}

.facilityCardStreetview iframe,
.facilityCardStreetview img{
	width:100%;
	height:100%;

	border:0;

	object-fit:cover;
	display:block;
}

/* iframeの操作を無効化し、カードクリックを優先 */
.facilityCardStreetview iframe{
	pointer-events:none;
}

.facilityCardStreetviewCover{
	position:absolute;
	inset:0;
	z-index:2;

	display:block;
}

.facilityCardStreetview:hover iframe,
.facilityCardStreetview:hover img{
	transform:scale(1.03);
}

.facilityCardStreetview iframe,
.facilityCardStreetview img{
	transition:transform .3s ease;
}

.facilityCategory{
	width:max-content;
	max-width:100%;
	margin:12px auto 0;
	padding:4px 10px;
	font-size:11px;
	font-weight:700;
	line-height:1.5em;
	text-align:center;
	border-radius:20px;
	display:block;
	box-sizing:border-box;
}

.facilityCard h3{
	margin:12px 0 7px;
	font-size:17px;
	text-align:center;
}

.facilityArea{
	margin-bottom:11px;
	font-size:14px;
	line-height:1.6em;
	text-align:center;
}

.facilityCard p{
	margin:0 0 18px;
	font-size:13px;
	line-height:1.8em;
	text-align:center;
	flex:1;
}

.facilityDetailBtn{
	width:100%;
	height:46px;
	margin-top:auto;
	color:#4F713A;
	font-size:14px;
	font-weight:700;
	background:#FFFFFF;
	border:1px solid #CBD6C4;
	border-radius:6px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	text-decoration:none;
	box-sizing:border-box;
	transition:.25s;
}

.facilityDetailBtn i{
	font-size:13px;
	transition:.25s;
}

.facilityDetailBtn:hover{
	color:#FFFFFF;
	background:#5D7D39;
	border-color:#5D7D39;
	text-decoration:none;
}

.facilityDetailBtn:hover i{
	color:#FFFFFF;
	transform:translateX(3px);
}

/*--------------------------------------------------------------
# Facility -991px
--------------------------------------------------------------*/

@media(max-width:991px){

	#facility{
		padding:60px 20px;
	}

	#facility .lead{
		margin-bottom:35px;
		font-size:17px;
	}

	.facilityCard img{
		height:180px;
	}
	.facilityCardStreetview{
		height:180px;
	}

	.facilityCard h3{
		font-size:19px;
	}

	.facilityCard p{
		font-size:15px;
	}

}

/*--------------------------------------------------------------
# Facility -767px
--------------------------------------------------------------*/

@media(max-width:767px){

	#facility{
		padding:50px 15px;
	}

	#facility .row{
		margin-left:0;
		margin-right:0;
	}

	#facility .row > div{
		padding-left:0;
		padding-right:0;
	}

	.facilityCard{
		padding:14px;
	}

	.facilityCard img{
		height:220px;
	}
	.facilityCardStreetview{
		height:220px;
	}

	.facilityCategory{
		font-size:13px;
	}

	.facilityCard h3{
		font-size:22px;
	}

	.facilityArea{
		font-size:17px;
	}

	.facilityCard p{
		font-size:17px;
	}

	.facilityDetailBtn{
		height:54px;
		font-size:17px;
	}

}


/*--------------------------------------------------------------
# nagomiセクション
--------------------------------------------------------------*/

#nagomi{
	padding:110px 0;
	background:#faf8f3;
	border-top:1px solid #ece7de;
}

.nagomi-label{
	display:inline-block;
	padding:6px 18px;
	background:#6c8b42;
	color:#fff;
	font-size:14px;
	border-radius:30px;
	margin-bottom:20px;
}

.nagomi-title{
	font-size:44px;
	font-weight:700;
	line-height:1.5;
	margin-bottom:25px;
}

.nagomi-title span{
	color:#6c8b42;
}

.nagomi-text{
	font-size:17px;
	line-height:2;
	margin-bottom:35px;
}

.nagomi-service{
	background:#FFFFFF;
	border:1px solid #E8E4DA;
	border-radius:14px;

	height:215px;

	padding:26px 18px;

	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;

	text-align:center;

	transition:.25s;
}

.nagomi-service:hover{
	transform:translateY(-5px);
	box-shadow:0 12px 28px rgba(0,0,0,.08);
}

.nagomi-service i{
	font-size:52px;
	color:var(--color1);

	line-height:1;

	margin-bottom:18px;
}

.nagomi-service h4{
	margin:0 0 12px;

	font-size:19px;
	font-weight:700;
	line-height:1.4em;
}

.nagomi-service p{
	margin:0;

	font-size:13px;
	line-height:1.7em;
}

.nagomi-card{
	width:100%;
	padding-left:30px;
}

.nagomi-brand{
	margin-bottom:35px;
	text-align:center;
}

.nagomi-logo{
	margin:0 auto;
	display:block;
}

.nagomi-brand p{
	margin:0;
	color:var(--color1);
	font-size:20px;
	font-weight:700;
	line-height:1.5em;
	letter-spacing:.04em;
}

.nagomi-staff{
	width:100%;
	margin-bottom:28px;
	overflow:hidden;
}

.nagomi-staff img{
	width:100%;
	height:310px;
	object-fit:cover;
	object-position:center;
	display:block;
}

.nagomi-contact{
	width:100%;
	margin-bottom:20px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:22px;
}

.nagomi-contact-main{
	flex:1;
	display:flex;
	align-items:center;
	gap:18px;
}

.nagomi-phone-icon{
	width:64px;
	height:64px;
	flex-shrink:0;
	color:#FFFFFF;
	background:var(--color1);
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
}

.nagomi-phone-icon i{
	color:#FFFFFF;
	font-size:31px;
	line-height:1;
}

.nagomi-phone{
	flex:1;
	text-align:left;
}

.nagomi-phone span{
	margin-bottom:4px;
	color:#555555;
	font-size:16px;
	font-weight:600;
	line-height:1.5em;
	display:block;
}

.nagomi-phone a{
	color:var(--color1);
	font-size:44px;
	font-weight:700;
	line-height:1.1em;
	letter-spacing:.02em;
	white-space:nowrap;
}

.nagomi-phone a:hover{
	color:var(--color-hover-a);
}

.nagomi-hours{
	width:155px;
	padding:14px 10px;
	flex-shrink:0;
	text-align:center;
	background:#F4ECD5;
	border-radius:12px;
}

.nagomi-hours strong{
	margin-bottom:3px;
	color:#555555;
	font-size:15px;
	font-weight:700;
	display:block;
}

.nagomi-hours span{
	color:#444444;
	font-size:15px;
	font-weight:600;
	display:block;
}

.nagomi-hours small{
	margin-top:3px;
	color:#6C7C52;
	font-size:11px;
	font-weight:600;
	line-height:1.45em;
	display:block;
}

.nagomi-btn{
	width:100%;
	height:66px;
	padding:0 30px;
	color:#FFFFFF;
	background:#F68A25;
	border-radius:7px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	font-size:20px;
	font-weight:700;
	line-height:1;
	transition:.25s;
}

.nagomi-btn i{
	color:#FFFFFF;
	font-size:18px;
	transition:.25s;
}

.nagomi-btn:hover{
	color:#FFFFFF;
	background:#E97A16;
}

.nagomi-btn:hover i{
	transform:translateX(4px);
}

@media(min-width:992px) and (max-width:1399px){

	.nagomi-card{
		padding-left:20px;
	}

	.nagomi-logo{
		max-width:390px;
	}

	.nagomi-brand p{
		font-size:17px;
	}

	.nagomi-staff img{
		height:270px;
	}

	.nagomi-contact{
		gap:14px;
	}

	.nagomi-contact-main{
		gap:12px;
	}

	.nagomi-phone-icon{
		width:54px;
		height:54px;
	}

	.nagomi-phone-icon i{
		font-size:26px;
	}

	.nagomi-phone span{
		font-size:13px;
	}

	.nagomi-phone a{
		font-size:34px;
	}

	.nagomi-hours{
		width:130px;
	}

	.nagomi-btn{
		height:60px;
		font-size:18px;
	}

}

@media(max-width:991px){

	.nagomi-card{
		margin-top:50px;
		padding-left:0;
	}

	.nagomi-brand{
		margin-bottom:25px;
	}

	.nagomi-logo{
		max-width:430px;
	}

	.nagomi-staff img{
		height:auto;
	}

	.nagomi-contact{
		margin-top:25px;
	}

}

@media(max-width:767px){

	.nagomi-logo{
		max-width:100%;
	}

	.nagomi-brand p{
		font-size:17px;
	}

	.nagomi-contact{
		display:block;
	}

	.nagomi-contact-main{
		justify-content:center;
	}

	.nagomi-phone{
		flex:initial;
	}

	.nagomi-phone span{
		font-size:14px;
	}

	.nagomi-phone a{
		font-size:35px;
	}

	.nagomi-hours{
		width:100%;
		margin-top:18px;
		padding:12px;
	}

	.nagomi-hours small br{
		display:none;
	}

	.nagomi-btn{
		height:60px;
		padding:0 15px;
		font-size:17px;
	}

}



/*--------------------------------------------------------------
# Search Top
--------------------------------------------------------------*/
#searchtop{
	padding:60px 0;
	background:linear-gradient(90deg,#fbfaf6 0%,#fbfaf6 45%,#f6f7f3 100%);
	overflow:hidden;
	position:relative;
}

#searchtop::before{
	content:"";
	position:absolute;
	top:-120px;
	left:-120px;
	width:420px;
	height:420px;
	border-radius:50%;
	background:rgba(120,160,80,.05);
}

#searchtop .container{
	position:relative;
	z-index:1;
}

#searchtop .searchtop-copy h1{
	margin:0 0 16px;
	font-size:36px;
	font-weight:800;
	line-height:1.65em;
	letter-spacing:.02em;
}

#searchtop .searchtop-copy h1 span{
	color:inherit;
}

#searchtop .searchtop-copy h1 .color{
	color:#557d43;
}

#searchtop .searchtop-copy h1 .size{
	font-size:1.25em;
}

#searchtop .searchtop-copy p{
	margin:0;
	font-size:16px;
	line-height:1.9em;
}

#searchtop .searchtop-visual{
	text-align:right;
}

#searchtop .searchtop-visual img{
	max-width:100%;
	height:auto;
}

#searchtop .searchbox{
	margin-top:45px;
	padding:30px;
	background:#FFFFFF;
	border:1px solid #E8E5D9;
	border-radius:18px;
	box-shadow:0 10px 30px rgba(0,0,0,.06);
}

#searchtop .searchbox-title{
	margin-bottom:18px;
	font-size:16px;
	font-weight:700;
}

#searchtop .form-control,
#searchtop .form-select{
	height:54px;
	font-size:15px;
	border:1px solid #DCDCDC;
	border-radius:8px;
	box-shadow:none;
}

#searchtop .form-control:focus,
#searchtop .form-select:focus{
	border-color:var(--color1);
	box-shadow:0 0 0 3px rgba(93,125,57,.12);
}

#searchtop .btn-search{
	height:54px;
	background:var(--color1);
	color:#FFFFFF;
	border:0;
	border-radius:8px;
	font-size:15px;
	font-weight:700;
	transition:.25s;
}

#searchtop .btn-search:hover{
	background:var(--color-hover-btn);
	color:#FFFFFF;
}

#searchtop .search-detail{
	margin-top:15px;
}

#searchtop .search-detail a{
	font-size:14px;
	font-weight:500;
}

#searchtop .search-detail i{
	margin-right:4px;
	font-size:14px;
}

@media(min-width:992px) and (max-width:1399px){

	#searchtop .searchtop-copy h1{
		font-size:30px;
	}

	#searchtop .searchtop-copy p{
		font-size:15px;
	}

}

@media(max-width:991px){

	#searchtop{
		padding:45px 0;
	}

	#searchtop .searchtop-copy{
		margin-bottom:30px;
	}

	#searchtop .searchtop-copy h1{
		font-size:34px;
		line-height:1.6em;
	}

	#searchtop .searchtop-copy p{
		font-size:18px;
	}

	#searchtop .searchtop-visual{
		text-align:center;
	}

	#searchtop .searchbox{
		margin-top:35px;
		padding:24px;
	}

}

@media(max-width:575px){

	#searchtop{
		padding:35px 0;
	}

	#searchtop .searchtop-copy h1{
		font-size:30px;
	}

	#searchtop .searchtop-copy p{
		font-size:16px;
	}

	#searchtop .searchbox{
		padding:20px;
	}

}

/*--------------------------------------------------------------
# Search Results
--------------------------------------------------------------*/
#searchresults{
	padding:45px 30px 70px;
	background:#FFFFFF;
}

#searchresults .container-fluid{
	width:100%;
	max-width:1800px;
	margin:0 auto;
}

#searchresults .searchresults-head{
	margin-bottom:28px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
}

#searchresults .searchresults-count{
	font-size:20px;
	font-weight:700;
	line-height:1.5em;
}

#searchresults .searchresults-count strong{
	margin:0 5px;
	color:var(--color1);
	font-size:1.25em;
	font-weight:700;
}

#searchresults .searchresults-sort{
	width:220px;
	flex-shrink:0;
}

#searchresults .searchresults-sort select{
	width:100%;
	height:48px;
	padding:0 40px 0 16px;
	font-size:15px;
	font-weight:500;
	background-color:#FFFFFF;
	border:1px solid #DADADA;
	border-radius:6px;
	cursor:pointer;
	box-sizing:border-box;
}

#searchresults .searchresults-sort select:focus{
	border-color:var(--color1);
	outline:none;
	box-shadow:0 0 0 3px rgba(93,125,57,.12);
}

#searchresults .row{
	margin-left:-10px;
	margin-right:-10px;
}

#searchresults .row > div{
	padding-left:10px;
	padding-right:10px;
}

/* ページ送り */
#searchresults .searchresults-pagination{
	margin-top:45px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
}

/* 前へ・次への共通スタイル */
#searchresults .searchresults-pagination a,
#searchresults .searchresults-pagination span{
	min-width:82px;
	height:44px;
	padding:0 12px;

	font-size:15px;
	font-weight:600;
	line-height:1;

	background:#FFFFFF;
	border:1px solid #DDDDDD;
	border-radius:6px;

	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:5px;

	box-sizing:border-box;
	transition:.25s;
}

/* 有効ボタン */
#searchresults .searchresults-pagination a{
	color:#333333;
	cursor:pointer;
}

/* 有効ボタン hover */
#searchresults .searchresults-pagination a:hover{
	color:#FFFFFF;
	background:var(--color1);
	border-color:var(--color1);
}

/* アイコン */
#searchresults .searchresults-pagination i{
	font-size:13px;
	transition:.25s;
}

#searchresults .searchresults-pagination a:hover i{
	color:#FFFFFF;
}

/* 無効ボタン */
#searchresults .searchresults-pagination .disabled{
	color:#AAAAAA;
	background:#F8F8F8;
	border-color:#E8E8E8;
	cursor:not-allowed;
	pointer-events:none;
}

/* 無効ボタン内アイコン */
#searchresults .searchresults-pagination .disabled i{
	color:#AAAAAA;
}

/* 表示範囲 */
#searchresults .searchresults-range{
	margin-top:15px;
	font-size:14px;
	font-weight:500;
	text-align:center;
}


/*--------------------------------------------------------------
# Search Results -991px
--------------------------------------------------------------*/
@media(max-width:991px){

	#searchresults{
		padding:40px 20px 60px;
	}

	#searchresults .searchresults-count{
		font-size:19px;
	}

	#searchresults .searchresults-sort{
		width:200px;
	}

	#searchresults .searchresults-sort select{
		font-size:16px;
	}

	#searchresults .searchresults-pagination{
		margin-top:40px;
		gap:7px;
	}

	#searchresults .searchresults-pagination a,
	#searchresults .searchresults-pagination span{
		min-width:82px;
		height:42px;
		padding:0 10px;
		font-size:15px;
	}

}


/*--------------------------------------------------------------
# Search Results -767px
--------------------------------------------------------------*/
@media(max-width:767px){

	#searchresults{
		padding:35px 15px 50px;
	}

	#searchresults .searchresults-head{
		margin-bottom:25px;
		display:block;
	}

	#searchresults .searchresults-count{
		margin-bottom:15px;
		font-size:20px;
	}

	#searchresults .searchresults-sort{
		width:100%;
	}

	#searchresults .searchresults-sort select{
		height:54px;
		font-size:17px;
	}

	#searchresults .row{
		margin-left:0;
		margin-right:0;
	}

	#searchresults .row > div{
		padding-left:0;
		padding-right:0;
	}

	#searchresults .searchresults-pagination{
		margin-top:35px;
		flex-wrap:nowrap;
	}

	#searchresults .searchresults-pagination a,
	#searchresults .searchresults-pagination span{
		width:120px;
		min-width:120px;
		height:48px;
		padding:0 15px;
		font-size:16px;
	}

	#searchresults .searchresults-range{
		font-size:16px;
	}

}


/*--------------------------------------------------------------
# Facility Detail
--------------------------------------------------------------*/
#detailtop,
#detailconditions,
#detailprice,
#detailmedical,
#detailaccess{
	background:#FFFFFF;
}
#detailtop{
	padding:55px 30px 20px;
}
#detailconditions{
	padding:10px 30px 20px;
}
#detailprice,
#detailmedical{
	padding:10px 30px 20px;
}
#detailaccess{
	padding:10px 30px 70px;
}
#detailtop .container-fluid,
#detailconditions .container-fluid,
#detailprice .container-fluid,
#detailmedical .container-fluid,
#detailaccess .container-fluid{
	width:100%;
	max-width:1600px;
	margin:0 auto;
}
.detail-heading{
	margin-bottom:28px;
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:35px;
}
.detail-heading-main{
	min-width:0;
}
.detail-category{
	margin-bottom:12px;
	padding:7px 14px;
	font-size:14px;
	font-weight:700;
	line-height:1;
	background:#FFFFFF;
	border-radius:6px;
	display:inline-block;
}
.detail-heading h1{
	margin:0 0 8px;
	font-size:36px;
	font-weight:700;
	line-height:1.4em;
	letter-spacing:.01em;
	overflow-wrap:anywhere;
}
.detail-address{
	margin:0;
	font-size:16px;
	line-height:1.7em;
}
.detail-address i{
	margin-right:6px;
	color:var(--color1);
	font-size:19px;
}
.detail-heading-contact{
	flex-shrink:0;
}
.detail-request-btn{
	width:280px;
	height:64px;
	color:#FFFFFF;
	background:var(--color1);
	border:1px solid var(--color1);
	border-radius:7px;
	box-shadow:0 5px 12px rgba(93,125,57,.18);
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	font-size:19px;
	font-weight:700;
	transition:.25s;
}
.detail-request-btn i{
	color:#FFFFFF;
	font-size:24px;
}
.detail-request-btn:hover{
	color:#FFFFFF;
	background:var(--color-hover-btn);
	border-color:var(--color-hover-btn);
	transform:translateY(-2px);
}
.detail-streetview{
	width:100%;
	height:520px;
	overflow:hidden;
	border-radius:8px;
	background:#F2F2F2;
}
.detail-streetview iframe,
.detail-streetview img{
	width:100%;
	height:100%;
	border:0;
	display:block;
}

/* ストリートビュー未登録時の代替画像 */
.detail-streetview-noimage{
	object-fit:cover;
	object-position:center center;
	user-select:none;
	-webkit-user-drag:none;
}
.detail-summary{
	height:100%;
	padding:28px;
	background:#F8F8F3;
	border:1px solid #DDE4D5;
	border-radius:8px;
	box-sizing:border-box;
}
.detail-summary h2,
.detail-box h2{
	margin:0 0 22px;
	font-size:22px;
	font-weight:700;
	line-height:1.5em;
}
.detail-summary dl{
	margin:0;
}
.detail-summary dl div{
	padding:15px 0;
	border-bottom:1px solid #D9DED3;
	display:grid;
	grid-template-columns:105px 1fr;
	gap:15px;
}
.detail-summary dt{
	font-size:14px;
	font-weight:600;
}
.detail-summary dd{
	margin:0;
	font-size:15px;
	font-weight:500;
}
.detail-summary-price{
	padding:22px 0;
	border-bottom:1px solid #D9DED3;
}
.detail-summary-price:last-child{
	border-bottom:0;
}
.detail-summary-price span{
	margin-bottom:8px;
	font-size:16px;
	font-weight:700;
	display:block;
}
.detail-summary-price strong{
	color:var(--color1);
	font-size:38px;
	font-weight:700;
	line-height:1;
}
.detail-summary-price small{
	margin-left:4px;
	font-size:18px;
}
.detail-box{
	height:100%;
	padding:28px;
	border-radius:8px;
	box-sizing:border-box;
}
.detail-box h2 i{
	margin-right:8px;
	font-size:27px;
	vertical-align:-2px;
}
.detail-box-condition{
	background:#F7F9F3;
	border:1px solid #CFDCC5;
}
.detail-box-condition h2 i,
.detail-box-condition .detail-check-list i{
	color:var(--color1);
}
.detail-box-feature{
	background:#FFFAF2;
	border:1px solid #F0CEA1;
}
.detail-box-feature h2 i,
.detail-box-feature .detail-check-list i{
	color:#F58B13;
}
.detail-check-list{
	margin:0;
	padding:0;
	list-style:none;
	display:grid;
	gap:14px 24px;
}
.detail-check-list-2col{
	grid-template-columns:repeat(2,minmax(0,1fr));
}
.detail-check-list-3col{
	grid-template-columns:repeat(3,minmax(0,1fr));
}
.detail-check-list li{
	min-width:0;
	font-size:15px;
	line-height:1.6em;
	display:flex;
	align-items:flex-start;
	gap:8px;
}
.detail-check-list i{
	margin-top:4px;
	flex-shrink:0;
	font-size:14px;
}
.detail-box-price{
	background:#F5F9FF;
	border:1px solid #AFCBED;
}
.detail-box-price h2 i{
	color:#236BB5;
}
.detail-box-heading{
	margin-bottom:20px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
}
.detail-box-heading h2{
	margin:0;
}
.detail-box-heading p{
	margin:0;
	font-size:13px;
}
.detail-price-list{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
	gap:20px;
}
.detail-price-list:has(.detail-price-card:only-child){
	grid-template-columns:1fr;
}
.detail-price-card{
	min-width:0;
	background:#FFFFFF;
	border:1px solid #BED3EB;
	border-radius:7px;
	overflow:hidden;
}
.detail-price-card-title{
	padding:16px 18px;
	border-bottom:1px solid #D8E3F0;
	display:flex;
	align-items:center;
	gap:12px;
}
.detail-price-card-title span{
	padding:5px 11px;
	color:#FFFFFF;
	font-size:13px;
	font-weight:700;
	line-height:1;
	background:#236BB5;
	border-radius:4px;
	flex-shrink:0;
}
.detail-price-card-title h3{
	margin:0;
	font-size:18px;
	font-weight:700;
	line-height:1.5em;
}
.detail-price-card-body{
	padding:18px;
	display:grid;
	grid-template-columns:250px 1fr;
	gap:25px;
}
.detail-price-main{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:12px;
}
.detail-price-main > div{
	padding:20px 10px;
	text-align:center;
	background:#F8FBFF;
	border:1px solid #CFDFF0;
	border-radius:6px;
}
.detail-price-main span{
	margin-bottom:12px;
	font-size:14px;
	font-weight:700;
	display:block;
}
.detail-price-main strong{
	color:#F58217;
	font-size:32px;
	font-weight:700;
	line-height:1;
}
.detail-price-main small{
	margin-left:3px;
	font-size:15px;
}
.detail-price-table{
	margin:0;
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	column-gap:30px;
}
.detail-price-table div{
	padding:9px 0;
	border-bottom:1px solid #EEEEEE;
	display:flex;
	justify-content:space-between;
	gap:15px;
}
.detail-price-table dt,
.detail-price-table dd{
	font-size:14px;
	line-height:1.5em;
}
.detail-price-table dt{
	font-weight:500;
}
.detail-price-table dd{
	margin:0;
	font-weight:600;
	text-align:right;
}
.detail-box-medical{
	background:#FBF8FD;
	border:1px solid #D8C8E1;
}
.detail-box-medical h2 i{
	color:#9A63AD;
}
.detail-medical-guide{
	margin:-12px 0 20px;
	display:flex;
	justify-content:flex-end;
	gap:18px;
}
.detail-medical-guide span{
	font-size:13px;
}
.status{
	margin-left:8px;
	font-size:16px;
	font-weight:700;
}
.status-ok{
	color:#4F8834;
}
.status-consult{
	color:#F58B13;
}
.status-no{
	color:#000000;
}
.detail-medical-list{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	column-gap:30px;
}
.detail-medical-item{
	min-width:0;
	padding:7px 0;
	border-bottom:1px solid rgba(216,200,225,.55);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}
.detail-medical-item span{
	min-width:0;
	font-size:14px;
	line-height:1.5em;
}
.detail-medical-item .status{
	margin:0;
	flex-shrink:0;
}
.detail-box-access{
	background:#F6FAFF;
	border:1px solid #BED3EB;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:30px;
}
.detail-access-info h2{
	margin-bottom:16px;
}
.detail-access-info h2 i{
	color:#236BB5;
}
.detail-access-info p{
	margin:5px 0;
	font-size:15px;
	line-height:1.7em;
}
.detail-access-button{
	flex-shrink:0;
}
.detail-access-button a{
	height:54px;
	padding:0 24px;
	color:#236BB5;
	font-size:15px;
	font-weight:700;
	background:#FFFFFF;
	border:1px solid #8BB1DD;
	border-radius:6px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	transition:.25s;
}
.detail-access-button a:hover{
	color:#FFFFFF;
	background:#236BB5;
}
.detail-access-button a:hover i{
	color:#FFFFFF;
}
.detail-note{
	margin:18px 0 0;
	font-size:13px;
	line-height:1.7em;
}
@media(min-width:992px) and (max-width:1399px){
	.detail-heading h1{
		font-size:32px;
	}
	.detail-streetview{
		height:460px;
	}
	.detail-price-card-body{
		grid-template-columns:220px 1fr;
	}
	.detail-price-table{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
	.detail-medical-list{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}
}
@media(max-width:991px){
	#detailtop{
		padding:45px 20px 15px;
	}
	#detailconditions,
	#detailprice,
	#detailmedical{
		padding:10px 20px 15px;
	}
	#detailaccess{
		padding:10px 20px 60px;
	}
	.detail-heading h1{
		font-size:32px;
	}
	.detail-request-btn{
		width:230px;
	}
	.detail-streetview{
		height:430px;
	}
	.detail-check-list-3col{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
	.detail-price-card-body{
		grid-template-columns:1fr;
	}
	.detail-price-table{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
	.detail-medical-list{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}
@media(max-width:767px){
	#detailtop{
		padding:35px 15px 10px;
	}
	#detailconditions,
	#detailprice,
	#detailmedical{
		padding:10px 15px;
	}
	#detailaccess{
		padding:10px 15px 50px;
	}
	.detail-heading{
		display:block;
	}
	.detail-heading h1{
		font-size:27px;
	}
	.detail-heading-contact{
		margin-top:22px;
	}
	.detail-request-btn{
		width:100%;
		height:58px;
		font-size:17px;
	}
	.detail-streetview{
		height:350px;
	}
	.detail-summary,
	.detail-box{
		padding:22px 18px;
	}
	.detail-check-list-2col,
	.detail-check-list-3col{
		grid-template-columns:1fr;
	}
	.detail-box-heading{
		display:block;
	}
	.detail-box-heading p{
		margin-top:8px;
	}
	.detail-price-list{
		grid-template-columns:1fr;
	}
	.detail-price-main{
		grid-template-columns:1fr 1fr;
	}
	.detail-price-table{
		grid-template-columns:1fr;
	}
	.detail-medical-guide{
		justify-content:flex-start;
		flex-wrap:wrap;
	}
	.detail-medical-list{
		grid-template-columns:1fr;
	}
	.detail-box-access{
		display:block;
	}
	.detail-access-button{
		margin-top:20px;
	}
	.detail-access-button a{
		width:100%;
	}
}
@media(max-width:575px){
	.detail-heading h1{
		font-size:25px;
	}
	.detail-address{
		font-size:14px;
	}
	.detail-streetview{
		height:300px;
	}
	.detail-summary h2,
	.detail-box h2{
		font-size:20px;
	}
	.detail-summary dl div{
		grid-template-columns:90px 1fr;
	}
	.detail-price-main{
		grid-template-columns:1fr;
	}
}



/*--------------------------------------------------------------
# Inquiry
--------------------------------------------------------------*/
#inq{
	padding:80px 30px 100px;
	background:#F8F7F1;
}

#inq .container-fluid{
	width:100%;
	max-width:1100px;
	margin:0 auto;
}

#inq .inq-heading{
	margin-bottom:45px;
	text-align:center;
}

#inq .inq-heading > span{
	margin-bottom:8px;
	color:var(--color1);
	font-size:13px;
	font-weight:700;
	letter-spacing:.16em;
	display:block;
}

#inq .inq-heading h1{
	margin:0 0 18px;
	color:#222222;
	font-size:38px;
	font-weight:800;
	line-height:1.5em;
}

#inq .inq-heading p{
	margin:0;
	color:#666666;
	font-size:16px;
	line-height:1.9em;
}

#inq .inq-error-box,
#inq .inq-server-error{
	margin-bottom:25px;
	padding:18px 22px;
	color:#A73731;
	background:#FFF1F0;
	border:1px solid #E8B5B1;
	border-radius:8px;
	align-items:flex-start;
	gap:12px;
}

#inq .inq-error-box{
	display:none;
}

#inq .inq-server-error{
	display:flex;
}

#inq .inq-error-box i,
#inq .inq-server-error i{
	margin-top:2px;
	font-size:22px;
	flex-shrink:0;
}

#inq .inq-error-box strong{
	margin-bottom:3px;
	font-size:15px;
	display:block;
}

#inq .inq-error-box p,
#inq .inq-server-error p{
	margin:0;
	font-size:13px;
	line-height:1.6em;
}

#inq .inq-form{
	background:#FFFFFF;
	border:1px solid #E5E3DA;
	border-radius:12px;
	box-shadow:0 8px 30px rgba(0,0,0,.04);
	overflow:hidden;
}

#inq .inq-form-group{
	padding:28px 35px;
	border-bottom:1px solid #ECEAE3;
	display:grid;
	grid-template-columns:250px minmax(0,1fr);
	gap:30px;
}

#inq .inq-form-label{
	padding-top:12px;
	display:flex;
	align-items:flex-start;
	gap:10px;
}

#inq .inq-form-label label,
#inq .inq-form-label-text{
	color:#333333;
	font-size:16px;
	font-weight:700;
	line-height:1.5em;
}

#inq .required,
#inq .optional{
	min-width:42px;
	padding:3px 7px;
	font-size:11px;
	font-weight:700;
	line-height:1.4em;
	text-align:center;
	border-radius:4px;
	box-sizing:border-box;
}

#inq .required{
	color:#FFFFFF;
	background:#D95C52;
}

#inq .optional{
	color:#666666;
	background:#EEEEEE;
}

#inq .inq-form-input input[type="text"],
#inq .inq-form-input input[type="tel"],
#inq .inq-form-input input[type="email"],
#inq .inq-form-input select,
#inq .inq-form-input textarea{
	width:100%;
	padding:0 16px;
	color:#333333;
	font-family:inherit;
	font-size:16px;
	background:#FFFFFF;
	border:1px solid #D7D7D7;
	border-radius:6px;
	box-sizing:border-box;
	transition:.2s;
}

#inq .inq-form-input input[type="text"],
#inq .inq-form-input input[type="tel"],
#inq .inq-form-input input[type="email"],
#inq .inq-form-input select{
	height:52px;
}

#inq .inq-form-input textarea{
	min-height:190px;
	padding-top:14px;
	padding-bottom:14px;
	line-height:1.8em;
	resize:vertical;
}

#inq .inq-form-input input:focus,
#inq .inq-form-input select:focus,
#inq .inq-form-input textarea:focus{
	border-color:var(--color1);
	outline:none;
	box-shadow:0 0 0 3px rgba(93,125,57,.12);
}

#inq .inq-form-input input::placeholder,
#inq .inq-form-input textarea::placeholder{
	color:#999999;
}

#inq .inq-form-note{
	margin:8px 0 0;
	color:#777777;
	font-size:13px;
	line-height:1.6em;
}

#inq .inq-selected-facility{
	min-height:52px;
	padding:13px 16px;
	color:#333333;
	background:#F7FAF4;
	border:1px solid #C9D8BC;
	border-radius:6px;
	display:flex;
	align-items:center;
	gap:10px;
	box-sizing:border-box;
}

#inq .inq-selected-facility i{
	color:var(--color1);
	font-size:20px;
	flex-shrink:0;
}

#inq .inq-selected-facility strong{
	font-size:16px;
	font-weight:700;
	line-height:1.6em;
}

#inq .inq-radio-list{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:10px;
}

#inq .inq-radio-item{
	min-height:52px;
	padding:10px 14px;
	background:#FFFFFF;
	border:1px solid #D7D7D7;
	border-radius:6px;
	cursor:pointer;
	display:flex;
	align-items:center;
	gap:9px;
	box-sizing:border-box;
	transition:.2s;
}

#inq .inq-radio-item:hover{
	border-color:var(--color1);
	background:#F7FAF4;
}

#inq .inq-radio-item:has(input:checked){
	border-color:var(--color1);
	background:#F1F7EC;
}

#inq .inq-radio-item input{
	width:18px;
	height:18px;
	margin:0;
	accent-color:var(--color1);
	flex-shrink:0;
}

#inq .inq-radio-item span{
	color:#444444;
	font-size:15px;
	font-weight:500;
	line-height:1.5em;
}

#inq .inq-privacy{
	padding:30px 35px 10px;
	text-align:center;
}

#inq .inq-privacy label{
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
}

#inq .inq-privacy input{
	width:20px;
	height:20px;
	margin:0;
	accent-color:var(--color1);
}

#inq .inq-privacy span{
	color:#444444;
	font-size:15px;
}

#inq .inq-privacy a{
	color:var(--color1);
	text-decoration:underline;
}

#inq .inq-submit{
	padding:25px 35px 10px;
	text-align:center;
}

#inq .inq-submit .btn1{
	width:100%;
	max-width:380px;
	height:58px;
	margin:0 auto;
	border:0;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:9px;
}

#inq .inq-submit-note{
	margin:0;
	padding:5px 20px 35px;
	color:#777777;
	font-size:13px;
	line-height:1.6em;
	text-align:center;
}

#inq .inq-form-error{
	margin:7px 0 0;
	color:#C5473D;
	font-size:13px;
	font-weight:500;
	line-height:1.5em;
	display:none;
}

#inq .inq-form-group.is-error input[type="text"],
#inq .inq-form-group.is-error input[type="tel"],
#inq .inq-form-group.is-error input[type="email"],
#inq .inq-form-group.is-error select,
#inq .inq-form-group.is-error textarea{
	border-color:#D95C52;
	background-color:#FFF8F7;
}

#inq .inq-form-group.is-error .inq-radio-item{
	border-color:#D95C52;
	background-color:#FFF8F7;
}

#inq .inq-privacy.is-error{
	background:#FFF8F7;
}

#inq .inq-submit .is-disabled{
	opacity:.6;
	cursor:not-allowed;
}

#inq .inq-honeypot{
	width:1px;
	height:1px;
	position:absolute;
	left:-10000px;
	overflow:hidden;
}

#inq .inq-complete{
	padding:60px 40px;
	background:#FFFFFF;
	border:1px solid #E5E3DA;
	border-radius:12px;
	text-align:center;
	box-shadow:0 8px 30px rgba(0,0,0,.04);
}

#inq .inq-complete-icon{
	margin-bottom:20px;
	color:var(--color1);
	font-size:64px;
	line-height:1;
}

#inq .inq-complete h2{
	margin:0 0 18px;
	color:#222222;
	font-size:28px;
	font-weight:800;
}

#inq .inq-complete p{
	margin:0 0 30px;
	color:#666666;
	font-size:16px;
	line-height:1.9em;
}

#inq .inq-complete .btn1{
	width:260px;
	height:52px;
	margin:0 auto;
	display:inline-flex;
	align-items:center;
	justify-content:center;
}

@media(max-width:991px){

	#inq{
		padding:65px 20px 80px;
	}

	#inq .inq-form-group{
		grid-template-columns:210px minmax(0,1fr);
		gap:22px;
	}

}

@media(max-width:767px){

	#inq{
		padding:50px 15px 65px;
	}

	#inq .inq-heading{
		margin-bottom:30px;
	}

	#inq .inq-heading h1{
		font-size:30px;
	}

	#inq .inq-heading p{
		font-size:16px;
		text-align:left;
	}

	#inq .inq-form-group{
		padding:24px 20px;
		display:block;
	}

	#inq .inq-form-label{
		margin-bottom:12px;
		padding-top:0;
	}

	#inq .inq-form-label label,
	#inq .inq-form-label-text{
		font-size:17px;
	}

	#inq .inq-form-input input[type="text"],
	#inq .inq-form-input input[type="tel"],
	#inq .inq-form-input input[type="email"],
	#inq .inq-form-input select{
		height:56px;
		font-size:16px;
	}

	#inq .inq-radio-list{
		grid-template-columns:1fr;
	}

	#inq .inq-radio-item{
		min-height:54px;
	}

	#inq .inq-privacy{
		padding:25px 20px 5px;
		text-align:left;
	}

	#inq .inq-privacy label{
		align-items:flex-start;
	}

	#inq .inq-privacy span{
		font-size:15px;
		line-height:1.6em;
	}

	#inq .inq-submit{
		padding:22px 20px 10px;
	}

	#inq .inq-submit .btn1{
		max-width:none;
		height:60px;
		font-size:17px;
	}

	#inq .inq-complete{
		padding:45px 20px;
	}

	#inq .inq-complete h2{
		font-size:24px;
	}

}


/*--------------------------------------------------------------
# Inquiry Complete / Error
--------------------------------------------------------------*/
#inq .inq-result{
	padding:65px 45px;
	background:#FFFFFF;
	border:1px solid #E5E3DA;
	border-radius:12px;
	text-align:center;
	box-shadow:0 8px 30px rgba(0,0,0,.04);
}

#inq .inq-result-icon{
	width:88px;
	height:88px;
	margin:0 auto 20px;
	color:#FFFFFF;
	font-size:46px;
	line-height:1;
	background:var(--color1);
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
}

#inq .inq-result-icon.error{
	background:#D95C52;
}

#inq .inq-result-label{
	margin:0 0 12px;
	color:var(--color1);
	font-size:13px;
	font-weight:800;
	letter-spacing:.18em;
}

#inq .inq-result-label.error-label{
	color:#D95C52;
}

#inq .inq-result h2{
	margin:0 0 20px;
	color:#222222;
	font-size:32px;
	font-weight:800;
	line-height:1.5em;
}

#inq .inq-result-lead{
	margin:0;
	color:#666666;
	font-size:16px;
	line-height:1.9em;
}

#inq .inq-result-note{
	width:100%;
	max-width:700px;
	margin:32px auto 25px;
	padding:25px 30px;
	background:#F7FAF4;
	border:1px solid #D9E5CF;
	border-radius:8px;
	text-align:left;
	box-sizing:border-box;
}

#inq .inq-result-note.error-note{
	background:#FFF5F4;
	border-color:#E9C0BC;
}

#inq .inq-result-note h3{
	margin:0 0 14px;
	color:#333333;
	font-size:17px;
	font-weight:700;
}

#inq .inq-result-note ul{
	margin:0;
	padding-left:1.4em;
}

#inq .inq-result-note li{
	color:#555555;
	font-size:14px;
	line-height:1.8em;
}

#inq .inq-result-note li + li{
	margin-top:5px;
}

#inq .inq-result-mail-note{
	margin:0 0 28px;
	color:#777777;
	font-size:13px;
	line-height:1.8em;
}

#inq .inq-result-buttons{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:16px;
}

#inq .inq-result-buttons .btn1{
	width:100%;
	max-width:340px;
	height:58px;
	margin:0;
	border:0;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
}

#inq .inq-result-sub-button{
	color:#555555;
	font-size:14px;
	font-weight:700;
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	transition:.2s;
}

#inq .inq-result-sub-button:hover{
	color:var(--color1);
}

@media(max-width:767px){

	#inq .inq-result{
		padding:45px 20px;
	}

	#inq .inq-result-icon{
		width:76px;
		height:76px;
		font-size:40px;
	}

	#inq .inq-result h2{
		font-size:25px;
	}

	#inq .inq-result-lead{
		font-size:15px;
		text-align:left;
	}

	#inq .inq-result-note{
		margin:26px auto 22px;
		padding:20px;
	}

	#inq .inq-result-note h3{
		font-size:16px;
	}

	#inq .inq-result-note li{
		font-size:14px;
	}

	#inq .inq-result-mail-note{
		text-align:left;
	}

	#inq .inq-result-buttons .btn1{
		max-width:none;
		height:60px;
		font-size:16px;
	}

}


/*--------------------------------------------------------------
# Privacy Policy
--------------------------------------------------------------*/
#privacy{
	padding:80px 30px 100px;
	background:#F8F7F1;
}

#privacy .container-fluid{
	width:100%;
	max-width:1100px;
	margin:0 auto;
}

#privacy .privacy-heading{
	margin-bottom:45px;
	text-align:center;
}

#privacy .privacy-heading > span{
	margin-bottom:8px;
	color:var(--color1);
	font-size:13px;
	font-weight:700;
	letter-spacing:.16em;
	display:block;
}

#privacy .privacy-heading h1{
	margin:0 0 18px;
	color:#222222;
	font-size:38px;
	font-weight:800;
	line-height:1.5em;
}

#privacy .privacy-heading p{
	margin:0;
	color:#666666;
	font-size:16px;
	line-height:1.9em;
}

#privacy .privacy-content{
	padding:55px 60px;
	background:#FFFFFF;
	border:1px solid #E5E3DA;
	border-radius:12px;
	box-shadow:0 8px 30px rgba(0,0,0,.04);
}

#privacy .privacy-introduction{
	margin-bottom:40px;
	padding-bottom:35px;
	border-bottom:1px solid #E8E6DF;
}

#privacy .privacy-introduction p{
	margin:0;
	color:#555555;
	font-size:15px;
	line-height:2em;
}

#privacy .privacy-introduction p + p{
	margin-top:12px;
}

#privacy .privacy-index{
	margin-bottom:50px;
	padding:28px 32px;
	background:#F7FAF4;
	border:1px solid #D9E5CF;
	border-radius:8px;
}

#privacy .privacy-index h2{
	margin:0 0 18px;
	color:#333333;
	font-size:19px;
	font-weight:700;
}

#privacy .privacy-index ol{
	margin:0;
	padding-left:1.5em;
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	column-gap:40px;
	row-gap:10px;
}

#privacy .privacy-index li{
	color:#555555;
	font-size:14px;
	line-height:1.7em;
}

#privacy .privacy-index a{
	color:#555555;
	text-decoration:none;
}

#privacy .privacy-index a:hover{
	color:var(--color1);
	text-decoration:underline;
}

#privacy .privacy-section{
	padding:0 0 42px;
	margin:0 0 42px;
	border-bottom:1px solid #E8E6DF;
	scroll-margin-top:120px;
}

#privacy .privacy-section:last-of-type{
	margin-bottom:0;
}

#privacy .privacy-section h2{
	margin:0 0 22px;
	padding-bottom:14px;
	color:#222222;
	font-size:22px;
	font-weight:800;
	line-height:1.5em;
	border-bottom:2px solid #E1E9DA;
	display:flex;
	align-items:center;
	gap:12px;
}

#privacy .privacy-section h2 span{
	width:42px;
	height:28px;
	color:#FFFFFF;
	font-size:12px;
	font-weight:700;
	line-height:1;
	background:var(--color1);
	border-radius:4px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
}

#privacy .privacy-section h3{
	margin:0 0 10px;
	color:#333333;
	font-size:17px;
	font-weight:700;
	line-height:1.6em;
}

#privacy .privacy-section p{
	margin:0;
	color:#555555;
	font-size:15px;
	line-height:2em;
}

#privacy .privacy-section p + p{
	margin-top:12px;
}

#privacy .privacy-section ul{
	margin:18px 0 0;
	padding-left:1.5em;
}

#privacy .privacy-section li{
	color:#555555;
	font-size:15px;
	line-height:1.9em;
}

#privacy .privacy-section li + li{
	margin-top:5px;
}

#privacy .privacy-note{
	margin-top:22px;
	padding:18px 20px;
	background:#F7FAF4;
	border-left:4px solid var(--color1);
	border-radius:4px;
	display:flex;
	align-items:flex-start;
	gap:12px;
}

#privacy .privacy-note i{
	margin-top:4px;
	color:var(--color1);
	font-size:19px;
	flex-shrink:0;
}

#privacy .privacy-note p{
	font-size:14px;
	line-height:1.8em;
}

#privacy .privacy-service-list{
	margin:22px 0;
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:18px;
}

#privacy .privacy-service-list > div{
	padding:22px;
	background:#FAFAF8;
	border:1px solid #E6E4DD;
	border-radius:8px;
}

#privacy .privacy-service-list p{
	font-size:14px;
	line-height:1.8em;
}

#privacy .privacy-contact{
	margin-top:22px;
	overflow:hidden;
	border:1px solid #E1DFD7;
	border-radius:8px;
}

#privacy .privacy-contact dl{
	margin:0;
}

#privacy .privacy-contact dl > div{
	display:grid;
	grid-template-columns:180px minmax(0,1fr);
	border-bottom:1px solid #E8E6DF;
}

#privacy .privacy-contact dl > div:last-child{
	border-bottom:0;
}

#privacy .privacy-contact dt,
#privacy .privacy-contact dd{
	margin:0;
	padding:16px 20px;
	color:#444444;
	font-size:15px;
	line-height:1.7em;
}

#privacy .privacy-contact dt{
	font-weight:700;
	background:#F7F6F1;
}

#privacy .privacy-contact dd{
	background:#FFFFFF;
}

#privacy .privacy-contact a{
	color:var(--color1);
	font-weight:700;
	text-decoration:underline;
}

#privacy .privacy-date{
	padding-top:35px;
	text-align:right;
}

#privacy .privacy-date p{
	margin:0;
	color:#666666;
	font-size:14px;
	line-height:1.8em;
}

#privacy .privacy-date p + p{
	margin-top:5px;
}

@media(max-width:991px){

	#privacy{
		padding:65px 20px 80px;
	}

	#privacy .privacy-content{
		padding:45px 40px;
	}

	#privacy .privacy-index ol{
		column-gap:30px;
	}

}

@media(max-width:767px){

	#privacy{
		padding:50px 15px 65px;
	}

	#privacy .privacy-heading{
		margin-bottom:30px;
	}

	#privacy .privacy-heading h1{
		font-size:30px;
	}

	#privacy .privacy-heading p{
		font-size:15px;
		text-align:left;
	}

	#privacy .privacy-content{
		padding:32px 20px;
		border-radius:8px;
	}

	#privacy .privacy-introduction{
		margin-bottom:30px;
		padding-bottom:28px;
	}

	#privacy .privacy-introduction p{
		font-size:14px;
		line-height:1.9em;
	}

	#privacy .privacy-index{
		margin-bottom:40px;
		padding:22px 20px;
	}

	#privacy .privacy-index ol{
		grid-template-columns:1fr;
		gap:8px;
	}

	#privacy .privacy-section{
		padding-bottom:34px;
		margin-bottom:34px;
		scroll-margin-top:90px;
	}

	#privacy .privacy-section h2{
		font-size:19px;
		align-items:flex-start;
	}

	#privacy .privacy-section h2 span{
		margin-top:2px;
	}

	#privacy .privacy-section p,
	#privacy .privacy-section li{
		font-size:14px;
		line-height:1.9em;
	}

	#privacy .privacy-service-list{
		grid-template-columns:1fr;
	}

	#privacy .privacy-contact dl > div{
		display:block;
	}

	#privacy .privacy-contact dt,
	#privacy .privacy-contact dd{
		padding:13px 16px;
		font-size:14px;
	}

	#privacy .privacy-contact dt{
		border-bottom:1px solid #E8E6DF;
	}

	#privacy .privacy-date{
		text-align:left;
	}

}


