@charset "UTF-8";
/*----------------------------------------

	- header

-----------------------------------------*/

/*----------------------------------------
	header
-----------------------------------------*/
.header {
	background-image: url("../img/d_header_bg01s.png");
	background-position: right bottom;
	background-repeat: no-repeat;
	background-size: 138px auto;
}
.header-title {
	margin: -4px 0 0;
	padding: 0 0 18px;
	text-align: center;
	letter-spacing: 0.8em;
}
.header-title > h1 {
	padding: 0 20px;
}
.header-title > h1 > div {
	margin-bottom: 4px;
}
.header-title > h1 > span {
	display: inline-block;
}
@media print, screen and (min-width:768px) {
	.header {
		background-image: url("../img/d_header_bg01.png");
		background-size: 316px auto;
		background-position: right 30px bottom 0px;
	}
	.header-title {
		margin: -32px 0 0;
		padding: 0 0 55px;
	}
}

/*----------------------------------------
	nav
-----------------------------------------*/
.nav {
	padding: 30px 0 50px;
	background: #f7f4f0;
}
.nav dl {
	margin: 0 0 20px;
}
.nav dl > dt {
	margin: 0 0 15px;
	background: #000;
	text-align: center;
}
.nav dl > dd {
	display: flex;
	flex-wrap: wrap;
}
.nav dl > dd > p {
	width: 33.3333%;
	text-align: center;
}
.nav dl > dd > p a {
	display: flex;
	align-items: center;
	position: relative;
	height: 100%;
	padding: 0 5px;
	border-left: 1px solid #ddd;
	border-right: 1px solid #ddd;
}
.nav dl > dd > p:nth-of-type(n+2) a {
	margin-left: -1px;
}
.nav dl > dd > p a::after {
	content: '';
	position: absolute;
	bottom: 12px;
	left: calc(50% - 4px);
	width: 8px;
	height: 8px;
	border-width: 0 2px 2px 0;
	border-style: solid;
	border-color: transparent #333 #333 transparent;
	transform: rotate(45deg);
}
.nav dl > dd > p a > span {
	display: block;
	width: 100%;
	padding: 8px 0 28px;
}
.nav dl > dd > p a > span > span {
	display: inline-block;
}
@media print, screen and (min-width:768px) {
	.nav {
		padding: 20px 0 20px;
	}
	.nav .inner {
		display: flex;
		justify-content: space-between;
	}
	.nav dl {
		width: calc(50% - 20px);
		margin: 0;
	}
	.nav dl dt {
		height: 25px;
	}
	.nav dl dd {
		height: calc(100% - 40px);
	}
}


/*----------------------------------------
	place
-----------------------------------------*/
.place.bg01 {
	background: #e9e2d8;
}
.place.bg01 .place-title span {
	background: #e9e2d8;
}
.place.bg01 .place-block03 {
	background: #d9d3c6;
}
.place.bg02 {
	background: #f7f4f0;
}
.place.bg02 .place-title span {
	background: #f7f4f0;
}
.place.bg02 .place-block03 {
	background: #dcd6cb;
}

.place {
	padding: 58px 0 70px;
}
.place-title {
	position: relative;
	margin: 0 0 28px;
	text-align: center;
}
.place-title::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	border-bottom: 1px solid #000;
	width: 100%;
}
.place-title span {
	position: relative;
	padding: 0 20px;
	background: #f7f4f0;
}
.place-block01 {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 25px;
}
.place-block01_img {
	order: 1;
	width: 100%;
}
.place-block01_head {
	width: 100%;
	margin: 0 0 20px;
}
.place-block01_head > p {
	position: relative;
	z-index: 100;
}
.place-block01_head > p span {
	font-style: italic;
}
.place-block01_head > div {
	position: relative;
	margin: -5px 0 0;
	padding: 10px;
	background: #fff;
}
.place-block01_head > div > h2 {
	padding: 6px 40px 14px 20px;
	border: 1px solid #000;
}
.place-block01_head > div > p {
	position: absolute;
	top: -20px;
	right: 10px;
	padding: 10px 5px;
	line-height: 1;
	background: #333;
	white-space: nowrap;
	-webkit-writing-mode: vertical-rl;
	    -ms-writing-mode: tb-rl;
	        writing-mode: vertical-rl;
}
.place-block01_txt {
	order: 2;
	width: 100%;
}
.place-block02 {
	margin: 0 0 30px;
}
.place-block03 {
	margin: 0 20px;
	padding: 0 0 10px;
}
.place-block03_img {
	margin: 0 0 10px;
}
.place-block03 a {
	text-decoration: underline;
}

.place-block01_img figcaption,
.place-block02_img figcaption {
	margin: 0 20px;
	padding: 4px 0 6px;
	text-align: right;
}
.place-block01_txt,
.place-block02_txt,
.place-block03_txt {
	overflow: hidden;
	margin: 0 20px;
}
@media print, screen and (min-width:768px) {
	.place {
		padding: 90px 50px 100px;
	}
	.place-title {
		max-width: 1120px;
		margin: -10px auto 42px;
	}
	.place-block01 {
		display: block;
		margin-bottom: 30px;
	}
	.place-block01_img {
		float: left;
		width: 340px;
		margin-top: 8px;
		margin-right: 40px;
	}
	.place-block01_head {
		width: auto;
		margin: 0 0 42px;
	}
	.place-block01_head > div {
		display: table;
		width: calc(100% - 20px - 380px);
	}
	.place-block01_head > div > h2 {
		padding: 12px 40px 18px 20px;
	}
	.place-block01_txt {
		width: auto;
	}
	.place-block01_txt p + p {
		margin-top: 4px;
	}
	.place-block02 {
		display: flex;
		align-items: center;
		flex-direction: row-reverse;
		margin-bottom: 55px;
		padding-bottom: 30px;
	}
	.place-block02_img {
		position: relative;
		width: 420px;
		margin-left: 40px;
	}
	.place-block02_img figcaption {
		position: absolute;
		top: 100%;
		right: 0;
	}
	.place-block03 {
		display: flex;
		padding: 0;
	}
	.place-block03_img {
		overflow: hidden;
		position: relative;
		width: 200px;
		min-height: 200px;
		margin: 0 40px 0 0;
	}
	.place-block03_img img {
		position: absolute;
		width: auto;
		height: 100%;
	}
	.place-block03_txt {
		align-self: center;
		padding: 10px 40px 10px 0;
	}
	.place-block03_txt dd p + p {
		margin-top: 8px;
	}
	
	.place-block01,
	.place-block02,
	.place-block03 {
		max-width: 1120px;
		margin-left: auto;
		margin-right: auto;
	}
	.place-block01_img figcaption,
	.place-block02_img figcaption {
		margin: 0;
		padding: 4px 0 6px;
	}
	.place-block01_txt,
	.place-block02_txt,
	.place-block03_txt {
		flex: 1;
		margin: 0;
	}
}
@media print, screen and (min-width:1080px) {
	.place-block01_head > div {
		width: auto;
		min-width: calc(580px - 20px);
	}
}

/*----------------------------------------
	place02
-----------------------------------------*/
@media print, screen and (min-width:768px) {
	#place02 .place-block03_img img {
		right: -20px;
	}
}

/*----------------------------------------
	place03
-----------------------------------------*/
@media print, screen and (min-width:768px) {
	#place03 .place-block03_img img {
		left: -15px;
	}
}

/*----------------------------------------
	place04
-----------------------------------------*/
@media print, screen and (min-width:768px) {
	#place04 .place-block03_img img {
		right: -40px;
	}
}

/*----------------------------------------
	place05
-----------------------------------------*/
@media print, screen and (min-width:768px) {
	#place05 .place-block03_img img {
		right: -100px;
	}
}

/*----------------------------------------
	place06
-----------------------------------------*/
@media print, screen and (min-width:768px) {
	#place06 .place-block03_img img {
		left: 50%;
		transform: translateX(-50%);
	}
}

/*----------------------------------------
	bnr
-----------------------------------------*/
.bnr {
	padding: 0 0 70px;
}
@media print, screen and (min-width:768px) {
	.bnr {
		padding: 0 0 100px;
	}
	.bnr p {
		width: 400px;
		margin: 0 auto;
	}
	.bnr p a {
		transition: opacity 0.2s;
	}
	.bnr p a:hover {
		opacity: 0.6;
	}
}