@charset "utf-8";

/* ----------------------------------------------------------------------------
	ロケーション
	locatin
---------------------------------------------------------------------------- */
#visual .unit .bg{
	background: url("../../location/img/main.jpg") center/cover no-repeat;
	opacity: 0;
}
@media only screen and (max-width: 768px) {
	#visual .unit .bg{
		background: url("../../location/img/main_sp.jpg") center left/cover no-repeat;
	}
	
}

#content #top{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	box-sizing: border-box;
	margin: 120px auto 120px auto;
}
#content #top h3{
	width: 100%;
	text-align: center;
	font-size: min(4vw, 2.375rem);
	letter-spacing: 0.1em;
}

@media only screen and (max-width: 999px) {
	#content #top{
		margin: 100px auto 100px auto;
	}
}
@media only screen and (max-width: 768px) {
	#content #top{
		margin: 60px auto 60px auto;
	}
	#content #top h3{
		font-size: 5.5vw;
	}
}
@media only screen and (max-width: 480px) {
	
}



.ph_area_wrap {
	width: 100%;
	border-top: #7f5f47 5px solid;
	border-bottom: #7f5f47 5px solid;
	padding: 1px 0;
	overflow: hidden;
}
.ph_area {
	display: grid;
	width: 100%;
}

.ph_area.g1 {
	grid-template-columns: 37.5% 1fr 1fr;
	grid-template-rows: 1fr 57.14285714285714%;
	grid-template-areas:
	"ph01 ph02 ph03"
	"ph01 ph04 ph04";
	aspect-ratio: 16 / 7;
}

.ph_area.g2 {
	grid-template-columns: 2fr 1fr 1fr 33.75%;
	grid-template-rows: 1fr 1fr;
	grid-template-areas:
	"ph01 ph02 ph02 ph05"
	"ph01 ph03 ph04 ph05";
	aspect-ratio: 8 / 3;
}

.ph01 { grid-area: ph01; }
.ph02 { grid-area: ph02; }
.ph03 { grid-area: ph03; }
.ph04 { grid-area: ph04; }
.ph05 { grid-area: ph05; }


@media only screen and (max-width: 1200px) {
}
@media only screen and (max-width: 999px) {
}
@media only screen and (max-width: 768px) {
	.ph_area.g1 {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 18.84% 25.15%;
		grid-template-areas:
		"ph01 ph01"
		"ph02 ph03"
		"ph04 ph04";
		aspect-ratio: 1126 / 1789;
	}

	.ph_area.g2 {
		grid-template-columns: 1fr 1fr 1fr 1fr;
		grid-template-rows: 39.02% 16.6% 1fr;
		grid-template-areas:
		"ph01 ph01 ph01 ph01"
		"ph02 ph02 ph03 ph04"
		"ph05 ph05 ph05 ph05";
		aspect-ratio: 563 / 961;
	}
}
@media only screen and (max-width: 480px) {
	
}




#content #map_area{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	border: #7f5f47 5px solid;
	width: 1200px;
	box-sizing: border-box;
	margin: 120px auto 120px auto;
}
#content #map_area .in-box{
	width: 100%;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	padding: 0 0 0 0;
}
#content #map_area #map{
	width: 100%;
	position: relative;
}
#arrow {
	position: absolute;
	bottom: 15px;
	left: 15px;
	width: 55px;
}

#viewer-wrap {
	position: relative;
	width: 100%;
	background: #d5d0c8;
	overflow: hidden;
	cursor: grab;
	border-radius: 2px;
	touch-action: none;
}
#viewer-wrap::before{
	content: "";
	display: block;
	padding-top: 75%;
}
#viewer-wrap:active { cursor: grabbing; }

#pan-target {
	display: block;
	position: absolute;
	top: 0; left: 0;
	user-select: none;
	-webkit-user-drag: none;
	transform-origin: 0 0;
	will-change: transform;
}

#zoom-controls {
	position: absolute;
	bottom: 20px; right: 20px;
	display: flex;
	flex-direction: column;
	z-index: 10;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0,0,0,0.2), 0 0 0 1px rgba(0,0,0,0.1);
}
.zoom-btn {
	width: 34px; height: 34px;
	background: rgba(255,252,248,0.96);
	border: none;
	border-bottom: 1px solid rgba(0,0,0,0.08);
	color: #3a3530;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: background 0.12s;
	user-select: none;
}
.zoom-btn:last-child { border-bottom: none; }
.zoom-btn:hover { background: #fff; }
.zoom-btn:active { background: #ddd8ce; }

#scale-display {
	position: absolute;
	top: 14px; right: 16px;
	font-size: 10px;
	letter-spacing: 0.12em;
	color: rgba(0,0,0,0.3);
	pointer-events: none;
}

@media only screen and (max-width: 1200px) {
	#content #map_area{
		border: #7f5f47 5px solid;
		width: 90%;
		margin: 120px auto 120px auto;
	}
	#content #map_area #map{
	}
	#arrow {
		position: absolute;
		bottom: 15px;
		left: 15px;
		width: 55px;
	}

	#viewer-wrap {
	}
	#viewer-wrap::before{
		content: "";
		display: block;
		padding-top: 75%;
	}
	#viewer-wrap:active { cursor: grabbing; }

	#pan-target {
	}

	#zoom-controls {
		position: absolute;
		bottom: 20px; right: 20px;
	}
	.zoom-btn {
		width: 34px; height: 34px;
		font-size: 22px;
	}

	#scale-display {
		top: 14px; right: 16px;
		font-size: 10px;
	}
}
@media only screen and (max-width: 999px) {
	#content #map_area{
		border: #7f5f47 4px solid;
		width: 90%;
		margin: 90px auto 90px auto;
	}
	#content #map_area .in-box{
		width: 100%;
		padding: 0 0 0 0;
	}
	#content #map_area #map{
	}
	#arrow {
		position: absolute;
		bottom: 10px;
		left: 10px;
		width: 45px;
	}

	#viewer-wrap {
	}
	#viewer-wrap::before{
		content: "";
		display: block;
		padding-top: 70%;
	}
	#viewer-wrap:active { cursor: grabbing; }

	#pan-target {
	}

	#zoom-controls {
		position: absolute;
		bottom: 20px; right: 20px;
	}
	.zoom-btn {
		width: 34px; height: 34px;
		font-size: 22px;
	}

	#scale-display {
		top: 14px; right: 16px;
		font-size: 10px;
	}
}
@media only screen and (max-width: 768px) {
	#content #map_area{
		width: 90%;
		margin: 60px auto 60px auto;
	}
	#arrow {
		width: 35px;
	}

	#viewer-wrap::before{
		content: "";
		display: block;
		padding-top: 85%;
	}

	#zoom-controls {
		position: absolute;
		bottom: 10px; right: 10px;
	}
	.zoom-btn {
		width: 34px; height: 34px;
		font-size: 22px;
	}

	#scale-display {
		top: 10px; right: 10px;
		font-size: 10px;
	}
}
@media only screen and (max-width: 480px) {
	#viewer-wrap::before{
		padding-top: 95%;
	}
}


#content h3.ttl{
	width: 100%;
	margin: 0em 0 50px 0;
	padding: 0.7em 1em 0.7em 2em;
	text-align: left;
	background: #eee9e4;
	position: relative;
	font-size: 1.3125rem;
	box-sizing: border-box;
}
#content h3.ttl::before{
	content: "";
	width: 1em;
	height: 1px;
	background: var(--base-color);
	position: absolute;
	top: 50%;
	left: 0;
}
@media only screen and (max-width: 999px) {
	#content h3.ttl{
		margin: 0em 0 40px 0;
		font-size: 1.125rem;
	}
}
@media only screen and (max-width: 768px) {
	#content h3.ttl{
		margin: 0em 0 30px 0;
		font-size: 1.000rem;
	}
}
@media only screen and (max-width: 480px) {
}



#content #lifeinfomation{
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	padding: 120px 0 0 0;
	position: relative;
}
#content #lifeinfomation #info_area{
	width: 100%;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	position: relative;
	padding: 0px 0 0 0;
}
#content #lifeinfomation #info_area .left_area,
#content #lifeinfomation #info_area .right_area{
	width: 48%;
	position: relative;
}
#content #lifeinfomation #info_area h4{
	width: 100%;
	margin: 0 0 0 0;
	padding: 0 0 0.9em 0;
	text-align: left;
	font-size: 1.125rem;
	letter-spacing: 0.05em;
	line-height: 1.0;
	display: block;
	box-sizing: border-box;
	position: relative;
	z-index: 1;
}

#content #lifeinfomation #info_area dl{
	width: 100%;
	padding: 0 0 60px 0;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
#content #lifeinfomation #info_area dl dt{
	width: 60%;
	padding: 0.8em 0 0.8em 1em;
	text-align: left;
	font-size: 1.000rem;
	line-height: 1.4;
	border-bottom: #b9b9b9 1px solid;
	box-sizing: border-box;
}
#content #lifeinfomation #info_area dl dd{
	width: 40%;
	padding: 0.8em 1em 0.8em 0;
	text-align: right;
	font-size: 1.000rem;
	line-height: 1.4;
	border-bottom: #b9b9b9 1px solid;
	box-sizing: border-box;
	position: relative;
}
#content #lifeinfomation #info_area dl dt:nth-child(4n + 1){
	background: #eeeeee;
}
#content #lifeinfomation #info_area dl dd:nth-child(4n + 2){
	background: #eeeeee;
}


#content #lifeinfomation #info_area dl dd span.sp{
	display: none;
}

@media only screen and (max-width: 999px) {

	#content #lifeinfomation{
		padding: 100px 0 0 0;
	}

	#content #lifeinfomation #info_area{
		padding: 20px 0 0 0;
	}
	#content #lifeinfomation #info_area h4{
		font-size: 0.938rem;
	}

	#content #lifeinfomation #info_area dl{
		padding: 0 0 40px 0;
	}
	#content #lifeinfomation #info_area dl dt{
		font-size: 0.813rem;
	}
	#content #lifeinfomation #info_area dl dd{
		font-size: 0.813rem;
	}
}
@media only screen and (max-width: 768px) {
	#content #lifeinfomation{
		padding: 60px 0 0 0;
	}


	#content #lifeinfomation #info_area{
		padding: 0 0 0 0;
	}
	#content #lifeinfomation #info_area .left_area,
	#content #lifeinfomation #info_area .right_area{
		width: 100%;
	}
	#content #lifeinfomation #info_area h4{
		font-size: 0.938rem;
	}

	#content #lifeinfomation #info_area dl{
		padding: 0 0 30px 0;
	}
	#content #lifeinfomation #info_area dl dt{

		font-size: 0.813rem;

	}
	#content #lifeinfomation #info_area dl dd{

		font-size: 0.813rem;
	}
}
@media only screen and (max-width: 480px) {
	#content #lifeinfomation{
		padding: 60px 0 0 0;
	}
	#content #lifeinfomation #info_area dl dt{
		width: 100%;
		padding: 13px 0 0 0;
		text-align: left;
		font-size: 0.813rem;
		border-bottom: none;
	}
	#content #lifeinfomation #info_area dl dd{
		width: 100%;
		padding: 5px 0 13px 0;
		text-align: left;
		font-size: 0.813rem;
	}

}



#content #access{
	width: 100%;
	position: relative;
	padding: 120px 0 120px 0;;
}

#content #access .access_map{
	width: 100%;
	margin: 0 auto;
	padding: 0 0 20px 0;
	position: relative;
}
#content #access .access_map figure{
	width: 100%;
	margin: 0 auto;
	padding: 0 0 0 0;
	position: relative;
}


@media only screen and (max-width: 1200px) {


}
@media only screen and (max-width: 768px) {
	#content #access{
		padding: 60px 0;
	}
	#content #access h3{
		padding: 0em 0 30px 0;
	}
	#content #access h3 img{
		width: auto;
		height: 14px;
	}
	#content #access .access_map{
		padding: 0 0 20px 0;
		position: relative;
	}
}
@media only screen and (max-width: 480px) {

}