/* ==========================================================================
   Route101 — 補助スタイル
   色・フォント・余白の「値」は theme.json で管理。ここでは配置と動きだけ。
   ========================================================================== */

:root {
	--r101-header-h: 132px;
	--r101-ease: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; scroll-padding-top: 72px; }
body { -webkit-font-smoothing: antialiased; }
img { display: block; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-heading em { font-style: italic; color: var(--wp--preset--color--wine); }
.r101-access .wp-block-heading em { color: #d9b4c2; }

/* ---------- 英字ラベル ---------- */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: .25rem !important;
}
.r101-access .is-style-eyebrow { color: #a99d92; }

/* ---------- ボタン（ライン） ---------- */
.wp-block-button.is-style-line .wp-block-button__link {
	background: transparent;
	color: currentColor;
	border: 1px solid currentColor;
}
.wp-block-button.is-style-line .wp-block-button__link:hover {
	background: var(--wp--preset--color--wine);
	border-color: var(--wp--preset--color--wine);
	color: #fff;
}
.wp-block-button__link { transition: background-color .3s, color .3s, border-color .3s; }

/* ---------- ヘッダー ---------- */
.r101-header-wrap { position: sticky; top: 0; z-index: 50; }
/* トップページ：ヘッダーをヒーローの上に重ねて固定（固定はラッパー1か所だけ。入れ子の sticky/fixed は iOS でずれるため避ける） */
.home .r101-header-wrap { position: fixed; top: 0; left: 0; right: 0; }
.r101-header {
	position: relative;
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--line);
	transition: background-color .4s var(--r101-ease), color .4s, border-color .4s;
}
.r101-header__top {
	padding: 1.1rem clamp(1rem, 4vw, 3rem) .6rem;
	position: relative;
}
.r101-header__top > * { flex: 1 1 0; margin: 0 !important; }
.r101-header .r101-logo { text-align: center; flex: 0 0 auto; }
.r101-header__cta { justify-content: flex-end; }
.r101-header__visit { font-size: var(--wp--preset--font-size--xs); letter-spacing: .18em; text-transform: uppercase; }
.r101-header__visit a { color: inherit; }
.r101-header .wp-block-button__link { padding: .7rem 1.6rem; }

.r101-logo, .r101-logo a {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	letter-spacing: .06em;
	color: inherit !important;
	line-height: 1;
	margin: 0;
}
.r101-logo img { max-height: 48px; width: auto; margin-inline: auto; }

.r101-subnav { padding: 0 1rem .9rem; justify-content: center; }
.r101-subnav .wp-block-navigation__container { gap: clamp(1rem, 3vw, 2.75rem); }
.r101-subnav a { color: inherit; position: relative; }
.r101-subnav a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px;
	background: currentColor; transform: scaleX(0); transition: transform .35s var(--r101-ease);
}
.r101-subnav a:hover::after { transform: scaleX(1); }

/* トップページ：ヒーローの上に重ねる（TAC方式のグラデーション） */
.home .r101-header {
	position: relative;
	color: #fff;
	background: transparent;
	border-color: transparent;
}
.home .r101-header::before {
	content: ""; position: absolute; inset: 0 0 -60px; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, rgba(15,11,10,.55) 0%, rgba(15,11,10,0) 100%);
	transition: opacity .4s;
}
.home .r101-header.is-scrolled {
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--line);
}
.home .r101-header.is-scrolled::before { opacity: 0; }
.home .r101-header .wp-block-navigation__responsive-container-open { color: inherit; }

/* ---------- ヒーロー ---------- */
.r101-hero {
	position: relative;
	height: 100vh; height: 100svh; min-height: 560px;
	overflow: hidden;
	color: #fff;
	background: var(--wp--preset--color--night);
}
.r101-hero__slides, .r101-hero__slides .r101-slide { position: absolute; inset: 0; margin: 0; }
.r101-hero__slides .r101-slide {
	opacity: 0;
	transition: opacity 1.6s ease-in-out;
}
.r101-hero__slides .r101-slide.is-active { opacity: 1; }
.r101-hero__slides .r101-slide:first-child { opacity: 1; } /* JS無効時 */
.r101-hero__slides.is-ready .r101-slide:first-child:not(.is-active) { opacity: 0; }
.r101-hero__slides .r101-slide img {
	width: 100%; height: 100%; object-fit: cover;
	transform: scale(1.06);
	transition: transform 7s linear;
}
.r101-hero__slides .r101-slide.is-active img { transform: scale(1); }
.r101-hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(180deg, rgba(15,11,10,.45) 0%, rgba(15,11,10,0) 35%),
		linear-gradient(0deg, rgba(15,11,10,.55) 0%, rgba(15,11,10,0) 55%);
}
.r101-hero__copy {
	position: absolute; left: 0; right: 0; bottom: clamp(4rem, 12vh, 8rem);
	z-index: 2;
}
.r101-hero__copy .is-style-eyebrow { color: rgba(255,255,255,.85); }
.r101-hero__copy h1 { color: #fff; letter-spacing: .04em; margin-block: .25rem .5rem; }
.r101-hero__lead { font-size: var(--wp--preset--font-size--sm); letter-spacing: .2em; text-wrap: balance; }

/* ---------- 営業時間バー ---------- */
.r101-hours {
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: 1.75rem;
}
.r101-hours__inner { gap: 1.5rem 3rem; }
.r101-hours__item p { margin: 0; }
.r101-hours__item p:not(.is-style-eyebrow) { font-size: var(--wp--preset--font-size--sm); }

/* ---------- セクション共通 ---------- */
.r101-section { padding-block: var(--wp--preset--spacing--60); }
.r101-section-head { margin-bottom: var(--wp--preset--spacing--50); }
.r101-section-head h2 { margin-block: .25rem 1rem; }
.r101-section .wp-block-columns.alignwide { gap: clamp(1.5rem, 5vw, 5rem); }

.r101-photo { margin: 0; overflow: hidden; }
.r101-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--r101-ease); }
.r101-photo:hover img { transform: scale(1.03); }
.r101-photo--tall img { aspect-ratio: 4 / 5; }

/* ---------- Menu ---------- */
.r101-menu.wp-block-columns { gap: clamp(1.5rem, 3vw, 3rem); }
.r101-menu-col h3 { margin-block: .25rem 1rem; font-size: var(--wp--preset--font-size--xl); }
.r101-menu-col .r101-photo { margin-bottom: 1.5rem; }
.r101-menu-list { list-style: none; padding: 0; margin: 0 0 1.75rem; }
.r101-menu-list li {
	display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
	padding: .7rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--sm);
}

/* ---------- Course ---------- */
.r101-courses.wp-block-columns { gap: clamp(1rem, 2.5vw, 2rem); margin-bottom: var(--wp--preset--spacing--50); }
.wp-block-group.is-style-card {
	height: 100%;
	padding: clamp(1.75rem, 3vw, 2.75rem);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	transition: transform .5s var(--r101-ease), box-shadow .5s;
}
.wp-block-group.is-style-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -24px rgba(31,26,23,.35); }
.r101-course-card h3 { font-size: var(--wp--preset--font-size--xl); margin-block: .25rem .75rem; }
.is-style-card .wp-block-separator { width: 100% !important; max-width: none !important; margin: 1.25rem 0 !important; border-color: var(--wp--preset--color--line); }
.r101-course-card.is-featured { border-top: 3px solid var(--wp--preset--color--wine); }
.r101-price {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xl);
	color: var(--wp--preset--color--wine);
	margin: 0;
}
.r101-price span { font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); margin-left: .35em; }

/* ---------- Reservation ---------- */
.r101-reserve__photos { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1rem; align-items: end; }
.r101-reserve__photos .r101-photo:first-child img { aspect-ratio: 3 / 4; }
.r101-reserve__photos .r101-photo:last-child img { aspect-ratio: 1 / 1; }
.r101-reserve__photos > * { margin: 0 !important; }
.r101-tel { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--xl); margin-block: 1.5rem; }
.r101-tel a { border-bottom: 1px solid var(--wp--preset--color--wine); }
.r101-reserve__buttons { gap: .75rem; }

/* ---------- Access ---------- */
.r101-access a { color: inherit; }
.r101-info { margin-top: 2rem; }
.r101-info p:not(.is-style-eyebrow) { margin-top: 0; margin-bottom: 1.25rem; }
.r101-map { position: relative; width: 100%; aspect-ratio: 4 / 3; background: #2a2321; }
.r101-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(1.05) brightness(.9); }

/* ---------- Footer ---------- */
.r101-footer { border-top: 1px solid var(--wp--preset--color--line); }
.r101-footer .r101-logo { font-size: 2.25rem; }

/* ---------- スマホ固定予約バー ---------- */
.r101-mobile-cta { display: none !important; }
@media (max-width: 781px) {
	.r101-mobile-cta {
		display: flex !important;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		gap: 0 !important; margin: 0 !important;
		background: var(--wp--preset--color--contrast);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.r101-mobile-cta p { flex: 1; margin: 0; text-align: center; }
	.r101-mobile-cta a {
		display: block; padding: 1rem 0; color: #fff;
		font-size: var(--wp--preset--font-size--xs); letter-spacing: .2em; text-transform: uppercase;
	}
	.r101-mobile-cta__reserve { background: var(--wp--preset--color--wine); }
	.r101-footer { padding-bottom: 5rem !important; }


	.r101-hours__inner { display: grid !important; grid-template-columns: 1fr 1fr; }
	.r101-hours .wp-block-buttons { grid-column: 1 / -1; }
	.r101-hours .wp-block-button, .r101-hours .wp-block-button__link { width: 100%; text-align: center; }
	.r101-reserve__photos { grid-template-columns: 1fr 1fr; }
}

/* ---------- スクロールで浮かび上がる ---------- */
.r101-js .r101-reveal { opacity: 0; transform: translateY(28px); transition: opacity 1.1s var(--r101-ease), transform 1.1s var(--r101-ease); }
.r101-js .r101-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.r101-js .r101-reveal, .r101-hero__slides .r101-slide, .r101-hero__slides .r101-slide img { transition: none; transform: none; }
}

/* ---------- エディター内では重ねずに縦並びで編集しやすく ---------- */
.editor-styles-wrapper .r101-hero { height: auto; min-height: 0; }
.editor-styles-wrapper .r101-hero__slides,
.editor-styles-wrapper .r101-hero__slides .r101-slide,
.editor-styles-wrapper .r101-hero__copy { position: relative; inset: auto; opacity: 1; }
.editor-styles-wrapper .r101-hero__slides { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.editor-styles-wrapper .r101-hero__slides .r101-slide img { aspect-ratio: 16/9; transform: none; }
.editor-styles-wrapper .r101-hero::after { display: none; }
.editor-styles-wrapper .r101-hero__copy { padding: 2rem 0; }
.editor-styles-wrapper .r101-reveal { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .r101-mobile-cta { display: flex !important; position: static; }

/* セクション同士の隙間をなくす */
.r101-main .wp-block-post-content > * { margin-block: 0; }

/* v1.1 */
.r101-price-tag { flex: 0 0 auto; font-family: var(--wp--preset--font-family--display); color: var(--wp--preset--color--wine); white-space: nowrap; }
.r101-menu-col .has-xs-font-size { line-height: 1.7; margin-top: -0.75rem; margin-bottom: 1.5rem; }
.r101-courses--4.wp-block-columns { gap: clamp(.75rem, 1.6vw, 1.5rem); }
.r101-courses--4 .r101-course-card h3 { font-size: var(--wp--preset--font-size--lg); }
@media (min-width: 782px) and (max-width: 1100px) {
	.r101-courses--4.wp-block-columns { flex-wrap: wrap !important; }
	.r101-courses--4 > .wp-block-column { flex-basis: calc(50% - 1rem) !important; }
}
.r101-course-card { position: relative; }
.r101-badge {
	position: absolute; top: -0.8rem; left: clamp(1.75rem, 3vw, 2.75rem); margin: 0;
	background: var(--wp--preset--color--wine); color: #fff;
	font-size: var(--wp--preset--font-size--xs); letter-spacing: .18em; text-transform: uppercase;
	padding: .2rem .7rem; line-height: 1.6;
}
.r101-info p:not(.is-style-eyebrow) { font-size: var(--wp--preset--font-size--sm); }

/* スマホのメニュー（開いたとき） */
.r101-subnav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: clamp(4rem, 12vh, 6rem) 2rem 6rem;
}
.r101-subnav .is-menu-open .wp-block-navigation__responsive-container-content,
.r101-subnav .is-menu-open .wp-block-navigation__container {
	align-items: center !important;
	justify-content: flex-start;
	gap: 1.4rem !important;
}
.r101-subnav .is-menu-open .wp-block-navigation-item a {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.75rem;
	letter-spacing: .04em;
	text-transform: none;
}
.r101-subnav .is-menu-open .wp-block-navigation-item a::after { display: none; }
.r101-subnav .wp-block-navigation__responsive-container-close { top: 1.25rem; right: 1.25rem; }
.r101-subnav .is-menu-open {
	--navigation-layout-justification-setting: center;
	--navigation-layout-justify: center;
	--navigation-layout-align: center;
}
.r101-subnav .is-menu-open .wp-block-navigation-item { align-items: center !important; }
.r101-subnav .is-menu-open .wp-block-navigation__container { width: 100%; position: static; }
.r101-subnav .is-menu-open .wp-block-navigation__responsive-container-close { position: fixed; top: calc(1.25rem + env(safe-area-inset-top, 0px)); right: 1.25rem; }

/* ---------- Team（シェフ・マネージャー） ---------- */
.r101-team__grid.wp-block-columns { gap: clamp(2rem, 6vw, 6rem); }
.r101-person > * { margin-block: 0; }
.r101-photo--portrait { margin-bottom: 1.75rem !important; }
.r101-photo--portrait img { aspect-ratio: 4 / 5; filter: saturate(.92); }
.r101-person__name { font-size: var(--wp--preset--font-size--xl); margin-block: .25rem 1.25rem !important; }
.r101-person__name span {
	display: block; margin-top: .35rem;
	font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--xs);
	letter-spacing: .22em; text-transform: uppercase; color: var(--wp--preset--color--muted);
}
.r101-person__quote {
	font-family: var(--wp--preset--font-family--display); font-style: italic;
	font-size: var(--wp--preset--font-size--lg); line-height: 1.6;
	color: var(--wp--preset--color--wine);
	padding-left: 1.25rem; border-left: 1px solid var(--wp--preset--color--wine);
	margin-bottom: 1.25rem !important;
}
.r101-person__career {
	list-style: none; padding: 1.25rem 0 0; margin-top: 1.5rem !important;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--muted);
}
.r101-person__career li { padding: .2rem 0 .2rem 1.1rem; position: relative; }
.r101-person__career li::before { content: ""; position: absolute; left: 0; top: 1em; width: .5rem; height: 1px; background: var(--wp--preset--color--wine); }
@media (min-width: 782px) {
	.r101-team__grid > .r101-person:last-child { margin-top: clamp(3rem, 8vw, 7rem) !important; }
}

/* ---------- 下層ページ（Team など） ---------- */
.r101-page-head { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); border-bottom: 1px solid var(--wp--preset--color--line); }
.r101-page-head h1 { margin-block: .25rem 1rem; }
.r101-page--wide .r101-team { padding-top: var(--wp--preset--spacing--50); }
.r101-page-cta .r101-tel { margin-block: 1rem 1.5rem; }
.r101-page--wide .wp-block-post-content > * { margin-block: 0; }
.r101-textlink { margin-top: 1.5rem !important; }
.r101-textlink a {
	font-size: var(--wp--preset--font-size--xs); letter-spacing: .2em; text-transform: uppercase;
	border-bottom: 1px solid var(--wp--preset--color--wine); padding-bottom: .3rem;
}


/* ---------- v1.4：トップのメニュー要約 / 下層ページ / フッター予約 ---------- */
.r101-highlights__note { margin-block: 1.5rem !important; line-height: 2; color: var(--wp--preset--color--muted); }
.r101-highlights__note strong { color: var(--wp--preset--color--contrast); font-weight: 500; letter-spacing: .08em; }
.r101-jumplinks { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem 2rem; margin-top: 2rem !important; }
.r101-jumplinks a { font-size: var(--wp--preset--font-size--xs); letter-spacing: .22em; text-transform: uppercase; border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: .25rem; }
.r101-jumplinks a:hover { border-color: var(--wp--preset--color--wine); }
.r101-anchor { height: 0; margin: 0 !important; scroll-margin-top: 80px; }
.r101-page--wide .r101-section#course { padding-top: var(--wp--preset--spacing--50); }

.r101-footer-reserve { padding-block: var(--wp--preset--spacing--50); }
.r101-footer-reserve .is-style-eyebrow { color: #a99d92; }
.r101-footer-reserve .r101-tel { margin-block: .5rem; }
.r101-footer-reserve .r101-tel a { color: var(--wp--preset--color--base); border-color: #d9b4c2; }
.r101-footer-reserve__hours { color: #cfc5ba; letter-spacing: .06em; margin-bottom: 2rem !important; }
.r101-footer-reserve .wp-block-button.is-style-line .wp-block-button__link { color: var(--wp--preset--color--base); }
.home .r101-footer-reserve { display: none; }  /* トップは本文に予約欄があるので非表示 */

/* メニューを開いている間はスマホ下部バーを隠す */
html.has-modal-open .r101-mobile-cta { display: none !important; }

/* ---------- Party ページ ---------- */
.r101-party-head { padding-bottom: var(--wp--preset--spacing--50); }
.r101-party-head .wp-block-buttons { margin-top: 2rem; gap: .75rem; }
.r101-party-facts { padding-block: var(--wp--preset--spacing--50); }
.r101-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }
.r101-fact { padding: 2rem 1rem; text-align: center; }
.r101-fact + .r101-fact { border-left: 1px solid var(--wp--preset--color--line); }
.r101-fact > * { margin: 0 !important; }
.r101-fact__num { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--xxl); line-height: 1.1; color: var(--wp--preset--color--wine); font-variant-numeric: lining-nums; }
.r101-fact__num span { font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--contrast); margin-left: .2em; }
.r101-fact__label { margin-top: .6rem !important; font-size: var(--wp--preset--font-size--xs); line-height: 1.7; color: var(--wp--preset--color--muted); }

.r101-scenes { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2.5vw, 2rem); margin-top: var(--wp--preset--spacing--40); }
.r101-scene { border-top: 1px solid var(--wp--preset--color--wine); padding-top: 1.25rem; }
.r101-scene > * { margin-block: 0 .5rem; }
.r101-scene h3 { font-size: var(--wp--preset--font-size--lg); }

.r101-plan-list { list-style: none; padding: 0; margin: 0; font-size: var(--wp--preset--font-size--sm); }
.r101-plan-list li { padding: .45rem 0; border-bottom: 1px dashed var(--wp--preset--color--line); }
.r101-party-plans .r101-courses { margin-top: var(--wp--preset--spacing--40); margin-bottom: 1rem; }
.r101-party-plans .r101-course-card h3 { font-size: var(--wp--preset--font-size--lg); }

.r101-spec { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.r101-spec li { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--sm); }
.r101-spec strong { font-weight: 500; color: var(--wp--preset--color--muted); letter-spacing: .06em; }

.r101-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2.5vw, 2rem); margin-top: var(--wp--preset--spacing--40); counter-reset: step; }
.r101-step > * { margin-block: 0 .5rem; }
.r101-step__num { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: var(--wp--preset--font-size--xl); color: var(--wp--preset--color--wine); }
.r101-step h3 { font-size: var(--wp--preset--font-size--lg); }

.r101-party-faq .r101-faq { max-width: 760px; margin-inline: auto; border-bottom: 1px solid var(--wp--preset--color--line); padding: 1.1rem 0; }
.r101-party-faq .r101-faq:first-of-type { margin-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--line); }
.r101-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-weight: 500; }
.r101-faq summary::-webkit-details-marker { display: none; }
.r101-faq summary::after { content: "+"; font-family: var(--wp--preset--font-family--display); font-size: 1.4rem; line-height: 1; color: var(--wp--preset--color--wine); transition: transform .3s; }
.r101-faq[open] summary::after { transform: rotate(45deg); }
.r101-faq p { margin: .75rem 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--sm); }

.r101-party-contact .r101-tel { margin-block: 1.5rem .25rem; }
.r101-form-slot { margin-top: var(--wp--preset--spacing--40); padding: 2rem; border: 1px dashed var(--wp--preset--color--line); background: var(--wp--preset--color--base); }

@media (max-width: 781px) {
	.r101-facts { grid-template-columns: 1fr 1fr; }
	.r101-fact:nth-child(3) { border-left: 0; }
	.r101-fact:nth-child(n+3) { border-top: 1px solid var(--wp--preset--color--line); }
	.r101-scenes, .r101-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.r101-scenes, .r101-steps { grid-template-columns: 1fr; }
	.r101-spec li { grid-template-columns: 6rem 1fr; }
}

.r101-facts > *, .r101-scenes > *, .r101-steps > * { margin-block: 0 !important; }

/* ---------- v1.5 ---------- */
/* ヒーロー：ロゴを外し、キャッチコピーを見出しに */
.r101-hero__title {
	color: #fff; margin-block: .5rem 0;
	font-family: "Noto Serif JP", var(--wp--preset--font-family--display);
	font-weight: 400; font-size: clamp(1.35rem, 3.2vw, 2.4rem); line-height: 1.7; letter-spacing: .12em;
	text-wrap: balance;
}
body:not(.home) .r101-only-home { display: none !important; }

/* トップのメニュー要約（ディナー＋ランチ） */
.r101-highlights.wp-block-columns { gap: clamp(2rem, 5vw, 5rem); align-items: flex-start !important; }
.r101-highlights h3 { font-size: var(--wp--preset--font-size--xl); margin-block: .25rem 1rem; }
.r101-highlights .r101-photo { margin-bottom: 1.5rem; }
.r101-highlights__lunch .r101-photo img { aspect-ratio: 4 / 3; }
.r101-highlights .wp-block-buttons { gap: .75rem; }

/* メニューページ：料理リスト */
.r101-cats { columns: 2; column-gap: clamp(2rem, 5vw, 5rem); }
.r101-cat { break-inside: avoid; margin: 0 0 var(--wp--preset--spacing--40) !important; }
.r101-cat h3 { font-size: var(--wp--preset--font-size--xl); margin: 0 0 .5rem; padding-bottom: .5rem; border-bottom: 1px solid var(--wp--preset--color--contrast); }
.r101-dishes li { flex-wrap: wrap; }
.r101-dishes .r101-dish__name { flex: 1 1 0; min-width: 0; }
.r101-dishes .r101-dish__desc { flex-basis: 100%; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); line-height: 1.6; margin-top: .15rem; }
.r101-dishes br { display: none; }
.r101-menu-dinner .wp-block-buttons { margin-top: var(--wp--preset--spacing--30); }
.r101-menu-drinks .r101-menu-list li { border-color: rgba(255,255,255,.15); }
.r101-menu-drinks .r101-price-tag { color: #d9b4c2; }
.r101-menu-drinks .wp-block-heading em { color: #d9b4c2; }
.r101-menu-drinks .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }

/* ワインページ */
.r101-happy__inner { text-align: center; max-width: 720px; margin-inline: auto; }
.r101-happy__inner > * { margin-block: 0 .75rem; }
.r101-happy .is-style-eyebrow { color: #a99d92; }
.r101-happy em { color: #d9b4c2 !important; }
.r101-happy strong { color: #fff; font-weight: 500; }
.r101-glass__list .r101-dish__desc { letter-spacing: .04em; }
.r101-winecats { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--40) clamp(2rem, 5vw, 5rem); }
.r101-winecat { scroll-margin-top: 90px; }
.r101-winecat > * { margin-block: 0 .5rem; }
.r101-winecat h3 { font-size: var(--wp--preset--font-size--lg); }
.r101-winetable { margin: .5rem 0 0 !important; overflow-x: auto; }
.r101-winetable table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--sm); }
.r101-winetable th { text-align: left; font-weight: 500; font-size: var(--wp--preset--font-size--xs); letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); border: 0; border-bottom: 1px solid var(--wp--preset--color--contrast); padding: .5rem .5rem .5rem 0; }
.r101-winetable td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .7rem .5rem .7rem 0; vertical-align: top; line-height: 1.5; }
.r101-winetable td strong { font-weight: 500; }
.r101-winetable td span { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); }
.r101-winetable td:nth-child(n+2), .r101-winetable th:nth-child(n+2) { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.r101-winetable td:nth-child(4) { font-family: var(--wp--preset--font-family--display); color: var(--wp--preset--color--wine); }
.r101-regions__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2.5vw, 2rem); }
.r101-region { border-top: 1px solid var(--wp--preset--color--wine); padding-top: 1.25rem; }
.r101-region > *, .r101-regions__grid > *, .r101-winecats > * { margin-block: 0 .5rem !important; }

/* Our Team 3名 */
.r101-team__grid--3.wp-block-columns { gap: clamp(1.5rem, 4vw, 3.5rem); }
@media (min-width: 782px) {
	.r101-team__grid--3 > .r101-person:last-child { margin-top: 0 !important; }
	.r101-team__grid--3 > .r101-person:nth-child(2) { margin-top: clamp(2.5rem, 6vw, 5rem) !important; }
}

@media (max-width: 781px) {
	.r101-cats { columns: 1; }
	.r101-winecats { grid-template-columns: 1fr; }
	.r101-regions__grid { grid-template-columns: 1fr 1fr; }
}

/* v1.5.1：スマホのハンバーガーを確実に右上へ。メニューが開いたときに切り取られないよう overflow を解除 */
@media (max-width: 599px) {
	.r101-header .wp-block-navigation.r101-subnav {
		position: absolute !important;
		top: 50% !important; right: max(16px, env(safe-area-inset-right, 0px)) !important; left: auto !important;
		transform: none; margin: -12px 0 0 !important; padding: 0 !important;
		overflow: visible !important; width: auto !important;
	}
	.r101-header .r101-header__top { padding-right: 56px; padding-left: 56px; }
	.r101-header .wp-block-navigation__responsive-container.is-menu-open { z-index: 100000 !important; }
}
@media (max-width: 599px) {
	.r101-header .wp-block-navigation.r101-subnav { z-index: 20 !important; }
	.r101-header .r101-header__top { position: relative; z-index: 1; }
}

/* 何かがはみ出しても横スクロールさせない（固定ヘッダーの位置ずれ防止） */
html, body { overflow-x: clip; }
.r101-map { box-sizing: border-box; max-width: 100%; }
.r101-subnav .is-menu-open .wp-block-navigation__responsive-close,
.r101-subnav .is-menu-open .wp-block-navigation__responsive-dialog,
.r101-subnav .is-menu-open .wp-block-navigation__responsive-container-content { width: 100% !important; max-width: none !important; margin: 0 !important; align-items: center !important; }
.r101-subnav .is-menu-open .wp-block-navigation__container { align-items: center !important; justify-content: center !important; }
.r101-subnav .is-menu-open .wp-block-navigation__container { align-self: stretch !important; width: 100% !important; margin: 0 !important; }
.r101-subnav .is-menu-open .wp-block-navigation-item { align-self: center !important; }

/* v1.6.1：ハンバーガーはスマホ幅（599px以下）だけ。600px以上はPCと同じ横並びメニュー */
@media (max-width: 599px) {
	.r101-header .r101-header__visit, .r101-header .wp-block-buttons.r101-header__cta { display: none !important; }
	.r101-header__top { justify-content: center !important; padding-bottom: 1rem; }
}
@media (min-width: 600px) and (max-width: 1023px) {
	.r101-subnav .wp-block-navigation__container { gap: .4rem 1.25rem !important; flex-wrap: wrap; justify-content: center; }
	.r101-header__visit { font-size: .65rem; letter-spacing: .12em; }
	.r101-header .wp-block-button__link { padding: .55rem 1.1rem; }
}
/* スマホ下部の予約バーは、タッチ端末かスマホ幅のときだけ（PCの狭いウィンドウでは出さない） */
@media (min-width: 600px) and (max-width: 781px) and (hover: hover) and (pointer: fine) {
	.r101-mobile-cta { display: none !important; }
	.r101-footer { padding-bottom: var(--wp--preset--spacing--40) !important; }
}

/* v1.6.2 微調整 */
.r101-story.wp-block-columns { justify-content: center; gap: clamp(2rem, 6vw, 5rem); }
.r101-story .wp-block-column:last-child > * { max-width: 34rem; }
.r101-access .wp-block-heading em { color: var(--wp--preset--color--wine); }

/* v1.6.3：スクロール時のヘッダーを「白い帯」ではなく、下に向かって溶けるフェードに */
.r101-header,
.home .r101-header.is-scrolled {
	background: linear-gradient(180deg, rgba(248,245,240,.97) 0%, rgba(248,245,240,.9) 70%, rgba(248,245,240,.7) 100%);
	border-bottom-color: transparent;
}
.r101-header::after,
.home .r101-header.is-scrolled::after {
	content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 56px; pointer-events: none;
	background: linear-gradient(180deg, rgba(248,245,240,.7) 0%, rgba(248,245,240,0) 100%);
}
.home .r101-header:not(.is-scrolled) { background: transparent; }
.home .r101-header:not(.is-scrolled)::after { opacity: 0; }
.r101-header::after { transition: opacity .4s; }
.r101-highlights .r101-highlights__dinner > .is-style-eyebrow:first-child,
.r101-highlights .r101-highlights__lunch > .is-style-eyebrow:first-child { margin-top: 0; }
.r101-header, .home .r101-header, .home .r101-header.is-scrolled { border-bottom: 0 !important; }

/* v1.6.4：ヘッダーのフェードを黒系に（文字は白） */
.r101-header,
.home .r101-header.is-scrolled {
	background: linear-gradient(180deg, rgba(23,19,18,.92) 0%, rgba(23,19,18,.8) 70%, rgba(23,19,18,.55) 100%);
	color: var(--wp--preset--color--base);
}
.r101-header::after,
.home .r101-header.is-scrolled::after {
	background: linear-gradient(180deg, rgba(23,19,18,.55) 0%, rgba(23,19,18,0) 100%);
}
.home .r101-header:not(.is-scrolled) { background: transparent; }
.r101-header .r101-logo a, .r101-header .r101-header__visit a, .r101-header .r101-subnav a,
.r101-header .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--base) !important; }
.r101-header .wp-block-button.is-style-line .wp-block-button__link { color: var(--wp--preset--color--base); border-color: currentColor; }
/* スマホでメニューを開いたときは従来どおり明るい背景・濃い文字 */
.r101-header .is-menu-open .wp-block-navigation-item a { color: var(--wp--preset--color--contrast) !important; }

/* v1.6.5：Courseは枠なし・文字だけのシンプルな並びに */
#course .wp-block-group.is-style-card {
	background: transparent; border: 0 !important; box-shadow: none !important;
	padding: 0; transform: none !important; text-align: center;
}
#course .r101-course-card.is-featured { border-top: 0 !important; }
#course .wp-block-group.is-style-card:hover { transform: none; box-shadow: none; }
#course .is-style-card .wp-block-separator { display: none; }
#course .r101-badge {
	position: static; display: inline-block; margin: 0 0 .6rem !important;
	background: transparent; color: var(--wp--preset--color--wine);
	padding: 0; border-bottom: 1px solid var(--wp--preset--color--wine);
}
#course .r101-course-card h3 { margin-block: .1rem .4rem; }
#course .r101-price { margin-bottom: .75rem !important; }
#course .r101-courses--4.wp-block-columns { gap: clamp(1.5rem, 4vw, 3.5rem); }
@media (max-width: 781px) {
	#course .r101-courses--4 > .wp-block-column + .wp-block-column { padding-top: 1.5rem; border-top: 1px solid var(--wp--preset--color--line); }
}
#course .r101-course-card { position: relative; }
#course .r101-badge { position: absolute; top: -1.9rem; left: 50%; transform: translateX(-50%); white-space: nowrap; margin: 0 !important; }
#course .r101-courses--4 { margin-top: calc(var(--wp--preset--spacing--40) + 1rem); }
@media (max-width: 781px) {
	#course .r101-badge { position: static; transform: none; display: inline-block; margin: 0 0 .6rem !important; }
}
#course .r101-course-card > .r101-badge + * { margin-top: 0 !important; }

/* v1.6.6：Courseを1画面に収める（上下の余白を詰める） */
#course.r101-section { padding-block: clamp(2.5rem, 6vh, 4.5rem); scroll-margin-top: 110px; }
#course .r101-section-head { margin-bottom: 0; }
#course .r101-section-head h2 { margin-block: 0 .5rem; }
#course .r101-section-head p { margin: 0; }
#course .r101-courses--4 { margin-top: 3rem !important; margin-bottom: 2rem !important; }
#course .r101-price { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: .5rem !important; }
#course .r101-course-card p.has-sm-font-size { line-height: 1.7; margin: 0; }
@media (max-width: 781px) {
	/* スマホは2列×2段で1画面に */
	#course .r101-courses--4.wp-block-columns { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.5rem 1rem; margin-top: 2rem !important; }
	#course .r101-courses--4 > .wp-block-column + .wp-block-column { padding-top: 0; border-top: 0; }
	#course .r101-courses--4 > .wp-block-column { border-top: 1px solid var(--wp--preset--color--line) !important; padding-top: 1rem !important; }
	#course .r101-badge { display: none; }
	#course .r101-course-card.is-featured h3 { color: var(--wp--preset--color--wine); }
	#course .r101-course-card .is-style-eyebrow { font-size: .6rem; letter-spacing: .16em; }
	#course .r101-course-card h3 { font-size: 1.15rem; }
	#course .r101-price { font-size: 1.4rem; }
	#course .r101-course-card p.has-sm-font-size { font-size: .72rem; }
	#course .wp-block-buttons { gap: .5rem; }
	#course .wp-block-button__link { padding: .8rem 1.1rem; }
}
@media (max-width: 781px) {
	#course.r101-section { padding-block: 1.75rem 2rem; scroll-margin-top: 64px; }
	#course .r101-section-head h2 { font-size: 2rem; }
	#course .r101-section-head p { font-size: .78rem !important; line-height: 1.7; }
	#course .r101-courses--4.wp-block-columns { margin-top: 1.25rem !important; margin-bottom: 1.25rem !important; gap: 1rem .9rem; }
	#course .r101-courses--4 > .wp-block-column { padding-top: .75rem !important; }
	#course .r101-course-card .is-style-eyebrow { margin-bottom: 0 !important; }
	#course .r101-course-card h3 { margin-block: 0 .1rem !important; }
	#course .r101-price { margin-bottom: .2rem !important; }
	#course .r101-course-card p.has-sm-font-size { font-size: .68rem !important; line-height: 1.55; }
	#course .wp-block-buttons { justify-content: center; }
	#course .wp-block-button__link { padding: .7rem .9rem; font-size: .62rem; letter-spacing: .12em; }
}

/* v1.6.7：Course見出しを左揃え（カードの左端にそろえる） */
#course .r101-section-head { max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important; }
#course .r101-section-head > * { text-align: left !important; max-width: none !important; margin-left: 0 !important; }

/* v2.0：最終調整 */
/* Menu見出しを左揃え（Courseと同じ） */
#menu .r101-section-head { max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important; }
#menu .r101-section-head > * { text-align: left !important; max-width: none !important; margin-left: 0 !important; }
/* Storyの写真を小さく（元の約1/4） */
.r101-story .wp-block-column:first-child { flex: 0 0 clamp(150px, 18vw, 240px) !important; }
.r101-story .wp-block-column:last-child { flex: 0 1 34rem !important; }
@media (max-width: 781px) {
	.r101-story .wp-block-column:first-child { flex-basis: auto !important; max-width: 220px; }
}
/* ヘッダーのフェード：ワインレッド（「on a plate.」と同じ色 #6b1e3a） */
.r101-header,
.home .r101-header.is-scrolled {
	background: linear-gradient(180deg, rgba(107,30,58,.95) 0%, rgba(107,30,58,.85) 70%, rgba(107,30,58,.6) 100%);
}
.r101-header::after,
.home .r101-header.is-scrolled::after {
	background: linear-gradient(180deg, rgba(107,30,58,.6) 0%, rgba(107,30,58,0) 100%);
}
.home .r101-header:not(.is-scrolled) { background: transparent; }
/* ワインレッドの上では「Reserve」ボタンを白抜きに */
.r101-header .wp-block-button.is-style-line .wp-block-button__link:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--wine); border-color: var(--wp--preset--color--base); }
