/* =========================
   RESET
========================= */

*{
	margin:0;
	padding:0;
	box-sizing:border-box;
}

body{
	background:#fff;
	color:#222;
	font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
	line-height:2;
}

img,
video{
	max-width:100%;
}

/* =========================
   HERO
========================= */

.hero{
	background:#ffffff;
	padding:130px 20px 120px;
}

.hero-inner{
	width:min(1180px,88%);
	margin:0 auto;
	display:grid;
	grid-template-columns:1.08fr .92fr;
	align-items:center;
	gap:72px;
}

.hero-movie{
	width:100%;
	overflow:hidden;
	background:#f5f2ed;
}

.hero-movie video{
	width:100%;
	height:420px;
	display:block;
	object-fit:cover;
	object-position:center center;
}

.hero-copy{
	text-align:center;
}

.hero-title{
	margin:0 0 42px;
	font-family:"cormorant-garamond","Times New Roman",serif;
	font-size:clamp(28px,3vw,44px);
	font-weight:400;
	letter-spacing:.24em;
	color:#1f1b17;
}

.hero-message{
	margin:0;
	font-size:16px;
	letter-spacing:.32em;
	color:#77716a;
}

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

.section-title,
.small-title{
	font-size:11px;
	letter-spacing:.36em;
	color:#999;
	margin-bottom:38px;
}

.soft-panel{
	width:min(980px,82%);
	margin:0 auto;
	background:#f8f7f4;
	padding:90px 70px;
}

/* =========================
   STORY
========================= */

.story{
	padding:95px 20px 115px;
	background:#fff;
}

.story-inner{
	width:min(760px,100%);
	margin:0 auto;
}

.story h2{
	font-size:30px;
	font-weight:normal;
	line-height:1.7;
	letter-spacing:.07em;
	margin-bottom:52px;
}

.story h2 span{
	font-size:14px;
	letter-spacing:.20em;
	color:#777;
}

.story-text{
	margin-bottom:62px;
}

.story-text:last-child{
	margin-bottom:0;
}

.story-text p{
	font-size:15px;
	line-height:2.05;
	margin-bottom:22px;
}

.story-text.en{
	color:#666;
}

.story-text.en p{
	font-size:12px;
	line-height:2.05;
	letter-spacing:.03em;
}

/* =========================
   PHOTO
========================= */

.sub-photo{
	padding:20px 20px;
	text-align:center;
	background:#fff;
}

.sub-photo img{
	width:min(800px,100%);
	height:auto;
	display:block;
	margin:0 auto;
}

.sub-photo.in-restaurant{
	padding:20px 20px 20px;
}

/* =========================
   RESTAURANT
========================= */

.restaurant{
	padding:95px 20px 55px;
	background:#fff;
}

.restaurant-inner{
	width:min(1040px,90%);
	margin:0 auto;
}

.restaurant-block{
	width:min(720px,100%);
	margin:0 auto 92px;
}

.restaurant-block h2{
	font-size:28px;
	font-weight:normal;
	line-height:1.75;
	letter-spacing:.05em;
	margin-bottom:30px;
}

.restaurant-block h2 span{
	font-size:14px;
	letter-spacing:.07em;
	color:#777;
}

.restaurant-block p{
	font-size:15px;
	line-height:2.05;
	color:#444;
}

.restaurant-block p.en{
	font-size:12px;
	line-height:2.05;
	color:#666;
	margin-top:20px;
	letter-spacing:.03em;
}

.dining-block{
	width:min(860px,82%);
	background:#f8f7f4;
	padding:70px 60px;
}

/* =========================
   HOSPITALITY
========================= */

.people-list{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:38px;
	margin-top:46px;
}

.person{
	border-top:1px solid #ddd;
	padding-top:24px;
}

.person-photo{
	margin-bottom:28px;
	background:#f5f5f5;
}

.person-photo img{
	width:100%;
	height:auto;
	display:block;
}

.person .role{
	font-size:10px;
	letter-spacing:.24em;
	color:#999;
	margin-bottom:14px;
}

.person h3{
	font-size:20px;
	font-weight:normal;
	line-height:1.55;
	letter-spacing:.07em;
	color:#222;
	margin-bottom:20px;
}

.person h3 span{
	font-size:13px;
	letter-spacing:.14em;
	color:#777;
}

.person-copy{
	font-size:12px;
	line-height:1.95;
	color:#555;
	margin-bottom:14px;
}

.person-copy.jp{
	color:#777;
}

/* =========================
   COURSE
========================= */

.course{
	width:min(860px,82%);
	margin:0 auto 70px;
	padding:70px 60px;
	background:#f8f7f4;
}

.course-list{
	margin-top:42px;
	border-top:1px solid #ddd;
}

.course-item{
	padding:34px 0;
	border-bottom:1px solid #ddd;
}

.course-head{
	display:flex;
	justify-content:space-between;
	gap:30px;
	align-items:baseline;
	margin-bottom:16px;
}

.course-name{
	font-size:16px;
	letter-spacing:.16em;
	color:#222;
}

.course-time{
	font-size:11px;
	letter-spacing:.14em;
	color:#999;
	white-space:nowrap;
}

.course-text{
	font-size:13px;
	line-height:1.9;
	color:#555;
	margin-bottom:4px;
}

.course-text.en{
	font-size:12px;
	color:#777;
	margin-top:2px;
}

.menu-list{
	margin-top:24px;
}

.menu-row{
	display:grid;
	grid-template-columns:120px 140px 1fr;
	gap:24px;
	padding:7px 0;
	font-size:12px;
	line-height:1.8;
	letter-spacing:.08em;
	color:#555;
}

.menu-row span:first-child{
	color:#222;
	letter-spacing:.14em;
}

.menu-row span:nth-child(2),
.menu-row span:nth-child(3){
	color:#777;
}

/* =========================
   RESERVATION
========================= */

.reservation{
	padding:110px 20px 120px;
	background:#fff;
}

.reservation-inner{
	width:min(900px,82%);
	margin:0 auto;
	padding:90px 70px;
	text-align:center;
	background:#f8f7f4;
}

.reservation h2{
	font-size:30px;
	font-weight:normal;
	line-height:1.7;
	letter-spacing:.07em;
	margin-bottom:28px;
}

.reservation h2 span{
	font-size:14px;
	letter-spacing:.20em;
	color:#777;
}

.reservation-copy{
	font-size:13px;
	line-height:2;
	color:#555;
}

.reservation-video{
	margin:56px auto 40px;
	width:min(780px,100%);
	background:#fff;
	overflow:hidden;
}

.reservation-video video{
	width:100%;
	height:auto;
	display:block;
}

.reservation-buttons{
	display:flex;
	justify-content:center;
	gap:18px;
	margin-top:34px;
}

.reservation-buttons a{
	display:inline-block;
	width:245px;
	padding:13px 20px;
	border:1px solid #222;
	color:#222;
	text-decoration:none;
	font-size:11px;
	letter-spacing:.22em;
	transition:.3s;
}

.reservation-buttons a:hover{
	background:#222;
	color:#fff;
}

.phone-reservation{
	width:min(680px,100%);
	margin:66px auto 0;
	padding-top:44px;
	border-top:1px solid #ddd;
}

.phone-title{
	font-size:15px;
	letter-spacing:.12em;
	color:#222;
	margin-bottom:18px;
}

.phone-reservation .en,
.phone-reservation .jp{
	font-size:13px;
	line-height:2;
	color:#666;
	margin-bottom:18px;
}

.tel a{
	font-size:14px;
	letter-spacing:.14em;
	color:#222;
	text-decoration:none;
}

/* =========================
   CONTINUE / FOLLOW / PÂTISSERIE
========================= */

.continuation-section{
	padding:110px 20px;
	background:#ffffff;
}

.continuation-inner{
	width:min(1120px,88%);
	margin:0 auto;
}

.continuation-section .section-head{
	text-align:center;
	margin-bottom:58px;
}

.continuation-section .section-kicker{
	margin-bottom:18px;
	font-size:11px;
	letter-spacing:.28em;
	color:#9a8f80;
}

.continuation-section h2{
	margin:0 0 26px;
	font-family:"cormorant-garamond","Times New Roman",serif;
	font-size:clamp(34px,4.2vw,54px);
	font-weight:400;
	letter-spacing:.04em;
	color:#2e2a25;
}

.continuation-section .section-lead{
	margin:0;
	font-size:15px;
	line-height:2.25;
	letter-spacing:.08em;
	color:#5c554d;
}

.continuation-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:28px;
}

.continuation-card{
	padding:54px 48px 50px;
	background:#f7f3ed;
}

.continuation-card .card-label{
	margin:0 0 22px;
	font-size:10px;
	letter-spacing:.26em;
	color:#9a8f80;
}

.continuation-card h3{
	margin:0 0 24px;
	font-family:"cormorant-garamond","Times New Roman",serif;
	font-size:30px;
	font-weight:400;
	letter-spacing:.04em;
	color:#2e2a25;
}

.continuation-card p{
	margin:0;
	font-size:14px;
	line-height:2.15;
	letter-spacing:.06em;
	color:#5c554d;
}

.text-link{
	display:inline-block;
	margin-top:34px;
	padding-bottom:7px;
	font-size:11px;
	letter-spacing:.22em;
	text-transform:uppercase;
	color:#2e2a25;
	text-decoration:none;
	border-bottom:1px solid rgba(46,42,37,.45);
	transition:.3s;
}

.text-link:hover{
	opacity:.62;
	border-color:rgba(46,42,37,.2);
}

/* =========================
   ACCESS
========================= */

.access{
	padding:110px 20px;
	background:#fff;
}

.access-inner{
	width:min(980px,82%);
	margin:0 auto;
	padding:80px;
	display:grid;
	grid-template-columns:1.25fr .75fr;
	gap:80px;
	align-items:center;
	background:#f8f7f4;
}

.access h2{
	font-size:24px;
	font-weight:normal;
	letter-spacing:.12em;
	margin-bottom:38px;
}

.access-text p{
	font-size:14px;
	line-height:2.1;
	color:#444;
	margin-bottom:24px;
}

.access-text .en{
	font-size:12px;
	color:#666;
}

.access-poster{
	text-align:center;
}

.access-poster img{
	width:100%;
	max-width:280px;
	height:auto;
	display:block;
	margin:0 auto;
}
.access-note{
	margin-top:40px;
	padding-top:34px;
	border-top:1px solid #d9d6d0;
}

.access-note p{
	margin-bottom:14px;
	font-size:12px;
	line-height:2;
	color:#666;
}

.access-note .jp{
	color:#888;
}

.access-note a{
	color:#444;
	text-decoration:none;
	border-bottom:1px solid rgba(0,0,0,.15);
	padding-bottom:2px;
}

.access-divider{
	width:60px;
	height:1px;
	background:#d9d6d0;
	margin:22px 0;
}

/* =========================
   FOOTER
========================= */

.footer{
	padding:85px 20px 60px;
	text-align:center;
	background:#fff;
}

.footer-logo{
	margin-bottom:32px;
}

.footer-logo img{
	width:150px;
	height:auto;
}

.recognition{
	margin-bottom:34px;
}

.recognition p{
	font-size:11px;
	line-height:2;
	letter-spacing:.12em;
	color:#888;
}
.recognition-divider{
	width:80px;
	height:1px;
	background:#d9d6d0;
	margin:30px auto;
}
.recognition p:first-child{
	color:#555;
	margin-bottom:8px;
}

.copyright{
	font-size:10px;
	letter-spacing:.18em;
	color:#aaa;
}

/* =========================
   SP
========================= */

@media only screen and (max-width:40em){

	.hero{
		padding:72px 0 78px;
	}

	.hero-inner{
		width:100%;
		display:block;
	}

	.hero-movie{
		width:100%;
	}

	.hero-movie video{
		width:100%;
		height:260px;
		object-fit:cover;
		object-position:center center;
	}

	.hero-copy{
		padding:54px 24px 0;
		text-align:center;
	}

	.hero-title{
		margin-bottom:34px;
		font-size:25px;
		letter-spacing:.18em;
	}

	.hero-message{
		font-size:14px;
		letter-spacing:.26em;
	}

	.soft-panel{
		width:100%;
		padding:70px 28px;
	}

	.story{
		padding:72px 24px 86px;
	}

	.story h2{
		font-size:25px;
		margin-bottom:44px;
	}

	.story h2 span{
		font-size:13px;
	}

	.story-text{
		margin-bottom:54px;
	}

	.story-text p{
		font-size:14px;
	}

	.story-text.en p{
		font-size:12px;
	}

	.sub-photo{
		padding:58px 24px;
	}

	.sub-photo.in-restaurant{
		padding:0 24px 76px;
	}

	.restaurant{
		padding:78px 24px 40px;
	}

	.restaurant-inner{
		width:100%;
	}

	.restaurant-block{
		margin-bottom:74px;
	}

	.restaurant-block h2{
		font-size:23px;
	}

	.restaurant-block h2 span{
		font-size:13px;
	}

	.restaurant-block p{
		font-size:14px;
	}

	.restaurant-block p.en{
		font-size:12px;
	}

	.dining-block{
		width:100%;
		padding:58px 28px;
	}

	.people-list{
		grid-template-columns:1fr;
		gap:42px;
	}

	.course{
		width:100%;
		padding:58px 28px;
		margin-bottom:64px;
	}

	.course-item{
		padding:24px 0;
	}

	.course-head{
		display:block;
	}

	.course-time{
		margin-top:6px;
	}

	.menu-row{
		grid-template-columns:1fr;
		gap:0;
		padding:14px 0;
	}

	.menu-row span{
		display:block;
	}

	.menu-row span:first-child{
		margin-bottom:2px;
	}

	.reservation{
		padding:88px 24px 96px;
	}

	.reservation-inner{
		width:100%;
		padding:70px 28px;
	}

	.reservation h2{
		font-size:25px;
	}

	.reservation-video{
		margin:44px auto 34px;
	}

	.reservation-buttons{
		flex-direction:column;
		gap:14px;
	}

	.reservation-buttons a{
		width:100%;
	}

	.phone-reservation{
		margin-top:54px;
		padding-top:36px;
	}

	.continuation-section{
		padding:78px 20px;
	}

	.continuation-inner{
		width:92%;
	}

	.continuation-section .section-head{
		margin-bottom:42px;
	}

	.continuation-section h2{
		font-size:34px;
	}

	.continuation-section .section-lead{
		font-size:14px;
		line-height:2.05;
	}

	.continuation-grid{
		grid-template-columns:1fr;
		gap:20px;
	}

	.continuation-card{
		padding:40px 28px 38px;
	}

	.continuation-card h3{
		font-size:27px;
	}

	.continuation-card p{
		font-size:13px;
		line-height:2.05;
	}

	.text-link{
		margin-top:28px;
	}

	.access{
		padding:86px 24px;
	}

	.access-inner{
		width:100%;
		display:block;
		padding:70px 28px;
	}

	.access h2{
		font-size:20px;
		letter-spacing:.08em;
	}

	.access-poster{
		margin-top:56px;
	}

	.access-poster img{
		max-width:230px;
	}

	.footer-logo img{
		width:135px;
	}
}
```