/* ========================================
CUISINE
======================================== */

.cuisine-page{
	overflow:hidden;
	color:#222;
}

.cuisine-page img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}


/* ========================================
INTRO
======================================== */

.cuisine-page .sub-intro,
.cuisine-intro{
	padding-bottom:30px;
}


/* ========================================
COMMON
======================================== */

.cuisine-page .section-en{
	color:#222;
}

.cuisine-heading{
	margin:12px 0 0;
	color:#222;
	font-size:34px;
	font-weight:400;
	line-height:1.6;
}

.cuisine-lead,
.cuisine-dining-lead{
	margin:28px 0 0;
	color:#222;
	font-size:22px;
	line-height:2;
}

.cuisine-text{
	margin:30px 0 0;
	color:#222;
	font-size:15px;
	line-height:2.3;
}

.cuisine-signature,
.cuisine-seasonal,
.cuisine-feature,
.cuisine-dining{
	position:relative;
}


/* ========================================
YANAGAWA SPECIALTY
======================================== */

.cuisine-signature{
	padding:80px 0 0px;
}

.cuisine-signature-inner{
	display:grid;
	grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);
	align-items:center;
	max-width:1400px;
	margin:0 auto;
}

.cuisine-signature-image{
	aspect-ratio:3 / 2;
	height:auto;
	overflow:hidden;
}

.cuisine-signature-content{
	max-width:520px;
	padding:40px 40px 40px 80px;
	color:#222;
}

.cuisine-signature-content .section-en{
	color:#222;
}

.cuisine-signature-content .cuisine-heading{
	color:#222;
}

.cuisine-signature-content .cuisine-lead{
	color:#222;
}

.cuisine-signature-content .cuisine-text{
	max-width:470px;
	color:#222;
}


/* ========================================
SEASONAL CUISINE
======================================== */

.cuisine-seasonal{
	padding:110px 0 120px;
}

.cuisine-seasonal-inner{
	width:100%;
}

.cuisine-section-head{
	max-width:720px;
	margin:0 auto 50px;
	padding:0 40px;
	text-align:center;
}

.cuisine-section-head .cuisine-text{
	margin-top:35px;
}


/* ----------------------------------------
GALLERY SLIDER
---------------------------------------- */

.cuisine-slider{
	position:relative;
	width:100%;
	overflow:hidden;
}

.cuisine-slider-viewport{
	width:100%;
	overflow:hidden;
}

.cuisine-slider-track{
	display:flex;
	gap:18px;
	transform:translateX(0);
	transition:transform 2.5s cubic-bezier(.22,1,.36,1);
	will-change:transform;
}

.cuisine-slider-item{
	position:relative;
	flex:0 0 calc((100% - 32px) / 3);
	aspect-ratio:16 / 10;
	overflow:hidden;
	background:#eee;
}

.cuisine-slider-item img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}

.cuisine-slider-caption{
	position:absolute;
	right:0;
	bottom:0;
	left:0;
	margin:0;
	padding:30px 18px 14px;
	background:linear-gradient(
		to top,
		rgba(0,0,0,.58),
		rgba(0,0,0,0)
	);
	color:#fff;
	font-size:12px;
	line-height:1.6;
}


/* ----------------------------------------
CONTROLS
---------------------------------------- */

.cuisine-slider-arrow{
	position:absolute;
	top:50%;
	z-index:2;
	display:flex;
	align-items:center;
	justify-content:center;
	width:52px;
	height:52px;
	padding:0;
	border:1px solid rgba(255,255,255,.7);
	border-radius:50%;
	background:rgba(0,0,0,.45);
	color:#fff;
	font-family:inherit;
	font-size:30px;
	line-height:1;
	cursor:pointer;
	transform:translateY(-50%);
	transition:
		background .25s ease,
		border-color .25s ease;
}

.cuisine-slider-prev{
	left:24px;
}

.cuisine-slider-next{
	right:24px;
}

@media(hover:hover){

	.cuisine-slider-arrow:hover{
		border-color:#fff;
		background:rgba(0,0,0,.75);
	}

}

/* ========================================
BREAKFAST / CHEF
======================================== */

.cuisine-feature{
	padding:110px 40px;
}

.cuisine-feature-inner{
	display:grid;
	grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
	align-items:center;
	max-width:1200px;
	margin:0 auto;
}

.cuisine-feature-image{
	aspect-ratio:3 / 2;
	height:auto;
	overflow:hidden;
}

.cuisine-feature-content{
	padding:30px 20px 30px 80px;
	color:#222;
}

.cuisine-feature-content .cuisine-text{
	max-width:470px;
}


/* reverse */

.cuisine-feature-inner.reverse{
	grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr);
}

.cuisine-feature-inner.reverse .cuisine-feature-image{
	grid-column:2;
	grid-row:1;
}

.cuisine-feature-inner.reverse .cuisine-feature-content{
	grid-column:1;
	grid-row:1;
	padding:30px 80px 30px 20px;
}


/* CHEF */

.cuisine-chef-name{
	margin:35px 0 0;
	color:#222;
	font-size:14px;
	line-height:1.8;
	text-align:right;
}


/* ========================================
DINING / SUZU
======================================== */

.cuisine-dining{
	padding:120px 40px 130px;
}

.cuisine-dining-inner{
	max-width:1280px;
	margin:0 auto;
}

.cuisine-dining-head{
	max-width:760px;
	margin:0 auto 40px;
	text-align:center;
}

.cuisine-dining-visual{
	width:100%;
	height:600px;
	overflow:hidden;
}

.cuisine-dining-body{
	display:grid;
	grid-template-columns:1fr 420px;
	gap:100px;
	align-items:start;
	max-width:1080px;
	margin:65px auto 0;
}

.cuisine-dining-description .cuisine-text{
	margin-top:0;
}

.cuisine-dining-info{
	border-top:1px solid #c9c5ba;
}

.cuisine-dining-info dl{
	margin:0;
}

.cuisine-dining-info dl>div{
	display:grid;
	grid-template-columns:100px 1fr;
	padding:18px 0;
	border-bottom:1px solid #c9c5ba;
}

.cuisine-dining-info dt{
	color:#222;
	font-size:14px;
	line-height:1.8;
}

.cuisine-dining-info dd{
	margin:0;
	color:#222;
	font-size:14px;
	line-height:1.8;
}


/* ========================================
TABLET
======================================== */

@media(max-width:1100px){

	.cuisine-page .sub-intro,
	.cuisine-intro{
		padding-bottom:50;
	}

	.cuisine-heading{
		font-size:30px;
	}

	.cuisine-lead,
	.cuisine-dining-lead{
		font-size:20px;
	}


	/* SIGNATURE */

	.cuisine-signature{
		padding:70px 0 100px;
	}

	.cuisine-signature-inner{
		grid-template-columns:1.15fr .85fr;
	}

	.cuisine-signature-content{
		padding:30px 40px 30px 55px;
	}


	/* SEASONAL */

.cuisine-seasonal{
	padding:90px 0 100px;
}

.cuisine-section-head{
	margin-bottom:40px;
	padding-right:40px;
	padding-left:40px;
}

.cuisine-slider-item{
	flex-basis:calc((100vw - 100px) / 2.2);
}

	/* FEATURE */

	.cuisine-feature{
		padding:90px 40px;
	}

	.cuisine-feature-content{
		padding:25px 10px 25px 55px;
	}

	.cuisine-feature-inner.reverse .cuisine-feature-content{
		padding:25px 55px 25px 10px;
	}


	/* DINING */

	.cuisine-dining{
		padding:100px 40px 110px;
	}

	.cuisine-dining-visual{
		height:500px;
	}

	.cuisine-dining-body{
		grid-template-columns:1fr 360px;
		gap:60px;
	}

}


/* ========================================
MOBILE
======================================== */

@media(max-width:768px){

	.cuisine-page .sub-intro,
	.cuisine-intro{
		padding-bottom:40;
	}

	.cuisine-heading{
		margin-top:8px;
		font-size:25px;
		line-height:1.55;
	}

	.cuisine-lead,
	.cuisine-dining-lead{
		margin-top:22px;
		font-size:18px;
		line-height:1.9;
	}

	.cuisine-text{
		margin-top:22px;
		font-size:14px;
		line-height:2.1;
	}


	/* SIGNATURE */

	.cuisine-signature{
		padding:55px 0 75px;
	}

	.cuisine-signature-inner{
		display:flex;
		flex-direction:column;
	}

	.cuisine-signature-image{
		width:calc(100% - 30px);
		height:68vw;
		aspect-ratio:auto;
		margin-right:auto;
		margin-left:auto;
	}

	.cuisine-signature-content{
		width:100%;
		max-width:none;
		padding:45px 25px 0;
	}

	.cuisine-signature-content .cuisine-text{
		max-width:none;
	}


	/* SEASONAL */

.cuisine-seasonal{
	padding:75px 0 85px;
}

.cuisine-section-head{
	margin-bottom:35px;
	padding-right:20px;
	padding-left:20px;
	text-align:left;
}

.cuisine-section-head .cuisine-text{
	margin-top:25px;
}

.cuisine-slider-track{
	gap:10px;
}

.cuisine-slider-item{
	flex-basis:82vw;
	aspect-ratio:4 / 3;
}

.cuisine-slider-arrow{
	width:42px;
	height:42px;
	font-size:25px;
}

.cuisine-slider-prev{
	left:12px;
}

.cuisine-slider-next{
	right:12px;
}


	/* BREAKFAST / CHEF */

	.cuisine-feature{
		padding:75px 0;
	}

	.cuisine-feature-inner,
	.cuisine-feature-inner.reverse{
		display:flex;
		flex-direction:column;
	}

	.cuisine-feature-image,
	.cuisine-feature-inner.reverse .cuisine-feature-image{
		width:calc(100% - 30px);
		height:66vw;
		aspect-ratio:auto;
		margin-right:auto;
		margin-left:auto;
	}

	.cuisine-feature-content,
	.cuisine-feature-inner.reverse .cuisine-feature-content{
		width:100%;
		max-width:none;
		padding:42px 25px 0;
	}

	.cuisine-feature-content .cuisine-text{
		max-width:none;
	}

	.cuisine-chef-name{
		margin-top:25px;
	}


	/* DINING */

	.cuisine-dining{
		padding:80px 20px 90px;
	}

	.cuisine-dining-head{
		margin-bottom:45px;
		text-align:left;
	}

	.cuisine-dining-visual{
		width:100%;
		height:65vw;
		margin-left:0;
	}

	.cuisine-dining-body{
		display:block;
		margin-top:40px;
	}

	.cuisine-dining-info{
		margin-top:40px;
	}

	.cuisine-dining-info dl>div{
		grid-template-columns:90px 1fr;
		padding:15px 0;
	}

}


/* ========================================
SMALL MOBILE
======================================== */

@media(max-width:480px){

	.cuisine-heading{
		font-size:23px;
	}

	.cuisine-lead,
	.cuisine-dining-lead{
		font-size:17px;
	}

	.cuisine-signature-content,
	.cuisine-feature-content,
	.cuisine-feature-inner.reverse .cuisine-feature-content{
		padding-right:20px;
		padding-left:20px;
	}

	.cuisine-dining{
		padding-right:20px;
		padding-left:20px;
	}

}


/* ========================================
CUISINE LAYOUT ADJUST
======================================== */

/* ----------------------------------------
INTRO → 最初の料理セクション
ライン直後だけ少し余白を確保
---------------------------------------- */

.cuisine-signature{
	padding-top:50px;
	padding-bottom:50px;
}


/* ----------------------------------------
画像とテキストを上揃え
---------------------------------------- */

.cuisine-signature-inner,
.cuisine-feature-inner{
	align-items:start;
}

.cuisine-signature-content{
	padding-top:0;
}

.cuisine-feature-content{
	padding-top:0;
}

.cuisine-feature-inner.reverse .cuisine-feature-content{
	padding-top:0;
}


/* ----------------------------------------
SEASONAL
---------------------------------------- */

.cuisine-seasonal{
	padding-top:50px;
	padding-bottom:50px;
}


/* ----------------------------------------
BREAKFAST / CHEF
セクション境界の上下余白を圧縮
---------------------------------------- */

.cuisine-feature{
	padding-top:50px;
	padding-bottom:50px;
}


/* ----------------------------------------
DINING
---------------------------------------- */

.cuisine-dining{
	padding-top:50px;
	padding-bottom:50px;
}


/* ========================================
TABLET
======================================== */

@media(max-width:1100px){

	.cuisine-signature{
		padding-top:50px;
		padding-bottom:50px;
	}

	.cuisine-seasonal{
		padding-top:50px;
		padding-bottom:50px;
	}

	.cuisine-feature{
		padding-top:50px;
		padding-bottom:50px;
	}

	.cuisine-dining{
		padding-top:50px;
		padding-bottom:50px;
	}

}


/* ========================================
MOBILE
======================================== */

@media(max-width:768px){

	.cuisine-signature{
		padding-top:40px;
		padding-bottom:40px;
	}

	.cuisine-seasonal{
		padding-top:40px;
		padding-bottom:40px;
	}

	.cuisine-feature{
		padding-top:40px;
		padding-bottom:40px;
	}

	.cuisine-dining{
		padding-top:40px;
		padding-bottom:40px;
	}

	/* スマホは画像→文章なので少しだけ間隔を戻す */

	.cuisine-signature-content,
	.cuisine-feature-content,
	.cuisine-feature-inner.reverse .cuisine-feature-content{
		padding-top:35px;
	}

}

.cuisine-slider-arrow:disabled{
	opacity:.25;
	cursor:default;
	pointer-events:none;
}