/*
 * 式場ページ専用CSS(page-templates/template-hall.php)
 * 見出し / 電話 / 写真ギャラリー / ご葬儀プランと費用(カードを押すと開く中も) / 安心してご依頼いただくために / 基本情報・アクセス・設備(船橋の形と、着地ページの 5 式場の形) / 特徴(船橋の形) / CTA の余白 / 末尾 h1。
 * ファイルの終わりに、着地ページの 5 式場だけが出す区画(直筆の声の題・式場の特徴・ご危篤からご葬儀までの流れと電話・よくあるご質問・ほかの式場)。
 * 式場カード・声カルーセル・お知らせカードはトップ用 home.css を共用する。
 */

.ns-hallpage {
	overflow-x: clip;
}

/* ------------------------------------------------------------------
 * 見出し + バナー + ギャラリー
 * ------------------------------------------------------------------ */

.ns-hall__first {
	padding-bottom: 50px;
}

.ns-hall__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 15px;
}

.ns-hall__head--sub {
	display: block;
	padding-top: 40px;
}

.ns-hall__lead {
	display: flex;
	align-items: flex-end;
	gap: 0 30px;
	margin-right: auto;
}

.ns-hall__ttl {
	position: relative;
	padding-left: 20px;
	color: #333333;
	font-family: var(--fh-sans);
	font-size: 28px;
	font-weight: 600;
	line-height: 1.7;
	text-align: left;
}

.ns-hall__bar {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 5px;
	background: var(--fh-navy);
}

.ns-hall__open {
	color: var(--fh-red);
	font-size: 43px;
	font-weight: 700;
	line-height: 1.7;
}

.ns-hall__bnr {
	flex: 0 0 auto;
	display: block;
	line-height: 0;
}

.ns-hall__bnr img {
	height: 66px;
	width: auto;
}

/* ------------------------------------------------------------------
 * ページの上部(広告の着地ページの 5 式場 = body.ns-lphall): ヘッダーのすぐ下に「受付中」の帯・紺の帯の上に札(1日1家族)と見出し(h1)・
 * 帯に重なる白い価格のカード・実績・朱の電話のボタン(上に「受付中」の帯)・資料請求・写真。HTML は inc/site-halls.php の fh_the_hall_fv()。
 * 「受付中」の表示(.ns-telnow)の基本の形は site.css。置き場所ごとの大きさは、このファイルの下のほう(電話の発信ボタンの区画)。
 * この 5 式場では、ヘッダーの関連サイトと資料請求の画像・スマホの 4 つのボタン・PC 右端の固定バナーを出していない。
 * ------------------------------------------------------------------ */

/* 上部(見出し・価格・実績・電話・写真) */
.ns-hallfv {
	position: relative;
	padding: 0 0 28px;
	letter-spacing: 0.02em;
}

.ns-hallfv__band {
	display: none;
}

.ns-hallfv__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	row-gap: 22px;
}

.ns-hallfv__body {
	min-width: 0;
}

.ns-hallfv__head {
	margin: 0 -15px;
	padding: 16px 15px 54px;
	background: var(--fh-navy);
	color: #ffffff;
}

/* 見出しの上の札(1日1家族限定の貸切式場) */
.ns-hallfv__one {
	display: inline-block;
	margin-bottom: 9px;
	padding: 4px 10px;
	background: #ffffff;
	border-radius: 3px;
	color: var(--fh-navy);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.5;
}

.ns-hallfv__ttl {
	display: grid;
	row-gap: 4px;
	color: #ffffff;
	font-family: var(--fh-sans);
	font-weight: 700;
	line-height: 1.3;
	text-align: left;
}

.ns-hallfv__name {
	order: -1;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.06em;
	opacity: 0.86;
}

.ns-hallfv__area {
	font-size: 26px;
	letter-spacing: 0;
}

.ns-hallfv__lead {
	margin-top: 9px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hallfv__nw {
	display: inline-block;
}

/* 価格のカード(紺の帯に重ねる) */
.ns-hallfv__price {
	position: relative;
	margin-top: -42px;
	padding: 12px 16px 10px;
	background: #ffffff;
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(28, 32, 96, 0.16);
}

.ns-hallfv__card-ttl {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 2px 10px;
	color: var(--fh-navy);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}

.ns-hallfv__card-sub {
	color: #444444;
	font-size: 12px;
	font-weight: 500;
}

.ns-hallfv .ns-hallfv__plans {
	margin-top: 8px;
}

.ns-hallfv__plan {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 5px 0;
	border-top: 1px solid #e4e4ea;
}

.ns-hallfv__plan dt {
	color: #222222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}

.ns-hallfv__plan-sub {
	display: block;
	margin-top: 1px;
	color: #666666;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.3;
}

.ns-hallfv__plan dd {
	color: #222222;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.ns-hallfv__num {
	margin-right: 1px;
	color: var(--fh-navy);
	font-family: var(--fh-num);
	font-size: 38px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0;
	line-height: 1;
}

.ns-hallfv__taxin {
	margin-left: 4px;
	font-size: 14px;
}

.ns-hallfv__general {
	padding-top: 8px;
	border-top: 1px solid #e4e4ea;
	color: #555555;
	font-size: 12px;
	line-height: 1.6;
}

.ns-hallfv__only {
	margin-top: 8px;
	padding: 8px 10px;
	background: #f3f4fa;
	color: #222222;
	font-size: 13px;
	line-height: 1.65;
}

.ns-hallfv__only strong {
	color: var(--fh-navy);
	font-weight: 700;
}

/* 実績(大きい数字と小さい見出し) */
.ns-hallfv .ns-hallfv__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 14px;
}

.ns-hallfv__stat {
	display: grid;
	justify-items: center;
	row-gap: 3px;
	padding: 2px 4px;
	text-align: center;
}

.ns-hallfv__stat + .ns-hallfv__stat {
	border-left: 1px solid #dcdce4;
}

.ns-hallfv__stat-num {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 30px;
	color: var(--fh-navy);
	font-family: var(--fh-num);
	font-size: 27px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.1;
	white-space: nowrap;
}

.ns-hallfv__stat-num--ja {
	font-family: var(--fh-sans);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
}

.ns-hallfv__stat-unit {
	margin: 0 0 2px 1px;
	font-family: var(--fh-sans);
	font-size: 12px;
	font-weight: 700;
}

.ns-hallfv__stat-lbl {
	color: #444444;
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.4;
	white-space: nowrap;
}

/* 電話 */
.ns-hallfv__call {
	margin-top: 14px;
}

.ns-hallfv__call-ttl {
	color: #222222;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

/* 電話のボタン: 上に「受付中」の帯(緑)・下に本体(朱)。帯を押しても発信する */
.ns-hallfv__tel {
	display: block;
	overflow: hidden;
	margin-top: 7px;
	border-radius: 6px;
	box-shadow: 0 6px 16px rgba(204, 79, 65, 0.32);
	color: #ffffff;
	line-height: 1;
	text-decoration: none;
}

.ns-hallfv__tel .ns-telnow {
	height: 40px;
	border-bottom: 2px solid #ffffff;
}

.ns-hallfv__tel-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 72px;
	background: var(--fh-red);
}

.ns-hallfv__tel-lead {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.ns-hallfv__tel-num {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-top: 6px;
	font-family: var(--fh-num);
	font-size: 36px;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.ns-hallfv__tel .ns-ico-tel {
	width: 24px;
	height: 24px;
}

.ns-hallfv__call-txt {
	margin-top: 12px;
	color: #333333;
	font-size: 14px;
	line-height: 1.7;
}

.ns-hallfv__inq {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #e4e4ea;
	color: #333333;
	font-size: 14px;
	line-height: 1.7;
}

.ns-hallfv__inq a {
	color: var(--fh-navy);
	font-weight: 700;
	text-underline-offset: 3px;
}

/* 写真(1 枚目だけ先に読む。2 枚目より後は hall.js が後から読む) */
.ns-fvgal .ns-fvgal__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	border-radius: 6px;
}

.ns-fvgal .ns-fvgal__track::-webkit-scrollbar {
	display: none;
}

.ns-fvgal__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	line-height: 0;
}

.ns-fvgal__slide img {
	width: 100%;
	height: auto;
	aspect-ratio: 800 / 567;
	object-fit: cover;
	background: #e9e9ef;
}

.ns-fvgal__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 8px;
}

.ns-fvgal__count {
	color: #444444;
	font-size: 13px;
	line-height: 1.5;
}

.ns-fvgal__btns {
	display: flex;
	gap: 8px;
}

.ns-fvgal__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 40px;
	padding: 0;
	background: var(--fh-navy);
	border-radius: 6px;
	color: #ffffff;
}

/* パンくずはページの下へ */
.ns-hall__crumb .ns-crumb {
	margin: 24px 0 0;
}

/* スマホ: 電話を主にした固定バー(電話は朱・資料請求は紺。朱は電話だけに使う)。
   細いヘッダー(ロゴと MENU だけ・高さ 56px)は、全ページ共通になった(site.css) */
@media (max-width: 1024px) {
	.ns-lphall .ns-spbar {
		display: grid;
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
		gap: 6px;
		padding: 6px 8px;
		box-shadow: 0 -4px 14px rgba(28, 32, 96, 0.12);
	}

	.ns-spbar .ns-spbar__call,
	.ns-spbar .ns-spbar__doc {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		height: 52px;
		border-radius: 6px;
		color: #ffffff;
		line-height: 1;
		text-decoration: none;
	}

	.ns-spbar .ns-spbar__call {
		background: var(--fh-red);
	}

	.ns-spbar__call-lead {
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 0.02em;
	}

	.ns-spbar__call-num {
		display: flex;
		align-items: center;
		gap: 6px;
		margin-top: 4px;
		font-family: var(--fh-num);
		font-size: 25px;
		font-weight: 500;
		letter-spacing: 0.02em;
		white-space: nowrap;
	}

	.ns-spbar__call .ns-ico-tel {
		width: 17px;
		height: 17px;
	}

	.ns-spbar .ns-spbar__doc {
		background: var(--fh-navy);
		font-size: 15px;
		font-weight: 700;
		line-height: 1.2;
	}

	.ns-spbar__doc-sub {
		margin-top: 2px;
		font-size: 10px;
		font-weight: 500;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.ns-hallfv__head {
		margin: 0 calc((100vw - 100%) / -2);
		padding-inline: calc((100vw - 100%) / 2);
	}

	.ns-hallfv__photo {
		max-width: 720px;
	}
}

/* PC: 紺の帯の上に、左＝見出しと価格と電話・右＝写真 */
@media (min-width: 1025px) {
	.ns-hallfv {
		padding: 0 0 48px;
	}

	.ns-hallfv__band {
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		display: block;
		height: 339px;
		background: var(--fh-navy);
	}

	.ns-hallfv__inner {
		grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
		column-gap: 56px;
		align-items: start;
		padding-top: 26px;
	}

	.ns-hallfv__head {
		margin: 0;
		padding: 0 0 18px;
		background: none;
	}

	.ns-hallfv__one {
		padding: 5px 13px;
		font-size: 15px;
	}

	.ns-hallfv__name {
		font-size: 16px;
	}

	.ns-hallfv__area {
		font-size: 40px;
		letter-spacing: -0.01em;
	}

	.ns-hallfv__lead {
		margin-top: 10px;
		font-size: 21px;
	}

	.ns-hallfv__price {
		margin-top: 0;
		padding: 14px 26px 11px;
	}

	.ns-hallfv__card-ttl {
		font-size: 17px;
	}

	.ns-hallfv__card-sub {
		font-size: 14px;
	}

	.ns-hallfv__plan {
		padding: 6px 0;
	}

	.ns-hallfv__plan dt {
		font-size: 19px;
	}

	.ns-hallfv__plan-sub {
		font-size: 13px;
	}

	.ns-hallfv__num {
		font-size: 46px;
	}

	.ns-hallfv__plan dd {
		font-size: 18px;
	}

	.ns-hallfv__taxin {
		font-size: 17px;
	}

	.ns-hallfv__general {
		font-size: 13px;
	}

	.ns-hallfv__only {
		font-size: 14px;
	}

	.ns-hallfv .ns-hallfv__stats {
		margin-top: 15px;
	}

	.ns-hallfv__stat-num {
		height: 38px;
		font-size: 34px;
	}

	.ns-hallfv__stat-num--ja {
		font-size: 24px;
	}

	.ns-hallfv__stat-unit {
		font-size: 14px;
	}

	.ns-hallfv__stat-lbl {
		font-size: 13px;
	}

	.ns-hallfv__call {
		margin-top: 15px;
	}

	.ns-hallfv__call-ttl {
		font-size: 18px;
		text-align: left;
	}

	.ns-hallfv__tel .ns-telnow {
		height: 44px;
	}

	.ns-hallfv__tel-body {
		height: 80px;
	}

	.ns-hallfv__tel-lead {
		font-size: 14px;
	}

	.ns-hallfv__tel-num {
		font-size: 42px;
	}

	.ns-hallfv__tel .ns-ico-tel {
		width: 30px;
		height: 30px;
	}

	.ns-hallfv__call-txt,
	.ns-hallfv__inq {
		font-size: 15px;
	}

	.ns-fvgal .ns-fvgal__track {
		box-shadow: 0 10px 30px rgba(28, 32, 96, 0.2);
	}

	.ns-fvgal__bar {
		margin-top: 12px;
	}
}

/* ------------------------------------------------------------------
 * ページ末尾の電話(.ns-hall__call。置き方は下の .ns-hall__call--consult)
 * 右の余白は、PC 右端の固定バナー(幅98px)を出していた時に、文字が下に入らないよう画面幅から出したもの。
 * ------------------------------------------------------------------ */

.ns-hall__call {
	display: grid;
	grid-template-columns: auto auto minmax(0, 1fr);
	column-gap: 44px;
	align-items: center;
	margin-bottom: 15px;
	padding: 14px 30px;
	padding-right: max(30px, calc(108px - (100vw - 100%) / 2));
	background: #fafafa;
	border-radius: 5px;
}

.ns-hall__call-ttl {
	grid-column: 1;
	grid-row: 1;
	align-self: end;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hall__call-sub {
	grid-column: 1;
	grid-row: 2;
	align-self: start;
	font-size: 14px;
	line-height: 1.5;
}

.ns-hall__call-num {
	grid-column: 2;
	grid-row: 1 / 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	color: var(--fh-red);
	font-family: var(--fh-num);
	font-size: 44px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 1px;
	text-decoration: none;
	white-space: nowrap;
}

.ns-hall__call-numin {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ns-hall__call-num .ns-telnow {
	height: 30px;
	padding: 0 14px;
	border-radius: 3px;
	font-size: 14px;
}

.ns-hall__call-num .ns-ico-tel {
	width: 28px;
	height: 28px;
}

.ns-hall__call-list {
	grid-column: 3;
	grid-row: 1 / 3;
	font-size: 15px;
	line-height: 1.6;
}

.ns-hall__call-list li {
	display: flex;
	align-items: flex-start;
	gap: 6px;
}

.ns-hall__call-list .ns-hall__ico {
	width: 16px;
	height: 16px;
	margin-top: 4px;
}

/* 来館して事前相談をされた方への進呈(今は鶴ヶ峰だけ・fh_hall_details() の visit_gift)。見た目は柏の「式場だけの特典」(.ns-hall__benefit)にそろえる */
.ns-hall__gift {
	grid-column: 1 / -1;
	grid-row: 3;
	margin-top: 14px;
	padding: 13px 18px;
	background: #ffffff;
	border: 2px solid #c9a23a;
	border-radius: 6px;
	text-align: left;
}

.ns-hall__gift-ttl {
	color: var(--fh-navy);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hall__gift-tag {
	display: inline-block;
	margin-right: 10px;
	padding: 1px 8px;
	background: #f0d88a;
	border-radius: 3px;
	font-size: 13px;
	vertical-align: 2px;
}

.ns-hall__gift-txt {
	margin-top: 4px;
	color: #333333;
	font-size: 14px;
	line-height: 1.7;
}

.ns-hall__gift-terms {
	margin-left: 1em;
	font-weight: 700;
}

.ns-hall__gift-note {
	color: #666666;
	font-size: 12px;
	line-height: 1.6;
}

/* ------------------------------------------------------------------
 * ご葬儀プランと費用(.ns-hall__price)
 * 着地ページの 5 式場だけが出す。HTML は inc/site-halls.php の fh_the_hall_prices()。すぐ下に「安心してご依頼いただくために」(.ns-safe)が続く。
 * カード(.ns-hall__price-link)は、押すと「プラン料金に含まれるもの」が開くボタン(開いた中の見た目は、この区画のすぐ下の節)。
 * 費用の欄の色の面は、.ns-inner の中に置いたまま画面の幅いっぱいに広げる(box-shadow と clip-path。中身の幅は変わらない)。
 * 色の役割: 朱は電話だけ・緑は「受付中」だけ。プランの色(--pc)は、この区画だけの深緑・藍・紫(fh_hall_common() の price_colors)。
 * 費用の欄は、基準がスマホ。768px 以上・1025px 以上の指定は、この区画の終わりにまとめてある。
 * ------------------------------------------------------------------ */

.ns-hall__price {
	--bg: #f5f0e3;
	margin-top: 28px;
	padding: 28px 0 30px;
	background: var(--bg);
	box-shadow: 0 0 0 100vmax var(--bg);
	clip-path: inset(0 -100vmax);
	letter-spacing: 0.02em;
}

.ns-hall__price-head {
	text-align: center;
}

.ns-hall__price-ttl {
	color: var(--fh-navy);
	font-family: var(--fh-sans);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
}

/* 条件の文は、額の上に置く */
.ns-hall__price-note {
	margin-top: 12px;
	padding: 11px 14px;
	background: var(--fh-navy);
	border-radius: 6px;
	color: #ffffff;
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.7;
	text-align: left;
}

.ns-hall__price-note em {
	color: #ffe27a;
	font-style: normal;
}

/* プランのカード。スマホは、左に色の面・右に額の横長のカードを縦に 3 枚(高さはカードごと = 開いたカードだけが伸びる。閉じた 3 枚は、中身の行の数が同じなのでそろう) */
.ns-hall__price .ns-hall__pricelist {
	display: grid;
	gap: 12px;
	margin-top: 14px;
}

.ns-hall__priceitem {
	background: #ffffff;
	border-radius: 6px;
	box-shadow: 0 6px 18px rgba(70, 54, 20, 0.14);
}

/* カードはボタン(<button>)。ブラウザのボタンの見た目(枠・地・文字の大きさと字間・中央寄せ)を消す */
.ns-hall__price-link {
	display: grid;
	grid-template-columns: 130px minmax(0, 1fr);
	overflow: hidden;
	width: 100%;
	padding: 0;
	background: #ffffff;
	border: 0;
	border-radius: 6px;
	color: #222222;
	font: inherit;
	letter-spacing: inherit;
	text-align: left;
	cursor: pointer;
}

.ns-hall__price-link:focus-visible {
	outline: 3px solid var(--fh-navy);
	outline-offset: 2px;
}

.ns-hall__price-top {
	display: flex;
	flex-direction: column;
	padding: 12px 10px 12px 12px;
	background: var(--pc);
	color: #ffffff;
}

.ns-hall__price-kind {
	display: block;
	color: #ffffff;
	font-family: var(--fh-sans);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.3;
	white-space: nowrap;
}

.ns-hall__price-name {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0;
	opacity: 0.92;
}

/* 流れの印(お通夜・告別式・火葬)。行うもの = 白い札に印 / 行わないもの = 点線の枠に消し線 */
.ns-hall__price-flow {
	display: grid;
	gap: 4px;
	margin-top: auto;
	padding-top: 10px;
}

.ns-hall__price-step {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	height: 23px;
	border-radius: 3px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.ns-hall__price-step.is-on {
	background: #ffffff;
	color: var(--pc);
}

.ns-hall__price-step.is-off {
	border: 1px dashed rgba(255, 255, 255, 0.6);
	color: rgba(255, 255, 255, 0.78);
	text-decoration: line-through;
}

.ns-hall__price-ck {
	flex: 0 0 auto;
}

.ns-hall__price-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 10px 10px 12px 14px;
}

.ns-hall__price-member {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 5px;
}

.ns-hall__price-label {
	flex: 0 0 100%;
	color: #444444;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
}

.ns-hall__price-yen {
	color: var(--pc);
	white-space: nowrap;
}

.ns-hall__price-num {
	font-family: var(--fh-num);
	font-size: clamp(42px, 12.6vw, 50px);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.08;
}

.ns-hall__price-unit {
	margin-left: 2px;
	font-size: clamp(14px, 4.2vw, 17px);
	font-weight: 700;
}

.ns-hall__price-taxin {
	font-size: clamp(12.5px, 3.6vw, 14.5px);
	font-weight: 700;
	white-space: nowrap;
}

.ns-hall__price-general {
	display: flex;
	flex-wrap: wrap;
	column-gap: 6px;
	margin-top: 2px;
	color: #555555;
	font-size: 11.5px;
	line-height: 1.5;
}

.ns-hall__price-gv > span {
	white-space: nowrap;
}

.ns-hall__price-more {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 4px;
	margin-top: 8px;
	padding: 6px 9px 6px 12px;
	border: 1.5px solid var(--pc);
	border-radius: 3px;
	color: var(--pc);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
}

.ns-hall__price-link:active .ns-hall__price-more {
	background: var(--pc);
	color: #ffffff;
}

/* 式場だけの特典(柏) */
.ns-hall__benefit {
	margin-top: 14px;
	padding: 13px 15px;
	background: #ffffff;
	border: 2px solid #c9a23a;
	border-radius: 6px;
}

.ns-hall__benefit-ttl {
	color: var(--fh-navy);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hall__benefit-tag {
	display: inline-block;
	margin-right: 8px;
	padding: 1px 8px;
	background: #f0d88a;
	border-radius: 3px;
	font-size: 13px;
	vertical-align: 1px;
}

.ns-hall__benefit-txt {
	margin-top: 4px;
	color: #333333;
	font-size: 13px;
	line-height: 1.7;
}

/* 電話の箱(電話のボタンは、ページの上部と同じ部品 = .ns-hallfv__tel)と資料請求 */
.ns-hall__pricecall {
	display: grid;
	gap: 10px;
	margin-top: 16px;
	padding: 15px 14px 13px;
	background: #ffffff;
	border-radius: 6px;
	box-shadow: 0 6px 18px rgba(70, 54, 20, 0.14);
	text-align: center;
}

.ns-hall__pricecall-ttl {
	color: var(--fh-navy);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hall__pricecall-txt {
	margin-top: 2px;
	color: #333333;
	font-size: 13px;
	line-height: 1.6;
}

.ns-hall__pricecall-tel {
	margin-top: 0;
}

.ns-hall__pricecall-tel:active {
	filter: brightness(0.93);
}

.ns-hall__pricecall-tel:focus-visible {
	outline: 3px solid var(--fh-navy);
	outline-offset: 3px;
}

.ns-hall__pricecall-inq {
	color: #333333;
	font-size: 13px;
	line-height: 1.7;
}

.ns-hall__pricecall-inq a {
	color: var(--fh-navy);
	font-weight: 700;
	text-underline-offset: 3px;
}

/* 360px 未満: 色の面を細くして、税込の額を必ず次の行へ落とす */
@media (max-width: 359px) {
	.ns-hall__price-link {
		grid-template-columns: 116px minmax(0, 1fr);
	}

	.ns-hall__price-top {
		padding: 12px 8px 12px 10px;
	}

	.ns-hall__price-kind {
		font-size: 16px;
	}

	.ns-hall__price-name {
		font-size: 10.5px;
	}

	.ns-hall__price-taxin {
		flex: 0 0 100%;
	}

	.ns-hall__price-more {
		padding: 6px 8px 6px 10px;
		font-size: 12px;
		letter-spacing: 0;
		white-space: nowrap;
	}
}

/* 375px 未満: 一般価格の額を、3 枚とも次の行へ落とす(家族葬だけが折り返すのを防ぐ) */
@media (max-width: 374px) {
	.ns-hall__price-gv {
		flex: 0 0 100%;
	}
}

@media (min-width: 768px) {
	.ns-hall__price {
		margin-top: 44px;
		padding: 48px 0 52px;
	}

	.ns-hall__price-ttl {
		font-size: 34px;
	}

	.ns-hall__price-note {
		width: fit-content;
		margin: 16px auto 0;
		padding: 12px 28px;
		font-size: clamp(15px, 2.05vw, 18px);
		text-align: center;
		text-wrap: balance;
	}

	/* 768px 以上は、カードを横に 3 枚(上に色の面・下に額) */
	.ns-hall__price .ns-hall__pricelist {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(12px, 2vw, 28px);
		margin-top: 26px;
	}

	.ns-hall__priceitem {
		transition: transform 0.2s ease, box-shadow 0.2s ease;
	}

	.ns-hall__price-link {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 1fr;
	}

	.ns-hall__price-top {
		padding: 18px clamp(14px, 1.8vw, 26px) 18px;
		text-align: center;
	}

	.ns-hall__price-kind {
		font-size: clamp(20px, 2.1vw, 28px);
	}

	.ns-hall__price-name {
		font-size: 13px;
	}

	.ns-hall__price-flow {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 6px;
		margin-top: 0;
		padding-top: 14px;
	}

	.ns-hall__price-step {
		height: 32px;
		font-size: clamp(12px, 1.15vw, 15px);
	}

	.ns-hall__price-body {
		align-items: center;
		justify-content: flex-start;
		padding: 20px clamp(14px, 1.8vw, 26px) 24px;
	}

	.ns-hall__price-member {
		justify-content: center;
		column-gap: 8px;
		text-align: center;
	}

	.ns-hall__price-label {
		font-size: 15px;
	}

	.ns-hall__price-num {
		font-size: clamp(58px, 6.6vw, 92px);
	}

	.ns-hall__price-unit {
		font-size: clamp(18px, 1.9vw, 26px);
	}

	.ns-hall__price-taxin {
		font-size: clamp(15px, 1.5vw, 21px);
	}

	.ns-hall__price-general {
		justify-content: center;
		margin: 6px 0 16px;
		font-size: 14px;
	}

	/* 入口のボタンは、カードの下端にそろえる */
	.ns-hall__price-more {
		align-self: stretch;
		justify-content: center;
		margin-top: auto;
		padding: 12px;
		font-size: 16px;
	}

	.ns-hall__benefit {
		margin-top: 22px;
		padding: 18px 28px;
	}

	.ns-hall__benefit-ttl {
		font-size: 20px;
	}

	.ns-hall__benefit-tag {
		font-size: 15px;
	}

	.ns-hall__benefit-txt {
		font-size: 15px;
	}

	.ns-hall__pricecall {
		margin-top: 26px;
		padding: 22px 32px;
	}

	.ns-hall__pricecall-ttl {
		font-size: 24px;
	}

	.ns-hall__pricecall-txt,
	.ns-hall__pricecall-inq {
		font-size: 15px;
	}

	.ns-hall__pricecall-tel {
		justify-self: center;
		width: min(440px, 100%);
	}
}

/* 768〜899px は、カードの幅が狭い。税込の額と一般価格の額を、必ず次の行へ落とす(3 枚の行の数をそろえる) */
@media (min-width: 768px) and (max-width: 899px) {
	.ns-hall__price-taxin,
	.ns-hall__price-gv {
		flex: 0 0 100%;
		text-align: center;
	}
}

@media (min-width: 1025px) {
	/* 電話の箱: 左に文・右に電話のボタン */
	.ns-hall__pricecall {
		grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
		grid-template-rows: 1fr auto auto 1fr;
		gap: 6px 36px;
		text-align: left;
	}

	.ns-hall__pricecall-lead {
		grid-row: 2;
	}

	.ns-hall__pricecall-tel {
		grid-column: 2;
		grid-row: 1 / 5;
		align-self: center;
		width: auto;
		justify-self: stretch;
	}

	.ns-hall__pricecall-inq {
		grid-row: 3;
	}
}

/* 押せる所の、マウスを乗せた時(マウスのある端末だけ) */
@media (hover: hover) and (min-width: 768px) {
	.ns-hall__priceitem:hover {
		box-shadow: 0 14px 30px rgba(70, 54, 20, 0.22);
		transform: translateY(-4px);
	}

	.ns-hall__priceitem:hover .ns-hall__price-more {
		background: var(--pc);
		color: #ffffff;
	}

	.ns-hall__pricecall-inq a:hover {
		text-decoration: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ns-hall__priceitem {
		transition: none;
	}

	.ns-hall__priceitem:hover {
		transform: none;
	}
}

/* ------------------------------------------------------------------
 * ご葬儀プランと費用のカードを押すと開く中(.ns-hall__inc = プラン料金に含まれるもの)。HTML は inc/site-halls.php の fh_the_hall_prices()。
 * カード(ボタン)を押すと、hall.js がすぐ後ろの .ns-hall__inc の hidden を外し、カードの <li> に .is-open を付ける。
 * スマホは、カードの中に開く。768px 以上(.ns-hall__price--wide)は、<li> の箱を消して(display: contents)、3 枚のカードを 1 段目に・
 * 開いた中を 2 段目に横いっぱいで置く(一度に開くのは 1 つ。ほかのカードを押すと入れ替わる)。display: contents を知らないブラウザでは、カードの中に開く。
 * 開いた中 = 含まれるものの一覧(スマホ 2 列・768px 以上 4 列)→ 追加費用ゼロ保証の火葬プラン(火葬おまかせプランだけ。生成りの面)→
 * 請求書例へのリンク(出すと決めた式場だけ)→「プランのページを見る」と「閉じる」。
 * 色は、そのプランの色(--pc)を、上の帯・印・数字に。箱や行の左端に、色の縦棒は付けない。
 * ------------------------------------------------------------------ */

.ns-hall__price-more .ns-ico-chev {
	transform: rotate(90deg);
	transition: transform 0.2s ease;
}

.ns-hall__priceitem.is-open .ns-hall__price-more .ns-ico-chev {
	transform: rotate(-90deg);
}

.ns-hall__priceitem.is-open .ns-hall__price-more {
	background: var(--pc);
	color: #ffffff;
}

.ns-hall__priceitem.is-open .ns-hall__price-link {
	border-bottom-right-radius: 0;
	border-bottom-left-radius: 0;
}

.ns-hall__inc {
	padding: 12px 14px 14px;
	border-top: 3px solid var(--pc);
}

.ns-hall__inc[hidden] {
	display: none;
}

.ns-hall__inc-ttl {
	display: flex;
	align-items: baseline;
	gap: 8px;
	color: var(--pc);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
}

.ns-hall__inc-n {
	font-family: var(--fh-num);
	font-size: 21px;
	font-weight: 500;
	letter-spacing: 0;
}

.ns-hall__inc-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 14px;
	margin-top: 8px;
}

.ns-hall__inc-list li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 5px;
	padding: 3px 0;
	border-bottom: 1px solid #ece8dc;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hall__inc-ck {
	flex: none;
	color: var(--pc);
}

.ns-hall__inc-list small {
	flex: 0 0 100%;
	padding-left: 17px;
	color: #555555;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.4;
}

/* 追加費用ゼロ保証の火葬プラン(火葬おまかせプランの中だけ) */
.ns-hall__inc-zero {
	margin-top: 12px;
	padding: 12px 14px;
	background: #f5f0e3;
	border-radius: 4px;
}

.ns-hall__inc-zname {
	color: var(--fh-navy);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}

.ns-hall__inc-ztxt {
	margin-top: 3px;
	font-size: 13px;
	line-height: 1.6;
}

.ns-hall__inc-zprice {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 6px;
	margin-top: 4px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hall__inc-zprice b {
	color: var(--pc);
	font-family: var(--fh-num);
	font-size: 25px;
	font-weight: 500;
	letter-spacing: 0;
}

.ns-hall__inc-zgen {
	flex: 0 0 100%;
	color: #555555;
	font-size: 11.5px;
	font-weight: 500;
}

.ns-hall__inc-zmore {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 36px;
	color: var(--fh-navy);
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* 請求書例へのリンク(出すと決めた式場だけ) */
.ns-hall__inc-invoice {
	margin-top: 8px;
}

.ns-hall__inc-invoice a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 40px;
	color: var(--fh-navy);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ns-hall__inc-invoice svg {
	flex: none;
}

/* プランのページへのボタンと、閉じるボタン */
.ns-hall__inc-foot {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
}

.ns-hall__inc-more {
	display: inline-flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 48px;
	padding: 8px 14px;
	background: var(--fh-navy);
	border-radius: 4px;
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.ns-hall__inc-close {
	flex: none;
	min-height: 48px;
	padding: 0 14px;
	background: none;
	border: 1.5px solid #c9c3b2;
	border-radius: 4px;
	color: #555555;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.ns-hall__inc-more:focus-visible,
.ns-hall__inc-close:focus-visible,
.ns-hall__inc-zmore:focus-visible,
.ns-hall__inc-invoice a:focus-visible {
	outline: 3px solid var(--fh-navy);
	outline-offset: 2px;
}

@media (min-width: 768px) {
	.ns-hall__inc {
		padding: 16px 20px 20px;
	}

	.ns-hall__inc-ttl {
		font-size: 16px;
	}

	.ns-hall__inc-list li {
		font-size: 14px;
	}

	.ns-hall__inc-list small {
		font-size: 11.5px;
	}

	/* カードの列の下へ横いっぱいに開く。<li> の箱は消し(display: contents)、箱の見た目(白い面・角・影)はボタンに移す */
	.ns-hall__price--wide .ns-hall__pricelist {
		align-items: start;
	}

	.ns-hall__price--wide .ns-hall__priceitem {
		display: contents;
	}

	.ns-hall__price--wide .ns-hall__price-link {
		grid-row: 1;
		height: 100%;
		border-radius: 6px;
		box-shadow: 0 6px 18px rgba(70, 54, 20, 0.14);
		transition: transform 0.2s ease, box-shadow 0.2s ease;
	}

	.ns-hall__price--wide .ns-hall__priceitem.is-open .ns-hall__price-link {
		border-radius: 6px;
		box-shadow: 0 0 0 3px var(--pc), 0 6px 18px rgba(70, 54, 20, 0.14);
	}

	.ns-hall__price--wide .ns-hall__inc {
		grid-column: 1 / -1;
		grid-row: 2;
		padding: 20px 28px 24px;
		background: #ffffff;
		border-top: 5px solid var(--pc);
		border-radius: 6px;
		box-shadow: 0 6px 18px rgba(70, 54, 20, 0.14);
	}

	.ns-hall__price--wide .ns-hall__inc-ttl {
		font-size: 18px;
	}

	.ns-hall__price--wide .ns-hall__inc-list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0 28px;
		margin-top: 10px;
	}

	.ns-hall__price--wide .ns-hall__inc-zero {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "name price" "txt price" "more price";
		column-gap: 32px;
		align-items: center;
		margin-top: 16px;
		padding: 14px 22px;
	}

	.ns-hall__price--wide .ns-hall__inc-zname {
		grid-area: name;
		font-size: 17px;
	}

	.ns-hall__price--wide .ns-hall__inc-ztxt {
		grid-area: txt;
		font-size: 14px;
	}

	.ns-hall__price--wide .ns-hall__inc-zprice {
		grid-area: price;
		display: grid;
		grid-template-columns: auto auto;
		gap: 0 6px;
		align-items: baseline;
		justify-items: end;
		margin: 0;
	}

	.ns-hall__price--wide .ns-hall__inc-zprice b {
		font-size: 30px;
	}

	.ns-hall__price--wide .ns-hall__inc-zgen {
		grid-column: 1 / -1;
	}

	.ns-hall__price--wide .ns-hall__inc-zmore {
		grid-area: more;
	}

	.ns-hall__price--wide .ns-hall__inc-foot {
		justify-content: center;
		margin-top: 16px;
	}

	.ns-hall__price--wide .ns-hall__inc-more {
		flex: 0 0 380px;
	}
}

@media (hover: hover) and (min-width: 768px) {
	.ns-hall__price--wide .ns-hall__price-link:hover {
		box-shadow: 0 14px 30px rgba(70, 54, 20, 0.22);
		transform: translateY(-4px);
	}

	.ns-hall__price--wide .ns-hall__priceitem.is-open .ns-hall__price-link:hover {
		box-shadow: 0 0 0 3px var(--pc), 0 14px 30px rgba(70, 54, 20, 0.22);
	}

	.ns-hall__inc-more:hover {
		filter: brightness(1.12);
	}

	.ns-hall__inc-zmore:hover,
	.ns-hall__inc-invoice a:hover {
		text-decoration: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ns-hall__price-more .ns-ico-chev,
	.ns-hall__price--wide .ns-hall__price-link {
		transition: none;
	}

	.ns-hall__price--wide .ns-hall__price-link:hover {
		transform: none;
	}
}

/* ------------------------------------------------------------------
 * 安心してご依頼いただくために(.ns-safe)。着地ページの 5 式場だけが出す。HTML は inc/site-halls.php の fh_the_hall_points()。
 * 紺の面(費用の欄の生成りの面のすぐ下に、すき間なしで続く)に、その式場の内観の写真の帯(貸切の題と文を重ねる)→ 主役の約束 →
 * 枠の無い数字(創業・全式場の累計施行数)→ 無料会員(生成りの面を 1 つ)。同じ形の札は並べない。
 * 色は、紺・生成り・白と、淡い金 1 か所(主役の約束の終わりの語)。朱・緑・プランの色は使わない。
 * 基準はスマホ。600px 以上で写真の帯を低く、768px 以上で左に写真・右に約束(費用の欄のカードが横に並ぶ幅と同じ)。
 * ------------------------------------------------------------------ */

/* 紺の面は、.ns-inner の中に置いたまま、画面の幅いっぱいに 1 つの塗りで出す(border-image を左右へ広げる)。
 * 地の色と外側の影の 2 つで塗ると、面の位置が小数になる幅で、上下の端に 1px の薄い線が出る */
.ns-safe {
	--bg: var(--fh-navy);
	padding: 28px 0 30px;
	border-image: linear-gradient(var(--bg), var(--bg)) fill 0 / 0 / 0 100vmax;
	color: #ffffff;
	letter-spacing: 0.02em;
}

.ns-safe__ttl {
	font-family: var(--fh-sans);
	font-size: clamp(19px, 5.6vw, 22px);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-align: center;
}

.ns-safe__stage {
	margin-top: 16px;
}

/* 写真の帯。スマホは画面の幅いっぱい(.ns-inner の左右の余白 15px の分だけ外へ出す)。下に、貸切の題と文を重ねる(文字の下だけ紺を濃くする)。
 * スマホは、写真を下に寄せて切り取る(祭壇が上へ寄り、重ねた文が祭壇に掛かりにくい) */
.ns-safe__photo {
	position: relative;
	overflow: hidden;
	margin: 0 -15px;
	aspect-ratio: 16 / 10;
}

.ns-safe__photo picture {
	display: block;
	height: 100%;
}

.ns-safe__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 100%;
}

.ns-safe__cap {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 48px 18px 14px;
	background: linear-gradient(to top, rgba(24, 26, 80, 0.94) 0%, rgba(24, 26, 80, 0.7) 45%, rgba(24, 26, 80, 0) 100%);
}

.ns-safe__one {
	font-size: clamp(20px, 6.3vw, 26px);
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.35;
}

.ns-safe__one-txt {
	font-size: 13px;
	line-height: 1.6;
}

/* 主役の約束。3 行に組み、1 行ずつ途中で折り返さない。終わりの語だけ淡い金 */
.ns-safe__main {
	padding-top: 22px;
}

.ns-safe__vow {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	font-weight: 700;
	line-height: 1.35;
}

.ns-safe__vow span {
	white-space: nowrap;
}

.ns-safe__vow-a {
	font-size: 15px;
}

.ns-safe__vow-b {
	margin-top: 2px;
	font-size: clamp(24px, 7.4vw, 30px);
	letter-spacing: 0.03em;
}

.ns-safe__vow-c {
	color: #ffe08a;
	font-size: clamp(30px, 9.3vw, 38px);
	letter-spacing: 0.03em;
}

.ns-safe__vow-txt {
	margin-top: 12px;
	font-size: 14px;
	line-height: 1.8;
}

.ns-safe .ns-safe__link {
	display: flex;
	align-items: center;
	gap: 4px;
	width: fit-content;
	margin-top: 8px;
	color: #ffffff;
	font-size: 14px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ns-safe .ns-safe__link:active {
	opacity: 0.7;
}

.ns-safe .ns-safe__link:focus-visible {
	outline: 3px solid #ffe08a;
	outline-offset: 3px;
}

/* 数字(枠で囲まない。線は上下と、2 つの間だけ) */
.ns-safe__foot {
	margin-top: 22px;
}

.ns-safe__nums {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	border-top: 1px solid rgba(255, 255, 255, 0.32);
	border-bottom: 1px solid rgba(255, 255, 255, 0.32);
}

.ns-safe__num {
	padding: 13px 16px 14px 0;
}

.ns-safe__num + .ns-safe__num {
	padding-right: 0;
	padding-left: 16px;
	border-left: 1px solid rgba(255, 255, 255, 0.32);
}

.ns-safe__num dt {
	margin-bottom: 7px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
}

.ns-safe__num dd {
	display: flex;
	align-items: baseline;
	white-space: nowrap;
}

.ns-safe__fig {
	font-family: var(--fh-num);
	font-size: clamp(32px, 10.4vw, 42px);
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1;
}

.ns-safe__fig--ja {
	font-family: var(--fh-sans);
	font-size: clamp(23px, 7.4vw, 30px);
	font-weight: 700;
	letter-spacing: 0.04em;
}

.ns-safe__unit {
	margin-left: 3px;
	font-size: clamp(12px, 3.6vw, 14px);
	font-weight: 700;
}

/* 無料会員(生成りの面を 1 つ) */
.ns-safe__member {
	margin-top: 18px;
	padding: 15px 16px 14px;
	background: #f5f0e3;
	border-radius: 6px;
	color: #222222;
}

.ns-safe__member-ttl {
	color: var(--fh-navy);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-safe__member-txt {
	margin-top: 4px;
	font-size: 13.5px;
	line-height: 1.75;
}

.ns-safe .ns-safe__member .ns-safe__link {
	margin-top: 6px;
	color: var(--fh-navy);
}

.ns-safe .ns-safe__member .ns-safe__link:focus-visible {
	outline-color: var(--fh-navy);
}

@media (min-width: 600px) {
	.ns-safe__photo {
		height: min(50vw, 320px);
		aspect-ratio: auto;
	}

	.ns-safe__photo img {
		object-position: 50% 50%;
	}

	.ns-safe__cap {
		padding: 90px 24px 20px;
	}

	.ns-safe__one-txt {
		font-size: 15px;
	}
}

@media (min-width: 768px) {
	.ns-safe {
		padding: 48px 0 52px;
	}

	.ns-safe__ttl {
		font-size: 30px;
	}

	.ns-safe__stage {
		display: grid;
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		margin-top: 28px;
	}

	.ns-safe__photo {
		height: auto;
		min-height: clamp(300px, 39vw, 380px);
		margin: 0;
		border-radius: 6px;
	}

	.ns-safe__photo picture {
		position: absolute;
		inset: 0;
	}

	.ns-safe__cap {
		padding: 110px 30px 26px;
	}

	.ns-safe__one {
		font-size: clamp(24px, 2.6vw, 34px);
	}

	.ns-safe__main {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding: 8px 0 8px clamp(28px, 4vw, 60px);
	}

	.ns-safe__vow-a {
		font-size: clamp(16px, 1.5vw, 20px);
	}

	.ns-safe__vow-b {
		font-size: clamp(24px, 3.05vw, 42px);
	}

	.ns-safe__vow-c {
		font-size: clamp(29px, 3.9vw, 54px);
	}

	.ns-safe__vow-txt {
		margin-top: 16px;
		font-size: 15.5px;
	}

	.ns-safe .ns-safe__link {
		margin-top: 12px;
		font-size: 15px;
	}

	.ns-safe__foot {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: 0 clamp(28px, 3.4vw, 48px);
		margin-top: 30px;
	}

	.ns-safe__nums {
		grid-template-columns: auto auto;
		border: 0;
	}

	.ns-safe__num {
		padding: 2px clamp(22px, 2.6vw, 36px) 4px 0;
	}

	.ns-safe__num + .ns-safe__num {
		padding-left: clamp(22px, 2.6vw, 36px);
	}

	.ns-safe__num dt {
		font-size: 13px;
	}

	.ns-safe__fig {
		font-size: clamp(42px, 4.2vw, 58px);
	}

	.ns-safe__fig--ja {
		font-size: clamp(28px, 2.9vw, 40px);
	}

	.ns-safe__unit {
		font-size: 16px;
	}

	.ns-safe__member {
		margin-top: 0;
		padding: 18px 26px;
	}

	.ns-safe__member-ttl {
		font-size: 19px;
	}

	.ns-safe__member-txt {
		font-size: 14.5px;
	}
}

@media (hover: hover) {
	.ns-safe .ns-safe__link:hover {
		text-decoration: none;
	}
}

.ns-gallery {
	position: relative;
}

.ns-gallery__main {
	position: relative;
}

.ns-gallery .ns-gallery__track {
	position: relative;
	display: flex;
	gap: 11px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-inline: calc((100% - 808px) / 2);
	scroll-padding-inline: calc((100% - 808px) / 2);
}

.ns-gallery .ns-gallery__track::-webkit-scrollbar {
	display: none;
}

.ns-gallery__slide {
	flex: 0 0 808px;
	scroll-snap-align: center;
	line-height: 0;
	opacity: 0.4;
	transition: opacity 0.3s ease;
}

.ns-gallery__slide.is-active {
	opacity: 1;
}

.ns-gallery__slide img {
	width: 808px;
	height: 539px;
	object-fit: cover;
}

.ns-gallery__arrow {
	position: absolute;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-top: -22px;
	padding: 0;
	background: rgba(150, 150, 255, 0.9);
	border-radius: 50%;
	color: #ffffff;
}

.ns-gallery__prev {
	left: calc((100% - 808px) / 2 - 38px);
}

.ns-gallery__next {
	right: calc((100% - 808px) / 2 - 38px);
}

.ns-gallery .ns-gallery__thumbs {
	display: flex;
	gap: 8px;
	padding: 10px 0 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.ns-gallery .ns-gallery__thumbs::-webkit-scrollbar {
	display: none;
}

.ns-gallery__thumbs li {
	flex: 0 0 auto;
}

.ns-gallery__thumb {
	display: block;
	padding: 0;
	line-height: 0;
	opacity: 0.4;
	transition: opacity 0.3s ease;
}

.ns-gallery__thumb.is-active {
	opacity: 1;
}

.ns-gallery__thumb img {
	width: 155.5px;
	height: 103.66px;
	object-fit: cover;
}

/* ------------------------------------------------------------------
 * 基本情報 / アクセス / 設備
 * ------------------------------------------------------------------ */

.ns-hall__detail {
	padding-bottom: 15px;
}

.ns-hall__info {
	margin-bottom: 20px;
	padding-top: 40px;
	background: #ffffff;
	border-top: 1px solid #eeeeee;
}

.ns-hall__subttl {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 10px;
	color: #333333;
	font-family: var(--fh-sans);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.7;
}

.ns-hall__ico {
	flex: 0 0 auto;
	color: var(--fh-navy);
}

.ns-hall__box {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 20px;
	padding: 30px;
	background: #fafafa;
	border-radius: 5px;
}

.ns-hall__rows {
	flex: 1 1 auto;
	min-width: 0;
}

.ns-hall__row {
	display: flex;
	padding: 15px 0;
	border-bottom: 1px solid #dddddd;
}

.ns-hall__row dt {
	flex: 0 0 30%;
	font-weight: 700;
}

.ns-hall__row dd {
	flex: 1 1 auto;
	min-width: 0;
}

.ns-hall__row dd a {
	color: #333333;
	text-decoration: none;
}

.ns-hall__row dd a.ns-hall__map {
	display: inline-block;
	padding: 0 10px;
	background: var(--fh-navy);
	border-radius: 4px;
	color: #ffffff;
	font-size: 14px;
	line-height: 1.7;
}

.ns-hall__access {
	flex: 0 0 496px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.ns-hall__access li {
	width: 100%;
	padding: 11px 0;
}

.ns-hall__access-ttl {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 10px;
	padding-bottom: 5px;
	border-bottom: 1px solid #cccccc;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.7;
}

.ns-hall__access-txt {
	line-height: 1.7;
}

.ns-hall__fac {
	margin-top: 20px;
}

.ns-hall__faclist {
	display: grid;
	grid-template-columns: repeat(3, 23fr 10fr);
}

.ns-hall__faclist dt {
	padding: 5px 0;
	background: #eef2f7;
	border: 1px solid #eeeeee;
	border-bottom-color: #ffffff;
	font-weight: 500;
	text-align: center;
}

.ns-hall__faclist dt span {
	display: inline-block;
	margin-left: 8px;
	font-size: 13px;
}

.ns-hall__faclist dd {
	display: grid;
	align-items: center;
	border: 1px solid #eeeeee;
	text-align: center;
}

/* ------------------------------------------------------------------
 * 基本情報・アクセス・式場の設備を 1 つにまとめた形(.ns-hallinfo)。着地ページの 5 式場だけが出す。HTML は inc/site-halls.php の fh_the_hall_info()。
 * 式場名・住所・最寄り駅 → 地図 → Googleマップで開く → 行 → 設備の名前(スマホ 2 列・768px 以上 5 列)。900px 以上は、左に地図・右に住所と行。
 * 地図の枠の高さは先に取る(中の地図は hall.js が後から入れる。読み込みで下の中身が動かないように)。
 * 行と設備の項目の上下の余白は 2px(1 画面に入る情報を増やす)。行(.ns-hall__row)のクラスは、上の船橋の形と同じ = ここでは .ns-hallinfo を付けて上書きする。
 * 基準はスマホ。
 * ------------------------------------------------------------------ */

.ns-hall__detail--lp {
	padding-bottom: 0;
}

/* すぐ上は「式場の特徴」(白い地。行の下の線で終わる) = ここに区切りの線は引かない */
.ns-hallinfo {
	padding: 30px 0 28px;
	color: #222222;
	letter-spacing: 0.02em;
}

.ns-hallinfo__ttl {
	color: var(--fh-navy);
	font-family: var(--fh-sans);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
}

.ns-hallinfo__grid {
	margin-top: 12px;
}

.ns-hallinfo__name {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hallinfo__addr {
	margin-top: 2px;
	font-size: 14.5px;
	line-height: 1.7;
}

.ns-hallinfo__addr span {
	display: inline-block;
}

.ns-hallinfo__rail {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin-top: 6px;
	color: var(--fh-navy);
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.6;
}

.ns-hallinfo__rail .ns-hall__ico {
	width: 18px;
	height: 18px;
	margin-top: 3px;
}

.ns-hallinfo__map {
	position: relative;
	overflow: hidden;
	margin-top: 12px;
	aspect-ratio: 16 / 10;
	background: #e9eaee;
	border-radius: 4px;
}

.ns-hallinfo__map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ns-hallinfo__open {
	margin-top: 8px;
	text-align: right;
}

.ns-hallinfo__open .ns-hall__map {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--fh-navy);
	font-size: 14px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ns-hallinfo__rows {
	margin-top: 8px;
	border-top: 1px solid #dddddd;
}

.ns-hallinfo .ns-hall__row {
	display: grid;
	grid-template-columns: 5.2em minmax(0, 1fr);
	gap: 0 10px;
	padding: 2px 0;
	border-bottom: 1px solid #dddddd;
	font-size: 14.5px;
	line-height: 1.7;
}

.ns-hallinfo .ns-hall__row dt {
	color: var(--fh-navy);
	font-weight: 700;
}

.ns-hallinfo .ns-hall__row dd a {
	color: var(--fh-navy);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ns-hallinfo__open .ns-hall__map:active,
.ns-hallinfo .ns-hall__row dd a:active {
	opacity: 0.7;
}

.ns-hallinfo__open .ns-hall__map:focus-visible,
.ns-hallinfo .ns-hall__row dd a:focus-visible {
	outline: 3px solid var(--fh-navy);
	outline-offset: 3px;
}

.ns-hallinfo__fac {
	margin-top: 16px;
}

.ns-hallinfo__subttl {
	color: var(--fh-navy);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hallinfo .ns-hallinfo__faclist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 18px;
	margin-top: 6px;
	border-top: 1px solid #dddddd;
}

.ns-hallinfo__faclist li {
	padding: 2px 0;
	border-bottom: 1px solid #dddddd;
	font-size: 14.5px;
	line-height: 1.6;
}

.ns-hallinfo__faclist li span {
	margin-left: 6px;
	color: #555555;
	font-size: 12px;
}

/* 600px 以上: 地図の枠の高さは 300px(縦横比と高さの上限を組み合わせると、幅のほうが縮む = 高さで決める) */
@media (min-width: 600px) {
	.ns-hallinfo__map {
		height: 300px;
		aspect-ratio: auto;
	}
}

/* 768〜899px は 1 列のまま。行は 1 行に収まるので、設備だけ 5 列にする */
@media (min-width: 768px) {
	.ns-hallinfo {
		padding: 44px 0 40px;
	}

	.ns-hallinfo__ttl {
		font-size: 26px;
	}

	.ns-hallinfo .ns-hallinfo__faclist {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 0 16px;
	}
}

@media (min-width: 900px) {
	.ns-hallinfo {
		padding: 52px 0 48px;
	}

	.ns-hallinfo__ttl {
		font-size: 28px;
	}

	.ns-hallinfo__grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-rows: auto 1fr auto;
		grid-template-areas: "map lead" "map rows" "open rows";
		column-gap: clamp(28px, 3.4vw, 48px);
		margin-top: 18px;
	}

	.ns-hallinfo__lead {
		grid-area: lead;
	}

	.ns-hallinfo__name {
		font-size: 20px;
	}

	.ns-hallinfo__addr,
	.ns-hallinfo__rail {
		font-size: 15.5px;
	}

	.ns-hallinfo__map {
		grid-area: map;
		height: auto;
		min-height: 300px;
		margin-top: 0;
	}

	.ns-hallinfo__open {
		grid-area: open;
		text-align: left;
	}

	.ns-hallinfo__rows {
		grid-area: rows;
		margin-top: 14px;
	}

	.ns-hallinfo .ns-hall__row {
		grid-template-columns: 6em minmax(0, 1fr);
		font-size: 15.5px;
	}

	.ns-hallinfo__fac {
		margin-top: 22px;
	}

	.ns-hallinfo__subttl {
		font-size: 19px;
	}

	.ns-hallinfo .ns-hallinfo__faclist {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 0 28px;
	}

	.ns-hallinfo__faclist li {
		font-size: 15.5px;
	}
}

@media (hover: hover) {
	.ns-hallinfo__open .ns-hall__map:hover,
	.ns-hallinfo .ns-hall__row dd a:hover {
		text-decoration: none;
	}
}

/* ------------------------------------------------------------------
 * 特徴
 * ------------------------------------------------------------------ */

.ns-hall__reasons {
	padding: 60px 0 50px;
	background: url(../../img/common/bg01.png);
}

.ns-reasons {
	display: flex;
	justify-content: space-between;
	gap: 30px;
}

.ns-reason {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: #ffffff;
	border-radius: 5px;
	overflow: hidden;
}

.ns-reason__img {
	position: relative;
	margin: 0;
	line-height: 0;
}

.ns-reason__img img {
	width: 100%;
	height: auto;
}

.ns-reason__num {
	position: absolute;
	top: 0;
	left: 20px;
	display: flex;
	justify-content: center;
	width: 60px;
	height: 76px;
	padding-top: 12px;
	background: var(--fh-navy);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 82%, 0 100%);
	color: #ffffff;
	font-family: var(--fh-num);
	font-size: 28px;
	font-weight: 500;
	line-height: 1;
}

.ns-reason__body {
	padding: 18px;
}

.ns-reason__ttl {
	margin-bottom: 20px;
	color: var(--fh-navy);
	font-family: var(--fh-sans);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.4;
	text-align: left;
}

/* site.css の注意書きモーダル用 .ns-reason p(15px)と同名なので、ここでは 2 クラスで本文 16px に戻す */
.ns-reasons .ns-reason__body p {
	font-size: 16px;
	line-height: 1.7;
}

.ns-reason__open {
	color: var(--fh-red);
	font-size: 20px;
	font-weight: 600;
}

/* ------------------------------------------------------------------
 * CTA / 式場一覧 / お知らせ / h1
 * ------------------------------------------------------------------ */

.ns-hall__cta {
	padding: 40px 0;
}

.ns-hall__list {
	padding: 30px 0 60px;
	background: url(../../img/common/bg01.png);
}

.ns-news--hall {
	padding: 0 0 30px;
}

.ns-hall__h1 {
	margin-top: 20px;
	padding-bottom: 20px;
}

.ns-hall__h1 h1 {
	width: 60vw;
	color: #7f7e7e;
	font-size: 11px;
	font-weight: 300;
	line-height: 1.6;
	letter-spacing: 0.1em;
}

/* ------------------------------------------------------------------
 * 電話: 3列が入りきらない幅(1180px以下)では、3行の一覧を下の段に回す
 * ------------------------------------------------------------------ */

@media (max-width: 1180px) {
	.ns-hall__call {
		grid-template-columns: auto minmax(0, 1fr);
		column-gap: 30px;
	}

	.ns-hall__call-list {
		grid-column: 1 / -1;
		grid-row: 3;
		display: flex;
		flex-wrap: wrap;
		gap: 2px 24px;
		margin-top: 8px;
	}

	.ns-hall__gift {
		grid-row: 4;
	}
}

/* ------------------------------------------------------------------
 * タブレット(1024px 以下)
 * ------------------------------------------------------------------ */

@media (max-width: 1024px) {
	.ns-hall__access {
		flex: 1 1 100%;
	}

	.ns-hall__open {
		font-size: 32px;
	}

	.ns-hall__call {
		padding-right: 30px;
	}
}

/* ------------------------------------------------------------------
 * スマートフォン(767px 以下)
 * ------------------------------------------------------------------ */

@media (max-width: 767px) {
	.ns-hallpage .ns-inner {
		width: min(1300px, 100% - 30px);
	}

	.ns-hall__first {
		padding-bottom: 0;
	}

	.ns-hall__head {
		flex-wrap: wrap;
		gap: 5px;
		text-align: center;
	}

	.ns-hall__head--sub {
		padding-top: 10px;
	}

	.ns-hall__lead {
		flex: 0 0 100%;
		flex-wrap: wrap;
		gap: 0;
		margin-right: 0;
	}

	.ns-hall__ttl {
		width: 100%;
		font-size: 20px;
		text-align: left;
	}

	.ns-hall__open {
		width: 100%;
		font-size: 21px;
		text-align: center;
	}

	.ns-hall__bnr {
		flex: 0 0 calc(50% - 7px);
	}

	.ns-hall__bnr img {
		width: 100%;
		height: auto;
	}

	.ns-hall__call {
		display: block;
		padding: 12px 15px;
		text-align: center;
	}

	.ns-hall__call-ttl {
		margin-bottom: 8px;
		font-size: 15px;
	}

	.ns-hall__call-num {
		display: block;
		overflow: hidden;
		border-radius: 5px;
		color: #ffffff;
		font-size: 31px;
	}

	.ns-hall__call-numin {
		justify-content: center;
		height: 58px;
		background: var(--fh-red);
	}

	.ns-hall__call-num .ns-telnow {
		height: 38px;
		padding: 0 8px;
		border-bottom: 2px solid #ffffff;
		border-radius: 0;
		font-size: clamp(13px, 3.95vw, 16px);
	}

	.ns-hall__call-num .ns-ico-tel {
		width: 24px;
		height: 24px;
	}

	.ns-hall__call-sub {
		margin-top: 6px;
		font-size: 13px;
		font-weight: 700;
	}

	.ns-hall__call-list {
		display: block;
		margin-top: 8px;
		padding-top: 8px;
		border-top: 1px solid #dddddd;
		font-size: 14px;
		text-align: left;
	}

	.ns-hall__gift {
		margin-top: 12px;
		padding: 10px 12px;
	}

	.ns-hall__gift-ttl {
		font-size: 17px;
	}

	.ns-hall__gift-tag {
		display: table;
		margin: 0 0 4px;
		vertical-align: baseline;
	}

	.ns-hall__gift-txt {
		font-size: 13px;
	}

	.ns-hall__gift-terms {
		display: block;
		margin-left: 0;
	}

	.ns-hall__gift-note {
		font-size: 11px;
	}

	.ns-gallery {
		margin-bottom: 20px;
	}

	.ns-gallery .ns-gallery__track {
		padding-inline: calc((100% - 298px) / 2);
		scroll-padding-inline: calc((100% - 298px) / 2);
	}

	.ns-gallery__slide {
		flex-basis: 298px;
	}

	.ns-gallery__slide img {
		width: 298px;
		height: 199px;
	}

	.ns-gallery__arrow {
		width: 30px;
		height: 30px;
		margin-top: -8px;
	}

	.ns-gallery__arrow svg {
		width: 16px;
		height: 16px;
	}

	.ns-gallery__prev {
		left: 0;
	}

	.ns-gallery__next {
		right: 0;
	}

	.ns-gallery__thumb img {
		width: 38px;
		height: 26px;
	}

	.ns-hall__detail {
		padding-bottom: 0;
	}

	.ns-hall__info {
		padding-top: 20px;
	}

	.ns-hall__box {
		display: block;
		padding: 20px;
	}

	.ns-hall__rows {
		margin-bottom: 10px;
	}

	.ns-hall__row {
		display: block;
	}

	.ns-hall__faclist {
		grid-template-columns: repeat(2, 3fr 2fr);
	}

	.ns-hall__reasons {
		padding: 30px 0;
	}

	.ns-reasons {
		flex-direction: column;
	}

	.ns-reason {
		flex: 0 0 auto;
	}

	.ns-reason__open {
		font-size: 18px;
	}

	.ns-hall__cta {
		padding: 20px 0;
	}

	.ns-hall__list {
		padding-bottom: 30px;
	}

	.ns-hall__h1 h1 {
		width: 80vw;
	}
}

/* ------------------------------------------------------------------
 * 電話の発信ボタン(案内バナー / スマホのメニューの中 / PC のヘッダー / PC の下のバー / スマホの固定バー / ページ末尾)
 * 押すとその式場の番号へ発信する。並ぶ画像のバナーと同じ比率で伸び縮みさせる
 * ------------------------------------------------------------------ */

/* 「受付中」の表示(.ns-telnow)の基本の形(緑の帯・時刻・点の動き)と色(--fh-now)は、全ページ共通(site.css)。
   電話のポップアップとスマホのメニューでも使うため。ここは、式場ページの中の置き場所ごとの大きさだけ */

/* ヘッダーのすぐ下の帯 */
.ns-hallnow {
	background: var(--fh-now);
}

.ns-hallnow .ns-telnow--top {
	height: 40px;
	background: none;
}

/* 細いバー(スマホの固定バー・PC の下のバー・PC のヘッダー)は、上の行の頭に点だけを置く */
.ns-spbar__call-lead .ns-telnow__dot,
.ns-footbar__tel-lead .ns-telnow__dot,
.ns-head__tel-lead .ns-telnow__dot {
	width: 8px;
	height: 8px;
	margin-right: 6px;
}

.ns-head__tel-lead .ns-telnow__dot {
	background: #12a150;
}

/* 点を足した分だけ上の行が長くなるので、折り返さないようにする(PC のヘッダーの電話は、1400px 以下で幅 240px になる) */
.ns-head__tel--call .ns-head__tel-lead,
.ns-spbar__call-lead {
	white-space: nowrap;
}

@media (max-width: 1400px) {
	.ns-head__tel--call .ns-head__tel-lead {
		font-size: 12px;
	}

	.ns-head__tel-lead .ns-telnow__dot {
		margin-right: 5px;
	}
}

@media (min-width: 1025px) {
	.ns-hallnow .ns-telnow--top {
		height: 44px;
		font-size: 17px;
	}

	.ns-hallfv__tel .ns-telnow {
		font-size: 17px;
	}
}

/* バナー(.ns-telbnr): 上に「受付中」の帯(緑)、下に、並ぶ画像のバナー(580×148)と同じ形の本体(赤の地・白の文字・左に丸い電話の印)。
   文字の大きさは、バナーの幅に比例させる(cqw。使えないブラウザでは px の値) */
a.ns-telbnr {
	container-type: inline-size;
	display: block;
	overflow: hidden;
	border-radius: 5px;
	color: #ffffff;
	line-height: 1;
	text-decoration: none;
}

.ns-telbnr .ns-telnow {
	height: 38px;
	height: 10.4cqw;
	border-bottom: 2px solid #ffffff;
	font-size: 15px;
	font-size: 4.4cqw;
}

.ns-telbnr__in {
	display: grid;
	grid-template-columns: 1fr auto auto 1fr;
	align-content: center;
	align-items: center;
	aspect-ratio: 580 / 148;
	background: var(--fh-red);
	box-shadow: inset 0 -3px 0 #ae2617;
}

.ns-telbnr__ico {
	grid-column: 2;
	grid-row: 1 / 4;
	display: grid;
	place-items: center;
	width: 13cqw;
	height: 13cqw;
	margin-right: 3.6cqw;
	background: #ffffff;
	border-radius: 50%;
	color: var(--fh-red);
}

.ns-telbnr__ico .ns-ico-tel {
	display: block;
	width: 27px;
	width: 7.4cqw;
	height: 27px;
	height: 7.4cqw;
}

.ns-telbnr__name {
	grid-column: 3;
	grid-row: 1;
	font-size: 15px;
	font-size: 4.1cqw;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.ns-telbnr__num {
	grid-column: 3;
	grid-row: 2;
	margin: 1.3cqw 0 1.5cqw;
	font-family: var(--fh-num);
	font-size: 36px;
	font-size: 10cqw;
	font-weight: 500;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.ns-telbnr__sub {
	grid-column: 3;
	grid-row: 3;
	font-size: 13px;
	font-size: 3.6cqw;
	font-weight: 600;
	letter-spacing: 0.04em;
}

/* 案内バナーの中(768px 以上): 並ぶ画像のバナー(422×137)と同じ大きさ(赤の枠・赤の見出しの帯・白の地)。
   大きさを変えられないので、「受付中」の帯は下の段に置き、添え書き(通話無料…)は出さない(PC は下のバーに同じ添え書きが出ている) */
@media (min-width: 768px) {
	.ns-ctabnrs a.ns-telbnr {
		display: grid;
		grid-template-rows: minmax(0, 1fr) auto;
		aspect-ratio: 422 / 137;
		background: #fcf9f9;
		border: 2px solid var(--fh-red);
		color: var(--fh-red);
	}

	.ns-ctabnrs .ns-telbnr__in {
		grid-row: 1;
		grid-template-rows: 9.6cqw minmax(0, 1fr);
		align-content: normal;
		aspect-ratio: auto;
		background: none;
		box-shadow: none;
	}

	.ns-ctabnrs .ns-telnow {
		grid-row: 2;
		height: 34px;
		height: 8.2cqw;
		border-bottom: 0;
		font-size: 16px;
		font-size: 4cqw;
	}

	.ns-ctabnrs .ns-telbnr__name {
		grid-column: 1 / -1;
		align-self: stretch;
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--fh-red);
		color: #ffffff;
		font-size: 19px;
		font-size: 4.5cqw;
		letter-spacing: 0.08em;
	}

	.ns-ctabnrs .ns-telbnr__ico {
		grid-row: 2;
		display: block;
		width: auto;
		height: auto;
		margin-right: 1.4cqw;
		background: none;
		border-radius: 0;
	}

	.ns-ctabnrs .ns-telbnr__ico .ns-ico-tel {
		width: 30px;
		width: 7.2cqw;
		height: 30px;
		height: 7.2cqw;
	}

	.ns-ctabnrs .ns-telbnr__num {
		margin: 0;
		font-size: 44px;
		font-size: 10.4cqw;
	}

	.ns-ctabnrs .ns-telbnr__sub {
		display: none;
	}
}

/* 768〜1024px の案内バナーは列の幅が中身で決まる段組み。画像のバナーと同じ 422px を中身の幅として持たせる */
@media (min-width: 768px) and (max-width: 1024px) {
	.ns-ctabnrs .ns-ctabnrs__tel {
		min-width: 0;
	}

	.ns-ctabnrs a.ns-telbnr {
		width: 422px;
		max-width: 100%;
	}
}

/* PC のヘッダー */
.ns-head .ns-head__tel--call {
	padding: 0 14px;
	text-decoration: none;
}

.ns-head__tel--call .ns-head__tel-num {
	gap: 6px;
	font-family: var(--fh-num);
	font-size: 27px;
	font-weight: 500;
	letter-spacing: 1px;
}

.ns-head__tel--call .ns-ico-tel {
	width: 19px;
	height: 19px;
}

/* PC の下のバー */
.ns-footbar .ns-footbar__tel--call {
	padding: 0 8px;
	text-decoration: none;
}

.ns-footbar__tel--call .ns-footbar__tel-lead {
	font-size: 12px;
	white-space: nowrap;
}

.ns-footbar__tel--call .ns-footbar__tel-num {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-family: var(--fh-num);
	font-size: 27px;
	font-weight: 500;
	letter-spacing: 1px;
}

.ns-footbar__tel--call .ns-ico-tel {
	width: 19px;
	height: 19px;
}

/* ページ末尾の「24時間365日受付中」の下: 電話の部品(.ns-hall__call)を、白の地で置く */
.ns-hall__call--consult {
	max-width: 1102px;
	margin: 0 auto;
	background: #ffffff;
	border: 1px solid #e6e6e6;
	text-align: left;
}

@media (max-width: 767px) {
	.ns-hall__call--consult {
		text-align: center;
	}
}

/* ------------------------------------------------------------------
 * 着地ページの 5 式場だけが出す区画(2026-10-06)。HTML は inc/site-halls.php の fh_the_hall_voices() / fh_the_hall_features() /
 * fh_the_hall_flow() / fh_the_hall_faq() / fh_the_hall_others()。並びは page-templates/template-hall.php。
 * 色は、紺・生成り(#f5f0e3)・白。朱は電話のボタンだけ・緑は「受付中」だけ・プランの色は費用の欄だけ・淡い金(#ffe27a)は、流れの区画の主役の 1 句だけ。
 * 使わない形: 箱や行の左端の色の縦棒・同じ形の札の並び・見出しの頭の印・丸い番号札・Q/A の飾り・薄紫の丸い矢印・飾りの擬似要素。
 * 基準はスマホ。区画ごとに、768px 以上の指定を後ろに置く。
 * ------------------------------------------------------------------ */

/* 開く・閉じるの印(＋。開いている時は、縦の線を消して −)。HTML は fh_get_pm_icon()。よくあるご質問と、ほかの式場が使う */
.ns-pm {
	display: inline-flex;
	flex: none;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.16);
}

.ns-pm svg {
	display: block;
}

details[open] > summary .ns-pm .ns-pm__v {
	display: none;
}

/* 直筆の声の題(その式場の名前と件数)。HTML は fh_the_hall_voices()。カードと送りのボタンの見た目は、トップ用の home.css */
.ns-voices__who span {
	display: inline-block;
}

.ns-voices__count {
	display: inline-block;
	margin-left: 0.2em;
	color: var(--fh-navy);
	font-family: var(--fh-sans);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	vertical-align: 0.2em;
}

/* ---------- 式場の特徴(.ns-hallfeat) ---------- */
.ns-hallfeat {
	padding: 30px 0 26px;
	background: #ffffff;
}

.ns-hallfeat__ttl,
.ns-hallflow__ttl,
.ns-hallfaq__ttl {
	color: var(--fh-navy);
	font-family: var(--fh-sans);
	font-size: clamp(19px, 5.6vw, 22px);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-align: center;
}

.ns-hallfeat--lead .ns-hallfeat__lead {
	margin-top: 14px;
}

.ns-hallfeat__photo {
	margin: 0 -15px;
}

.ns-hallfeat__photo figure {
	display: block;
	width: 100%;
	line-height: 0;
}

.ns-hallfeat__photo figure img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

/* 写真の一覧(2 つ目の一覧を持つ式場)は、1 枚ずつ・枠の幅いっぱい。前後のボタンは、紺の四角(上部の写真と同じ) */
.ns-hallfeat .ns-gallery {
	margin: 0;
}

.ns-hallfeat .ns-gallery .ns-gallery__track {
	gap: 0;
	padding-inline: 0;
	scroll-padding-inline: 0;
}

.ns-hallfeat .ns-gallery__slide {
	flex: 0 0 100%;
	opacity: 1;
}

.ns-hallfeat .ns-gallery__slide img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.ns-hallfeat .ns-gallery__arrow {
	width: 40px;
	height: 40px;
	margin-top: -20px;
	background: var(--fh-navy);
	border-radius: 4px;
}

.ns-hallfeat .ns-gallery__arrow svg {
	width: 20px;
	height: 20px;
}

.ns-hallfeat .ns-gallery__prev {
	left: 10px;
}

.ns-hallfeat .ns-gallery__next {
	right: 10px;
}

/* 名前と文。主役は、写真のすぐ下の生成りの面 */
.ns-hallfeat__body {
	margin: 0 -15px;
	padding: 14px 16px 18px;
	background: #f5f0e3;
}

.ns-hallfeat__open {
	display: inline-block;
	align-self: flex-start;
	padding: 1px 10px;
	background: var(--fh-navy);
	border-radius: 2px;
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.7;
}

.ns-hallfeat__name {
	color: var(--fh-navy);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.45;
}

.ns-hallfeat__open + .ns-hallfeat__name {
	margin-top: 6px;
}

.ns-hallfeat__txt {
	margin-top: 6px;
	font-size: 14.5px;
	line-height: 1.75;
}

/* 2 つ目より後は、行(左に写真・右に名前と文)。行の間は線 */
.ns-hallfeat__rows {
	margin-top: 18px;
}

.ns-hallfeat__row {
	display: grid;
	grid-template-columns: 118px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	padding: 12px 0;
	border-top: 1px solid #dcd6c6;
}

.ns-hallfeat__row:last-child {
	border-bottom: 1px solid #dcd6c6;
}

.ns-hallfeat__row .ns-hallfeat__body {
	margin: 0;
	padding: 0;
	background: none;
}

.ns-hallfeat__thumb {
	line-height: 0;
}

.ns-hallfeat__thumb img {
	display: block;
	width: 118px;
	height: 88px;
	border-radius: 4px;
	object-fit: cover;
}

.ns-hallfeat__row .ns-hallfeat__name {
	font-size: 16.5px;
}

.ns-hallfeat__row .ns-hallfeat__txt {
	margin-top: 2px;
	font-size: 13.5px;
	line-height: 1.65;
}

@media (min-width: 768px) {
	.ns-hallfeat {
		padding: 56px 0 48px;
	}

	.ns-hallfeat__ttl,
	.ns-hallflow__ttl,
	.ns-hallfaq__ttl {
		font-size: 30px;
	}

	.ns-hallfeat--lead .ns-hallfeat__lead {
		display: grid;
		grid-template-columns: 58% minmax(0, 1fr);
		align-items: stretch;
		margin-top: 28px;
	}

	.ns-hallfeat__photo {
		margin: 0;
	}

	.ns-hallfeat__body {
		display: flex;
		flex-direction: column;
		justify-content: center;
		margin: 0;
		padding: 28px 32px;
	}

	.ns-hallfeat__name {
		font-size: 24px;
	}

	.ns-hallfeat__txt {
		font-size: 16px;
	}

	.ns-hallfeat__rows {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 40px;
		margin-top: 28px;
	}

	.ns-hallfeat__row {
		grid-template-columns: 200px minmax(0, 1fr);
		gap: 20px;
		padding: 18px 0;
	}

	.ns-hallfeat__row:nth-last-child(2) {
		border-bottom: 1px solid #dcd6c6;
	}

	.ns-hallfeat__thumb img {
		width: 200px;
		height: 138px;
	}

	.ns-hallfeat__row .ns-hallfeat__name {
		font-size: 19px;
	}

	.ns-hallfeat__row .ns-hallfeat__txt {
		font-size: 15px;
	}
}

/* ---------- ご危篤からご葬儀までの流れと、電話(.ns-hallflow) ---------- */
.ns-hallflow {
	padding: 28px 0 30px;
	background: #f5f0e3;
}

.ns-hallflow__grid {
	margin-top: 16px;
}

.ns-hallflow__call {
	padding: 18px 16px 16px;
	background: var(--fh-navy);
	border-radius: 6px;
	color: #ffffff;
	text-align: center;
}

.ns-hallflow__lead {
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.5;
}

.ns-hallflow__lead span {
	display: inline-block;
}

/* 主役の 1 句(淡い金は、ここだけ) */
.ns-hallflow__lead .is-key {
	display: block;
	margin-top: 4px;
	color: #ffe27a;
	font-size: 22px;
}

.ns-hallflow__sub {
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.7;
	opacity: 0.92;
}

.ns-hallflow__tel {
	max-width: 440px;
	margin: 12px auto 0;
}

.ns-hallflow__more {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 40px;
	margin-top: 8px;
	color: #ffffff;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ns-hallflow__tel:focus-visible,
.ns-hallflow__more:focus-visible {
	outline: 3px solid #ffffff;
	outline-offset: 3px;
}

/* 7 つの流れ(番号は素の数字。丸い札にしない)。<ol> の内側の余白は、区画のクラスを重ねて書く(reset.css の ol[class] { padding: 0 } のほうが、クラス 1 つより強い) */
.ns-hallflow .ns-hallflow__steps {
	margin-top: 14px;
	padding: 4px 16px;
	background: #ffffff;
	border-radius: 6px;
}

.ns-hallflow__steps li {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 46px;
	padding: 4px 0;
	border-top: 1px solid #e6e1d2;
}

.ns-hallflow__steps li:first-child {
	border-top: 0;
}

.ns-hallflow__n {
	flex: none;
	width: 34px;
	color: var(--fh-navy);
	font-family: var(--fh-num);
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
}

.ns-hallflow__l {
	color: #222222;
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.4;
}

@media (min-width: 768px) {
	.ns-hallflow {
		padding: 56px 0 56px;
	}

	.ns-hallflow__call {
		padding: 28px 28px 24px;
	}

	.ns-hallflow__lead {
		font-size: 21px;
	}

	.ns-hallflow__lead .is-key {
		font-size: 26px;
	}

	.ns-hallflow__sub {
		font-size: 14.5px;
	}

	.ns-hallflow__more {
		font-size: 15px;
	}

	/* 左に電話・右に 7 つの流れ */
	.ns-hallflow--call .ns-hallflow__grid {
		display: grid;
		grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
		gap: 28px;
		align-items: start;
		max-width: 1100px;
		margin: 30px auto 0;
	}

	.ns-hallflow--call .ns-hallflow__steps {
		margin-top: 0;
		padding: 6px 24px;
	}

	.ns-hallflow--call .ns-hallflow__steps li {
		min-height: 54px;
	}

	.ns-hallflow--call .ns-hallflow__n {
		width: 44px;
		font-size: 28px;
	}

	.ns-hallflow--call .ns-hallflow__l {
		font-size: 17px;
	}
}

@media (hover: hover) {
	.ns-hallflow__more:hover {
		text-decoration: none;
	}
}

/* ---------- よくあるご質問(.ns-hallfaq) ---------- */
.ns-hallfaq {
	padding: 26px 0 30px;
	background: #ffffff;
}

.ns-hallfaq__item summary {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 6px 4px;
	cursor: pointer;
	list-style: none;
}

.ns-hallfaq__item summary::-webkit-details-marker {
	display: none;
}

.ns-hallfaq__item summary:focus-visible {
	outline: 3px solid var(--fh-navy);
	outline-offset: 2px;
}

.ns-hallfaq__qt {
	flex: 1;
	color: #222222;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hallfaq__item summary .ns-pm {
	color: #ffffff;
	background: var(--fh-navy);
}

.ns-hallfaq__a {
	font-size: 14px;
	line-height: 1.8;
}

.ns-hallfaq__a b {
	color: var(--fh-navy);
}

.ns-hallfaq__a a {
	color: var(--fh-navy);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* 紺の帯の題・生成りの面に問いの行・白い面に答え */
.ns-hallfaq--band .ns-hallfaq__head {
	padding: 14px 16px;
	background: var(--fh-navy);
	border-radius: 6px 6px 0 0;
}

.ns-hallfaq--band .ns-hallfaq__ttl {
	color: #ffffff;
}

.ns-hallfaq--band .ns-hallfaq__list {
	padding: 4px 14px 12px;
	background: #f5f0e3;
	border-radius: 0 0 6px 6px;
}

.ns-hallfaq--band .ns-hallfaq__item {
	border-top: 1px solid #dcd6c6;
}

.ns-hallfaq--band .ns-hallfaq__item:first-child {
	border-top: 0;
}

.ns-hallfaq--band .ns-hallfaq__a {
	margin: 0 0 12px;
	padding: 10px 14px 12px;
	background: #ffffff;
	border-radius: 4px;
}

@media (min-width: 768px) {
	.ns-hallfaq {
		padding: 48px 0 56px;
	}

	.ns-hallfaq__item summary {
		min-height: 60px;
		padding: 8px 6px;
	}

	.ns-hallfaq__qt {
		font-size: 17px;
	}

	.ns-hallfaq__a {
		font-size: 15.5px;
	}

	.ns-hallfaq--band .ns-hallfaq__head {
		padding: 18px 28px;
	}

	.ns-hallfaq--band .ns-hallfaq__list {
		padding: 8px 24px 18px;
	}

	.ns-hallfaq--band .ns-hallfaq__head,
	.ns-hallfaq--band .ns-hallfaq__list {
		max-width: 1000px;
		margin-right: auto;
		margin-left: auto;
	}

	.ns-hallfaq--band .ns-hallfaq__a {
		padding: 14px 20px 16px;
	}
}

@media (hover: hover) {
	.ns-hallfaq__a a:hover {
		text-decoration: none;
	}
}

/* ---------- ほかの式場(.ns-hallothers)。ページの最後で、紺の帯を押すと開く ---------- */
.ns-hallothers {
	padding: 18px 0 24px;
}

.ns-hallothers__sum {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 60px;
	padding: 10px 16px;
	background: var(--fh-navy);
	border-radius: 6px;
	color: #ffffff;
	cursor: pointer;
	list-style: none;
}

.ns-hallothers__sum::-webkit-details-marker {
	display: none;
}

.ns-hallothers__sum:focus-visible {
	outline: 3px solid var(--fh-navy);
	outline-offset: 2px;
}

.ns-hallothers__ttl {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
}

.ns-hallothers__n {
	margin-left: auto;
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
	opacity: 0.92;
}

.ns-hallothers__box[open] .ns-hallothers__sum {
	border-radius: 6px 6px 0 0;
}

/* 開いた中 = 市の札・名前・所在地・最寄り駅の行(行の全体がリンク。電話は入れない)。
   スマホは、行を箱の幅いっぱいに置く(内側に余白を取ると、幅 375〜390px で、長い式場名が 2 行になる)。768px 以上は、内側に余白を取る */
.ns-hallothers__rows {
	background: #f5f0e3;
	border-radius: 0 0 6px 6px;
}

.ns-hallothers__rows li {
	border-top: 1px solid #dcd6c6;
}

.ns-hallothers__rows li:first-child {
	border-top: 0;
}

.ns-hallothers__rows a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "city name chev" "addr addr chev" "rail rail chev";
	column-gap: 10px;
	align-items: center;
	min-height: 56px;
	padding: 8px 2px;
	color: #222222;
	text-decoration: none;
}

.ns-hallothers__rows a:focus-visible {
	outline: 3px solid var(--fh-navy);
	outline-offset: 2px;
}

.ns-hallothers__city {
	grid-area: city;
	position: static;
	top: auto;
	align-self: center;
	padding: 2px 10px;
	border-radius: 2px;
	color: #ffffff;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.5;
}

.ns-hallothers__name {
	grid-area: name;
	color: var(--fh-navy);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

.ns-hallothers__addr {
	grid-area: addr;
	margin-top: 2px;
	color: #333333;
	font-size: 12.5px;
	line-height: 1.5;
}

.ns-hallothers__rail {
	grid-area: rail;
	color: #555555;
	font-size: 12px;
	line-height: 1.5;
}

.ns-hallothers__rows .ns-ico-chev {
	grid-area: chev;
	color: var(--fh-navy);
}

@media (min-width: 768px) {
	.ns-hallothers {
		padding: 28px 0 36px;
	}

	.ns-hallothers__ttl {
		font-size: 18px;
	}

	.ns-hallothers__n {
		font-size: 14px;
	}

	/* <ul> の内側の余白は、区画のクラスを重ねて書く(reset.css の ul[class] { padding: 0 } のほうが、クラス 1 つより強い) */
	.ns-hallothers .ns-hallothers__rows {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 40px;
		padding: 6px 28px 14px;
	}

	.ns-hallothers__rows li:nth-child(2) {
		border-top: 0;
	}

	.ns-hallothers__rows a {
		min-height: 68px;
		padding: 12px 2px;
	}

	.ns-hallothers__name {
		font-size: 18px;
	}

	.ns-hallothers__addr {
		font-size: 13.5px;
	}

	.ns-hallothers__rail {
		font-size: 13px;
	}
}

@media (hover: hover) {
	.ns-hallothers__rows a:hover .ns-hallothers__name {
		text-decoration: underline;
		text-underline-offset: 3px;
	}
}
