/* ========================================
SUB PAGE COMMON
======================================== */

/* ----------------------------------------
PAGE HERO
---------------------------------------- */
.sub-hero{
	position:relative;
	width:100%;
	height:520px;
	min-height:420px;
	overflow:hidden;
	background:#111;
	color:#fff;
}

.sub-hero-image{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	background-position:center;
	background-repeat:no-repeat;
	background-size:cover;
}

.sub-hero-image::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(0,0,0,.28);
}

.sub-hero-content{
	position:absolute;
	z-index:2;
	left:50%;
	top:50%;
	transform:translate(-50%,-38%);
	width:calc(100% - 80px);
	text-align:center;
	color:#fff;
}

.sub-hero-en{
	display:block;
	margin-bottom:12px;
	font-family:"Times New Roman","Times",serif;
	font-size:12px;
	line-height:1;
	letter-spacing:.16em;
}

.sub-hero-title{
	margin:0;
	font-size:30px;
	font-weight:400;
	line-height:1.6;
}

/* ----------------------------------------
PAGE INTRO
---------------------------------------- */
.sub-intro{
	position:relative;
	padding:50px 0 50px;
	color:#222;
	text-align:center;
}

.sub-intro-inner{
	width:calc(100% - 120px);
	max-width:900px;
	margin:0 auto;
}

.sub-intro-title{
	margin:0 0 22px;
	font-size:26px;
	font-weight:400;
	line-height:1.8;
}

.sub-intro-text{
	margin:0;
	font-size:16px;
	line-height:2;
}

/* ----------------------------------------
SECTION COMMON
---------------------------------------- */
.sub-section{
	position:relative;
	padding:60px 0;
}

.sub-section-inner{
	width:calc(100% - 120px);
	max-width:1200px;
	margin:0 auto;
}

.sub-section-head{
	margin-bottom:35px;
	text-align:center;
}

.sub-section-en{
	display:block;
	margin-bottom:10px;
	font-family:"Times New Roman","Times",serif;
	font-size:12px;
	line-height:1;
	letter-spacing:.16em;
}

.sub-section-title{
	margin:0;
	font-size:27px;
	font-weight:400;
	line-height:1.6;
}

.sub-section-lead{
	max-width:760px;
	margin:20px auto 0;
	font-size:16px;
	line-height:2;
}

/* ----------------------------------------
INFORMATION LIST
---------------------------------------- */
.sub-info{
	width:100%;
	max-width:900px;
	margin:0 auto;
	border-top:1px solid #c9c5ba;
}

.sub-info-row{
	display:grid;
	grid-template-columns:180px 1fr;
	border-bottom:1px solid #c9c5ba;
}

.sub-info dt,
.sub-info dd{
	margin:0;
	padding:16px 0;
	font-size:15px;
	line-height:1.8;
}

.sub-info dt{
	padding-right:30px;
	font-weight:400;
}

.sub-info dd{
	color:#555;
}

/* ----------------------------------------
BUTTON
---------------------------------------- */
.sub-button{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	max-width:330px;
	min-height:58px;
	margin:35px auto 0;
	padding:10px 25px;
	border:1px solid #222;
	font-size:16px;
	line-height:1.5;
	text-align:center;
	transition:
		background .3s ease,
		color .3s ease;
}

@media(hover:hover){
	.sub-button:hover{
		background:#222;
		color:#fff;
	}
}

/* ----------------------------------------
RESERVATION
---------------------------------------- */
.sub-reservation{
	position:relative;
	padding:40px 0;
	background:#111;
	color:#fff;
	text-align:center;
}

.sub-reservation-inner{
	width:calc(100% - 120px);
	max-width:900px;
	margin:0 auto;
}

.sub-reservation-title{
	margin:0 0 15px;
	font-size:27px;
	font-weight:400;
	line-height:1.6;
}

.sub-reservation-text{
	margin:0;
	font-size:16px;
	line-height:2;
}

.sub-reservation-button{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	max-width:360px;
	min-height:58px;
	margin:30px auto 0;
	padding:10px 25px;
	background:#8f2222;
	color:#fff;
	font-size:18px;
	line-height:1.5;
	transition:opacity .3s ease;
}

@media(hover:hover){
	.sub-reservation-button:hover{
		opacity:.78;
	}
}

/* ========================================
TABLET
======================================== */
@media(max-width:1100px){
	.sub-hero{
		height:480px;
	}

	.sub-hero-content{
		width:calc(100% - 80px);
	}

	.sub-intro{
		padding:60px 0 55px;
	}

	.sub-intro-inner,
	.sub-section-inner,
	.sub-reservation-inner{
		width:calc(100% - 80px);
	}
}

/* ========================================
MOBILE
======================================== */
@media(max-width:768px){
	.sub-hero{
		height:58vh;
		min-height:430px;
		max-height:600px;
	}

	.sub-hero-content{
		width:calc(100% - 44px);
		transform:translate(-50%,-30%);
	}

	.sub-hero-en{
		margin-bottom:10px;
		font-size:11px;
	}

	.sub-hero-title{
		font-size:24px;
	}

	.sub-intro{
		padding:55px 0 50px;
	}

	.sub-intro-inner{
		width:calc(100% - 44px);
	}

	.sub-intro-title{
		margin-bottom:20px;
		font-size:21px;
		line-height:1.8;
	}

	.sub-intro-text{
		font-size:15px;
		line-height:2;
		text-align:left;
	}

	.sub-section{
		padding:50px 0;
	}

	.sub-section-inner{
		width:calc(100% - 44px);
	}

	.sub-section-head{
		margin-bottom:30px;
	}

	.sub-section-title{
		font-size:21px;
	}

	.sub-section-lead{
		font-size:15px;
		line-height:2;
		text-align:left;
	}

	.sub-info-row{
		display:block;
		padding:14px 0;
	}

	.sub-info dt,
	.sub-info dd{
		padding:0;
		font-size:14px;
	}

	.sub-info dt{
		margin-bottom:4px;
		padding-right:0;
	}

	.sub-reservation{
		padding:40px 0;
	}

	.sub-reservation-inner{
		width:calc(100% - 44px);
	}

	.sub-reservation-title{
		font-size:21px;
	}

	.sub-reservation-text{
		font-size:14px;
	}

	.sub-reservation-button{
		max-width:100%;
		min-height:58px;
		margin-top:25px;
		font-size:17px;
	}
}

/* ========================================
SMALL MOBILE
======================================== */
@media(max-width:380px){
	.sub-intro-inner,
	.sub-section-inner,
	.sub-reservation-inner{
		width:calc(100% - 30px);
	}
}
