@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ（炭火焼肉 なら八）
    Version: 2.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/
    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ==========================================================================
   色と文字
   黒を地、白を文字と余白、赤は予約ボタンと見出しの印だけに使う。
   赤を広い面に使うと焼肉の写真が沈むため、面積は全体の 5% 程度に抑える。
   ========================================================================== */
:root {
	--nh-black: #0b0b0b;
	--nh-black-2: #151515;
	--nh-black-3: #222;
	--nh-white: #fff;
	--nh-paper: #f7f5f1;
	--nh-gray: #8a8a8a;
	--nh-line-dark: rgba(255, 255, 255, .14);
	--nh-line-light: rgba(0, 0, 0, .12);
	--nh-red: #b5121b;
	--nh-red-dark: #8c0d14;
	--nh-font-mincho: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "BIZ UDPMincho", serif;
	/* 書体は明朝 1 種類にそろえる。英字も明朝の欧文で出す */
	--nh-font-gothic: var(--nh-font-mincho);
	--nh-font-en: var(--nh-font-mincho);
	--nh-wide: 1120px;
}

button,
input,
select,
textarea { font-family: inherit; }

body {
	font-family: var(--nh-font-gothic);
	letter-spacing: .04em;
	color: #1a1a1a;
	background: var(--nh-white);
}

/* 本文中の見出しは明朝に統一する */
.post_content h2,
.post_content h3,
.post_content h4,
.c-pageTitle,
.nh-heading,
.l-topTitleArea .c-pageTitle {
	font-family: var(--nh-font-mincho);
	font-weight: 600;
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.l-header,
.l-header__inner,
.l-fixHeader,
.l-fixHeader__inner {
	background: var(--nh-black) !important;
	color: var(--nh-white);
}
.l-header { box-shadow: none !important; border-bottom: 1px solid var(--nh-line-dark); }
.c-headLogo__link,
.c-headLogo a {
	color: var(--nh-white) !important;
	font-family: var(--nh-font-mincho);
	letter-spacing: .18em;
	font-weight: 600;
}
.c-gnav > .menu-item > a {
	color: var(--nh-white) !important;
	font-family: var(--nh-font-mincho);
	letter-spacing: .14em;
}
.c-gnav > .menu-item > a .ttl { font-size: 14px; }
.c-gnav > .menu-item > a .c-smallNavTitle.desc {
	font-family: var(--nh-font-en);
	letter-spacing: .2em;
	color: var(--nh-gray);
	font-size: 10px;
}
.c-gnav > .menu-item > a::after { background: var(--nh-red) !important; }
/* グローバルナビ末尾の予約ボタン（メニュー項目の CSS クラスに nh-nav-reserve を付ける） */
.c-gnav > .menu-item.nh-nav-reserve > a {
	background: var(--nh-red);
	padding: 0 1.6em;
}
.c-gnav > .menu-item.nh-nav-reserve > a:hover { background: var(--nh-red-dark); }
.c-gnav > .menu-item.nh-nav-reserve > a::after { display: none; }
.l-header__menuBtn,
.l-header__customBtn,
.c-iconBtn { color: var(--nh-white) !important; }

/* スマホのメニュー */
.p-spMenu__inner::before { background: var(--nh-black) !important; opacity: 1 !important; }
.p-spMenu__inner,
.p-spMenu a { color: var(--nh-white) !important; }
.p-spMenu .c-widget__title { color: var(--nh-white); }

/* ==========================================================================
   下層ページのタイトル（SWELL の「コンテンツ上に表示」を使う）
   ========================================================================== */
.l-topTitleArea {
	min-height: 260px;
	background: var(--nh-black);
}
/* 白い見出しが読みやすいよう、背景の写真を少し暗くする */
.l-topTitleArea__img { filter: brightness(.6); }
.l-topTitleArea .c-pageTitle {
	color: var(--nh-white);
	font-size: clamp(26px, 4vw, 40px);
	letter-spacing: .2em;
	text-shadow: none;
}
.l-topTitleArea .c-pageTitle__subTitle {
	display: block;
	order: -1;
	margin: 0 0 .6em;
	font-family: var(--nh-font-en);
	font-size: 13px;
	font-style: normal;
	letter-spacing: .4em;
	color: var(--nh-white);
	opacity: .85;
}
.l-topTitleArea .c-pageTitle__subTitle::before { content: none; }
.l-topTitleArea .c-pageTitle::after {
	content: "";
	display: block;
	width: 32px;
	height: 2px;
	margin: .8em auto 0;
	background: var(--nh-red);
}
.l-topTitleArea .c-pageTitle { display: flex; flex-direction: column; align-items: center; }

/* パンくず */
.p-breadcrumb { background: var(--nh-paper) !important; }

/* ==========================================================================
   全幅セクション
   固定ページ本文の中から画面幅いっぱいに広げる。
   ========================================================================== */
.post_content > .nh-sec,
.post_content > .nh-hero,
.post_content > .wp-block-group.nh-sec {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.nh-sec {
	padding: clamp(64px, 9vw, 120px) 20px;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.nh-sec > * { max-width: var(--nh-wide); margin-left: auto !important; margin-right: auto !important; }
.nh-sec.-dark { background: var(--nh-black); color: var(--nh-white); }
.nh-sec.-dark2 { background: var(--nh-black-2); color: var(--nh-white); }
.nh-sec.-light { background: var(--nh-white); color: #1a1a1a; }
.nh-sec.-paper { background: var(--nh-paper); color: #1a1a1a; }
.nh-sec.-dark a:not(.nh-btn),
.nh-sec.-dark2 a:not(.nh-btn) { color: var(--nh-white); }
.nh-sec p { line-height: 2; }
.nh-sec.-narrow > * { max-width: 760px; }

/* 固定ページ本文の上下の余白を詰め、全幅セクションを隙間なく並べる */
.home .l-content,
.page .l-content { padding-top: 0; }
.home .l-mainContent__inner > .post_content,
.page .l-mainContent__inner > .post_content { margin-top: 0; }
.home #content,
.page-template-default #content { padding-top: 0; }

/* ==========================================================================
   和英2段の見出し
   ========================================================================== */
.post_content .nh-heading,
.nh-heading {
	display: flex;
	flex-direction: column;
	gap: .5em;
	margin: 0 0 2.4em !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	font-size: clamp(24px, 3.4vw, 34px);
	letter-spacing: .16em;
	line-height: 1.5;
	color: inherit;
}
.nh-heading::before,
.nh-heading::after { content: none !important; }
.nh-heading.-center { align-items: center; text-align: center; }
.nh-heading.-left { align-items: flex-start; text-align: left; }
.nh-heading__en {
	font-family: var(--nh-font-en);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .45em;
	color: var(--nh-red);
}
.nh-sec.-dark .nh-heading__en,
.nh-sec.-dark2 .nh-heading__en { color: #e0434b; }
.nh-heading.-center .nh-heading__ja::after {
	content: "";
	display: block;
	width: 1px;
	height: 28px;
	margin: .6em auto 0;
	background: currentColor;
	opacity: .4;
}

/* ==========================================================================
   ボタン
   ========================================================================== */
.nh-btn,
.post_content a.nh-btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .2em;
	min-width: 240px;
	min-height: 60px;
	padding: .9em 2em;
	border: 1px solid currentColor;
	font-family: var(--nh-font-mincho);
	font-size: 16px;
	letter-spacing: .14em;
	line-height: 1.4;
	text-decoration: none !important;
	transition: background-color .2s, color .2s, border-color .2s;
}
.nh-btn__en {
	font-family: var(--nh-font-en);
	font-size: 10px;
	letter-spacing: .35em;
	opacity: .8;
}
.nh-btn.-red,
.post_content a.nh-btn.-red {
	background: var(--nh-red);
	border-color: var(--nh-red);
	color: var(--nh-white) !important;
}
.nh-btn.-red:hover { background: var(--nh-red-dark); border-color: var(--nh-red-dark); }
.nh-btn.-line { color: inherit; background: transparent; }
.nh-sec.-dark .nh-btn.-line,
.nh-sec.-dark2 .nh-btn.-line,
.nh-hero .nh-btn.-line,
.nh-storeGuide .nh-btn.-line { color: var(--nh-white); }
.nh-btn.-line:hover { background: var(--nh-white); color: var(--nh-black) !important; border-color: var(--nh-white); }
.nh-sec.-light .nh-btn.-line:hover,
.nh-sec.-paper .nh-btn.-line:hover { background: var(--nh-black); color: var(--nh-white) !important; border-color: var(--nh-black); }

.nh-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
	margin: 2em 0 0;
}
.nh-cta__note { margin-top: 1em; text-align: center; font-size: 13px; opacity: .8; }
.nh-more { text-align: center; margin-top: 3em !important; }

/* ==========================================================================
   トップ：ファーストビュー
   ========================================================================== */
.nh-hero {
	position: relative;
	min-height: min(88vh, 820px);
	display: grid;
	place-items: center;
	padding: 120px 20px 96px;
	overflow: hidden;
	background: var(--nh-black);
	color: var(--nh-white);
	text-align: center;
	margin-top: 0 !important;
}
.nh-hero__media,
.nh-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.nh-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 55%, rgba(11,11,11,.95) 100%);
}
.nh-hero__body { position: relative; z-index: 1; max-width: 900px; }
.nh-hero__lead {
	font-family: var(--nh-font-en);
	font-size: 12px;
	letter-spacing: .5em;
	margin: 0 0 1.6em !important;
	opacity: .9;
}
.post_content .nh-hero__copy,
.nh-hero__copy {
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	color: var(--nh-white);
	font-family: var(--nh-font-mincho);
	font-size: clamp(30px, 6vw, 64px);
	font-weight: 600;
	letter-spacing: .18em;
	line-height: 1.5;
}
.nh-hero__copy::before,
.nh-hero__copy::after { content: none !important; }
.nh-hero__name {
	display: block;
	margin-top: 1.2em;
	font-size: clamp(14px, 1.6vw, 18px);
	letter-spacing: .3em;
	font-weight: 500;
}
.nh-hero__name::before {
	content: "";
	display: block;
	width: 1px;
	height: 40px;
	margin: 0 auto 1.2em;
	background: var(--nh-red);
}
.nh-hero__facts {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 24px;
	margin: 2em 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
	font-size: 14px;
	letter-spacing: .12em;
}
.nh-hero__facts li { list-style: none; padding: 0; }
.nh-hero__facts li::before { content: none !important; }

/* 新着1件の帯 */
.nh-topics {
	background: var(--nh-black);
	color: var(--nh-white);
	padding: 0 20px 32px !important;
}
.nh-topics .nh-news { max-width: 760px; margin: 0 auto; border-top: 1px solid var(--nh-line-dark); }
.nh-topics .nh-news li { border-bottom: 1px solid var(--nh-line-dark); }

/* ==========================================================================
   トップ：こだわり（写真と文の2列）
   ========================================================================== */
.nh-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(32px, 6vw, 80px);
	align-items: center;
}
.nh-split.-reverse .nh-split__media { order: 2; }
.nh-split__media img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.nh-split__num {
	font-family: var(--nh-font-en);
	font-size: 48px;
	line-height: 1;
	color: var(--nh-red);
	margin: 0 0 .3em !important;
}
.nh-split h3 {
	margin: 0 0 1em !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	color: inherit !important;
	font-size: clamp(20px, 2.4vw, 26px);
	letter-spacing: .14em;
	line-height: 1.6;
}
.nh-split h3::before,
.nh-split h3::after { content: none !important; }
.nh-split + .nh-split { margin-top: clamp(56px, 8vw, 96px) !important; }

/* ==========================================================================
   トップ：利用シーンの案内カード（左右交互）
   ========================================================================== */
.nh-guide {
	display: grid;
	gap: clamp(40px, 6vw, 72px);
}
.nh-guide__item {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	align-items: center;
	text-decoration: none !important;
	color: inherit !important;
	background: var(--nh-black-2);
}
.nh-guide__item:nth-child(even) { grid-template-columns: 1fr 1.15fr; }
.nh-guide__item:nth-child(even) .nh-guide__media { order: 2; }
.nh-guide__media { overflow: hidden; height: 100%; }
.nh-guide__media img {
	width: 100%;
	height: 100%;
	min-height: 280px;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform .6s ease;
}
.nh-guide__item:hover .nh-guide__media img { transform: scale(1.04); }
.nh-guide__body { padding: clamp(28px, 4vw, 56px); }
.nh-guide__en {
	font-family: var(--nh-font-en);
	font-size: 11px;
	letter-spacing: .4em;
	color: #e0434b;
	margin: 0 0 .8em !important;
}
.nh-guide__title {
	font-family: var(--nh-font-mincho);
	font-size: clamp(20px, 2.4vw, 26px);
	letter-spacing: .14em;
	margin: 0 0 .8em !important;
}
.nh-guide__text { font-size: 14px; line-height: 2; opacity: .9; margin: 0 !important; }
.nh-guide__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 1.2em 0 0 !important; padding: 0 !important; }
.nh-guide__tags li {
	list-style: none;
	font-size: 12px;
	padding: .2em .9em;
	border: 1px solid var(--nh-line-dark);
	letter-spacing: .08em;
}
.nh-guide__tags li::before { content: none !important; }
.nh-guide__go {
	display: inline-block;
	margin-top: 1.6em;
	font-family: var(--nh-font-en);
	font-size: 12px;
	letter-spacing: .3em;
	border-bottom: 1px solid var(--nh-red);
	padding-bottom: .2em;
}

/* ==========================================================================
   画像を背景にした横長バナー（コース・採用）
   ========================================================================== */
.nh-banner {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 380px;
	padding: 64px 24px;
	overflow: hidden;
	color: var(--nh-white) !important;
	text-align: center;
	text-decoration: none !important;
	background: var(--nh-black);
}
.nh-banner img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .45;
	transition: transform .6s ease, opacity .3s;
}
.nh-banner:hover img { transform: scale(1.03); opacity: .38; }
.nh-banner__body { position: relative; z-index: 1; }
.nh-banner__en { font-family: var(--nh-font-en); font-size: 12px; letter-spacing: .45em; color: #ff6b72; margin: 0 0 1em !important; }
.nh-banner__title { font-family: var(--nh-font-mincho); font-size: clamp(22px, 3.4vw, 34px); letter-spacing: .16em; margin: 0 0 .8em !important; line-height: 1.6; }
.nh-banner__text { margin: 0 0 1.6em !important; line-height: 2; }
.nh-banner__btn {
	display: inline-block;
	padding: .8em 2.4em;
	border: 1px solid var(--nh-white);
	letter-spacing: .2em;
	font-family: var(--nh-font-mincho);
}
.nh-banner:hover .nh-banner__btn { background: var(--nh-red); border-color: var(--nh-red); }

/* ==========================================================================
   メニューのカード
   ========================================================================== */
.nh-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin: 0 0 2em !important;
}
.nh-card {
	display: flex;
	flex-direction: column;
	background: var(--nh-white);
	color: #1a1a1a;
	border: 1px solid var(--nh-line-light);
}
.nh-card__media { overflow: hidden; }
.nh-card__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.nh-card__body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.nh-card.-noimg { border-top: 3px solid var(--nh-red); }
.nh-card__badges { display: flex; flex-wrap: wrap; gap: 6px; min-height: 0; }
.nh-badge {
	display: inline-block;
	padding: .15em .7em;
	background: var(--nh-red);
	color: var(--nh-white);
	font-size: 11px;
	letter-spacing: .1em;
	margin-bottom: 10px;
}
.post_content .nh-card__name,
.nh-card__name {
	margin: 0 0 .6em !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	color: #1a1a1a !important;
	font-size: 19px;
	letter-spacing: .1em;
	line-height: 1.5;
}
.nh-card__name::before,
.nh-card__name::after { content: none !important; }
.nh-card__desc,
.nh-card__contents,
.nh-card__label { font-size: 13px !important; line-height: 1.8 !important; color: #444; margin: 0 0 .6em !important; }
.nh-card__label { color: var(--nh-gray); }
.nh-card__price {
	margin: auto 0 0 !important;
	padding-top: .6em;
	text-align: right;
	font-family: var(--nh-font-mincho);
	font-size: 22px;
	letter-spacing: .04em;
}
.nh-card__price small { font-size: 11px; color: var(--nh-gray); margin-left: .3em; }
.nh-yen { font-size: .6em; margin-left: .1em; }
.nh-price__tax { display: block; font-family: var(--nh-font-gothic); font-size: 11px; color: var(--nh-gray); line-height: 1.4; text-align: right; }
/* 量違いは、価格の行を品名と同じ高さにそろえ、税込を下に置く */
.nh-variant { display: inline-flex; flex-direction: column; align-items: flex-end; margin-left: 1em; }
.nh-variant__label { font-size: 12px; color: var(--nh-gray); margin-right: .4em; font-family: var(--nh-font-gothic); }

/* ==========================================================================
   お品書きページ
   ========================================================================== */
.nh-menuNav {
	position: sticky;
	top: var(--swl-fix_header_h, 0px);
	z-index: 5;
	margin: 0 0 3em;
	background: var(--nh-black);
}
.nh-menuNav ul {
	display: flex;
	margin: 0 !important;
	padding: 0 !important;
	overflow-x: auto;
	scrollbar-width: none;
}
.nh-menuNav li { list-style: none; flex: 1 0 auto; padding: 0 !important; }
.nh-menuNav li::before { content: none !important; }
.nh-menuNav a {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 14px 18px;
	color: var(--nh-white) !important;
	text-decoration: none !important;
	font-family: var(--nh-font-mincho);
	font-size: 14px;
	letter-spacing: .12em;
	white-space: nowrap;
	border-right: 1px solid var(--nh-line-dark);
}
.nh-menuNav a span { font-family: var(--nh-font-en); font-size: 9px; letter-spacing: .3em; color: #e0434b; }
.nh-menuNav a:hover { background: var(--nh-red); }
.nh-menuNav a:hover span { color: var(--nh-white); }
.nh-menuSection { padding-top: 2em; scroll-margin-top: 140px; }
.nh-menuSection + .nh-menuSection { margin-top: 3em; border-top: 1px solid var(--nh-line-light); }
.nh-menuCat { margin-bottom: 3em; scroll-margin-top: 140px; }
.post_content .nh-menuCat__title,
.nh-menuCat__title {
	display: flex;
	align-items: baseline;
	gap: 1em;
	margin: 0 0 1.2em !important;
	padding: 0 0 .6em !important;
	background: none !important;
	border: 0 !important;
	border-bottom: 2px solid var(--nh-black) !important;
	color: #1a1a1a !important;
	font-size: 22px;
	letter-spacing: .14em;
}
.nh-menuCat__title::before,
.nh-menuCat__title::after { content: none !important; }
.nh-menuCat__title span {
	order: 2;
	font-family: var(--nh-font-en);
	font-size: 11px;
	letter-spacing: .3em;
	color: var(--nh-red);
	font-weight: 400;
}
.post_content .nh-menuSub,
.nh-menuSub {
	margin: 1.6em 0 .8em !important;
	padding: 0 0 0 .8em !important;
	background: none !important;
	border: 0 !important;
	border-left: 3px solid var(--nh-red) !important;
	font-size: 16px;
	letter-spacing: .12em;
	color: #1a1a1a !important;
}
.nh-menuSub::before,
.nh-menuSub::after { content: none !important; }
.nh-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 48px;
	margin: 0 0 1.4em !important;
	padding: 0 !important;
}
.nh-list li {
	display: flex;
	align-items: baseline;
	gap: 8px;
	list-style: none;
	padding: .8em 0 !important;
	border-bottom: 1px dotted var(--nh-line-light);
}
.nh-list li::before { content: none !important; }
.nh-list__name { font-family: var(--nh-font-mincho); font-size: 16px; letter-spacing: .06em; }
.nh-list__name small { display: inline-block; margin-left: .6em; font-family: var(--nh-font-gothic); font-size: 11px; color: var(--nh-gray); }
.nh-list__dots { flex: 1; }
.nh-list__price { font-family: var(--nh-font-mincho); font-size: 17px; white-space: nowrap; text-align: right; }
.nh-menuNote { font-size: 13px !important; color: #555; line-height: 1.9 !important; }

/* ==========================================================================
   コース
   ========================================================================== */
.nh-course {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}
.nh-course__item {
	background: var(--nh-white);
	color: #1a1a1a;
	padding: 36px 32px;
	border-top: 3px solid var(--nh-red);
}
.post_content .nh-course__name,
.nh-course__name {
	margin: 0 0 .4em !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	color: #1a1a1a !important;
	font-size: 22px;
	letter-spacing: .12em;
}
.nh-course__name::before,
.nh-course__name::after { content: none !important; }
.nh-course__price { font-family: var(--nh-font-mincho); font-size: 30px; margin: 0 0 .4em !important; }
.nh-course__price small { font-size: 12px; color: var(--nh-gray); }
.nh-course__meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 1em !important; padding: 0 !important; }
.nh-course__meta li { list-style: none; font-size: 12px; padding: .2em .8em; background: var(--nh-paper); }
.nh-course__meta li::before { content: none !important; }

/* ==========================================================================
   店舗情報の表・地図
   ========================================================================== */
.nh-shopTable {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}
.post_content .nh-shopTable th,
.post_content .nh-shopTable td,
.nh-shopTable th,
.nh-shopTable td {
	padding: 1.1em 1em;
	border: 0;
	border-bottom: 1px solid var(--nh-line-light);
	background: none;
	text-align: left;
	vertical-align: top;
	line-height: 1.8;
}
.nh-shopTable th {
	width: 9em;
	font-family: var(--nh-font-mincho);
	font-weight: 600;
	color: var(--nh-red);
	letter-spacing: .1em;
	white-space: nowrap;
}
.nh-shopTable small { color: var(--nh-gray); font-size: 12px; }
.nh-map { position: relative; aspect-ratio: 4 / 3; background: var(--nh-black-3); }
.nh-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.4) contrast(1.05); }

/* ページ下部の店舗案内（フッター直前） */
.nh-storeGuide { background: var(--nh-black-2); color: var(--nh-white); padding: clamp(56px, 8vw, 96px) 20px; }
.nh-storeGuide__inner {
	max-width: var(--nh-wide);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}
.nh-storeGuide .nh-heading__en { color: #e0434b; margin: 0 0 .8em; display: block; }
.nh-storeGuide__title { font-family: var(--nh-font-mincho); font-size: clamp(22px, 2.6vw, 28px); letter-spacing: .16em; margin: 0 0 1.2em; color: var(--nh-white); }
.nh-storeGuide__dl { display: grid; grid-template-columns: 6em 1fr; gap: .7em 1em; margin: 0; font-size: 14px; line-height: 1.8; }
.nh-storeGuide__dl dt { color: #e0434b; font-family: var(--nh-font-mincho); letter-spacing: .1em; }
.nh-storeGuide__dl dd { margin: 0; }
.nh-storeGuide a { color: var(--nh-white); }
.nh-storeGuide .nh-cta { justify-content: flex-start; }
.nh-storeGuide__more { margin-top: 1.4em; font-size: 13px; }
.w-beforeFooter { margin: 0 !important; padding: 0 !important; }
.w-beforeFooter .c-widget { margin: 0 !important; }

/* ==========================================================================
   お知らせ
   ========================================================================== */
.nh-news { margin: 0 !important; padding: 0 !important; }
.nh-news li { list-style: none; padding: 0 !important; border-bottom: 1px solid var(--nh-line-light); }
.nh-news li::before { content: none !important; }
.nh-news a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4em 1.4em;
	padding: 1.2em .4em;
	color: inherit !important;
	text-decoration: none !important;
}
.nh-news a:hover .nh-news__title { color: var(--nh-red); }
.nh-sec.-dark .nh-news a:hover .nh-news__title,
.nh-topics .nh-news a:hover .nh-news__title { color: #ff6b72; }
.nh-news time { font-family: var(--nh-font-en); letter-spacing: .1em; font-size: 14px; }
.nh-news__cat { font-size: 11px; padding: .1em .8em; border: 1px solid currentColor; opacity: .8; }
.nh-news__title { flex: 1 1 280px; }

/* ==========================================================================
   よくある質問（WordPress 標準の詳細ブロック）
   ========================================================================== */
.post_content .wp-block-details {
	border-bottom: 1px solid var(--nh-line-light);
	padding: 0;
	margin: 0 !important;
}
.post_content .wp-block-details summary {
	position: relative;
	padding: 1.2em 2.4em 1.2em 2.6em;
	font-family: var(--nh-font-mincho);
	font-size: 16px;
	letter-spacing: .06em;
	cursor: pointer;
	list-style: none;
}
.post_content .wp-block-details summary::-webkit-details-marker { display: none; }
.post_content .wp-block-details summary::before {
	content: "Q";
	position: absolute;
	left: .4em;
	top: 1em;
	font-family: var(--nh-font-en);
	font-size: 20px;
	color: var(--nh-red);
}
.post_content .wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: .6em;
	top: 1.1em;
	font-size: 18px;
}
.post_content .wp-block-details[open] summary::after { content: "−"; }
.post_content .wp-block-details > :not(summary) { padding: 0 1em 1.4em 2.6em; margin: 0 !important; }

/* ==========================================================================
   フッター
   ========================================================================== */
.l-footer,
.l-footer__inner,
.l-footer__widgetArea,
.l-footer__foot {
	background: var(--nh-black) !important;
	color: rgba(255, 255, 255, .8) !important;
}
.l-footer a { color: rgba(255, 255, 255, .8) !important; }
.l-footer a:hover { color: var(--nh-white) !important; }
.l-footer__foot { border-top: 1px solid var(--nh-line-dark); }
.l-footer .c-widget__title { color: var(--nh-white); font-family: var(--nh-font-mincho); letter-spacing: .14em; border: 0; }
.l-footer .c-widget__title::before,
.l-footer .c-widget__title::after { background: var(--nh-red) !important; }
.nh-footShop { font-size: 14px; line-height: 2; }
.nh-footShop strong { font-family: var(--nh-font-mincho); font-size: 18px; letter-spacing: .16em; color: var(--nh-white); display: block; margin-bottom: .4em; }

/* スマホ下部の固定メニュー（SWELL の「固定フッター（SP）」） */
.l-fixBottomMenu,
#fix_bottom_menu {
	background: var(--nh-black) !important;
	color: var(--nh-white) !important;
	border-top: 1px solid var(--nh-line-dark);
}
#fix_bottom_menu::before { background: var(--nh-black) !important; opacity: 1 !important; }
#fix_bottom_menu .menu_list a,
#fix_bottom_menu .menu-item a { color: var(--nh-white) !important; }
#fix_bottom_menu .menu-item.nh-fbm-reserve { background: var(--nh-red); }
/* 各ボタンをバーの高さいっぱいに広げ、アイコンと文字を上下中央に置く */
#fix_bottom_menu .menu_list {
	height: 58px;
	padding: 0;
	align-items: stretch;
}
#fix_bottom_menu .menu-item,
#fix_bottom_menu .menu-item > a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
#fix_bottom_menu .menu-item > a { width: 100%; height: 100%; }
#fix_bottom_menu .menu-item i { font-size: 18px; height: 18px; line-height: 18px; }
#fix_bottom_menu span {
	margin-top: 6px;
	font-family: var(--nh-font-mincho);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .06em;
}
/* SWELL のアイコンフォントの icon-room は地図の印に見えないため、地図ピンの絵に差し替える */
#fix_bottom_menu .icon-room::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   お知らせ記事・その他
   ========================================================================== */
.single .c-postTitle__ttl { font-family: var(--nh-font-mincho); letter-spacing: .08em; }
.post_content a { color: var(--nh-red); }
.nh-sec.-dark a.nh-btn,
.post_content a.nh-btn { color: inherit; }
.wpcf7 input[type="submit"] {
	background: var(--nh-red);
	color: var(--nh-white);
	border: 0;
	padding: 1em 3em;
	letter-spacing: .2em;
	font-family: var(--nh-font-mincho);
	cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: var(--nh-red-dark); }

/* ==========================================================================
   スマホ
   ========================================================================== */
@media (max-width: 959px) {
	.nh-cards { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.nh-storeGuide__inner { grid-template-columns: 1fr; }
}
@media (max-width: 599px) {
	.nh-hero { min-height: 82vh; padding: 96px 16px 72px; }
	.nh-sec { padding-left: 16px; padding-right: 16px; }
	.nh-split,
	.nh-guide__item,
	.nh-guide__item:nth-child(even),
	.nh-course { grid-template-columns: 1fr; }
	.nh-split.-reverse .nh-split__media,
	.nh-guide__item:nth-child(even) .nh-guide__media { order: 0; }
	.nh-guide__media img { min-height: 0; }
	.nh-cards { grid-template-columns: 1fr; }
	.nh-list { grid-template-columns: 1fr; }
	.nh-btn,
	.post_content a.nh-btn { min-width: 0; width: 100%; }
	.nh-shopTable th { width: 6.5em; white-space: normal; }
	.nh-shopTable th,
	.nh-shopTable td { padding: .9em .5em; font-size: 14px; }
	.nh-storeGuide__dl { grid-template-columns: 5em 1fr; }
	.nh-menuNav a { padding: 12px 14px; }
}

/* 動きを減らす設定の人には拡大アニメーションを出さない */
@media (prefers-reduced-motion: reduce) {
	.nh-guide__media img,
	.nh-banner img { transition: none; }
}

/* フッターのリンク一覧 */
.nh-footLinks { margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .6em 1em; font-size: 14px; }
.nh-footLinks li { list-style: none; }
.nh-footLinks a { text-decoration: none; }
.nh-footLinks a::before { content: "—"; color: var(--nh-red); margin-right: .5em; }

/* SWELL の本文ブロック間の余白を、全幅セクションでは打ち消す */
.post_content > .nh-hero,
.post_content > .nh-banner,
.post_content > .nh-sec { margin-top: 0 !important; margin-bottom: 0 !important; }

/* 自前の見出しには SWELL の h3 装飾を付けない */
.post_content .nh-guide__title,
.post_content .nh-split h3,
.post_content .nh-course__name {
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: inherit !important;
}
.post_content .nh-guide__title::before,
.post_content .nh-guide__title::after { content: none !important; display: none !important; }
.post_content .nh-course__name { color: #1a1a1a !important; }

/* 背景画像は全幅のまま（.nh-sec の子要素の幅制限を受けない） */
.nh-banner > img { max-width: none !important; margin: 0 !important; }
.nh-banner > .nh-banner__body { max-width: 760px; }

/* フッター直前の店舗案内は画面幅いっぱいに出す */
.w-beforeFooter { overflow: hidden; }
.w-beforeFooter .nh-storeGuide {
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

/* 下層タイトル：和文の下に英字の副題を置く（SWELL は h1 内に small で出力する） */
.l-topTitleArea .c-pageTitle { display: block; text-align: center; }
.l-topTitleArea .c-pageTitle::after { content: none; }
.l-topTitleArea .c-pageTitle__subTitle {
	display: block;
	order: 0;
	margin: 1em 0 0;
	padding-top: 1em;
	border-top: 2px solid var(--nh-red);
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
}

/* 固定ページは最後の全幅セクションをフッター直前の店舗案内に直接つなげる */
.home #content,
.page #content { margin-bottom: 0; }

/* ==========================================================================
   スマホの詰め（599px 以下）
   縦に長くなりすぎないよう、余白を詰め、同じ写真の繰り返しを出さない。
   ========================================================================== */
@media (max-width: 599px) {
	/* 余白と見出し */
	.nh-sec { padding-top: 44px; padding-bottom: 44px; }
	.post_content .nh-heading,
	.nh-heading { margin-bottom: 1.4em !important; font-size: 22px; gap: .3em; }
	.nh-heading.-center .nh-heading__ja::after { content: none; }
	.nh-more { margin-top: 1.6em !important; }
	.nh-btn,
	.post_content a.nh-btn { min-height: 52px; padding: .7em 1.2em; }
	.l-topTitleArea { min-height: 150px; }

	/* ファーストビュー：店名・営業の要点・予約が1画面に収まる高さ */
	.nh-hero { min-height: 0; padding: 64px 16px 40px; }
	.nh-hero__lead { margin-bottom: 1em !important; }
	.nh-hero__name { margin-top: .8em; }
	.nh-hero__name::before { height: 20px; margin-bottom: .8em; }
	.nh-hero__facts { margin-top: 1.2em !important; gap: 4px 16px; font-size: 13px; }
	.nh-hero .nh-cta { gap: 10px; margin-top: 1.4em; }
	.nh-topics { padding-bottom: 8px !important; }

	/* こだわり：写真はすぐ下のおすすめの品と重なるので出さない */
	.home .nh-split__media { display: none; }
	.nh-split { gap: 16px; }
	.nh-split + .nh-split { margin-top: 28px !important; }
	.nh-split__num { display: inline-block; font-size: 28px; margin: 0 .4em 0 0 !important; vertical-align: middle; }
	.nh-split h3 { display: inline; font-size: 18px; vertical-align: middle; }
	.nh-split__body > p:not(.nh-split__num) { margin-top: .8em; line-height: 1.9; }

	/* トップのおすすめ：横にめくる1列にして縦の長さを1枚分にする */
	.home .nh-cards {
		display: flex;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 16px;
		margin: 0 -16px 0 !important;
		padding: 0 16px 8px;
		max-width: none !important;
		scrollbar-width: none;
	}
	.home .nh-cards::-webkit-scrollbar { display: none; }
	.home .nh-cards > .nh-card { flex: 0 0 78%; scroll-snap-align: start; }
	.home .nh-cards .nh-card__media img { aspect-ratio: 3 / 2; }

	/* カード全般：中の余白と文字を詰める */
	.nh-card__body { padding: 12px 14px 14px; }
	.nh-badge { margin-bottom: 6px; }
	.post_content .nh-card__name,
	.nh-card__name { font-size: 17px; margin-bottom: .3em !important; }
	.nh-card__desc,
	.nh-card__contents,
	.nh-card__label { font-size: 12px !important; line-height: 1.7 !important; margin-bottom: .3em !important; }
	.nh-card__price { font-size: 19px; padding-top: .2em; }

	/* お品書きのカード：写真を左の小さな四角にして横並びにする */
	.nh-menu .nh-cards { gap: 10px; margin-bottom: 1.2em !important; }
	.nh-menu .nh-card:not(.-noimg) { flex-direction: row; }
	.nh-menu .nh-card__media { flex: 0 0 112px; }
	.nh-menu .nh-card__media img { height: 100%; aspect-ratio: 1 / 1; }

	/* 写真の無いカード：品名と価格を同じ行に並べ、説明はその下に置く */
	.nh-card.-noimg .nh-card__body { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 12px; }
	.nh-card.-noimg .nh-card__badges { flex-basis: 100%; }
	.nh-card.-noimg .nh-card__name { flex: 1 1 0; min-width: 0; }
	.nh-card.-noimg .nh-card__price { order: 2; margin: 0 !important; padding-top: 0; }
	.nh-card.-noimg .nh-card__desc,
	.nh-card.-noimg .nh-card__contents,
	.nh-card.-noimg .nh-card__label { order: 3; flex-basis: 100%; }

	/* お品書きの一覧：1行の高さを詰める */
	.nh-menuNav { margin-bottom: 1.6em; }
	.nh-menuSection { padding-top: 1em; scroll-margin-top: 110px; }
	.nh-menuSection + .nh-menuSection { margin-top: 1.6em; }
	.nh-menuCat { margin-bottom: 1.8em; scroll-margin-top: 110px; }
	.post_content .nh-menuCat__title,
	.nh-menuCat__title { font-size: 19px; margin-bottom: .6em !important; }
	.post_content .nh-menuSub,
	.nh-menuSub { margin: 1.2em 0 .4em !important; font-size: 15px; }
	.nh-list { margin-bottom: .8em !important; }
	.nh-list li { padding: .5em 0 !important; }
	.nh-list__name { font-size: 15px; }
	.nh-list__price { font-size: 16px; }

	/* 利用シーンの案内：写真を左の小さな四角にし、タグと VIEW MORE は省く */
	.nh-guide { gap: 10px; }
	.nh-guide__item,
	.nh-guide__item:nth-child(even) { grid-template-columns: 104px 1fr; align-items: stretch; }
	.nh-guide__media { position: relative; min-height: 104px; }
	.nh-guide__media img { position: absolute; inset: 0; aspect-ratio: auto; min-height: 0; }
	.nh-guide__body { padding: 12px 14px; }
	.nh-guide__en { font-size: 10px; margin-bottom: .3em !important; }
	.post_content .nh-guide__title,
	.nh-guide__title { font-size: 17px; margin-bottom: .3em !important; }
	.nh-guide__text { font-size: 12px; line-height: 1.7; }
	.nh-guide__tags,
	.nh-guide__go { display: none; }

	/* コースと店舗情報の表 */
	.nh-course { gap: 16px; }
	.nh-course__item { padding: 22px 18px; }
	.nh-course__price { font-size: 26px; }
	.nh-shopTable th { width: 5.5em; }
	.nh-shopTable th,
	.nh-shopTable td { padding: .7em .4em; }

	/* 写真を背景にした帯 */
	.nh-banner { min-height: 0; padding: 48px 20px; }
	.nh-banner__en { margin-bottom: .6em !important; }
	.nh-banner__text { margin-bottom: 1.2em !important; line-height: 1.8; }

	/* フッター直前の店舗案内：地図はアクセスページに任せる */
	.nh-storeGuide { padding: 44px 16px; }
	.nh-storeGuide__map { display: none; }
	.nh-storeGuide__title { margin-bottom: .8em; }

	/* 店舗案内のある画面では、フッターの店名・営業時間の繰り返しを出さない */
	body:has(.nh-storeGuide) .l-footer .w-footer__box:has(.nh-footShop) { display: none; }
	body:has(.nh-storeGuide) .l-footer .w-footer__box { margin-top: 0; }
}

/* スマホだけ・PC だけで出し分ける */
.nh-sp { display: none !important; }
@media (max-width: 599px) {
	.nh-pc { display: none !important; }
	.nh-sp { display: block !important; }
}
