@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@800&display=swap');
/* ============================================================
   HAWAII-2075 下層ページ専用 CSS
   - TOP 以外の全ページで、ページ個別 CSS (plan.css 等) の後に読み込まれる
   - 下層の新しいスタイルはここに書く (common-2075.css の末尾には足さない)
   ============================================================ */

/* ---------- ページタイトル (英字大 + 日本語小) ----------
   h1.midasi に midasi-2075 を付けたページだけに効く (未改修ページは従来の見た目のまま) */
.midasi.midasi-2075 {
	margin: 48px auto 70px;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text);
}
.midasi.midasi-2075 em {
	margin: 0 0 20px;
	padding-left: 0.15em; /* 末尾に付く字間ぶん左にずれるのを補正 */
	font-family: var(--f-en-main) !important;
	font-style: normal;
	font-weight: 500;
	font-size: 55px;
	letter-spacing: 0.15em;
	line-height: 1;
	color: var(--c-accent);
	text-transform: uppercase;
}

/* ---------- タブ (日本語 + 英字 + 英字小) ---------- */
.tabs-2075 {
	display: flex;
	margin: 0 auto 80px;
	border-left: 1px solid #C9CDCF;
}
.tabs-2075 a {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: 96px;
	padding: 10px 4px 6px;
	box-sizing: border-box;
	border-right: 1px solid #C9CDCF;
	color: var(--c-accent);
	text-decoration: none;
	transition: color .2s;
}
.tabs-2075 a.on,
.tabs-2075 a:hover {
	color: var(--c-text);
	text-decoration: none;
}
.tabs-2075 .jp,
.tabs-2075 .en,
.tabs-2075 .en-sm {
	display: block;
	line-height: 1;
	white-space: nowrap;
}
.tabs-2075 .jp {
	padding-left: 0.3em;
	font-family: var(--f-serif-jp);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.3em;
}
.tabs-2075 .en {
	margin-top: 12px;
	padding-left: 0.25em;
	font-family: var(--f-en-main);
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.25em;
}
.tabs-2075 .en-sm {
	margin-top: 12px;
	padding-left: 0.3em;
	font-family: var(--f-en-sub);
	font-weight: 400;
	font-size: 16px;
	letter-spacing: 0.3em;
}

@media only screen and (max-width: 767px) {
	.midasi.midasi-2075 {
		margin: 32px auto 40px;
		font-size: 11px;
		letter-spacing: 0.15em;
	}
	.midasi.midasi-2075 em {
		margin-bottom: 12px;
		font-size: 34px;
	}
	.tabs-2075 { margin-bottom: 40px; }
	.tabs-2075 a {
		min-height: 0;
		padding: 10px 2px 8px;
	}
	.tabs-2075 .jp { font-size: 10px; letter-spacing: 0.15em; padding-left: 0.15em; }
	.tabs-2075 .en { margin-top: 6px; font-size: 15px; letter-spacing: 0.12em; padding-left: 0.12em; }
	.tabs-2075 .en-sm { margin-top: 6px; font-size: 10px; letter-spacing: 0.2em; padding-left: 0.2em; }
}

/* ---------- 料金表 (price/*.html の table.price-table-2075) ----------
   罫線は横線のみ・1色。日本語 Noto Sans JP / 金額 Fjalla One (下層 v89: プランの価格と同じに) / リンク #7D8A8E (#A5B1B4 では薄いため一段濃く) */
table.price-table-2075 {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-family: var(--f-sans-jp);
	font-size: 13px;
	color: var(--c-text-warm);
}
table.price-table-2075 tr th,
table.price-table-2075 tr td {
	padding: 18px 16px;
	border: 0;
	border-bottom: 1px solid #C9CDCF;
	background: none;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	line-height: 1.6;
	vertical-align: middle;
	text-align: left;
}
table.price-table-2075 thead tr th {
	padding: 0 16px 12px;
	border-bottom: 1px solid #C9CDCF;
	background: none;
	color: var(--c-text-warm);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	white-space: nowrap;
}
table.price-table-2075 thead tr th:last-child { text-align: right; }
table.price-table-2075 tbody tr th,
table.price-table-2075 tr > th {
	font-size: 14px;
	font-weight: 500;
}
table.price-table-2075 a {
	color: #7D8A8E;
	font-weight: 500;
	text-decoration: none;
	transition: color .2s;
}
table.price-table-2075 a:hover {
	color: var(--c-text-warm);
	text-decoration: none;
}
table.price-table-2075 small {
	font-size: 11px;
	font-weight: 400;
}
table.price-table-2075 td p { margin: 0; }
table.price-table-2075 tr td.tr {
	font-family: var(--f-num);
	font-weight: 500;
	font-size: 20px;
	letter-spacing: 0.02em;
	color: var(--c-text);
	text-align: right;
	white-space: nowrap;
}

@media only screen and (max-width: 767px) {
	table.price-table-2075 tr th,
	table.price-table-2075 tr td {
		padding: 14px 8px;
		word-break: normal; /* price.css の break-all を解除して禁則を効かせる */
		overflow-wrap: anywhere;
		line-break: strict;
	}
	table.price-table-2075 thead tr th { padding: 0 8px 10px; font-size: 11px; letter-spacing: 0.05em; }
	table.price-table-2075 tbody tr th,
	table.price-table-2075 tr > th { font-size: 13px; }
	table.price-table-2075 tr td { font-size: 12px; }
	table.price-table-2075 tr td.tr { font-size: 16px; }
}

/* ---------- 下層 v104: 茶色の枠も角丸なし (色の茶色はそのまま) ----------
   撮影場所・挙式会場の紹介 (.brown-recommend / .shooting-place-box)・和装の支度 (.schedule-makeup-detail)・会場装飾 (.venue_decoration-box) ほか。中の小さいボタン・ラベルも四角に */
body:not(.home) :is(.brown-recommend, .schedule-makeup-detail, .shooting-place-box, .recommend-option-box, .pickup-box, #marriot-suit-info, .venue_decoration-box),
body:not(.home) :is(.shooting-place-box > div .title .memo, .shooting-place-box > div .title a, .recommend-option-box .title a) { border-radius: 0; }

/* ---------- 下層 v100: 注意の赤は 1 色 (#C30D23 = common.css の .tx_red2) ----------
   .tx_red1 (#FF0033) と、ページに直書きしていた赤 (color: red / #ff0000 → ファイル側で #C30D23 に置き換え) をそろえる */
body:not(.home) .tx_red1 { color: #C30D23; }

/* ---------- 下層 KV: 写真は高さに合わせて全体を見せ、横に余るところは同じ写真をぼかして埋める (下層 v124 / TOP のランキングの写真と同じ) ----------
   写真は common-2075.css の .subpage-kv--xxx か、ページの style 属性の background-image。要素の背景は大きさ 0 で消し、
   ::before (ぼかし) と ::after (写真) が background-image を引き継いで出す。写真がない KV は今までどおりグレー */
body:not(.home) .subpage-kv { overflow: hidden; isolation: isolate; background-size: 0 0; }
body:not(.home) .subpage-kv::before,
body:not(.home) .subpage-kv::after { content: ""; position: absolute; background-image: inherit; background-repeat: no-repeat; background-position: center; }
body:not(.home) .subpage-kv::before { inset: -40px; z-index: -1; background-size: cover; filter: blur(20px); }
body:not(.home) .subpage-kv::after { inset: 0; background-size: auto 100%; }
/* カジュアルフォト (/plan/?cate=casual) の写真は、決まるまで暫定で TOP のカジュアルフォトの写真 (下層 v126) */
body:not(.home) .subpage-kv--casual { background-image: url('/common/img/top/ph_plan-title03.webp'); }
/* PC は高さ 340px → 400px (右の SNS を画面の上下中央にしたので、KV に乗る部分を増やす) */
@media only screen and (min-width: 1280px) {
	body:not(.home) .subpage-kv { height: 400px; }
}

/* ---------- 右サイド SNS ---------- */
/* PC: 下層 v124 で TOP と同じく画面の上下中央に (v121 の「KV の上端から 24px 下」をやめる)。
   画面の高さが低いとヘッダーにかかるので、中央は上から 300px より上には上げない (列は約 330px) */
@media only screen and (min-width: 1280px) {
	body:not(.home) .header-sns {
		top: max(50%, 300px) !important;
		transform: translateY(-50%) !important;
	}
}
/* 列が KV の下の端をまたぐので、アイコン・線・STAY WITH US ごとに、KV の外に出たものだけ黒に (footer.tpl が .is-past-kv / .label-past-kv を付ける) */
body:not(.home).has-kv .header-sns__item.is-past-kv img { filter: brightness(0) !important; }
body:not(.home).has-kv .header-sns__divider.is-past-kv { color: #000000; }
body:not(.home).has-kv .header-sns.label-past-kv::after { color: #000000 !important; }
/* 下層 v127: KV の上の白いアイコン・線・文字に、うすい影 (写真の明るいところ・左右のぼかしの空などに乗ると白が見えなくなっていた)。黒になったら影なし */
body:not(.home).has-kv .header-sns__item img { filter: brightness(0) invert(1) drop-shadow(0 0 3px rgba(0, 0, 0, 0.45)); }
body:not(.home).has-kv:not(.sns-past-kv) .header-sns__divider:not(.is-past-kv) { box-shadow: 0 0 3px rgba(0, 0, 0, 0.35); }
body:not(.home).has-kv:not(.sns-past-kv) .header-sns:not(.label-past-kv)::after { text-shadow: 0 0 4px rgba(0, 0, 0, 0.45); }
/* タブレット・スマホ: アイコンのみ。ヘッダー 81px + KV 200px の中央 = 181px
   (下層 v139: 大きさ・右の位置・線と STAY WITH US を消すのは TOP と共通なので common-2075.css へ) */
@media only screen and (max-width: 1279px) {
	body:not(.home):not(.hamb-open) .header-sns {
		display: flex !important;
		top: 181px !important;
		transition: opacity .3s, visibility .3s;
	}
}
/* 下層 v87: 臨時休業などのお知らせの帯 (36px) が出ている間はヘッダーと KV が 36px 下がるので、SNS も同じだけ下げる。
   帯はスマホ (890px 以下) では出ない。PC は v124 で画面の上下中央にしたので下げない */
@media only screen and (min-width: 891px) and (max-width: 1279px) {
	body:not(.home):not(.hamb-open):has(header#header > .holiday-notice) .header-sns { top: calc(181px + 36px) !important; }
}
/* 1120px 未満は本文の右の余白がなくアイコンが本文に重なるので、KV を過ぎたら消す・KV なしのページ (body.no-kv) は出さない。
   1120〜1279px は本文の右に 60px ほど余白があるので PC と同じく常に出す */
@media only screen and (max-width: 1119px) {
	body:not(.home).scrolled-past-kv .header-sns {
		opacity: 0;
		visibility: hidden;
	}
	body.no-kv:not(.hamb-open) .header-sns { display: none !important; }
}

/* ---------- リード文 (明朝の1行目 + ゴシックの本文) ---------- */
.lead-2075 {
	margin: 0 auto 88px;
	text-align: center;
}
.lead-2075__title {
	margin: 0 0 22px;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text);
}
.lead-2075__text {
	margin: 0;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	color: var(--c-text-warm);
}

.br-sp-2075 { display: none; } /* スマホだけ改行する <br> (767px 以下で表示) */
.br-pc-2075 { display: inline; } /* PC だけ改行する <br> (767px 以下で非表示) */

/* ---------- リード見出しの下の本文 (オプション下層の p.main_words などに付与) ----------
   PC は中央ぞろえ + .br-pc-2075 で読みやすい位置で改行 / スマホは左寄せで流す */
.lead-text-2075 {
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	color: var(--c-text-warm);
	text-align: center !important; /* .tl / .tc-i などの指定もそろえる */
}

/* ---------- ガイドバナー (英字 SVG + 日本語、右に矢印) ---------- */
.guide-banner-2075 {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 150px;
	margin: 0 auto 90px;
	background: var(--c-footer);
	color: #FFFFFF;
	text-decoration: none;
	transition: opacity .2s;
}
a.guide-banner-2075[href]:hover {   /* 下層 v118: common.css の a[href]:hover の下線に負けていた (日本語に下線が出ていた) */
	opacity: 0.85;
	color: #FFFFFF;
	text-decoration: none;
}
.guide-banner-2075__en {
	display: block;
	width: 280px;
	height: auto;
}
.guide-banner-2075__jp {
	padding-left: 0.3em;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.3em;
	line-height: 1;
}
.guide-banner-2075::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 40px;
	width: 9px;
	height: 9px;
	border-top: 1px solid #FFFFFF;
	border-right: 1px solid #FFFFFF;
	transform: translateY(-50%) rotate(45deg);
}

/* ---------- ボタン (右端に外へはみ出す短い横線) ---------- */
.btn-line-2075 {
	position: relative;
	display: block;
	width: calc(100% - 20px);
	height: 44px;
	line-height: 44px;
	background: var(--c-footer);
	color: #FFFFFF;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity .2s;
}
.btn-line-2075::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -10px;
	width: 20px;
	height: 1px;
	background: #DCE2E2;
}
.btn-line-2075:hover {
	opacity: 0.85;
	color: #FFFFFF;
	text-decoration: none;
}

/* ---------- オプション一覧カード (option/index.html の #option-list-index のみ) ---------- */
#option-list-index.option-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 80px 50px;
	max-width: 1000px;
	margin: 0 auto 40px;
	padding: 0;
}
#option-list-index.option-list > li {
	display: flex;
	flex-direction: column;
	width: auto;
	margin: 0;
	overflow: visible;
}
#option-list-index.option-list > li > * {
	flex-shrink: 0; /* 説明文 (p.oh = overflow:hidden) が縮められて行が隠れるのを防ぐ */
}
#option-list-index.option-list > li > a:first-child {
	display: block;
	padding: 0;
}
#option-list-index.option-list > li figure {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	outline: 0;
}
#option-list-index.option-list > li figure img {
	width: 100% !important;
	height: 100%;
	object-fit: cover;
}
#option-list-index.option-list > li .midasi3.v2 {
	margin: 22px 0 10px;
	padding: 0;
	border: 0;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
#option-list-index.option-list > li .midasi3.v2 small {
	font-size: 12px;
	font-weight: 400;
}
#option-list-index.option-list > li p {
	margin: 0 0 30px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 24px;
	color: var(--c-text-warm);
}
#option-list-index.option-list > li a.btn-line-2075 {
	width: calc(100% - 20px); /* option.css (799px 以下) の width:auto に負けないよう再指定 */
	margin: auto 0 0; /* 上: 説明文の長さが違ってもボタンを横で揃える / 左右: option.css の中央寄せを解除 */
	padding: 0;
}

@media only screen and (max-width: 767px) {
	.lead-2075 { margin-bottom: 48px; }
	.lead-2075__title { font-size: 16px; letter-spacing: 0.1em; }
	.lead-2075__text { padding: 0 12px; font-size: 13px; letter-spacing: 0.05em; text-align: left; }
	.lead-2075__text br { display: none; }
	.br-sp-2075 { display: inline; }
	.br-pc-2075 { display: none; }
	.lead-text-2075 { padding: 0 12px; font-size: 13px; letter-spacing: 0.05em; text-align: left !important; }
	.guide-banner-2075 { height: 110px; gap: 10px; margin-bottom: 48px; }
	.guide-banner-2075__en { width: 180px; }
	.guide-banner-2075__jp { font-size: 15px; letter-spacing: 0.2em; padding-left: 0.2em; }
	.guide-banner-2075::after { right: 20px; }
	.btn-line-2075 { font-size: 12px; letter-spacing: 0.02em; }
	#option-list-index.option-list { grid-template-columns: repeat(2, 1fr); gap: 40px 16px; }
	#option-list-index.option-list > li .midasi3.v2 { margin-top: 14px; font-size: 13px; letter-spacing: 0.05em; }
	#option-list-index.option-list > li p { margin-bottom: 18px; font-size: 12px; letter-spacing: 0.05em; line-height: 20px; }
}

/* ---------- セクション見出し (明朝 + 下に短い線) と直下の説明 ---------- */
.h-sec-2075 {
	margin: 0 auto 24px;
	padding: 0 0 0 0.2em;
	background: none;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 22px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
.h-sec-2075::after {
	content: "";
	display: block;
	width: 40px;
	height: 1px;
	margin: 18px auto 0;
	background: var(--c-accent);
}
.h-sec-2075__lead {
	margin: 0 0 60px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	text-align: center;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	.h-sec-2075 { font-size: 18px; letter-spacing: 0.1em; padding-left: 0.1em; }
	.h-sec-2075__lead { margin-bottom: 40px; font-size: 13px; }
}

/* ---------- オプション下層のサブメニュー (common/inc/href/option_nav.tpl) ---------- */
/* 上部: 表示中の項目内のページタブ */
.opt-local-2075 {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 28px;
	max-width: 1000px;
	margin: 24px auto 0;
	padding: 0 16px;
}
.opt-local-2075 a {
	padding: 6px 2px;
	border-bottom: 1px solid transparent;
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: #7D8A8E;
	text-decoration: none;
	transition: color .2s, border-color .2s;
}
.opt-local-2075 a:hover { color: var(--c-text); text-decoration: none; }
.opt-local-2075 a.on {
	border-bottom-color: var(--c-text);
	color: var(--c-text);
}

/* 上部 (PC): 項目が6個以上の時は4列の一覧に (中央寄せのままだと3〜4行に折り返して読みにくいため) */
@media only screen and (min-width: 768px) {
	.opt-local-2075--many {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0 28px;
	}
	.opt-local-2075--many a {
		position: relative;
		padding: 12px 18px 12px 0;
		border-bottom: 1px solid #C9CDCF;
		font-size: 13px;
		letter-spacing: 0.05em;
	}
	.opt-local-2075--many a::after {
		content: "";
		position: absolute;
		top: 50%;
		right: 4px;
		width: 6px;
		height: 6px;
		border-top: 1px solid currentColor;
		border-right: 1px solid currentColor;
		transform: translateY(-50%) rotate(45deg);
	}
	.opt-local-2075--many a.on {
		border-bottom-color: var(--c-text);
		font-weight: 700;
	}
}

/* 下部: 全項目の一覧 (OTHER OPTIONS) */
.opt-all-2075 {
	max-width: 1000px;
	margin: 100px auto 20px;
	padding: 0 16px;
}
.opt-all-2075__title {
	margin: 0 0 32px;
	text-align: center;
}
.opt-all-2075__title .en {
	display: block;
	padding-left: 0.25em;
	font-family: var(--f-en-main);
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.25em;
	line-height: 1;
	color: var(--c-accent);
}
.opt-all-2075__title .jp {
	display: block;
	margin-top: 12px;
	padding-left: 0.2em;
	font-family: var(--f-sans-jp);
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--c-text);
}
.opt-all-2075 ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.opt-all-2075 li { margin: 0; list-style: none; }
.opt-all-2075 li a {
	position: relative;
	display: block;
	padding: 16px 20px 16px 0;
	border-bottom: 1px solid #C9CDCF;
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1.5;
	color: var(--c-text-warm);
	text-decoration: none;
	transition: color .2s;
}
.opt-all-2075 li a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 4px;
	width: 6px;
	height: 6px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}
.opt-all-2075 li a:hover { color: var(--c-text); text-decoration: none; }
.opt-all-2075 li a.on {
	color: var(--c-text);
	font-weight: 700;
}

@media only screen and (max-width: 767px) {
	/* 上部 (スマホ): 1行の横スライド。右端をぼかして続きがあることを示す */
	.opt-local-2075 {
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 0 20px;
		padding: 0 56px 0 16px; /* 右端はぼかしの幅ぶん空けて、最後の項目もぼけずに読めるように */
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
		mask-image: linear-gradient(90deg, #000 85%, transparent);
	}
	.opt-local-2075::-webkit-scrollbar { display: none; }
	.opt-local-2075 a { flex: 0 0 auto; font-size: 12px; letter-spacing: 0.05em; white-space: nowrap; }
	.opt-all-2075 { margin-top: 64px; }
	.opt-all-2075__title .en { font-size: 20px; }
	.opt-all-2075 ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
	.opt-all-2075 li a { padding: 14px 16px 14px 0; font-size: 12px; }
}

/* ============================================================
   オプション下層 (body.sec-option = /option/ 配下) の共通トーン
   ============================================================ */
/* ページタイトル: 料金ページと同じ形 (英字 Domaine + 日本語 小) */
body.sec-option h1.midasi,
body.sec-option main > h2.midasi {
	margin: 48px auto 70px !important; /* .mb20 (!important) 付きのページもそろえる */
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option h1.midasi em,
body.sec-option main > h2.midasi em {
	display: block;
	margin: 0 0 20px;
	padding-left: 0.15em;
	font-family: var(--f-en-main) !important;
	font-style: normal;
	font-weight: 500;
	font-size: 55px;
	letter-spacing: 0.15em;
	line-height: 1;
	color: var(--c-accent);
	text-transform: uppercase;
}
body.sec-option h1.midasi small,
body.sec-option main > h2.midasi small { font-size: inherit; }

/* 英字・数字の飾り文字 (Times 指定) を Domaine に */
body.sec-option .times { font-family: var(--f-en-main) !important; }

/* リード見出し (h3.lead): 明朝・中央ぞろえ */
body.sec-option h3.lead {
	text-align: center !important;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text) !important;
}

/* 「英字 + 日本語」型の見出し (h3.midasi.v2): OTHER OPTIONS と同じ形 (オプション下層と /info/ 配下と /flow/ とお役立ち情報) */
:is(body.sec-option, body.sec-info, body.sec-flow, body.sec-useful) h3.midasi.v2 {
	margin: 0 auto 32px;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
/* 下層 v118: 色の帯がなくなって区切りが弱いので、英字と日本語の間にグレーの 1px の線。英字は大きく (26px → 34px)・字間はページの見出し (h1) と同じ 0.15em に */
:is(body.sec-option, body.sec-info, body.sec-flow, body.sec-useful) h3.midasi.v2 em {
	display: block;
	max-width: 1000px;
	margin: 0 auto 16px;
	padding: 0 0 18px 0.15em;
	border-bottom: 1px solid #C9CDCF;
	font-family: var(--f-en-main) !important;
	font-style: normal;
	font-weight: 500;
	font-size: 34px;
	letter-spacing: 0.15em;
	line-height: 1;
	color: var(--c-accent);
	text-transform: uppercase;
}

@media only screen and (max-width: 767px) {
	body.sec-option h1.midasi,
	body.sec-option main > h2.midasi { margin: 32px auto 40px !important; font-size: 11px; letter-spacing: 0.15em; }
	body.sec-option h1.midasi em,
	body.sec-option main > h2.midasi em { margin-bottom: 12px; font-size: 34px; }
	body.sec-option h3.lead { font-size: 16px; letter-spacing: 0.1em; }
	:is(body.sec-option, body.sec-info, body.sec-flow, body.sec-useful) h3.midasi.v2 em { margin-bottom: 12px; padding-bottom: 14px; font-size: 24px; }
}

/* ---------- オプション各項目トップのカード一覧 (.gray-box 内の .option-list / ドレス事前試着の #upgrade-prices も同じ) ----------
   オプション一覧 (#option-list-index) のカードと同じ見た目にそろえる */
body.sec-option .gray-box {
	padding: 72px 0 80px;
	background: #F1F4F4; /* 旧: ストライプ画像 bg_line.png */
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 60px 50px;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
	text-align: left; /* #upgrade-prices は option.css で中央ぞろえ */
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li {
	display: flex;
	width: auto;
	margin: 0;
	overflow: visible;
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li > a {
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0;
	color: inherit;
	text-decoration: none;
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li > a > * { flex-shrink: 0; }
/* option-index.js (行の高さ揃え) が書き込む高さを無効に。ボタンは CSS で下端をそろえるので不要で、
   フォント読み込み前の高さで固定されると説明文が途中で切れるため */
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li .midasi3,
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li p { height: auto !important; }
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li > a:hover { opacity: 0.85; }
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li figure {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	outline: 0;
	background: none;
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li figure img {
	display: block;
	width: 100% !important;
	height: 100%;
	object-fit: cover;
}
/* カット数バッジ: 赤・角丸をやめて新トーンの色に */
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li figure.cut:before {
	background-color: #7D8A8E;
	border-radius: 0;
	font-family: var(--f-en-main);
	font-weight: 500;
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li .midasi3.v2 {
	margin: 22px 0 10px;
	padding: 0;
	border: 0;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li p {
	margin: 0 0 30px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 24px;
	color: var(--c-text-warm);
}
/* 価格バー: オプション一覧のボタン (.btn-line-2075) と同じ見た目 */
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li h5 {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	width: calc(100% - 20px);
	min-height: 44px;
	height: auto;
	margin: auto 0 0;
	padding: 6px 10px;
	box-sizing: border-box;
	overflow: visible;
	background: var(--c-footer);
	color: #FFFFFF;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.4;
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li h5:before { display: none; }
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li h5::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -10px;
	width: 20px;
	height: 1px;
	background: #DCE2E2;
}
body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li h5 em {
	font-family: var(--f-num);
	font-style: normal;
	font-weight: 500;
	font-size: 17px;
	letter-spacing: 0.02em;
}

@media only screen and (max-width: 767px) {
	body.sec-option .gray-box { padding: 48px 0 56px; }
	body.sec-option :is(.gray-box, #upgrade-prices) .option-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; }
	body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li .midasi3.v2 { margin-top: 14px; font-size: 13px; letter-spacing: 0.05em; }
	body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li p { margin-bottom: 18px; font-size: 12px; letter-spacing: 0.05em; line-height: 20px; }
	body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li h5 { font-size: 11px; letter-spacing: 0.02em; }
	body.sec-option :is(.gray-box, #upgrade-prices) .option-list > li h5 em { font-size: 14px; }
}

/* ---------- オプション下層: ドレス事前試着 (dress/upgrade.html) のおすすめ追加オプション: 上下の余白 ---------- */
body.sec-option #upgrade-prices { padding-top: 72px; padding-bottom: 80px; }
@media only screen and (max-width: 767px) {
	body.sec-option #upgrade-prices { padding-top: 48px; padding-bottom: 56px; }
}

/* ---------- オプション下層: 見出し下の飾り (.title-bg_line / option-subpage.css・option-spa_esthetics.css) はなし ----------
   キッズアテンド・フォトグラファー指名料・スパで使用。見出しは明朝のリード見出しと同じ大きさに */
body.sec-option .title-bg_line {
	margin-bottom: 32px;
	padding-bottom: 0;
	background: none;
	font-family: var(--f-serif-jp) !important;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text);
}
/* 見出しの帯 (.title-bg「4時間パック」など): 角丸をやめる */
body.sec-option .title-bg,
body.sec-option .option_table-wp .title-bg {
	border-radius: 0;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
	body.sec-option .title-bg_line { margin-bottom: 24px; font-size: 16px; letter-spacing: 0.1em; }
}

/* ---------- オプション下層: スパ・エステの各メニュー (.title-deco / .price-wp / option-subpage.css) ----------
   見出し上の王冠 (title-deco.svg) はなし / 価格の水色 (.tx_blue2) をやめて数字は Fjalla One */
body.sec-option .title-deco {
	margin-bottom: 28px;
	padding-top: 0;
	background: none;
	font-family: var(--f-serif-jp) !important;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option .price-wp,
body.sec-option .price-wp .tx_blue2 { color: var(--c-text); }
body.sec-option .price-wp { border-color: #C9CDCF; }
body.sec-option .price-wp em {
	margin: 0 4px;
	font-family: var(--f-num) !important;
	font-style: normal;
	font-weight: normal;
	font-size: 32px;
	letter-spacing: 0.02em;
	line-height: 1.4;
}
body.sec-option .price-wp small {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
}
/* 施術部位のアイコン (ヘッド・デコルテ・ボディ・フット / .ico-part): 元は 1つ = 幅 24.3% + 左右 4.5% で 3つしか入らず、4つ目が次の行に落ちていた。
   いくつあっても 1行に並ぶように */
body.sec-option .ico-part { display: flex; flex-wrap: nowrap; justify-content: center; gap: 16px; width: auto; max-width: none; letter-spacing: normal; }
body.sec-option .ico-part li { flex: 0 0 auto; width: 80px; margin: 0; }
body.sec-option .ico-part li img { display: block; width: 100%; height: auto; }
@media only screen and (max-width: 767px) {
	body.sec-option .title-deco { margin-bottom: 20px; font-size: 16px; letter-spacing: 0.05em; }
	body.sec-option .ico-part { gap: 10px; }
	body.sec-option .ico-part li { width: 64px; }
	body.sec-option .price-wp em { font-size: 26px; }
	body.sec-option .price-wp small { font-size: 13px; }
}

/* ---------- オプション下層: その他 (others/rainy_day・hula・early) ----------
   写真は本文幅の 16:9 (撮影ロケーションのスライドショーと同じ / 推奨 2000×1125px)、価格はその下の中央 */
body.sec-option .others-wp .post { letter-spacing: 0.05em; }
body.sec-option .others-wp .post .ph { display: block; width: 100%; max-width: none; margin: 0 0 32px; }
body.sec-option .others-wp .post .ph img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
body.sec-option .others-wp .post > div { display: block; width: auto; }
body.sec-option .others-wp .post .mincho {
	margin: 0 0 8px;
	padding: 0;
	border: 0;
	font-family: var(--f-sans-jp) !important;
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option .others-wp .post .mincho em {
	margin: 0 4px 0 8px;
	font-family: var(--f-num); /* 下層 v97: 価格なので Domaine → Fjalla One */
	font-style: normal;
	font-weight: normal;
	font-size: 32px;
	letter-spacing: 0.02em;
	vertical-align: -3px;
}
body.sec-option .others-wp .post .mincho small { font-size: 14px; }
/* 注意事項の枠: 斜線・角丸・アイコンなし */
body.sec-option .others-wp .annotation {
	border-radius: 0;
	box-shadow: none;
	background: #F1F4F4;
}
body.sec-option .others-wp .annotation.attention .midasi3 {
	margin-bottom: 16px;
	padding-top: 0;
	background: none;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.15em;
	line-height: 1.6;
	color: var(--c-text);
}
/* 下層 v89: 注意書きの枠 (.annotation.no-icon / ベビーシッター「ハワイ州の法律」): 斜線・角丸なしの薄い面。見出しは明朝 */
body.sec-option .annotation.no-icon {
	padding: 40px 48px;
	border-radius: 0;
	box-shadow: none;
	background: #F1F4F4;
}
body.sec-option .annotation.no-icon .midasi3 {
	margin: 0 0 16px;
	padding: 0;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.15em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-option .annotation.no-icon p {
	margin: 0;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2;
	color: var(--c-text-warm);
}
body.sec-option .annotation.no-icon p + p { margin-top: 16px; }
@media only screen and (max-width: 767px) {
	body.sec-option .annotation.no-icon { padding: 32px 20px; }
	body.sec-option .annotation.no-icon .midasi3 { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .annotation.no-icon p { font-size: 13px; }
}
/* 下層 v95: パック料金の一覧 (.place_price-wp / キッズ用追加アテンドのビーチフォト): 料金表と同じ形に。● なし・数字は Fjalla One・罫線は #C9CDCF */
body.sec-option .place_price-wp > dl { border-bottom: 1px solid #C9CDCF; }
body.sec-option .place_price-wp > dl > dt {
	padding-left: 0;
	text-indent: 0;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.05em;
	color: var(--c-text-warm);
}
body.sec-option .place_price-wp > dl > dd {
	font-family: var(--f-sans-jp);
	font-size: 13px;
	color: var(--c-text);
}
body.sec-option .place_price-wp > dl > dd em {
	margin-right: 4px;
	font-family: var(--f-num) !important; /* common-2075.css の .mincho (明朝 !important) より優先 */
	font-style: normal;
	font-weight: 400;
	font-size: 30px;
	letter-spacing: 0.05em;
	line-height: 1.2;
}
@media only screen and (max-width: 767px) {
	body.sec-option .place_price-wp > dl > dt { font-size: 13px; }
	body.sec-option .place_price-wp > dl > dd em { font-size: 24px; }
}
/* 下層 v97: 価格の数字を Fjalla One に (プランと同じ)
   早朝オプションの見出しの金額 / ヘアメイクのリードの金額 (.lead_box span.price) / データ美肌の茶色の枠 (#bihada-feature .num) */
body.sec-option #early-morning-tables > figure h4 strong { margin: 0 2px; font-family: var(--f-num); font-weight: 400; font-size: 1.5em; letter-spacing: 0.02em; }
body.sec-option .lead_box span.price { font-family: var(--f-num) !important; font-weight: 400; letter-spacing: 0.02em; } /* common-2075.css の .mincho (明朝 !important) より優先 */
body.sec-option #bihada-feature h3 .num { margin: 0 2px; font-weight: 400; font-size: 1.2em; letter-spacing: 0.02em; }
/* アルバム・ムービーの表 (table.table-1 / table-2): 金額が DB から出るので、セル全体を「数字は Fjalla One・日本語は Noto Sans JP」の並びに */
body.sec-option :is(table.table-1, table.table-2) td { font-family: "Fjalla One", var(--f-sans-jp); letter-spacing: 0.05em; }
/* 下層 v99: オプションの選び方 (how_to) の灰色の枠の金額: 数字だけ Fjalla One (名前は明朝のまま) */
body.sec-option .txt.mincho .num { margin: 0 2px 0 4px; font-weight: 400; font-size: 1.3em; letter-spacing: 0.02em; }
/* 下層 v103: スライドのページ送りの点など Swiper の標準の青 (--swiper-theme-color) を新トーンに */
body.sec-option { --swiper-theme-color: #7D8A8E; }
/* 下層 v117: 国内事前試着のページの国内サロン (#salon / #upgrade-salon-list): 営業時間と試着のご予約のボタン (国内サロンのページをなくしたため) */
body.sec-option #salon { scroll-margin-top: 140px; }
body.sec-option #upgrade-salon-list > li p.hours { margin-top: 6px; font-size: 13px; letter-spacing: 0.04em; color: #707070; }
body.sec-option .upgrade-salon-reserve-2075 { margin: 48px auto 32px; text-align: center; }
body.sec-option .upgrade-salon-reserve-2075 p { margin: 0 0 24px; font-size: 14px; letter-spacing: 0.05em; line-height: 2; color: var(--c-text-warm); }
body.sec-option .upgrade-salon-reserve-2075 nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 48px; }
body.sec-option .upgrade-salon-reserve-2075 .btn-line-2075 { display: block; width: 320px; max-width: calc(100% - 20px); }
@media only screen and (max-width: 767px) {
	body.sec-option .upgrade-salon-reserve-2075 p { font-size: 13px; text-align: left; }
}
/* リードの中の小見出し (雨の日「お申し込み可能なお客様」) */
.sub-head-2075 {
	margin: 40px auto 12px;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.15em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
/* 雨の日の流れ: 角丸なし / 水色の強調文字はアクセントの濃い色に */
body.sec-option .rainy_flow-wp .group dl { border-radius: 0; border-color: #C9CDCF; }
body.sec-option .rainy_flow-wp .group dl dd.box { border-radius: 0; }
body.sec-option .rainy_flow-wp .tx_blue2 { color: #7D8A8E; }
/* main 直下の英字セット見出し (雨の日の FLOW など) は上に余白 */
body.sec-option main > h3.midasi.v2 { margin-top: 88px; }
@media only screen and (max-width: 767px) {
	body.sec-option .others-wp .post .ph { margin-bottom: 24px; }
	body.sec-option .others-wp .post .mincho { font-size: 13px; }
	body.sec-option .others-wp .post .mincho em { font-size: 26px; }
	body.sec-option .others-wp .annotation.attention .midasi3 { font-size: 16px; letter-spacing: 0.1em; }
	.sub-head-2075 { margin-top: 32px; font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option main > h3.midasi.v2 { margin-top: 56px; }
}

/* ---------- オプション下層: レセプション・パーティ装花の見出し (reception.css / tableflower.css) ----------
   見出し下の飾り (line_01.png) はなし / 書体は明朝 (色はホテルごとの配色のまま) */
body.sec-option :is(.rcp_section_head, .rcp_capacity_center, h3.h_1) { padding-bottom: 0; background-image: none; }
body.sec-option :is(.rcp_section_head, h3.h_1) {
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.15em;
	line-height: 1.6;
}
/* 価格の数字は Fjalla One / 品番は生花ブーケの一覧と同じ (色は reception.css・tableflower.css で新トーンに置き換え済み) */
body.sec-option .rcp_price {
	font-family: var(--f-num);
	font-weight: normal;
	font-size: 24px;
	letter-spacing: 0.02em;
}
body.sec-option .rcp_price small { margin-left: 2px; font-family: var(--f-sans-jp); font-size: 13px; }
body.sec-option .tf_caption { color: var(--c-text-warm); }
/* 下層 v96: 見出しの価格の数字もプランと同じ Fjalla One (太字にしない) */
body.sec-option h3.h_1 .h_1-price { margin-left: 0.2em; font-family: var(--f-num); font-weight: 400; font-size: 1.15em; letter-spacing: 0.02em; }
/* 下層 v96: グループ名 (ランダム・フロートなど) は明朝・下線なし */
body.sec-option .tf_group .group_head .group_name { padding: 0; border-bottom: 0; font-family: var(--f-serif-jp); font-weight: 700; font-size: 20px; letter-spacing: 0.15em; line-height: 1.6; }
body.sec-option .tf_group .group_head .group_price {
	margin-top: 10px;
	font-family: var(--f-num);
	font-weight: normal;
	font-size: 22px;
	letter-spacing: 0.02em;
}
body.sec-option .tf_group .item .name {
	margin-top: 14px;
	padding: 0;
	border: 0;
	font-family: var(--f-en-main);
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.1em;
	color: var(--c-accent);
}
body.sec-option .tf_group .item .txt {
	margin-top: 6px;
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option :is(.rcp_section_head, h3.h_1) { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .rcp_price { font-size: 20px; }
	body.sec-option .tf_group .group_head .group_name { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .tf_group .group_head .group_price { font-size: 18px; }
	body.sec-option .tf_group .item .name { margin-top: 10px; font-size: 13px; }
	body.sec-option .tf_group .item .txt { font-size: 12px; }
}

/* ---------- オプション下層: スパ紹介 (spa_esthetics/spa.html) のリード見出し・締めの一文 (.lead-2075__title を使用) ---------- */
body.sec-option :is(h3, h4).lead-2075__title { text-align: center; }
body.sec-option .spa-closing-2075 { margin: 56px auto 0; }
@media only screen and (max-width: 767px) {
	body.sec-option .spa-closing-2075 { margin-top: 40px; }
}

/* ---------- オプション下層: 見出しの下の飾り罫 (.decal-midasi::after / option.css) はなし ---------- */
body.sec-option .decal-midasi::after { display: none; }

/* ---------- オプション下層: 「ここがおすすめ！」の帯 (.stripe_box / option.css・rehearsal_wedding.css) ----------
   ドレス事前試着・ヘアメイクのリハーサル / カウンセリング付きなどで共通。斜線の背景と見出し下の飾りをやめて新トーンに */
body.sec-option .stripe_box {
	padding-bottom: 80px;
	background: #E6ECEC; /* 旧: 斜線の画像 bg_stripe_1.png */
}
body.sec-option .gray-box:has(+ .stripe_box) { margin-bottom: 0 !important; } /* 上のブロックとの白い隙間をなくす */
body.sec-option .heading_2 {
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text);
	background: none; /* 見出し下の飾り line_1.png */
}
body.sec-option .stripe_box > .heading_2 { margin: 0; padding: 72px 16px 0; }
body.sec-option .stripe_box .items { margin-top: 56px; }
body.sec-option .stripe_box .item .txt .num {
	font-family: var(--f-en-main) !important; /* common-2075.css の .num (Fjalla One !important) より優先 */
	font-style: normal;
	font-weight: 500;
	font-size: 40px;
	letter-spacing: 0.05em;
	line-height: 1;
	color: var(--c-accent);
}
body.sec-option .stripe_box .item .txt .c_blue {
	margin: 14px 0 10px;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 16px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option .stripe_box .item .txt .t {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option .stripe_box { padding-bottom: 56px; }
	body.sec-option .heading_2 { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .stripe_box > .heading_2 { padding-top: 48px; }
	body.sec-option .stripe_box .items { margin-top: 32px; }
	body.sec-option .stripe_box .item .txt .num { font-size: 28px; }
	body.sec-option .stripe_box .item .txt .c_blue { margin: 8px 0 6px; font-size: 14px; letter-spacing: 0.05em; }
	body.sec-option .stripe_box .item .txt .t { font-size: 13px; letter-spacing: 0.05em; line-height: 1.8; }
}

/* ---------- オプション下層: ヘアメイク各ページのリード (.lead_box / designation.css・rehearsal_wedding.css など) ----------
   見出し (.big / .heading) + 本文 (.small / .txt) + 価格。オプション一覧のリード (.lead-2075) と同じ書体に
   ※ ブーケ・装花などの .lead_box は見出しが .b_lead で別の形なので対象外 */
body.sec-option .lead_box:has(> .big, > .heading) { text-align: center; }
body.sec-option .lead_box > p:is(.big, .heading) {
	margin: 0 auto 22px;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option .lead_box:has(> .big, > .heading) > p:is(.small, .txt) {
	margin-top: 0;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	color: var(--c-text-warm);
}
/* 価格: 数字は Fjalla One / 「指名料」「円」は Noto Sans JP */
body.sec-option .lead_box:has(> .big, > .heading) > p.price {
	margin-top: 28px;
	font-family: var(--f-num) !important;
	font-weight: normal;
	font-size: 32px;
	letter-spacing: 0.02em;
	line-height: 1.4;
	color: var(--c-text);
}
body.sec-option .lead_box:has(> .big, > .heading) > p.price strong { font-weight: normal; }
body.sec-option .lead_box:has(> .big, > .heading) > p.price .small {
	margin: 0 2px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
}
@media only screen and (max-width: 767px) {
	body.sec-option .lead_box > p:is(.big, .heading) { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .lead_box:has(> .big, > .heading) > p:is(.small, .txt) { padding: 0 2px; font-size: 13px; letter-spacing: 0.05em; text-align: left; }
	body.sec-option .lead_box:has(> .big, > .heading) > p.price { font-size: 26px; }
	body.sec-option .lead_box:has(> .big, > .heading) > p.price .small { font-size: 13px; }
}

/* ---------- オプション下層: ブーケ・テーブル装花・レセプションのリード (.lead_box > .b_lead + .txt) ----------
   ヘアメイクのリードと同じ: 見出しは明朝・本文はゴシックで中央ぞろえ */
body.sec-option .lead_box > .b_lead {
	margin: 0 auto 22px;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-option .lead_box:has(> .b_lead) > .txt {
	margin-top: 0;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	text-align: center;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option .lead_box > .b_lead { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .lead_box:has(> .b_lead) > .txt { font-size: 13px; letter-spacing: 0.05em; text-align: left; }
}

/* ---------- オプション下層: 生花ブーケ (bouquet/bouquet.html) のおすすめ・一覧 ----------
   小見出しは英語とのセット (h3.midasi.v2) / 本文はカード一覧と同じ / 品番は Domaine・価格は Fjalla One */
body.sec-option #bouquet-recommend { margin-top: 0; padding: 72px 16px 88px; }
body.sec-option #bouquet-recommend .white {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 50px;
	width: auto;
	max-width: 1000px;
	margin: 0 auto;
	overflow: visible;
}
body.sec-option #bouquet-recommend .item { width: auto; float: none; margin: 0 !important; }
body.sec-option #bouquet-recommend .item img { display: block; width: 100%; }
body.sec-option #bouquet-recommend .item .txt {
	margin-top: 18px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 24px;
	color: var(--c-text-warm);
}
body.sec-option #bouquet-list { margin-top: 0; padding: 72px 16px 80px; }
body.sec-option #bouquet-list h3.midasi.v2 small { font-size: inherit; }
body.sec-option #bouquet-list .oh_1 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px 50px;
	width: auto;
	max-width: 1000px;
	margin: 0 auto;
	overflow: visible;
}
body.sec-option #bouquet-list .oh_1 > div { width: auto; float: none; margin: 0 !important; padding: 0; }
body.sec-option #bouquet-list .item img { display: block; width: 100%; }
body.sec-option #bouquet-list .item .name {
	margin-top: 16px;
	padding: 0;
	border: 0;
	font-family: var(--f-en-main);
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.1em;
	line-height: 1;
	color: var(--c-accent);
}
body.sec-option #bouquet-list .item .bq_price {
	margin-top: 8px;
	padding: 0;
	font-family: var(--f-num);
	font-weight: normal;
	font-size: 22px;
	letter-spacing: 0.02em;
	line-height: 1.2;
	color: var(--c-text);
}
body.sec-option #bouquet-list .item .txt {
	margin-top: 6px;
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: var(--c-text-warm);
}
body.sec-option #bouquet-list .take_out { padding: 28px 24px; }
body.sec-option #bouquet-list .take_out h3 {
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.05em;
	color: var(--c-text);
}
body.sec-option #bouquet-list .take_out p {
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option #bouquet-recommend { padding: 48px 16px 56px; }
	body.sec-option #bouquet-recommend .white { grid-template-columns: 1fr; gap: 36px; }
	body.sec-option #bouquet-recommend .item .txt { margin-top: 12px; font-size: 13px; letter-spacing: 0.05em; line-height: 22px; }
	body.sec-option #bouquet-list { padding: 48px 16px 56px; }
	body.sec-option #bouquet-list .oh_1 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
	body.sec-option #bouquet-list .item .name { margin-top: 10px; font-size: 13px; }
	body.sec-option #bouquet-list .item .bq_price { font-size: 18px; }
	body.sec-option #bouquet-list .item .txt { font-size: 12px; }
}

/* ---------- オプション下層: 会場デコレーションの色の一覧 (#decoration-list / decoration.html) ----------
   下層 v93: 見出し (.midasi3.v2) の青い文字と左の線 (option.css) をやめて、オプションのカードの見出しと同じ形に */
body.sec-option #decoration-list .midasi3.v2 {
	margin: 16px 0 8px;
	padding: 0;
	border: 0;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option #decoration-list > li p {
	margin: 0;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 24px;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option #decoration-list .midasi3.v2 { margin-top: 12px; font-size: 13px; letter-spacing: 0.05em; }
	body.sec-option #decoration-list > li p { font-size: 13px; letter-spacing: 0.05em; line-height: 22px; }
}
/* ---------- オプション下層: 会場装飾のフラワーリース・フラワーシャワー (.w1000 > .h-1 / .p-1 / .price / petal_toss.css) ----------
   ほかのリードと同じ: 見出しは明朝・本文はゴシック・価格の数字は Fjalla One */
body.sec-option .w1000 > .h-1 {
	margin: 0 auto 22px;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-option .w1000 > .p-1 {
	margin-top: 0;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	text-align: center;
	color: var(--c-text-warm);
}
body.sec-option .w1000 > .p-1 img { display: block; max-width: 100%; margin: 16px auto 0; }
body.sec-option :is(.w1000 > .price, .in > div.price) {
	margin-top: 32px;
	font-family: var(--f-num) !important;
	font-weight: normal;
	font-size: 32px;
	letter-spacing: 0.02em;
	line-height: 1.4 !important;
	color: var(--c-text);
}
body.sec-option :is(.w1000 > .price, .in > div.price) :is(small, .small) {
	margin: 0 4px;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.05em;
}
body.sec-option .w1000 + .blue-box .exp {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option .w1000 > .h-1 { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .w1000 > .p-1 { font-size: 13px; letter-spacing: 0.05em; text-align: left; }
	body.sec-option :is(.w1000 > .price, .in > div.price) { font-size: 26px; }
	body.sec-option :is(.w1000 > .price, .in > div.price) :is(small, .small) { font-size: 13px; }
	body.sec-option .w1000 + .blue-box .exp { font-size: 13px; letter-spacing: 0.05em; }
}

/* ---------- オプション下層: ボタン色の帯 (.option-blue-banner / ドレス事前試着・レースブラウス) ----------
   見出しは明朝・本文はゴシック・価格の数字は Fjalla One。黄色の強調と白い罫線はなし */
body.sec-option .option-blue-banner { padding: 56px 0 64px; }
body.sec-option .option-blue-banner h3 {
	font-family: var(--f-serif-jp) !important;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: #FFFFFF;
}
body.sec-option .option-blue-banner h3:not(:last-child) { margin-bottom: 22px; }
body.sec-option .option-blue-banner h3 strong { color: inherit; }
body.sec-option .option-blue-banner p {
	font-family: var(--f-sans-jp);
	font-weight: 500; /* 背景が淡いので本文も少し太く */
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	color: #FFFFFF;
}
body.sec-option .option-blue-banner p.price-info {
	margin-top: 32px;
	padding-top: 0;
	border-top: 0;
	font-size: 14px;
	line-height: 2.4 !important; /* インラインの line-height:1.4 を上書き */
}
/* 下層 v97: 料金が複数行のとき (.price-info--rows / ドレス事前試着): 名前は左・金額は右にそろえる (中央ぞろえだと名前の長さで金額がずれるため) */
body.sec-option .option-blue-banner p.price-info--rows br { display: none; }
body.sec-option .option-blue-banner p.price-info--rows .price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 24px;
	width: min(100%, 460px);
	margin: 0 auto;
	text-align: left;
}
body.sec-option .option-blue-banner p.price-info--rows .price-row__num { white-space: nowrap; }
body.sec-option .option-blue-banner p.price-info strong {
	margin: 0 4px 0 16px;
	font-family: var(--f-num) !important;
	font-weight: normal;
	font-size: 32px;
	letter-spacing: 0.02em;
	line-height: 1;
	vertical-align: -3px;
}
@media only screen and (max-width: 767px) {
	body.sec-option .option-blue-banner { padding: 40px 0 48px; }
	body.sec-option .option-blue-banner h3 { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-option .option-blue-banner p { font-size: 13px; letter-spacing: 0.05em; }
	body.sec-option .option-blue-banner p.price-info strong { margin-left: 10px; font-size: 26px; }
}

/* ---------- オプション下層: ドレス事前試着のセレクションドレス (#upgrade-examples-wrap) ----------
   上のバナーとの白い隙間をなくす / リード見出しは明朝 (.lead-2075__title と同じ) */
body.sec-option .option-blue-banner:has(+ .gray-box) { margin-bottom: 0 !important; }
body.sec-option #upgrade-examples-wrap .in > h4 {
	margin: 0 auto 22px;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
@media only screen and (max-width: 767px) {
	body.sec-option #upgrade-examples-wrap .in > h4 { font-size: 16px; letter-spacing: 0.1em; }
}

/* ---------- オプション下層: ドレス事前試着の「ご利用の流れ」(#upgrade-flow) ----------
   帯の色は上の「ここがおすすめ！」(#E6ECEC) と交互になるよう一段明るく / カードの見出しと本文はカード一覧と同じ */
body.sec-option .stripe_box + div.midasi2 { background: #F1F4F4; }
body.sec-option #upgrade-flow { margin-top: 40px; }
body.sec-option #upgrade-flow > li h4 {
	margin: 14px 0 8px;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option #upgrade-flow > li > p {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 24px;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option #upgrade-flow { margin-top: 24px; }
	body.sec-option #upgrade-flow > li h4 { margin-top: 10px; font-size: 13px; letter-spacing: 0.05em; }
	body.sec-option #upgrade-flow > li > p { font-size: 12px; letter-spacing: 0.05em; line-height: 20px; }
}

/* ---------- オプション下層: 帯状のセクション (div.midasi2) ---------- */
/* 旧: 斜めの水色2色 (common.css)。すぐ上のカード一覧 (#F1F4F4) と区別できるよう一段濃い無地に */
body.sec-option div.midasi2 {
	margin: 0 !important;
	padding: 72px 0 80px;
	background: #E6ECEC;
	font-size: 14px;
	letter-spacing: normal;
	color: var(--c-text-warm);
}
body.sec-option div.midasi2:before { display: none; }

/* ---------- オプション下層・お役立ち情報・選ばれる7つのポイント: リンクボタン (a.normal = 濃いグレー / a.blue = 青 / a.green = 緑, common.css) ---------- */
:is(body.sec-option, body.sec-useful, body.sec-service) a.normal,
:is(body.sec-option, body.sec-useful, body.sec-service) a.blue,
:is(body.sec-option, body.sec-useful, body.sec-service) a.green {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	height: auto;
	padding: 6px 16px;
	border-radius: 0;
	background: var(--c-footer); /* 右端の矢印画像も消える */
	color: #FFFFFF;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.4;
	box-shadow: none;
}
:is(body.sec-option, body.sec-useful, body.sec-service) a.normal:before,
:is(body.sec-option, body.sec-useful, body.sec-service) a.blue:before,
:is(body.sec-option, body.sec-useful, body.sec-service) a.green:before { display: none; }
:is(body.sec-option, body.sec-useful, body.sec-service) a.normal::after,
:is(body.sec-option, body.sec-useful, body.sec-service) a.blue::after,
:is(body.sec-option, body.sec-useful, body.sec-service) a.green::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -10px;
	width: 20px;
	height: 1px;
	background: #DCE2E2;
}
:is(body.sec-option, body.sec-useful, body.sec-service) a.normal:hover,
:is(body.sec-option, body.sec-useful, body.sec-service) a.blue:hover,
:is(body.sec-option, body.sec-useful, body.sec-service) a.green:hover {
	opacity: 0.85;
	box-shadow: none;
	color: #FFFFFF;
}

/* ---------- オプション下層: プランに含まれる小物の切り替えタブ (.included-item-navi / option-subpage.css) ----------
   サブメニューのタブ (.opt-local-2075) と同じ見た目: 区切り線なし・表示中は黒 + 下線 */
body.sec-option .included-item-navi { padding: 0; }
body.sec-option .included-item-navi ul > li { padding: 0 14px; border-right: 0; line-height: 1.6; }
body.sec-option .included-item-navi ul > li a {
	padding: 6px 2px;
	border-bottom: 1px solid transparent;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #7D8A8E;
	text-decoration: none;
	transition: color .2s, border-color .2s;
}
body.sec-option .included-item-navi ul > li a:hover { color: var(--c-text); text-decoration: none; }
body.sec-option .included-item-navi ul > li a.active { border-bottom-color: var(--c-text); color: var(--c-text); }
@media only screen and (max-width: 767px) {
	body.sec-option .included-item-navi ul > li { padding: 0 8px; }
	body.sec-option .included-item-navi ul > li a { font-size: 13px; letter-spacing: 0.05em; }
}

/* ---------- オプション下層: USEFUL 記事一覧 (option/index-useful-list.tpl) ---------- */
/* カード一覧 (.gray-box .option-list) と同じ見た目。カード全体がリンク */
body.sec-option .in:has(+ .in > #dress-tux-useful-list) { padding-top: 72px; } /* 見出し上の余白 */
body.sec-option #dress-tux-useful-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 60px 50px;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
}
body.sec-option #dress-tux-useful-list > li {
	display: flex;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	overflow: visible;
}
body.sec-option #dress-tux-useful-list > li > a {
	display: flex;
	flex-direction: column;
	width: 100%;
	color: inherit;
	text-decoration: none;
}
body.sec-option #dress-tux-useful-list > li > a > * { flex-shrink: 0; }
body.sec-option #dress-tux-useful-list > li > a:hover { opacity: 0.85; }
body.sec-option #dress-tux-useful-list figure {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
body.sec-option #dress-tux-useful-list figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
body.sec-option #dress-tux-useful-list h4 {
	margin: 18px 0 6px;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #7D8A8E;
}
body.sec-option #dress-tux-useful-list .midasi3 {
	margin: 0 0 10px;
	padding: 0;
	border: 0;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-option #dress-tux-useful-list p {
	margin: 0 0 30px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 24px;
	color: var(--c-text-warm);
}
body.sec-option #dress-tux-useful-list .btn-line-2075 { margin-top: auto; }

/* ---------- オプション下層: 写真 + 説明文の一覧 (#dress-tux-blog-list: ドレスの事前試着 / リムジンのドライバーブログ) ----------
   説明文をカード一覧の本文と同じ書体・サイズに */
body.sec-option #dress-tux-blog-list > li p {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 24px;
	text-align: left;
	color: var(--c-text-warm);
}
@media only screen and (max-width: 767px) {
	body.sec-option #dress-tux-blog-list > li p { font-size: 12px; letter-spacing: 0.05em; line-height: 20px; }
}

/* ---------- オプション下層: 写真のスライドショー (plan/inc/plan-main-img.tpl + common/js/plan.js の slick) ----------
   旧: レンガの背景 + 影 + 水色帯のサムネイル → 白地に写真だけ。写真は 16:9 の枠に合わせて切り抜く (推奨 2000×1125px)
   ※ プランページも同じ部品。プランは Step 3 で合わせる予定なので、今は :is(body.sec-option, body.sec-plan) だけ */
:is(body.sec-option, body.sec-plan) #plan-top-slick-wrap {
	max-width: 1000px;
	margin: 0 auto 72px;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-wrap .in {
	max-width: none;
	margin: 0;
	padding: 0;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-shadow {
	position: relative;
	padding: 0;
	overflow: visible;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-shadow::after { display: none; }
:is(body.sec-option, body.sec-plan) #plan-top-slick {
	padding: 0;
	background: none;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-img {
	max-width: none;
	background: none;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-img figure,
:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs figure { margin: 0; }
:is(body.sec-option, body.sec-plan) #plan-top-slick-img figure img,
:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs figure img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-blue {
	overflow: hidden; /* slick がサムネイル幅を切り上げて数 px はみ出すので、メイン画像の幅で切る */
	margin: 12px 0 0;
	padding: 0;
	background: none;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs { margin: 0 -6px; }
:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs figure {
	padding: 0 6px;
	opacity: 0.45;
	transition: opacity .3s;
}
:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs figure:hover { opacity: 0.8; }
:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs figure.slick-current { opacity: 1; }
/* 何枚目かの表示 (01 / 08) */
.slick-count-2075 {
	position: absolute;
	right: 20px;
	bottom: 16px;
	z-index: 3;
	margin: 0;
	font-family: var(--f-en-main);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1;
	color: #FFFFFF;
	text-shadow: 0 0 8px rgba(0, 0, 0, 0.4);
	pointer-events: none;
}
.slick-count-2075__sep { margin: 0 0.5em; }

@media only screen and (max-width: 767px) {
	:is(body.sec-option, body.sec-plan) #plan-top-slick-wrap { margin-bottom: 48px; }
	:is(body.sec-option, body.sec-plan) #plan-top-slick-blue { margin-top: 8px; padding: 0 12px; }
	:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs { margin: 0 -3px; }
	:is(body.sec-option, body.sec-plan) #plan-top-slick-thumbs figure { padding: 0 3px; }
	.slick-count-2075 { right: 12px; bottom: 10px; font-size: 12px; }
}

/* ---------- オプション下層: 撮影ロケーション追加の各ページ (プランと共通の部品 / plan-subpage.css を上書き) ----------
   対象は #plan-subpage のある撮影ロケーション 11 ページと、同じ部品の枠に .box-2075 を付けたページ (朝早オプションのスケジュール)。
   プラン個別ページ (body.sec-plan) にも効かせる。ただしリード (#plan-intro-summary) はオプションだけ (プランは下の「プラン個別ページ」で別に指定) */

/* リード (見出し + 本文) はオプション一覧のリード (.lead-2075) と同じ */
body.sec-option #plan-subpage #plan-intro-summary .main_words {
	margin: 0 auto 22px !important;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-option #plan-subpage #plan-intro-summary > p:not(.main_words):not(.plan_price) {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 2;
	color: var(--c-text-warm);
}
/* 価格: 数字は Fjalla One / カット数と「円」は Noto Sans JP */
body.sec-option #plan-subpage #plan-intro-summary .plan_price {
	margin-top: 28px !important;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.4;
	color: var(--c-text);
}
body.sec-option #plan-subpage #plan-intro-summary .plan_price small { font-size: inherit; }
body.sec-option #plan-subpage #plan-intro-summary .plan_price strong {
	margin: 0 2px 0 8px;
	font-family: var(--f-num) !important;
	font-weight: normal;
	font-size: 32px;
	letter-spacing: 0.02em;
	line-height: 1;
	vertical-align: -2px;
}

/* 水色の背景をやめて白地に。下層 v89: 枠線と左右の余白もなし (プランのページは囲まずに並べているので合わせる) */
:is(body.sec-option, body.sec-plan) :is(#plan-subpage .blue-box, .blue-box.box-2075) {
	padding: 0;
	background: none;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage .blue-box, .blue-box.box-2075) > .in > div {
	padding: 72px 0 0 !important; /* インラインの padding:10px を上書き */
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage .blue-box, .blue-box.box-2075) section + section { margin-top: 80px; }

/* 見出し「プランに含まれるもの Included」: OTHER OPTIONS と同じ形 (英字が上・日本語が下) */
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-midasi1 {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	margin: 0 auto 32px !important;
	padding: 0;
	border: 0;
	font-family: var(--f-sans-jp) !important;
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	color: var(--c-text);
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-midasi1 > small {
	display: block;
	margin: 0 0 12px;
	padding-left: 0.25em;
	font-family: var(--f-en-main);
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.25em;
	line-height: 1;
	color: var(--c-accent);
	text-transform: uppercase;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage .blue-box, .blue-box.box-2075) .main_words {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	color: var(--c-text-warm);
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .bullet-list > li::before { background-color: #C9CDCF; }

/* 含まれるもののアイコン: 下層 v130 でデザイナー作り直しのアイコン (グレーの四角に白い絵と文字) に差し替えたので、
   水色 → グレーに塗る filter はやめる (かけると白い絵と文字も塗られてグレーの四角になる) */
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) #plan-include-icons-wrap { color: var(--c-accent); } /* 「+」の色 */
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-include-details > li > ul > li {
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.02em;
	line-height: 1.6;
	color: var(--c-text-warm);
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-include-details > li > ul > li:not(:first-child) { border-top: 1px solid #E6ECEC; }
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-include-details > li .plan-midasi2 {
	border-left-color: var(--c-accent);
	background-color: #F1F4F4;
	color: #7D8A8E;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-include-details > li > ul > li .title-s {
	border-radius: 0;
	background-color: var(--c-accent);
}
/* 「詳細」ボタン: 濃いグレー → ボタン色 */
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-include-details > li > ul > li > a {
	padding: 0.3em 0.7em;
	border-radius: 0;
	background-color: var(--c-footer);
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.1em;
	color: #FFFFFF;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-include-details > li > ul > li > a:hover {
	background-color: var(--c-footer);
	opacity: 0.85;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-include-details > li > ul > li > a::after { border-width: 1px 1px 0 0; }

/* スケジュール: 水色の時間・見出し・矢印・影 → 新トーン。項目の間は細い線だけ */
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li.after-shadow::after { display: none; }
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li:not(:last-child) { margin-bottom: 0; }
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li > div {
	padding: 24px 0;
	border-bottom: 1px solid #E6ECEC;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li:first-child > div { padding-top: 8px; }
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li:last-child > div { border-bottom: 0; }
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li:not(:last-child) > div::after { display: none; }
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .schedule-time-box {
	width: 4.5em;
	height: 4.5em;
	border-radius: 0;
	background-color: #F1F4F4;
	font-family: var(--f-en-main);
	font-size: 18px;
	letter-spacing: 0.02em;
	color: #7D8A8E;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li.extended > div > div,
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-schedule > li.extended .schedule-time-box {
	border-radius: 0;
	background-color: #F1F4F4;
	color: #7D8A8E;
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .schedule-text .midasi3 {
	margin-bottom: 8px;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: var(--c-text);
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .schedule-text p {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.8;
	color: var(--c-text-warm);
}
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .schedule-divider {
	border-radius: 0;
	background-color: #7D8A8E;
}

@media only screen and (max-width: 767px) {
	body.sec-option #plan-subpage #plan-intro-summary .main_words { font-size: 16px; letter-spacing: 0.1em; text-align: center; }
	body.sec-option #plan-subpage #plan-intro-summary > p:not(.main_words):not(.plan_price) { padding: 0 12px; font-size: 13px; letter-spacing: 0.05em; text-align: left; }
	body.sec-option #plan-subpage #plan-intro-summary > p:not(.main_words):not(.plan_price) br { display: none; }
	body.sec-option #plan-subpage #plan-intro-summary .plan_price { font-size: 13px; }
	body.sec-option #plan-subpage #plan-intro-summary .plan_price strong { font-size: 26px; }
	:is(body.sec-option, body.sec-plan) :is(#plan-subpage .blue-box, .blue-box.box-2075) > .in > div { padding: 56px 0 0 !important; }
	:is(body.sec-option, body.sec-plan) :is(#plan-subpage .blue-box, .blue-box.box-2075) section + section { margin-top: 56px; }
	:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-midasi1 > small { font-size: 20px; }
	:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .schedule-time-box { width: auto; height: auto; font-size: 16px; }
	:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .schedule-text .midasi3 { font-size: 14px; }
	:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .schedule-text p { font-size: 13px; }
}

/* ---------- オプション下層: 「詳細」のモーダル (plan/inc/popups.tpl + colorbox の className: variant2) ----------
   水色の見出し・角丸・水色の丸い閉じるボタン → 新トーン */
:is(body.sec-option, body.sec-plan) .plan-popup-wrap-round { border-radius: 0; }
:is(body.sec-option, body.sec-plan) .plan-popup-wrap h2 {
	padding: 20px 72px 20px 40px; /* 右は閉じるボタンの分 */
	border-bottom: 1px solid #E6ECEC;
	background-color: #F1F4F4;
}
:is(body.sec-option, body.sec-plan) .plan-popup-wrap h2 em.times {
	font-family: var(--f-serif-jp) !important;
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: var(--c-text);
}
:is(body.sec-option, body.sec-plan) .plan-popup-wrap > .oh { padding: 32px 40px 40px; }
:is(body.sec-option, body.sec-plan) .plan-popup-wrap > .oh p {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	color: var(--c-text-warm);
}
:is(body.sec-option, body.sec-plan) .plan-popup-wrap > .oh > figure > ul > li { background-color: #C9CDCF; }
:is(body.sec-option, body.sec-plan) .plan-popup-wrap > .oh > figure > ul > li.active { background-color: #7D8A8E; }
:is(body.sec-option, body.sec-plan) #colorbox.variant2 #cboxClose {
	top: 0;
	right: 0;
	width: 56px;
	height: 56px;
	padding: 0;
	border-radius: 0;
	background-color: #7D8A8E;
}
:is(body.sec-option, body.sec-plan) #colorbox.variant2 #cboxClose:hover { opacity: 0.85; }
:is(body.sec-option, body.sec-plan) #colorbox.variant2 #cboxClose::before,
:is(body.sec-option, body.sec-plan) #colorbox.variant2 #cboxClose::after {
	left: 30%;
	width: 40%;
	height: 1px;
	margin-top: 0;
}

@media only screen and (max-width: 767px) {
	:is(body.sec-option, body.sec-plan) .plan-popup-wrap h2 { padding: 14px 56px 14px 16px; }
	:is(body.sec-option, body.sec-plan) .plan-popup-wrap h2 em.times { font-size: 15px; letter-spacing: 0.05em; }
	:is(body.sec-option, body.sec-plan) .plan-popup-wrap > .oh { padding: 16px; }
	:is(body.sec-option, body.sec-plan) .plan-popup-wrap > .oh p { font-size: 13px; }
	:is(body.sec-option, body.sec-plan) #colorbox.variant2 #cboxClose { top: 0; right: 0; width: 44px; height: 44px; }
}

/* ---------- オプション下層: スケジュールの切り替えタブ (.pointy-navi / 早朝オプション) ----------
   選択中はボタン色 + 下向きの三角、ほかは薄いグレー */
:is(body.sec-option, body.sec-plan) .pointy-navi > a {
	padding: 10px;
	background-color: #F1F4F4;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #7D8A8E;
}
:is(body.sec-option, body.sec-plan) .pointy-navi > a::after { border-top-color: #F1F4F4; }
:is(body.sec-option, body.sec-plan) .pointy-navi > a.active { background-color: var(--c-footer); color: #FFFFFF; }
:is(body.sec-option, body.sec-plan) .pointy-navi > a.active::after { border-top-color: var(--c-footer); }
@media only screen and (max-width: 767px) {
	:is(body.sec-option, body.sec-plan) .pointy-navi > a { padding: 8px 4px; font-size: 12px; letter-spacing: 0.02em; }
}

/* ---------- お役立ち情報 (/useful/ 配下・useful.css) ----------
   useful.css の青はファイル側で新トーンに置き換え済み。ここでは見出しの形と書体をそろえる */
/* ページ内の見出し (h1.midasi2 の水色の帯 / common.css) → 明朝の見出し */
body.sec-useful #useful-content-main .midasi2 {
	margin: 0 0 32px !important;
	padding: 0;
	overflow: visible;
	background: none;
	font-family: var(--f-serif-jp) !important;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.15em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-useful #useful-content-main .midasi2::before { display: none; }
/* 見出し類は黒 (common.css の .midasi3 は青) */
body.sec-useful #useful-content-main .midasi3 {
	font-family: var(--f-sans-jp);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.7;
	color: var(--c-text);
}
body.sec-useful .midashi_1 { padding-bottom: 8px; border-bottom-color: #C9CDCF; }
body.sec-useful .midashi_1 em {
	font-family: var(--f-serif-jp);
	font-style: normal;
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.1em;
	color: var(--c-text);
}
body.sec-useful .midashi_1 .mincho {
	margin-left: 8px;
	font-family: var(--f-en-main) !important;
	font-size: 15px;
	letter-spacing: 0.1em;
	color: var(--c-accent);
}
body.sec-useful :is(.midashi_2, .midashi_3, .subpage-midasi2) {
	background-color: #F1F4F4;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.05em;
	color: var(--c-text);
}
body.sec-useful .subpage-sec p {
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2;
	color: var(--c-text-warm);
}
/* 一覧: カテゴリー名・タイトル・本文 */
body.sec-useful .category-midasi { font-family: var(--f-sans-jp); font-size: 12px; letter-spacing: 0.05em; color: #7D8A8E; }
body.sec-useful #useful-index-bottom li > article .midasi3 { margin-bottom: 6px; border-bottom: 0; font-size: 15px; }
body.sec-useful #useful-index-top > article .midasi3 { font-size: 18px; }
body.sec-useful :is(#useful-index-top, #useful-index-bottom li) > article p {
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1.8;
	color: var(--c-text-warm);
}
body.sec-useful :is(#useful-index-top, #useful-index-bottom li) > article p b { font-weight: 500; }
body.sec-useful #useful-index-bottom li > article { border-bottom: 1px solid #E6ECEC; padding: 16px 0; }
body.sec-useful #useful-index-top > article:not(:last-child) { border-bottom: 1px solid #E6ECEC; }
body.sec-useful #useful-index-top > article span.normal {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 6px 16px;
	background: var(--c-footer);
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.1em;
	color: #FFFFFF;
}
body.sec-useful #useful-pagination p { font-family: var(--f-en-main); }
/* お役立ち情報のトップ (/useful/index.html・HAWAII-2075 で新規): カテゴリーごとに記事カード 4 件 + 一覧へのボタン
   カードは各カテゴリーの一覧 (#useful-index-bottom) と同じ形 (写真 130px が左・2 列)。最初の 1 件を大きくはしない */
body.sec-useful .useful-top-lead {
	margin: 0 0 56px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: center;
	color: var(--c-text-warm);
}
body.sec-useful .useful-top-sec { margin-bottom: 80px; }
body.sec-useful .useful-top-sec:last-child { margin-bottom: 0; }
body.sec-useful .useful-top-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4%; }
body.sec-useful .useful-top-list > article { padding: 16px 0; border-bottom: 1px solid #E6ECEC; transition: background-color 0.2s; }
body.sec-useful .useful-top-list > article:hover { background-color: #F1F4F4; }
body.sec-useful .useful-top-list > article > a { display: flex; align-items: flex-start; gap: 15px; color: inherit; text-decoration: none; }
body.sec-useful .useful-top-list figure { flex: 0 0 130px; max-width: 50%; margin: 0; background-color: #F1F4F4; }
body.sec-useful .useful-top-list figure img { display: block; width: 100%; height: auto; }
body.sec-useful .useful-top-list .category-midasi { margin: 0 0 4px; }
body.sec-useful #useful-content-main .useful-top-list .midasi3 { margin: 0 0 6px; padding: 0; border: 0; background: none; font-size: 15px; text-align: left; }   /* common.css の .midasi3 は中央ぞろえ */
body.sec-useful .useful-top-text { margin: 0; font-family: var(--f-sans-jp); font-size: 13px; letter-spacing: 0.05em; line-height: 1.8; color: var(--c-text-warm); }
body.sec-useful .useful-top-text b { font-weight: 500; color: #7D8A8E; }
/* 一覧へのボタン (トーンのボタン: 右にはみ出す短い線) */
body.sec-useful .useful-top-more { margin: 28px 0 0; text-align: center; }
body.sec-useful .useful-top-more a {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 240px;
	min-height: 44px;
	padding: 6px 32px;
	background: var(--c-footer);
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #FFFFFF;
	text-decoration: none;
}
body.sec-useful .useful-top-more a::after { content: ""; position: absolute; top: 50%; right: -10px; width: 20px; height: 1px; background: #DCE2E2; }
body.sec-useful .useful-top-more a:hover { opacity: 0.85; }
/* 教会・神社: 名前だけのリンク */
body.sec-useful .useful-top-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4%; margin: 0; padding: 0; list-style: none; }
body.sec-useful .useful-top-links li { border-bottom: 1px solid #E6ECEC; }
body.sec-useful .useful-top-links a { position: relative; display: block; padding: 14px 8px 14px 20px; font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; color: var(--c-text); text-decoration: none; }
body.sec-useful .useful-top-links a::before { content: ""; position: absolute; top: 50%; left: 2px; width: 6px; height: 6px; margin-top: -3px; border-top: 1px solid #A5B1B4; border-right: 1px solid #A5B1B4; transform: rotate(45deg); }
body.sec-useful .useful-top-links a:hover { background-color: #F1F4F4; }
@media only screen and (max-width: 767px) {
	body.sec-useful .useful-top-lead { margin-bottom: 40px; font-size: 13px; text-align: left; }
	body.sec-useful .useful-top-sec { margin-bottom: 56px; }
	body.sec-useful .useful-top-list,
	body.sec-useful .useful-top-links { grid-template-columns: 1fr; }
	body.sec-useful .useful-top-list figure { flex-basis: 100px; }
	body.sec-useful #useful-content-main .useful-top-list .midasi3 { font-size: 14px; }
	body.sec-useful .useful-top-text { font-size: 12px; }
}
/* おすすめ記事: 「先輩カップルの声」の見出し (画像 → 英字 + 日本語) の上の余白 */
body.sec-useful .recommended_contents > h3.midasi.v2 { margin-top: 72px; }
@media only screen and (max-width: 767px) {
	body.sec-useful .recommended_contents > h3.midasi.v2 { margin-top: 48px; }
}
/* 教会・神社のページ (/useful/church/・church.css) */
/* 教会のメニュー (church_sub_nav.tpl): PC は「・」の横並び → お役立ち情報のトップと同じ 2 列のリスト。今見ている教会は薄いグレーの面 */
@media screen and (min-width: 800px) {
	body.sec-useful .sub_nav { width: 100%; max-width: 900px; border-top: 0; border-bottom: 0; }
	body.sec-useful .sub_nav > div { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4%; width: 100%; line-height: normal; }
	body.sec-useful .sub_nav > div > a { border-bottom: 1px solid #E6ECEC; text-decoration: none; }
	body.sec-useful .sub_nav > div > a > span {
		position: relative;
		display: block;
		margin: 0;
		padding: 14px 8px 14px 20px;
		background: none;
		font-family: var(--f-sans-jp);
		font-size: 14px;
		letter-spacing: 0.05em;
		color: var(--c-text);
	}
	body.sec-useful .sub_nav > div > a > span::before { content: ""; position: absolute; top: 50%; left: 2px; width: 6px; height: 6px; margin-top: -3px; border-top: 1px solid #A5B1B4; border-right: 1px solid #A5B1B4; transform: rotate(45deg); }
	body.sec-useful .sub_nav > div > a:hover > span,
	body.sec-useful .sub_nav > div > a.selected > span { background-color: #F1F4F4; }
	body.sec-useful .sub_nav > div > a.selected > span { color: #7D8A8E; }
}
/* スマホは開閉のまま、色をトーンに (濃いグレー → ボタン色 / 項目は薄いグレー) */
@media screen and (max-width: 799px) {
	body.sec-useful .sub_nav > span { position: relative; background: var(--c-footer); font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; }
	body.sec-useful .sub_nav > span::after { content: ""; position: absolute; top: 50%; right: 18px; width: 7px; height: 7px; margin-top: -6px; border-right: 1px solid #FFFFFF; border-bottom: 1px solid #FFFFFF; transform: rotate(45deg); }
	body.sec-useful .sub_nav > span.open { background: var(--c-footer); }
	body.sec-useful .sub_nav > span.open::after { margin-top: -2px; transform: rotate(-135deg); }
	body.sec-useful .sub_nav > div > a > span { position: relative; background: #F1F4F4; border-bottom: 1px solid #FFFFFF; font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; color: var(--c-text-warm); }
	body.sec-useful .sub_nav > div > a > span::before { content: ""; position: absolute; top: 50%; left: 14px; width: 6px; height: 6px; margin-top: -3px; border-top: 1px solid #A5B1B4; border-right: 1px solid #A5B1B4; transform: rotate(45deg); }
	body.sec-useful .sub_nav > div > a.selected > span { background: #E6ECEC; color: var(--c-text); }
}
/* この教会を利用できるプラン: リストの印をアクセント色の小さい四角に */
body.sec-useful .cream .data .church-list > li::before { top: 0.65em; width: 5px; height: 5px; background-color: #A5B1B4; }
/* サイドの Categories */
body.sec-useful #useful-content-side .lead {
	margin-bottom: 12px;
	padding-top: 16px;
	border-top: 1px solid #C9CDCF;
	font-family: var(--f-en-main) !important;
	font-weight: 500;
	font-size: 20px;
	letter-spacing: 0.15em;
	color: var(--c-accent) !important;
	text-transform: uppercase;
}
body.sec-useful .useful-category-navi a { font-family: var(--f-sans-jp); letter-spacing: 0.05em; }
body.sec-useful .useful-category-navi:not(.v2) a:not(.active):not(.sub-active) { background-color: #F1F4F4; color: var(--c-text-warm); }
/* スマホのカテゴリーナビ (.v2): 開閉ボタンはボタン色 / 項目は PC のサイドと同じ薄いグレー / 選択中は一段濃く */
body.sec-useful .useful-category-navi.v2 > a,
body.sec-useful .useful-category-navi.v2 > a.active,
body.sec-useful .useful-category-navi.v2 > a:hover,
body.sec-useful .useful-category-navi.v2 > a.active:hover { background-color: var(--c-footer); color: #FFFFFF; }
body.sec-useful .useful-category-navi.v2 ul a { background-color: #F1F4F4; color: var(--c-text-warm); }
body.sec-useful .useful-category-navi.v2 ul a:hover { background-color: #E6ECEC; color: var(--c-text); }
body.sec-useful .useful-category-navi.v2 ul a:is(.active, .sub-active) { background-color: #E6ECEC; color: var(--c-text); font-weight: 500; }
/* 持ち物リストなどの枠 (.location-box): 黒い線 → 薄いグレー */
body.sec-useful .location-box { border: 1px solid #C9CDCF; }
/* 教会紹介の教会名 (本文中の h1.midasi): 英字セットの小見出しと同じ形 */
body.sec-useful #useful-content-main h1.midasi {
	margin: 48px auto 24px;
	padding: 0;
	background: none;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-useful #useful-content-main h1.midasi em {
	display: block;
	margin: 0 0 12px;
	font-family: var(--f-en-main) !important;
	font-style: normal;
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.15em;
	line-height: 1.2;
	color: var(--c-accent);
	text-transform: uppercase;
}
body.sec-useful .tx_blue { color: #7D8A8E; }
/* 本文リンクの色 (common.css の青を上書き。個別に色を決めているリンクは変えない) */
:where(body.sec-useful) a { color: #7D8A8E; }
@media only screen and (max-width: 767px) {
	body.sec-useful #useful-content-main .midasi2 { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-useful .midashi_1 em { font-size: 16px; }
	body.sec-useful .subpage-sec p { font-size: 13px; }
	body.sec-useful #useful-content-main h1.midasi em { font-size: 20px; }
}

/* ---------- サロン案内 (/location/・location.css) ----------
   location.css の青と斜線はファイル側で置き換え済み。ここでは見出しの形・書体・予約ボタンをそろえる */
/* サロン名 (h1.midasi2 の水色の帯) → 明朝の見出し */
body.sec-location main :is(h1, h2).midasi2 {
	margin: 48px 0 32px !important;
	padding: 0;
	overflow: visible;
	background: none;
	font-family: var(--f-serif-jp) !important;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.15em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-location main .midasi2::before { display: none; }
/* スライドショーの帯 (斜めの水色) → 薄いグレーの無地 */
body.sec-location div.midasi2.box-style { margin: 56px 0 !important; padding: 16px 0 24px; background: #E6ECEC; }
/* ページの最後がマップの帯のときは、フッターとの間の白い余白をなくす */
body.sec-location div.midasi2.box-style:last-child { margin-bottom: 0 !important; }
body.sec-location main:has(.midasi2.box-style:last-child) { margin-bottom: 0; }
/* Slideshow / Map などの見出し (h4.midasi): 英字セットの小見出しと同じ形 */
body.sec-location main h4.midasi {
	margin: 0 auto 32px;
	padding: 0;
	background: none;
	font-family: var(--f-sans-jp) !important;
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
body.sec-location main h4.midasi em {
	display: block;
	margin: 0 0 12px;
	font-family: var(--f-en-main) !important;
	font-style: normal;
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.15em;
	line-height: 1.2;
	color: var(--c-accent);
	text-transform: uppercase;
}
/* ハワイ / 国内サロンのタブ */
body.sec-location #location-salon-tab li a { font-family: var(--f-sans-jp); font-weight: 500; letter-spacing: 0.05em; }
/* サロンの切り替え (銀座・横浜…): 選択中はボタン色 */
body.sec-location #location-salon-list { color: #C9CDCF; }
body.sec-location #location-salon-list > ul > li > a { font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; color: var(--c-text-warm); }
body.sec-location #location-salon-list > ul > li.active > a,
body.sec-location #location-salon-list > ul > li > a:hover { background-color: var(--c-footer); color: #FFFFFF; }
/* 下層 v118: ホノルル / アネックスの切り替え (#location-salon-list2) は TOP のサロンのタブ (c-tabs) と同じ見た目に: 枠・背景なし、左右に縦線 #707070、しっぽり明朝 */
body.sec-location #location-salon-list2 > ul { display: flex; justify-content: center; }
body.sec-location #location-salon-list2 > ul > li { width: auto; border: 0; border-right: 1px solid #707070; }
body.sec-location #location-salon-list2 > ul > li:first-child { border-left: 1px solid #707070; }
body.sec-location #location-salon-list2 > ul > li > a,
body.sec-location #location-salon-list2 > ul > li > a:hover { padding: 20px 32px; background: none; font-family: var(--f-serif-jp); font-weight: 600; font-size: 15px; letter-spacing: 0.1em; line-height: 1.6; color: var(--c-text); text-decoration: none; }
body.sec-location #location-salon-list2 > ul > li > a:hover { opacity: 0.6; }
/* 下層 v124: タブのサロン名は英語 (下の見出しの HONOLULU SALON と同じ Fjalla One)、その下に［場所］ */
body.sec-location #location-salon-list2 .salon-tab-en-2075 { display: block; margin-bottom: 4px; font-family: var(--f-num); font-weight: 400; font-size: 24px; letter-spacing: 0.1em; line-height: 1.3; color: var(--c-text); }
@media only screen and (min-width: 800px) {
	body.sec-location #salon-top > img { width: 46%; margin-right: 4%; }   /* 下層 v118: 写真と文の間 2% → 4% */
}
@media only screen and (max-width: 767px) {
	body.sec-location #location-salon-list2 > ul > li > a,
	body.sec-location #location-salon-list2 > ul > li > a:hover { padding: 14px 12px; font-size: 12px; letter-spacing: 0.05em; }
	body.sec-location #location-salon-list2 .salon-tab-en-2075 { font-size: 18px; }
}
/* 下層 v117: サロン案内はハワイのサロンだけの1ページに (ホノルル #honolulu の下にアネックス #annex)。国内サロンは国内事前試着のページへ
   ページ内リンクで飛んだ見出しが固定ヘッダーに隠れないように / アネックスの前は大きくあける */
body.sec-location :is(#honolulu, #annex) { scroll-margin-top: 140px; }
body.sec-location main h2#annex { margin-top: 120px !important; }
body.sec-location .domestic-salon-2075 { max-width: 900px; margin: 96px auto 0; padding: 40px 48px; background: #F1F4F4; text-align: center; }
body.sec-location .domestic-salon-2075 h4 { margin: 0 0 12px; font-family: var(--f-serif-jp); font-weight: 700; font-size: 18px; letter-spacing: 0.15em; line-height: 1.6; color: var(--c-text); }
body.sec-location .domestic-salon-2075 p { margin: 0 0 24px; font-size: 14px; letter-spacing: 0.05em; line-height: 2; color: var(--c-text-warm); }
body.sec-location .domestic-salon-2075 p.tc { margin: 0; }
body.sec-location .domestic-salon-2075 .btn-line-2075 { display: inline-block; width: 320px; max-width: calc(100% - 20px); }
@media only screen and (max-width: 767px) {
	body.sec-location main h2#annex { margin-top: 80px !important; }
	body.sec-location .domestic-salon-2075 { margin-top: 64px; padding: 32px 20px; }
	body.sec-location .domestic-salon-2075 h4 { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-location .domestic-salon-2075 p { font-size: 13px; text-align: left; }
}

/* 住所・営業時間: 下層 v111 で TOP のサロンのカード (#top-salon .p-salon__*) と同じ見た目に
   英字名 (Fjalla One) → 住所 → 区切り線 → 営業時間。「Address」「Salon Hours」の見出しはなし・写真は 3:2 */
body.sec-location #salon-top > img { aspect-ratio: 3 / 2; object-fit: cover; }
body.sec-location #salon-top > div h4 { display: none; }
/* 下層 v114: サロン名は写真の上の見出しに (TOP のサロンのカードと同じ並び: 日本語名［かっこ書き］→ 英字名) */
body.sec-location :is(h1, h2).salon-name-2075 { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 0; background: none; text-align: center; }
body.sec-location :is(h1, h2).salon-name-2075 > span { display: block; padding: 0; background: none; }
body.sec-location .salon-name-2075__ja { font-family: var(--f-serif-jp); font-weight: 500; font-size: 15px; letter-spacing: 0.05em; line-height: 1.5; color: var(--c-text); }
body.sec-location .salon-name-2075__en { font-family: var(--f-num); font-weight: 400; font-size: 32px; letter-spacing: 0.1em; line-height: 1.2; color: var(--c-text-warm); }
@media only screen and (max-width: 767px) {
	body.sec-location .salon-name-2075__ja { font-size: 13px; }
	body.sec-location .salon-name-2075__en { font-size: 26px; }
}
body.sec-location #salon-top > div p:not(.salon-top__en) {
	margin: 0;
	font-family: var(--f-sans-jp);
	font-size: 13px;
	letter-spacing: 0.04em;
	line-height: 1.6;
	color: #707070;
}
/* 営業時間 (2つ目の見出しのあと) は上に区切り線 */
body.sec-location #salon-top > div h4 ~ h4 + p:not(.salon-top__en) { margin-top: 16px; padding-top: 16px; border-top: 1px solid #C9CDCF; } /* 下層 v115: 住所の p の margin: 0 に負けていたので :not() で同じ強さ以上に */
/* 予約ボタン: ピンクのグラデーション → 他の下層と同じボタン (ボタン色・右に細い線)。文字は改行しない */
body.sec-location #salon-top > div > a,
body.sec-location #salon-top > div > a:hover {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	box-sizing: border-box;
	width: calc(100% - 10px);
	max-width: none;
	margin: 32px 0 16px; /* 下層 v112: 営業時間との間をあける */
	padding: 16px 20px;
	background: var(--c-footer);
	font-family: var(--f-sans-jp);
	letter-spacing: 0.05em;
	color: #FFFFFF;
}
body.sec-location #salon-top > div > a::after { content: ""; position: absolute; top: 50%; right: -10px; width: 20px; height: 1px; background: #DCE2E2; }
body.sec-location #salon-top > div > a:hover { opacity: 0.85; }
body.sec-location #salon-top > div > a + br { display: none; }
body.sec-location #salon-top > div > a > small { font-size: 12px; letter-spacing: 0.05em; line-height: 1.6; white-space: nowrap; }
body.sec-location #salon-top > div > a > strong { display: flex; align-items: center; justify-content: center; font-weight: 500; font-size: 16px; letter-spacing: 0.1em; line-height: 1.6; white-space: nowrap; }
body.sec-location #salon-top > div > a > strong em { margin-left: 10px; padding: 2px 8px; font-style: normal; font-weight: 500; font-size: 11px; letter-spacing: 0.05em; line-height: 1.5; color: #7D8A8E; }
/* 行き方の枠 (.annotation / common.css): 王冠のアイコン・斜線・角丸なし */
body.sec-location .annotation {
	padding-top: 32px;
	border-radius: 0;
	box-shadow: none;
	background: #F1F4F4;
}
body.sec-location .annotation.route-annotation > h4 {
	font-family: var(--f-serif-jp);
	font-size: 18px;
	letter-spacing: 0.1em;
	color: var(--c-text);
}
:where(body.sec-location) a { color: #7D8A8E; }
@media only screen and (max-width: 767px) {
	body.sec-location main :is(h1, h2).midasi2 { margin-top: 32px !important; font-size: 16px; letter-spacing: 0.1em; }
	body.sec-location main h4.midasi em { font-size: 20px; }
	body.sec-location #salon-top > div > a,
	body.sec-location #salon-top > div > a:hover { padding: 14px 10px; }
	body.sec-location #salon-top > div > a > small { font-size: 11px; letter-spacing: 0.02em; }
	body.sec-location #salon-top > div > a > strong { font-size: 14px; letter-spacing: 0.05em; }
	body.sec-location #salon-top > div > a > strong em { margin-left: 8px; padding: 2px 6px; font-size: 10px; }
}

/* ---------- 下層全体: 本文の基本 (字間・色・リンク) ----------
   ページ個別の CSS で字間・色を指定していない文字 (アルバム・ムービー・ドレス・ヘアメイクの説明文・表・注意書き、
   プラン個別の説明、サロン案内の写真の説明など) は、字間 0・黒字のままで他のページと書体が違って見えていたので、
   下層の本文の基本をここで決める (個別に指定があるものはそちらが優先)。
   font-size: 0 で inline-block を詰めて並べているところは、字間が付くと並びが崩れるので 0 に戻す */
body:not(.home) main { letter-spacing: 0.05em; color: var(--c-text-warm); }
body:not(.home) main :is(.font0, .reception_menu nav, #wedding_site_tab p, .point li) { letter-spacing: 0; }
:where(body:not(.home) main) a { color: #7D8A8E; }
/* 商品の説明 (アルバム・ムービーの .plume): PC 16px・行間 1.4 → 本文と同じ */
body.sec-option .plume .heading-1 { font-size: 17px; letter-spacing: 0.05em; line-height: 1.6; color: var(--c-text); }
body.sec-option .plume .txt { font-size: 14px; letter-spacing: 0.05em; line-height: 1.9; color: var(--c-text-warm); }
@media only screen and (max-width: 767px) {
	body.sec-option .plume .heading-1 { font-size: 15px; }
	body.sec-option .plume .txt { font-size: 13px; }
}

/* ---------- オプション下層: ヘアメイクの当日カウンセリング付き・前日リハーサル (rehearsal_wedding.css) ----------
   緑の角丸ボタン → リンクボタン / 大きい黒の見出し → しっぽり明朝 / スパの価格の枠・ベージュのカード → 新トーン */
body.sec-option .btn_box .arrow_bottom {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 8px 40px;
	border-radius: 0;
	background: var(--c-footer);
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #FFFFFF;
	margin: 0 auto;
}
body.sec-option .btn_box .arrow_bottom:after { content: ""; top: 50%; right: 20px; width: 8px; height: 8px; margin-top: -6px; border-right: 1px solid #FFFFFF; border-bottom: 1px solid #FFFFFF; transform: rotate(45deg); }
body.sec-option .btn_box .arrow_bottom:hover { opacity: 0.85; }
body.sec-option .btn_box .txt { font-size: 13px; color: var(--c-text-warm); }
body.sec-option .heading_3 { font-family: var(--f-serif-jp); font-weight: 700; font-size: 22px; letter-spacing: 0.15em; line-height: 1.6; color: var(--c-text); }
body.sec-option .heading_3 .small { display: block; margin-bottom: 6px; font-family: var(--f-sans-jp); font-weight: 400; font-size: 13px; letter-spacing: 0.1em; color: var(--c-text-warm); }
body.sec-option .aqua_box .c_blue_2 { font-family: var(--f-sans-jp); font-weight: 500; font-size: 16px; letter-spacing: 0.05em; color: #7D8A8E; }
body.sec-option .aqua_box .right .white_box > div { border-color: #C9CDCF; }
body.sec-option .aqua_box .right .white_box .price { margin: 0 2px; font-family: var(--f-num); font-weight: 400; font-size: 22px; letter-spacing: 0.02em; color: var(--c-text); }
body.sec-option .white_border { border: 0; background: #FFFFFF; }
body.sec-option .aqua_box .oh_2 .right .name { font-weight: 700; font-size: 16px; letter-spacing: 0.05em; color: var(--c-text); }
body.sec-option .aqua_box .oh_2 .right .name .eng { margin-left: 8px; font-family: var(--f-en-main); font-weight: 500; font-size: 12px; letter-spacing: 0.1em; color: var(--c-accent); text-transform: uppercase; }
body.sec-option .aqua_box .oh_2 .right .border { border-top-color: #C9CDCF; }
body.sec-option .aqua_box .oh_2 .price { font-family: var(--f-num); font-weight: 400; font-size: 26px; letter-spacing: 0.02em; color: var(--c-text); }
body.sec-option .aqua_box .oh_2 .price .small,
body.sec-option .aqua_box .right .white_box .small { font-family: var(--f-sans-jp); font-weight: 400; letter-spacing: 0.05em; }
@media only screen and (max-width: 767px) {
	body.sec-option .heading_3 { font-size: 17px; letter-spacing: 0.1em; }
	body.sec-option .btn_box .arrow_bottom { padding: 8px 36px; font-size: 13px; }
}

/* ---------- オプション下層: 本文リンクの色 ----------
   :where() で優先度を最低にし、common.css の a { color:#0071bc } だけを上書き (個別に色を決めているリンクは変えない) */
/* 下層全体の :where(body:not(.home) main) a にまとめた (上の「下層全体: 本文の基本」) */

@media only screen and (max-width: 767px) {
	body.sec-option .in:has(+ .in > #dress-tux-useful-list) { padding-top: 48px; }
	body.sec-option #dress-tux-useful-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; }
	body.sec-option #dress-tux-useful-list .midasi3 { font-size: 13px; letter-spacing: 0.05em; }
	body.sec-option #dress-tux-useful-list p { margin-bottom: 18px; font-size: 12px; letter-spacing: 0.05em; line-height: 20px; }
}

/* ==========================================================================
   HAWAII-2075: お問い合わせ (/contact/ 入力・確認・完了)
   色・角丸は contact.css 側で置き換え済み。ここは文字・枠・ボタン
   ========================================================================== */
body.sec-contact #contact-main { font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; line-height: 1.9; color: var(--c-text-warm); }
body.sec-contact #contact-main > .in { padding: 48px 40px; border-color: #C9CDCF; }
body.sec-contact #contact-main a:not(.normal):not(.blue):not(.gray) { color: #7D8A8E; text-decoration: underline; }
/* ステップ表示 */
body.sec-contact .progress-bar { font-size: 14px; letter-spacing: 0.1em; }
body.sec-contact .progress-bar > div:not(.active) { color: #7D8A8E; }
body.sec-contact .progress-bar > div::before,
body.sec-contact .progress-bar > div::after { background-color: #F1F4F4; }
body.sec-contact .progress-bar > div.active::before,
body.sec-contact .progress-bar > div.active::after { background-color: var(--c-footer); }
/* よくあるご質問への案内: 青い警告アイコンをなくす */
body.sec-contact .box-warning { min-height: 0; padding: 16px 20px; }
body.sec-contact .box-warning::before { display: none; }
/* 入力欄 */
body.sec-contact .contact-form > dl { padding: 16px 10px; border-top-color: #E6ECEC; }
body.sec-contact .contact-form > dl:last-child { border-bottom-color: #E6ECEC; }
body.sec-contact .contact-form > dl > dt { font-weight: 500; color: var(--c-text); }
body.sec-contact .contact-form > dl > dt.req::before,
body.sec-contact .contact-form > dl > dt.optional::before { padding: 0 6px; font-size: 11px; letter-spacing: 0.1em; line-height: 20px; }
body.sec-contact .contact-form :is(input[type=text], textarea, select) { padding: 6px 8px; border-color: #C9CDCF; border-radius: 0; font-family: var(--f-sans-jp); }
body.sec-contact .contact-form :is(input[type=text], textarea, select):focus { outline: 1px solid #A5B1B4; outline-offset: 0; }
body.sec-contact .contact-form input[type=text].err,
body.sec-contact .contact-form textarea.err { background-color: #FFF4F6; }
/* ボタン (確認する / 送信する / 前のページに戻る / トップページに戻る) */
body.sec-contact :is(button.blue, button.gray, a.normal) {
	position: relative;
	min-height: 56px;
	padding: 6px 24px;
	border-radius: 0;
	background-image: none;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.4;
	box-shadow: none;
}
body.sec-contact :is(button.blue, a.normal) { background-color: var(--c-footer); color: #FFFFFF; }
body.sec-contact button.gray { border: 1px solid #C9CDCF; background-color: #FFFFFF; color: var(--c-text-warm); }
body.sec-contact :is(button.blue, a.normal)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -10px;
	width: 20px;
	height: 1px;
	background: #DCE2E2;
}
body.sec-contact a.normal:before { display: none; }
body.sec-contact a.normal { display: inline-flex; align-items: center; justify-content: center; height: auto; }
body.sec-contact :is(button.blue, button.gray, a.normal):hover { opacity: 0.85; box-shadow: none; color: inherit; }
body.sec-contact :is(button.blue, a.normal):hover { color: #FFFFFF; }
body.sec-contact .finish > p { font-family: var(--f-sans-jp); letter-spacing: 0.05em; line-height: 2; }
@media only screen and (max-width: 767px) {
	body.sec-contact #contact-main { font-size: 13px; }
	body.sec-contact #contact-main > .in { padding: 24px 16px; }
	body.sec-contact .progress-bar { font-size: 12px; letter-spacing: 0.05em; }
}

/* ==========================================================================
   HAWAII-2075: ロイヤルカイラが選ばれる7つのポイント (/service/ / service.css) + 同じ作りのアルバムのスペシャルオファー (option/album/specialoffer.html の #Album)
   水色の斜めの帯 + 数字 → 数字 (Domaine) + 英字 (Domaine) + 日本語 (しっぽり明朝) を中央に
   ========================================================================== */
:is(body.sec-service, body.sec-option #Album) .main_box .midasi2 {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: auto;
	margin: 0 0 20px;
	padding: 0 0 20px;
	border-bottom: 1px solid #C9CDCF;   /* 下層 v118: 英字と日本語の間にグレーの線 (h3.midasi.v2 と同じ) */
	background: none;
	font-family: var(--f-en-main) !important;
	font-weight: 500;
	font-size: 34px;          /* 下層 v118: 26px → 34px・字間 0.25em → 0.15em (h3.midasi.v2 と同じ) */
	letter-spacing: 0.15em;
	line-height: 1;
	color: var(--c-accent);
	text-transform: uppercase;
}
:is(body.sec-service, body.sec-option #Album) .main_box .midasi2::before { display: none; }
:is(body.sec-service, body.sec-option #Album) .main_box .midasi2 > span { width: auto; height: auto; padding-left: 0.15em; line-height: 1.2; }
:is(body.sec-service, body.sec-option #Album) .main_box .midasi2::after {
	position: static;
	order: -1;
	width: auto;
	height: auto;
	margin: 0 0 16px;
	font-family: var(--f-en-main-r) !important;
	font-size: 40px;
	letter-spacing: 0.05em;
	line-height: 1;
	color: #C9CDCF;
}
:is(body.sec-service, body.sec-option #Album) .main_box .service_box + .midasi2 { margin-top: 120px; }
:is(body.sec-service, body.sec-option #Album) h3.lead {
	margin: 0 auto 40px;
	font-family: var(--f-serif-jp);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.15em;
	line-height: 1.6;
	color: var(--c-text);
}
:is(body.sec-service, body.sec-option #Album) .service_box { margin: 0; gap: 0 48px; flex-wrap: nowrap; }
:is(body.sec-service, body.sec-option #Album) .service_box:not(:last-child) { margin-bottom: 0; }
:is(body.sec-service, body.sec-option #Album) .service_box .in_content_image { flex: 0 0 58%; width: auto; margin: 0; }
:is(body.sec-service, body.sec-option #Album) .service_box .in_content { flex: 1 1 auto; width: auto; }
:is(body.sec-service, body.sec-option #Album) .in_content_text { margin: 0 0 32px; font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; line-height: 2; color: var(--c-text-warm); }
:is(body.sec-service, body.sec-option #Album) .in_content_text strong { font-weight: 400; }
/* 下層 v118: 本文は改行なしで続ける (文の途中の <br> で「刻みま / す。」のように折り返していた) */
body.sec-service .in_content_text { word-break: auto-phrase; }
/* 下層 v124: ボタンの右の線 (a.normal::after) の外に出る半分が .main_box の overflow: hidden で切れていたので、はみ出しを見せる (回り込みの解除は flow-root で) */
body.sec-service .main_box { overflow: visible; display: flow-root; }
body.sec-service .in_content_text br { display: none; }
:is(body.sec-service, body.sec-option #Album) .in_content .tc a.normal { display: flex; margin: 0 0 12px; }
:is(body.sec-service, body.sec-option #Album) .in_content .anno { margin: 0 0 24px; font-family: var(--f-sans-jp); font-size: 12px; letter-spacing: 0.05em; color: #7D8A8E; }
@media only screen and (max-width: 1000px) {
	:is(body.sec-service, body.sec-option #Album) .service_box { display: block; padding: 0 16px; }
	:is(body.sec-service, body.sec-option #Album) .service_box .in_content_image { margin-bottom: 24px; }
}
@media only screen and (max-width: 767px) {
	:is(body.sec-service, body.sec-option #Album) .main_box .midasi2 { margin-bottom: 14px; padding-bottom: 14px; font-size: 24px; }
	:is(body.sec-service, body.sec-option #Album) .main_box .midasi2::after { margin-bottom: 12px; font-size: 32px; }
	:is(body.sec-service, body.sec-option #Album) .main_box .service_box + .midasi2 { margin-top: 72px; }
	:is(body.sec-service, body.sec-option #Album) h3.lead { margin-bottom: 24px; font-size: 16px; letter-spacing: 0.1em; }
	:is(body.sec-service, body.sec-option #Album) .in_content_text { margin-bottom: 24px; font-size: 13px; text-align: left; }
	:is(body.sec-service, body.sec-option #Album) .in_content_text br { display: none; }
}
/* スペシャルオファーは見出しが日本語 (セット割引 など) なので、英字用の Domaine ではなくしっぽり明朝に。下の h3.lead は小見出し、p.lead は本文 */
body.sec-option #Album .main_box .midasi2 > span { font-family: var(--f-serif-jp); font-weight: 700; font-size: 22px; letter-spacing: 0.15em; line-height: 1.6; color: var(--c-text); text-transform: none; }
body.sec-option #Album h3.lead { margin-bottom: 8px; font-family: var(--f-sans-jp) !important; font-weight: 500; font-size: 15px; letter-spacing: 0.05em; color: var(--c-text-warm); }
body.sec-option #Album p.lead { margin: 0 auto 40px; font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; line-height: 1.9; text-align: center; color: var(--c-text-warm); }
body.sec-option #Album .in_content_subject { margin: 0 0 16px; font-family: var(--f-sans-jp); font-weight: 700; font-size: 16px; letter-spacing: 0.05em; line-height: 1.6; text-align: left; color: var(--c-text); }
@media only screen and (max-width: 767px) {
	body.sec-option #Album .main_box .midasi2 > span { font-size: 18px; letter-spacing: 0.1em; }
	body.sec-option #Album h3.lead { font-size: 14px; }
	body.sec-option #Album p.lead { margin-bottom: 24px; padding: 0 16px; font-size: 13px; }
	body.sec-option #Album .in_content_subject { font-size: 15px; }
}

/* ==========================================================================
   HAWAII-2075: お申し込みから当日までの流れ (/flow/ 挙式・ビーチフォト / flow.css)
   色・角丸は flow.css 側で置き換え済み。ここは文字・見出し・装飾・青い画像
   ========================================================================== */
body.sec-flow main { font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; line-height: 2; color: var(--c-text-warm); }
body.sec-flow main a:not(.blue):not(.gray) { color: #7D8A8E; }
body.sec-flow :is(.flow-words, .cancel_box) a { text-decoration: underline; }
/* STEP と当日のアイコンは font-size: 0 の inline-block 並び。main の字間を引き継ぐと隙間が広がって折り返すので 0 に */
body.sec-flow :is(ul.step, nav.icon-flow) { letter-spacing: 0; }
/* 挙式 / ビーチフォト の切り替え (表示中 = グレーの面 / もう一方 = 白地に線) */
body.sec-flow .flow_tab { display: flex; justify-content: center; gap: 16px; margin: 0 auto 56px; }
body.sec-flow .flow_tab :is(a.blue, a.gray) {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 320px;
	max-width: none;
	height: auto;
	min-height: 64px;
	margin: 0;
	padding: 8px 16px;
	border: 1px solid var(--c-footer);
	border-radius: 0;
	background: #FFFFFF;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: var(--c-text-warm);
	box-shadow: none;
}
body.sec-flow .flow_tab a.blue { background: var(--c-footer); color: #FFFFFF; }
body.sec-flow .flow_tab a:before { display: none; }
body.sec-flow .flow_tab a small { font-size: 11px; font-weight: 400; letter-spacing: 0.05em; }
/* STEP 1〜4 */
body.sec-flow ul.step { max-width: 1000px; margin-bottom: 80px; } /* 元は 800px。本文が1文字だけ次の行に落ちていたので広げる */
body.sec-flow ul.step li { font-weight: 500; font-size: 14px; letter-spacing: 0.05em; line-height: 1.6; color: var(--c-text); }
body.sec-flow ul.step li em { margin: 12px 0 4px; font-family: var(--f-en-main); font-style: normal; font-size: 15px; letter-spacing: 0.15em; color: var(--c-accent); }
body.sec-flow ul.step li p { margin-top: 8px; font-weight: 400; font-size: 12px; line-height: 1.8; color: var(--c-text-warm); } /* 下層 v125: 流し込み (文節の折り返し・text-wrap: pretty は、Safari で行の長さをそろえて「ホームペー / ジ」と単語の途中で切れていたのでやめる) */
body.sec-flow :is(ul.step li, nav.icon-flow a):before { border-color: #A5B1B4; }
/* 大見出し (挙式までの流れ など) は英字とのセット (h3.midasi.v2 / 上の共通ルール) */
body.sec-flow .flow-after > h3.midasi.v2 { margin-top: 72px; }
body.sec-flow .flow-before .midasi3 { font-family: var(--f-serif-jp); font-weight: 700; font-size: 18px; letter-spacing: 0.15em; color: var(--c-text); }
/* 下層 v119: 横長の写真 (figure.flow-image) と下の文の間をあける (元 20px → 40px) */
body.sec-flow figure.flow-image { margin-bottom: 40px; }
body.sec-flow .flow-words h5 { padding: 0 0 10px; margin-bottom: 16px; border-bottom-color: #C9CDCF; font-weight: 700; font-size: 15px; letter-spacing: 0.05em; line-height: 1.6; color: var(--c-text); }
/* 次の段階への矢印 (水色の画像 → 薄いグレーの三角) */
body.sec-flow .flow-before article { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='16' viewBox='0 0 40 16'%3E%3Cpath d='M0 0h40L20 16z' fill='%23C9CDCF'/%3E%3C/svg%3E"); background-size: 40px 16px; }
body.sec-flow .flow-before article:first-of-type { background: transparent; }
/* 写真に重ねたラベル (～渡航直前 など): リボンの画像をやめて四角に */
body.sec-flow .flow-midasi { max-width: 240px; padding: 8px 16px; background: var(--c-footer); font-weight: 500; font-size: 14px; letter-spacing: 0.15em; line-height: 1.6; }
body.sec-flow .flow-midasi::before,
body.sec-flow .flow-midasi::after { display: none; }
body.sec-flow .flow-midasi.blue { background: #7D8A8E; }
/* キャンセル料の枠: 水色の枠とアイコン → 薄いグレーの面 */
body.sec-flow .cancel_box { min-height: 0; padding: 24px 28px; border: 0; background: #F1F4F4; }
body.sec-flow .cancel_box h5 { margin-bottom: 8px; font-weight: 700; font-size: 15px; color: var(--c-text); }
/* ハワイへ向けて出発 */
body.sec-flow .goto_hawaii { position: relative; padding-top: 72px; background: none; }
body.sec-flow .goto_hawaii::before { content: ""; position: absolute; top: 0; left: 50%; width: 100px; height: 47px; margin-left: -50px; background: url(../img/flow/icon_flight.png) no-repeat center / contain; } /* 下層 v138: 飛行機もデザイナー作り直し (グレー) にしたので、グレーに塗る filter はやめる */
body.sec-flow .goto_hawaii p { padding: 16px 10px; border-color: #C9CDCF; font-family: var(--f-serif-jp); font-weight: 700; font-size: 22px; letter-spacing: 0.15em; line-height: 1.5; color: var(--c-text); }
/* 当日の流れ */
body.sec-flow .flow-after { margin: 80px 0 0; padding: 64px 0 64px; }
/* 当日の流れのグレーの面をフッターまでつなげる (面の下の余白 + main の下の余白で白いすきまが出ていた) */
body.sec-flow main:has(> .flow-after:last-child) { margin-bottom: 0; }
body.sec-flow nav.icon-flow a { border-width: 1px; border-color: #C9CDCF; }
/* 下層 v137: アイコンをデザイナー作り直し (グレー・白い部分あり) に差し替えたので、グレーに塗る filter はやめる */
body.sec-flow nav.icon-flow a p { background: var(--c-footer); font-family: var(--f-sans-jp); font-weight: 500; letter-spacing: 0.05em; }
body.sec-flow nav.icon-flow a:hover p { background: #A5B1B4; }
/* 番号: 丸い黒の背景 → Domaine の数字 */
body.sec-flow nav.icon-flow a::after { top: 6px; left: 8px; width: auto; height: auto; padding: 0; background: none; font-family: var(--f-en-main); font-size: 18px; line-height: 1; color: #7D8A8E; }
body.sec-flow .flow-after .flow-words h5::before { width: auto; height: auto; margin: 0 10px 0 0; padding: 0; background: none; font-family: var(--f-en-main); font-size: 24px; line-height: 1; vertical-align: -2px; color: var(--c-accent); }
body.sec-flow ul.line_bg { padding: 16px 20px; background: #FFFFFF; }
body.sec-flow ul.line_bg li i,
body.sec-flow ul.l_indent li u { color: #A5B1B4; }
/* 雨の日のリンク */
body.sec-flow .rainy_links > a { border-color: #C9CDCF; color: var(--c-text-warm); }
body.sec-flow .rainy_links > a > img { width: 50px; height: 50px; margin-right: 10px; } /* 下層 v138: 雨の日の 2 つをデザイナー作り直し (グレー・丸なし) に。白黒にする filter はやめた。画像はまわりの透明な余白を切った正方形 */
@media only screen and (max-width: 799px) { body.sec-flow .rainy_links > a > img { width: 40px; height: 40px; } }
body.sec-flow .rainy_links > a > span strong { font-weight: 700; color: var(--c-text); }
body.sec-flow .rainy_links > a > em { padding: 6px 12px; background: var(--c-footer); font-style: normal; font-weight: 500; font-size: 13px; letter-spacing: 0.05em; }
body.sec-flow .rainy_links > a > em b { color: #FFFFFF; }
/* 下層 v118: 当日の流れのアイコン (icon_03・05・06.png) は右上の角に水色の小さな三角が入っていて、グレーに塗る filter で見えるようになっていたので角を切る */
body.sec-flow nav.icon-flow a img { clip-path: polygon(0 0, 96% 0, 100% 8%, 100% 100%, 0 100%); }
/* 下層 v118: 送迎の画像 (pic-flow05.jpg = 車の写真 / 水色のバスと「ホテル、サロン間 送迎」/ サロンの写真 の1枚、740×173) の真ん中 (横 247〜492px) に白い面を重ねて、グレーで描き直す */
body.sec-flow .flow-transfer-2075 { position: relative; display: block; container-type: inline-size; }
body.sec-flow .flow-transfer-2075 > img { display: block; width: 100%; height: auto; }
body.sec-flow .flow-transfer-2075__mid { position: absolute; top: 0; bottom: 0; left: 33.5%; right: 33.6%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.4cqi; background: #FFFFFF; color: #7D8A8E; }
body.sec-flow .flow-transfer-2075__mid svg { width: 13cqi; height: auto; }
body.sec-flow .flow-transfer-2075__arrow { position: relative; width: 88%; height: 1px; background: #A5B1B4; }
body.sec-flow .flow-transfer-2075__arrow::before,
body.sec-flow .flow-transfer-2075__arrow::after { content: ""; position: absolute; top: -3px; width: 6px; height: 6px; border: solid #A5B1B4; border-width: 1px 1px 0 0; }
body.sec-flow .flow-transfer-2075__arrow::before { left: 0; transform: rotate(-135deg); }
body.sec-flow .flow-transfer-2075__arrow::after { right: 0; transform: rotate(45deg); }
body.sec-flow .flow-transfer-2075__text { font-family: var(--f-sans-jp); font-weight: 700; font-size: 3.1cqi; letter-spacing: 0.1em; line-height: 1.35; text-align: center; }
@media only screen and (min-width: 800px) {
	/* 下層 v118: STEP 1〜4 の説明文の頭をそろえる (見出しが2行の STEP があるので、写真・STEP・見出し・説明文の行の高さを4つでそろえる / 見出しは HTML で span.step-ttl-2075 に) */
	body.sec-flow ul.step { display: grid; grid-auto-flow: column; grid-auto-columns: 22%; grid-template-rows: repeat(4, auto); justify-content: center; column-gap: 4%; }
	body.sec-flow ul.step li { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; width: auto; margin: 0; }
	body.sec-flow ul.step li > img { width: 100%; height: auto; }
	body.sec-flow ul.step .step-ttl-2075 { display: block; }
	/* 下層 v118: 写真と文の間をあける (元 2% → 4%) / 写真の下辺をそろえる
	   (左右を横並び (flex) にして同じ高さに。文の側の最後の写真は下に寄せ、大きい写真は高さいっぱいに切り抜き) */
	body.sec-flow .float-image { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: stretch; overflow: visible; }
	body.sec-flow .float-image > div { float: none; display: flex; flex-direction: column; width: 52%; }
	body.sec-flow .float-image > figure { float: none; display: flex; width: 44%; margin: 0; }
	body.sec-flow .float-image > figure > img { width: 100%; height: 100%; object-fit: cover; }
	body.sec-flow .flow-before article:nth-of-type(2n+1) .float-image > figure { order: -1; }
	body.sec-flow .float-image > .flow-midasi { order: -2; box-sizing: border-box; width: 272px; max-width: none; margin: 0 calc(50% - 136px) 20px; }   /* 渡航後～挙式前日: 1行を占めて中央に */
	body.sec-flow .flow-words > :is(img, .flow-transfer-2075):last-child { margin-top: auto !important; }
	body.sec-flow .flow-words > :is(img, .flow-transfer-2075):last-child:not(:first-child) { padding-top: 24px; }
}
@media only screen and (max-width: 799px) {
	body.sec-flow .flow_tab { flex-direction: column; gap: 8px; margin: 0 16px 40px; }
	body.sec-flow .flow_tab :is(a.blue, a.gray) { width: auto; min-height: 56px; }
	body.sec-flow .flow-before article { background-size: 30px 12px; }
	body.sec-flow ul.step { margin-bottom: 56px; }
	body.sec-flow ul.step li em { margin-top: 0; }
	body.sec-flow .flow-after .flow-words h5 { padding-left: 0; text-indent: 0; }
	body.sec-flow .flow-after .flow-words h5::before { margin-right: 8px; font-size: 20px; }
	body.sec-flow nav.icon-flow a::after { top: 4px; left: 6px; font-size: 15px; }
}
@media only screen and (max-width: 767px) {
	body.sec-flow main { font-size: 13px; }
	body.sec-flow .flow-after > h3.midasi.v2 { margin-top: 48px; }
	body.sec-flow .flow-before .midasi3 { font-size: 16px; letter-spacing: 0.1em; }
	body.sec-flow .goto_hawaii p { font-size: 18px; letter-spacing: 0.1em; }
	body.sec-flow .cancel_box { padding: 16px; }
	body.sec-flow figure.flow-image { margin-bottom: 28px; }
	body.sec-flow .flow-after { margin-top: 56px; padding: 40px 0 40px; }
}

/* ==========================================================================
   HAWAII-2075: プラン一覧 (/plan/ index.html / plan.css)
   #plan-index-* と .change-layout は一覧にしかないので、プラン詳細ページには効かない
   ========================================================================== */
/* ご希望のプランの種類をお選びください (絞り込み) */
#plan-index-checks-wrap { margin-top: 0; }
#plan-index-checks-wrap .selectMsg { margin-bottom: 20px; font-family: var(--f-serif-jp); font-weight: 700; font-size: 18px; letter-spacing: 0.15em; line-height: 1.6; color: var(--c-text); }
#plan-index-buttons { padding-bottom: 24px; border-top: 0; }
#plan-index-checks-wrap .accordion { height: auto; margin-bottom: 8px; padding: 12px 40px; background: #F1F4F4; font-family: var(--f-sans-jp); font-weight: 500; font-size: 14px; letter-spacing: 0.1em; line-height: 1.6; color: var(--c-text); }
#plan-index-checks-wrap .accordion::after { top: 50%; right: 20px; width: 6px; height: 6px; margin-top: -2px; border-width: 1px 1px 0 0; border-color: #7D8A8E; }
#plan-index-checks-wrap .accordion.close::after { margin-top: -5px; }
#plan-index-checks-wrap .accordion-section ul li { border-bottom-color: #E6ECEC; }
#plan-index-buttons .checkbox-label { font-family: var(--f-sans-jp); font-weight: 400; font-size: 14px; letter-spacing: 0.05em; color: var(--c-text); }
#plan-index-buttons .checkbox-label::before { top: 3px; width: 16px; height: 16px; border-color: #A5B1B4; border-radius: 0; }
#plan-index-buttons .checkbox-input:checked + .checkbox-label::before { background: #7D8A8E; border-color: #7D8A8E; }
#plan-index-buttons .checkbox-input:checked + .checkbox-label::after { top: 4px; left: 6px; width: 4px; height: 8px; border-width: 0 2px 2px 0; }
/* カード */
#plan-index-main > article { margin-bottom: 56px; }
/* 下層 v118: 同じ行のカードで価格・ボタンの位置をそろえる (元はカードが inline-block で高さがばらばら)
   PC (2列): 写真・プラン名・説明・価格・タグ・ボタンの6段の高さを、同じ行の2枚でそろえる (subgrid。div は display: contents で中身をカードの段に)
   スマホの2列 (.rows): 行の高さをそろえて、価格・タグ・ボタンを下に寄せる (スマホの2列は説明を出していない) */
@media only screen and (min-width: 800px) {
	body.sec-plan #plan-index-main { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4%; }
	body.sec-plan #plan-index-main > article { display: grid; grid-row: span 6; grid-template-rows: subgrid; row-gap: 0; width: auto; margin: 0 0 56px; }
	body.sec-plan #plan-index-main > article > div { display: contents; }
	body.sec-plan #plan-index-main > article > div > p { margin-left: 0; margin-right: 0; }   /* plan.css の margin: 0 auto がグリッドの中では中央寄せになるので */
}
@media only screen and (max-width: 799px) {
	body.sec-plan .rows #plan-index-main { display: flex; flex-wrap: wrap; justify-content: space-between; }
	body.sec-plan .rows #plan-index-main > article > div { display: flex; flex-direction: column; }
	body.sec-plan .rows #plan-index-main > article > div > p:nth-of-type(2) { margin-top: auto; }
}
/* 文字を写真の左端にそろえる (元は左右に 10px の余白) */
#plan-index-main > article h3,
#plan-index-main > article > div { padding-left: 0; padding-right: 0; }
#plan-index-main > article h3 {
	margin-bottom: 12px;
	padding-bottom: 0;
	border-bottom: 0;
	font-family: var(--f-sans-jp) !important;
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.1em;
	line-height: 28px;
}
#plan-index-main > article h3 a { color: var(--c-text); }
/* 写真上のバッジ (人気 NO.1 など): 左上 → デザインどおり写真の右下に、はみ出して重ねる */
#plan-index-main > article > a:not(.bt) { margin-bottom: 24px; }
#plan-index-main > article > a img.circle { top: auto; right: -20px; bottom: -20px; left: auto; width: 100px; max-width: 22%; }
/* 右の列のバッジが .in (overflow: hidden・右の余白 10px) で切れないように。.in が画面いっぱいになる幅でははみ出しを 10px に */
body.sec-plan .in:has(> #plan-index-main) { overflow: visible; display: flow-root; }
@media only screen and (min-width: 800px) and (max-width: 1059px) {
	#plan-index-main > article > a img.circle { right: -10px; }
}
#plan-index-main > article > div > p { font-family: var(--f-sans-jp); font-size: 13px; letter-spacing: 0.05em; line-height: 1.8; color: var(--c-text-warm); }
/* 価格: Fjalla One 26px (円・～・キャンペーンの文字は Noto) */
#plan-index-main > article > div > p > span { color: var(--c-text); }
#plan-index-main > article > div > p .mincho { font-family: var(--f-sans-jp) !important; }
#plan-index-main > article > div > p strong { margin-right: 2px; font-family: var(--f-num); font-weight: 400; font-size: 26px; letter-spacing: 0.1em; line-height: 28px; vertical-align: -1px; }
#plan-index-main > article > div > p small strong { font-size: 18px; }
#plan-index-main > article > div > p > span em { font-style: normal; }
#plan-index-main .card_basic_wedding_box .label { font-size: 13px; }
#plan-index-main .card_basic_wedding_box .br-rows { display: none; } /* スマホの2列のときだけ改行 (下の @media) */
/* プラン詳細はこちら */
#plan-index-main > article > a.bt {
	position: relative;
	display: flex;
	width: 280px;
	max-width: 60%;
	margin: 16px auto 0 0; /* デザインは左寄せ (元は右寄せ) */
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 6px 16px;
	border: 0;
	border-radius: 0;
	background: var(--c-footer);
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.4;
	color: #FFFFFF;
}
#plan-index-main > article > a.bt::after { content: ""; position: absolute; top: 50%; right: -10px; width: 20px; height: 1px; background: #DCE2E2; }
#plan-index-main > article > a.bt:hover { opacity: 0.85; }
/* スマホの 1列 / 2列 切り替え */
.change-layout a { border-radius: 0; background-color: #F1F4F4; color: #A5B1B4; }
.change-layout a.selected { background-color: var(--c-footer); color: #FFFFFF; }
/* 下層 v127: 800px 以上はカードを2列に固定しているので、切り替えボタンは出さない (ボタンの .smt は 890px まで出るので、800〜890px で押しても変わらなかった) */
@media only screen and (min-width: 800px) {
	body.sec-plan .change-layout-wp { display: none; }
}
@media only screen and (max-width: 799px) {
	#plan-index-buttons { border-top: 0; }
	#plan-index-checks-wrap .selectMsg { font-size: 16px; letter-spacing: 0.1em; }
	#plan-index-checks-wrap .accordion { padding: 10px 36px; font-size: 13px; }
	#plan-index-main > article { margin-bottom: 40px; }
	#plan-index-main > article h3 { font-size: 16px; line-height: 26px; }
	#plan-index-main > article > a.bt { width: 70%; max-width: none; }
	#plan-index-main > article > a:not(.bt) { margin-bottom: 20px; }
	#plan-index-main > article > a img.circle { right: -8px; bottom: -14px; width: 22%; max-width: none; }
	.rows #plan-index-main > article > a img.circle { right: -6px; bottom: -10px; width: 30%; }
	.rows #plan-index-main > article { margin-bottom: 32px; }
	.rows #plan-index-main > article h3 { font-size: 13px; letter-spacing: 0.05em; line-height: 20px; }
	.rows #plan-index-main > article > div > p strong { font-size: 20px; letter-spacing: 0.05em; }
	.rows #plan-index-main > article > a.bt { width: 100%; max-width: none; margin: 10px 0 0; min-height: 36px; padding: 4px 8px; font-size: 12px; letter-spacing: 0.05em; }
	.rows #plan-index-main > article > a.bt::after { display: none; }
	/* 2列のときは「挙式／パッケージ」を2行にして、価格 (1,065,200円～) を1行に収める */
	.rows #plan-index-main .card_basic_wedding_box .label { font-size: 11px; line-height: 1.3; }
	.rows #plan-index-main .card_basic_wedding_box .price strong { font-size: 18px; letter-spacing: 0; }
	.rows #plan-index-main .card_basic_wedding_box .br-rows { display: inline; }
}

/* ==========================================================================
   HAWAII-2075: プラン個別ページ (/plan/*.html / plan-subpage.css)
   デザインなし・予算内でできるところまで。スライドショー・含まれるもの・スケジュール・モーダルは
   上の「オプション下層」のルールを body.sec-plan にも効かせている。ここはプランだけの部分
   ========================================================================== */
/* タイトル: 他のページと同じ .midasi-2075 (英字大・日本語小)。英字のプラン名は最長70文字ほどあるので、
   plan-head.tpl で長さを見て is-mid (15〜26文字) / is-long (27文字〜) を付けて段階的に小さくする */
body.sec-plan .midasi.midasi-2075.plan-var { margin-bottom: 40px; text-wrap: balance; }
body.sec-plan .midasi.midasi-2075.plan-var em { text-wrap: balance; }
body.sec-plan .midasi.midasi-2075.plan-var.is-mid em { font-size: 40px; line-height: 1.2; }
body.sec-plan .midasi.midasi-2075.plan-var.is-long em { font-size: 30px; letter-spacing: 0.1em; line-height: 1.3; }
body.sec-plan .midasi.plan-var small { font-size: 90%; letter-spacing: 0.05em; }
body.sec-plan .midasi.plan-var .gray-bg { margin: 0 4px; border-radius: 0; background-color: #7D8A8E; font-size: 11px; font-weight: 500; letter-spacing: 0.05em; }
/* ページ内リンク (プランに含まれるもの / スケジュール / ロイヤルカイラ人気のオプション) */
body.sec-plan .plan_custom_link { margin: 0 0 48px; }
body.sec-plan .plan_custom_link ul,
body.sec-plan .plan_custom_link ul li { border-color: #C9CDCF; }
body.sec-plan .plan_custom_link li::after { border-top-color: #A5B1B4; }
body.sec-plan .plan_custom_link a { font-family: var(--f-sans-jp) !important; font-weight: 500; font-size: 14px; letter-spacing: 0.1em; color: var(--c-text); }
/* 含まれるもの・スケジュール・オプションを PC でも全部表示する (元はタブで1つずつ・クリックしないと見えなかった)
   上の余白はアンカーで飛んだ時に固定ヘッダーの下に見出しが隠れないため */
body.sec-plan #plan-subsections > section { display: block; padding-top: 120px; margin-top: -20px; }
body.sec-plan #plan-subsections > section:first-child { padding-top: 100px; }
/* リード */
body.sec-plan #plan-intro-summary .main_words { font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.1em; line-height: 2; color: var(--c-text-warm); }
body.sec-plan #plan-intro-summary .tx_blue2 { color: #7D8A8E; }
/* 下層 v99: 「プランに含まれるもの」の下の一文 (h4.midasi3.bold / special.html など6本): 共通の .midasi3 の青をやめて黒の項目見出しに */
body.sec-plan #plan-subpage h4.midasi3.bold { margin-bottom: 16px; font-size: 15px; letter-spacing: 0.05em; line-height: 1.8; color: var(--c-text); }
/* 下層 v102: h3 の同じ見出し (ムービープランの「より臨場感あふれる…」) も水色をやめる */
body.sec-plan h3.midasi3.bold { color: var(--c-text); }
@media only screen and (max-width: 767px) { body.sec-plan #plan-subpage h4.midasi3.bold { font-size: 14px; } }
/* 下層 v100: 和装の支度の流れ (.schedule-makeup-detail / plan/inc/japanese-schedule-makeup.tpl): 文字と「>」の水色 (#099FD1) をやめる */
:is(body.sec-plan, body.sec-option) .schedule-makeup-detail > ol > li { color: var(--c-text); }
:is(body.sec-plan, body.sec-option) .schedule-makeup-detail > ol > li::after { color: #A5B1B4; }
/* 下層 v100: 申込カードのキャンペーンの文 (plan-subpage.css の color: red) も、ほかの注意の赤 (.tx_red2 #C30D23) にそろえる */
body.sec-plan .apply-variant-campaign { color: #C30D23; }
/* 下層 v101: モアナルア挙式の会場紹介 (.brown-recommend.moanalua-single / plan/inc/moanalua-venues_*.tpl): PC では本文を写真の下に回り込ませず、写真の右の列に収める */
@media only screen and (min-width: 768px) {
	body.sec-plan .brown-recommend:is(.moanalua-single, .moanalua-select) > div > ul > li p { overflow: hidden; }
}
/* 下層 v102: 英字のない .plan-midasi1 (ビデオグラファー紹介・ロイヤルカイラ厳選フォトグラファー・宿泊ホテルお支度こんな方におすすめ) は、日本語だけの見出し (しっぽり明朝) に */
:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-midasi1:not(:has(> small)) {
	display: block;
	font-family: var(--f-serif-jp) !important;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.15em;
	text-align: center;
}
@media only screen and (max-width: 767px) {
	:is(body.sec-option, body.sec-plan) :is(#plan-subpage, .blue-box.box-2075) .plan-midasi1:not(:has(> small)) { font-size: 16px; letter-spacing: 0.1em; }
}
/* 下層 v102: ページ冒頭の h3.midasi3.bold (ムービープランなど5本) も共通の .midasi3 の青をやめて黒に */
body.sec-plan #plan-subpage h3.midasi3.bold { color: var(--c-text); }
/* 下層 v102: プラン個別に残っている中間の青の文字 (.tx_blue2 / ビデオグラファー・フォトグラファーの名前など) は #7D8A8E に */
body.sec-plan .tx_blue2 { color: #7D8A8E; }
/* 下層 v105: 写真・カードの下の影 (.after-shadow::after の radial-gradient / shadow.png) はすべてなし */
:is(body.sec-plan, body.sec-option) .after-shadow::after { display: none; }
/* 下層 v105: フォトグラファー・ビデオグラファーの紹介 (.text-shadow-img): 見出しは本文と同じ左寄せ・本文は両端ぞろえ (英数字の前で早く折り返して右端が凸凹になるため) */
body.sec-plan .text-shadow-img h4.midasi3 { text-align: left; }
body.sec-plan .text-shadow-img p { text-align: justify; }
/* 下層 v106: プランのバリエーション切り替え (nav.folder_links.variation / plan/inc/variation_links_generate.tpl・48本) のスマホ版:
   水色の文字 (#0AA0D2)・選択中の水色の面 (#D9EEF8)・角丸をやめる (PC 版はもともとグレー) */
@media only screen and (max-width: 799px) {
	body.sec-plan .folder_links.variation { border-color: #C9CDCF; border-radius: 0; }
	body.sec-plan .folder_links.variation h3 { color: var(--c-text); }
	body.sec-plan .folder_links.variation h3:hover { background-color: #F1F4F4; }
	body.sec-plan .folder_links.variation p a { border-color: #E6ECEC; color: var(--c-text-warm); }
	body.sec-plan .folder_links.variation p a.on,
	body.sec-plan .folder_links.variation p a:hover { background: #F1F4F4; border-color: #E6ECEC; color: var(--c-text); }
	body.sec-plan .folder_links.variation p a.on { font-weight: 500; }
}
/* 価格: 数字は Fjalla One (プラン一覧と同じ) */
body.sec-plan #plan-intro-summary .plan_price { font-family: var(--f-sans-jp) !important; font-size: 14px; letter-spacing: 0.05em; color: var(--c-text); }
body.sec-plan #plan-intro-summary .plan_price strong { margin-right: 4px; font-family: var(--f-num); font-weight: 400; font-size: 36px; letter-spacing: 0.08em; line-height: 1.2; }
/* オプション: 見出しの帯・青い文字・MORE ボタン */
body.sec-plan #plan-subpage .plan-midasi3 { padding: 12px 16px; background-color: #F1F4F4; font-family: var(--f-sans-jp); font-size: 15px; letter-spacing: 0.05em; color: var(--c-text); }
body.sec-plan #plan-subpage .plan-option-list:not(:last-child) { border-bottom-color: #E6ECEC; }
body.sec-plan #plan-subpage .plan-option-list > li .plan-midasi2 { border-left-color: #A5B1B4; font-family: var(--f-sans-jp); font-weight: 700; font-size: 14px; letter-spacing: 0.05em; color: var(--c-text); }
body.sec-plan #plan-subpage .bullet-list.blue > li::before { background-color: #C9CDCF; }
body.sec-plan #plan-best-options > figure h4 { font-family: var(--f-sans-jp); font-size: 13px; letter-spacing: 0.05em; line-height: 1.7; color: #7D8A8E; }
body.sec-plan #plan-best-options > figure h5 { font-family: var(--f-serif-jp) !important; font-weight: 700; font-size: 18px; letter-spacing: 0.1em; line-height: 1.5; color: var(--c-text); }
body.sec-plan #plan-best-options > figure nav.after-shadow::after { display: none; }
body.sec-plan #plan-best-options > figure nav a {
	position: relative;
	box-sizing: border-box; /* 幅に左右の余白を含める (含めないとカードより 22px はみ出し、右のカードでは右の横線が外の枠で切れていた) */
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(100% - 10px);
	min-height: 44px;
	padding: 6px 16px;
	border-radius: 0;
	background-color: var(--c-footer);
	font-family: var(--f-sans-jp);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #FFFFFF;
}
body.sec-plan #plan-best-options > figure nav a::after { content: ""; position: absolute; top: 50%; right: -10px; width: 20px; height: 1px; background: #DCE2E2; }
body.sec-plan #plan-best-options > figure nav a:hover { background-color: var(--c-footer); opacity: 0.85; }
/* 価格とプラン一覧 (教会一覧・神社一覧・指名なし/ありのボタン (HAWAII-2063) も) の間 */
body.sec-plan :is(#plan-apply-list, #plan-wedding-plan-list, #plan-chapel, #plan-shrine) { margin-top: 100px; }
/* ロイヤルカイラ人気のオプション と おすすめオプション の間 */
body.sec-plan #plan-subpage .in:has(> #plan-best-options) { margin-bottom: 100px; }
/* 申し込みボタン (教会・プラン一覧のカード / 指名なし・ありのボタン (HAWAII-2063) / 空き状況の確認・お申し込みはこちら):
   青・角丸・矢印の画像 → リンクボタンと同じ (ボタン色・角なし・右に短い横線)。大きさは元のまま */
body.sec-plan :is(.chapel-list > li nav a.blue, .plan-apply-btn a.blue, a.apply-btn) {
	position: relative;
	border-radius: 0;
	background-color: var(--c-footer);
	background-image: none;
	font-family: var(--f-sans-jp);
	font-weight: 500;
	letter-spacing: 0.1em;
	color: #FFFFFF;
	box-shadow: none;
}
body.sec-plan :is(.chapel-list > li nav a.blue, .plan-apply-btn a.blue, a.apply-btn)::after { content: ""; position: absolute; top: 50%; right: -10px; width: 20px; height: 1px; background: #DCE2E2; }
body.sec-plan :is(.chapel-list > li nav a.blue, .plan-apply-btn a.blue, a.apply-btn):hover { background-color: var(--c-footer); opacity: 0.85; box-shadow: none; color: #FFFFFF; }
body.sec-plan .chapel-list > li nav a.blue:before { display: none; }
body.sec-plan a.apply-btn .price { font-family: var(--f-sans-jp); }
body.sec-plan a.apply-btn .price strong { font-family: var(--f-num); letter-spacing: 0.05em; }
body.sec-plan a.apply-btn .cta { font-weight: 500; }
/* 下層 v107: 「（空き状況を確認）」は小さく。折り返すときはカッコ書きごと次の行へ (3列で「確 / 認」と割れていたため) */
body.sec-plan a.apply-btn .cta small { display: inline-block; font-size: 0.8em; font-weight: 400; letter-spacing: 0.02em; }
/* カードの価格も Fjalla One */
body.sec-plan :is(.chapel-list > li h4, .apply-variant-price) strong { font-family: var(--f-num) !important; font-weight: 400; letter-spacing: 0.05em; }
body.sec-plan .apply-variant-card { border: 1px solid #C9CDCF; }
body.sec-plan .apply-variant-grid-1 .apply-variant-card { border: 0; }

/* その他おすすめプラン: オプションのカード一覧 (.gray-box .option-list) と同じ形に */
body.sec-plan #plan-other-plans { margin-bottom: 0; padding: 72px 0 80px; background: #F1F4F4; }
body.sec-plan #plan-other-plans .plan-midasi1 { flex-direction: column; }
body.sec-plan #plan-other-plans .plan-midasi1 br { display: none; }
body.sec-plan #plan-other-plans .plan-midasi1 > small { margin: 12px 0 0; padding: 0; font-family: var(--f-sans-jp); font-weight: 400; font-size: 12px; letter-spacing: 0.2em; line-height: 1.6; color: var(--c-text); text-transform: none; }
body.sec-plan #plan-other-plans .plan-midasi1 { font-family: var(--f-en-main) !important; font-weight: 500; font-size: 26px; letter-spacing: 0.25em; line-height: 1; color: var(--c-accent); text-transform: uppercase; }
body.sec-plan .other-plans-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 60px 50px; max-width: 1000px; margin: 0 auto; padding: 0; }
body.sec-plan .other-plans-list > li { display: flex; width: auto; margin: 0; border: 0; background: none; }
body.sec-plan .other-plans-list > li::before,
body.sec-plan .other-plans-list > li.after-shadow::after { display: none; }
body.sec-plan .other-plans-list > li > div { display: flex; width: 100%; padding: 0; border: 0; background: none; }
body.sec-plan .other-plans-list > li a { display: flex; flex-direction: column; width: 100%; color: inherit; }
body.sec-plan .other-plans-list > li a:hover { opacity: 0.85; }
body.sec-plan .other-plans-list > li :is(.oh, .ov) { display: contents; }
body.sec-plan .other-plans-list > li img { order: 1; float: none; width: 100%; max-width: none; margin: 0; aspect-ratio: 4 / 3; object-fit: cover; }
body.sec-plan .other-plans-list > li h4 { order: 2; margin: 22px 0 10px; padding: 0; overflow: visible; font-family: var(--f-sans-jp); font-weight: 700; font-size: 14px; letter-spacing: 0.1em; line-height: 1.6; text-align: left; color: var(--c-text); }
body.sec-plan .other-plans-list > li p { order: 3; margin: 0 0 30px; padding: 0; font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.1em; line-height: 24px; color: var(--c-text-warm); }
/* 価格バー: オプションのカードと同じボタンの形 */
body.sec-plan .other-plans-list > li h5 {
	order: 4;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(100% - 20px);
	min-height: 44px;
	margin: auto 0 0;
	padding: 6px 10px;
	overflow: visible;
	background: var(--c-footer);
}
body.sec-plan .other-plans-list > li h5.line { background-image: none; }
body.sec-plan .other-plans-list > li h5::after { content: ""; position: absolute; top: 50%; right: -10px; width: 20px; height: 1px; background: #DCE2E2; }
body.sec-plan .other-plans-list > li h5 span { font-family: var(--f-sans-jp); font-weight: 500; font-size: 14px; letter-spacing: 0.1em; line-height: 1.4; color: #FFFFFF; }
body.sec-plan .other-plans-list > li h5 span strong { margin-right: 2px; font-family: var(--f-num) !important; font-weight: 400; font-size: 20px; letter-spacing: 0.05em; line-height: 1; vertical-align: -1px; }
/* フッターとの間の白いすきまをなくす */
body.sec-plan main:has(#plan-other-plans) { margin-bottom: 0; }
body.sec-plan #plan-subpage:has(#plan-other-plans) { margin-bottom: 0; padding-bottom: 0; }
/* スマホ下部の固定バー (空き状況の確認・お申込み + ページ内リンク): 青・緑 → 新トーン */
body.sec-plan .plan-4tabs a,
body.sec-plan .plan-4tabs a.active { background-color: var(--c-footer); }
body.sec-plan .plan-4tabs a:hover { background-color: #A5B1B4; }
body.sec-plan .plan-4tabs .plan-4tabs-apply a { background-color: #7D8A8E; font-family: var(--f-sans-jp); font-weight: 500; letter-spacing: 0.1em; }
body.sec-plan .plan-4tabs .plan-4tabs-apply a:hover { background-color: #7D8A8E; opacity: 0.85; }
body.sec-plan .plan-4tabs .plan-4tabs-btns a p em { font-family: var(--f-sans-jp); font-style: normal; font-weight: 500; letter-spacing: 0.05em; }
@media only screen and (max-width: 767px) {
	body.sec-plan .midasi.midasi-2075.plan-var { margin-bottom: 32px; }
	body.sec-plan :is(#plan-apply-list, #plan-wedding-plan-list, #plan-chapel, #plan-shrine) { margin-top: 64px; }
	body.sec-plan .midasi.midasi-2075.plan-var.is-mid em { font-size: 26px; }
	body.sec-plan .midasi.midasi-2075.plan-var.is-long em { font-size: 20px; letter-spacing: 0.08em; }
	body.sec-plan .plan_custom_link a { font-size: 12px; letter-spacing: 0.02em; }
	body.sec-plan #plan-intro-summary .main_words { font-size: 13px; letter-spacing: 0.05em; }
	body.sec-plan #plan-intro-summary .plan_price strong { font-size: 30px; }
	body.sec-plan #plan-subsections > section,
	body.sec-plan #plan-subsections > section:first-child { padding-top: 80px; margin-top: -24px; }
	body.sec-plan #plan-other-plans { padding: 48px 0 56px; }
	body.sec-plan #plan-other-plans .plan-midasi1 { font-size: 20px; }
	body.sec-plan .other-plans-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; padding: 0 16px; }
	body.sec-plan .other-plans-list > li h4 { margin-top: 14px; font-size: 13px; letter-spacing: 0.05em; }
	body.sec-plan .other-plans-list > li p { margin-bottom: 18px; font-size: 12px; letter-spacing: 0.05em; line-height: 20px; }
	body.sec-plan .other-plans-list > li h5 span { font-size: 11px; letter-spacing: 0.02em; }
	body.sec-plan .other-plans-list > li h5 span strong { font-size: 16px; }
}

/* ==========================================================================
   HAWAII-2075: 写真の種類アイコン (ビーチ挙式 / ビーチフォト 100カット など / plan/inc/photo-icon-data.tpl)
   形はピル型のまま (四角はボタンに見えるため)。塗りをやめて白地に同じ色の細い枠と文字、小さく・細く。
   色は種類の見分けに使っているので残す (文字は読みやすいよう少し暗く)。プラン個別・オプション下層・プラン一覧の3か所
   ========================================================================== */
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div,
body.sec-plan #plan-index-main > article > div > ul > li { --ic: #7D8A8E; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).red { --ic: #ff6071; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).blue { --ic: #7888C3; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).blue2 { --ic: #29a5dc; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).blue3 { --ic: #48558F; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).teal { --ic: #28BEB1; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).green { --ic: #39AF4A; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).green2 { --ic: #88C243; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li):is(.green3, .green4) { --ic: #22AF73; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).orange { --ic: #F18D1E; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li):is(.pink, .pink2) { --ic: #FF73A7; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li):is(.purple, .purple2) { --ic: #CD87B7; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).beige { --ic: #d2a05a; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).brown { --ic: #b28247; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).yellow { --ic: #F0B000; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).royalblue { --ic: #4169e1; }
:is(:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div, body.sec-plan #plan-index-main > article > div > ul > li).saddlebrown { --ic: #8b4513; }
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div,
body.sec-plan #plan-index-main > article > div > ul > li {
	border: 1px solid var(--ic);
	border-radius: 999px;
	background-color: #FFFFFF;
	color: color-mix(in srgb, var(--ic) 78%, #000000);
	font-family: var(--f-sans-jp);
	font-weight: 500;
	letter-spacing: 0.05em;
}
/* プラン個別・オプション下層 (写真の下) */
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div { padding: 5px 12px; font-size: 13px; line-height: 1.2; }
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div.single-line p { padding-top: 4px; padding-bottom: 4px; }
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > small { margin: 6px 0 10px; font-family: var(--f-sans-jp); font-size: 12px; letter-spacing: 0.05em; color: var(--c-text-warm); }
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure::after { top: 4px; font-size: 18px; color: #A5B1B4; }
/* プラン個別 (/plan/*.html) とプラン一覧 (/plan/ 下層 v118): 種類ごとの色をやめて #B9C7C6 の塗り + 白文字にそろえる (色のクラス .teal など は HTML に残したまま、ここで上書き) */
body.sec-plan .plan-intro-photos-info figure > div,
body.sec-plan #plan-index-main > article > div > ul > li {
	border-color: #B9C7C6;
	background-color: #B9C7C6;
	color: #FFFFFF;
}
/* プラン一覧のカード (元は角丸 4px の四角) */
body.sec-plan #plan-index-main > article > div > ul > li { padding: 2px 10px 1px; font-size: 11px; line-height: 1.5; }
body.sec-plan #plan-index-main > article > div > ul > li small { color: var(--c-text-warm); }
/* 価格との間を少しあけ、ピルの間を詰めて 1 行に収まりやすく (元は最小幅 80px + 右に 0.75em) */
body.sec-plan #plan-index-main > article > div > ul { margin-top: 14px; }
body.sec-plan #plan-index-main > article > div > ul > li,
body.sec-plan #plan-index-main > article > div > ul > li:not(:last-child) { min-width: 88px; margin: 0 6px 30px 0; padding: 2px 8px 1px; letter-spacing: 0.02em; }
/* 下の場所名はピルの幅まで (元はピルの 140% で、ピルを詰めると隣の場所名とくっつく)。長いものは折り返す */
body.sec-plan #plan-index-main > article > div > ul > li small { width: calc(100% + 4px); min-width: 0; max-width: none; letter-spacing: 0; text-wrap: balance; } /* ピルの最小幅 88px は「マジックアイランド」(10px × 9文字) が1行に収まる幅 */
/* 高さそろえ: 2行のピル (ビーチフォト<br>100カット など) がある並びは、1行のピルも2行分の高さにして文字を上下中央に */
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info:has(figure > div br) figure > div {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 51px; /* 13px × 1.5 × 2行 + 上下 5px + 枠 */
}
:is(body.sec-option, body.sec-plan) .plan-intro-photos-info:has(figure > div br) figure > div.single-line p { padding-top: 0; padding-bottom: 0; }
body.sec-plan #plan-index-main > article > div > ul:has(> li br) > li {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 38px; /* 11px × 1.5 × 2行 + 上下 3px + 枠 */
}
@media only screen and (max-width: 767px) {
	:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > div { padding: 4px 8px; font-size: 12px; }
	:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure > small { font-size: 11px; }
	:is(body.sec-option, body.sec-plan) .plan-intro-photos-info figure::after { font-size: 14px; }
	:is(body.sec-option, body.sec-plan) .plan-intro-photos-info:has(figure > div br) figure > div { min-height: 46px; }
}

/* ==========================================================================
   HAWAII-2075: サイトマップ (/sitemap/ index.html)。旧 sitemap.css は読み込まない
   区分見出しは英字とのセット、まとまりごとに見出し + 線、リンクは左に短い線
   ========================================================================== */
.sitemap-2075 { max-width: 1000px; margin: 0 auto 120px; padding: 0 20px; }
.sitemap-2075__sec + .sitemap-2075__sec { margin-top: 96px; }
.sitemap-2075__h {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 0 40px;
	font-family: var(--f-sans-jp);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-align: center;
	color: var(--c-text);
}
.sitemap-2075__h .en {
	display: block;
	margin: 0 0 12px;
	padding-left: 0.25em;
	font-family: var(--f-en-main);
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.25em;
	line-height: 1;
	color: var(--c-accent);
	text-transform: uppercase;
}
.sitemap-2075__groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 48px; }
.sitemap-2075__groups--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sitemap-2075__groups + .sitemap-2075__groups { margin-top: 40px; }   /* お役立ち情報: トップへのリンクの行と、カテゴリーの 2 列の間 */
.sitemap-2075__title {
	margin: 0 0 14px;
	padding: 0 0 10px;
	border-bottom: 1px solid #C9CDCF;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: var(--c-text);
}
.sitemap-2075__title:only-child { margin-bottom: 0; }
.sitemap-2075 ul li {
	position: relative;
	padding-left: 16px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.7;
}
.sitemap-2075 ul li + li { margin-top: 8px; }
.sitemap-2075 ul li::before { content: ""; position: absolute; top: 0.85em; left: 0; width: 8px; height: 1px; background: #A5B1B4; }
.sitemap-2075 a { color: var(--c-text-warm); text-decoration: none; }
.sitemap-2075__title a { color: var(--c-text); }
.sitemap-2075 a:hover { color: #7D8A8E; text-decoration: underline; }
.sitemap-2075 ul .sub { margin-left: 0.6em; font-size: 12px; color: #7D8A8E; }
/* 別ウィンドウで開くリンクに外部リンクマーク (フッターと同じ) */
.sitemap-2075 a[target="_blank"]::after {
	content: "";
	display: inline-block;
	width: 0.8em;
	height: 0.8em;
	margin-left: 0.4em;
	vertical-align: -0.05em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Cpath d='M5 2H1.5v8.5H10V7'/%3E%3Cpath d='M7 1h4v4M11 1 5.5 6.5'/%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 12 12' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Cpath d='M5 2H1.5v8.5H10V7'/%3E%3Cpath d='M7 1h4v4M11 1 5.5 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media only screen and (max-width: 1000px) {
	.sitemap-2075__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 32px; }
}
@media only screen and (max-width: 767px) {
	.sitemap-2075 { margin-bottom: 80px; padding: 0 16px; }
	.sitemap-2075__sec + .sitemap-2075__sec { margin-top: 64px; }
	.sitemap-2075__h { margin-bottom: 28px; }
	.sitemap-2075__h .en { font-size: 20px; }
	.sitemap-2075__groups,
	.sitemap-2075__groups--wide { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.sitemap-2075__title { font-size: 14px; }
	.sitemap-2075 ul li { font-size: 13px; }
}

/* ==========================================================================
   HAWAII-2075: 新着情報 (/info/ = Lib/Smarty/templates/info/index.tpl / info.css)
   記事の見出しの水色 → 黒、日付は Domaine。アイコン (水色の丸に白い新聞の画像) はグレーに
   ========================================================================== */
body.sec-info .info_box { margin: 0 auto 48px; border-top-color: #E6ECEC; }
body.sec-info .info_box > article { padding: 40px 10px; border-bottom-color: #E6ECEC; }
body.sec-info .info_box > article h3 {
	position: relative;
	padding: 0 0 16px 60px;
	background: none;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: var(--c-text);
}
body.sec-info .info_box > article h3::before {
	content: "";
	position: absolute;
	top: 2px;
	left: 0;
	width: 44px;
	height: 44px;
	background: url(/common/img/info/icon_news.png) no-repeat center / contain;
	filter: grayscale(1) brightness(1.16);
}
body.sec-info .info_box > article h3 small {
	margin-bottom: 4px;
	font-family: var(--f-en-main);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #7D8A8E;
}
body.sec-info .info_box > article p {
	margin-left: 60px;
	font-family: var(--f-sans-jp);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2;
	color: var(--c-text-warm);
}
body.sec-info nav.pagination { font-family: var(--f-en-main); letter-spacing: 0.1em; color: #7D8A8E; }
body.sec-info nav.pagination a { color: #7D8A8E; }
@media only screen and (max-width: 767px) {
	body.sec-info .info_box > article { padding: 28px 0; }
	body.sec-info .info_box > article h3 { padding-left: 44px; font-size: 16px; }
	body.sec-info .info_box > article h3::before { width: 32px; height: 32px; }
	body.sec-info .info_box > article h3 small { font-size: 13px; }
	body.sec-info .info_box > article p { margin-left: 44px; font-size: 13px; }
}

/* ==========================================================================
   HAWAII-2075: フォトギャラリー (/gallery/ = Lib/Smarty/templates/gallery/*.tpl / gallery.css)
   年・月の切り替えは青いリンク → グレー (表示中の年月はリンクなしの黒字)、月の見出しは水色の斜めの帯 → 英字
   ========================================================================== */
/* タイトルの英字は長い (最長 46 文字) ので小さめ */
body.sec-gallery .midasi.midasi-2075 em { font-size: 36px; letter-spacing: 0.1em; line-height: 1.3; text-wrap: balance; }
body.sec-gallery .midasi.midasi-2075 span { margin-top: 0; }
body.sec-gallery .page-change {
	padding: 0;
	border-top: 0;
	font-family: var(--f-sans-jp);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2;
	color: var(--c-text);
}
body.sec-gallery .page-change div { margin-top: 6px; }
body.sec-gallery .page-change a { padding: 2px 6px; font-weight: 400; color: #7D8A8E; }
body.sec-gallery .page-change a:hover { color: var(--c-text); text-decoration: underline; }
body.sec-gallery main > h3.midasi2 {
	margin: 56px auto 32px;
	padding: 0;
	overflow: visible;
	background: none;
	font-family: var(--f-en-main) !important;
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.25em;
	line-height: 1.2;
	text-align: center;
	color: var(--c-accent);
	text-transform: uppercase;
}
body.sec-gallery main > h3.midasi2::before { display: none; }
body.sec-gallery .customers li p { margin-top: 8px; font-family: var(--f-sans-jp); font-size: 13px; letter-spacing: 0.05em; color: var(--c-text-warm); }
body.sec-gallery .customers li p small { border-radius: 0; background: var(--c-footer); }
@media only screen and (max-width: 767px) {
	body.sec-gallery .midasi.midasi-2075 em { font-size: 22px; letter-spacing: 0.08em; }
	body.sec-gallery .page-change { font-size: 13px; }
	body.sec-gallery main > h3.midasi2 { margin: 40px auto 24px; font-size: 20px; }
	body.sec-gallery .customers li p { font-size: 12px; }
}

/* ==========================================================================
   HAWAII-2075: 簡単見積もりシミュレーション (/simulation/ index.html + Lib/Smarty/templates/simulation/option・result・mail_send_finish.tpl)
   simulation.css / plan.css / application.css (お申し込みフォームと共通) の青・ピンク・角丸を、このページの中だけ新トーンに
   ========================================================================== */
/* タイトル: application.css の青い帯を消す (元はテンプレートの style="background-color: transparent" で消していた) */
body.sec-simulation .midasi.midasi-2075 { background: none !important; }
/* 帯の見出し (ご希望のカテゴリーを選択してください / オプション選択) */
body.sec-simulation main .midasi2 { margin: 56px auto 32px; padding: 0; overflow: visible; background: none; font-family: var(--f-serif-jp) !important; font-weight: 700; font-size: 20px; letter-spacing: 0.15em; line-height: 1.6; text-align: center; color: var(--c-text); }
body.sec-simulation main .midasi2::before { display: none; }
/* 1ページ目: 絞り込み (プラン一覧の旧デザインのタブ / plan.css) */
body.sec-simulation #plan-index-buttons { border-top: 0; }
body.sec-simulation #plan-index-buttons nav span { font-family: var(--f-sans-jp); font-size: 12px; letter-spacing: 0.05em; color: var(--c-text-warm); }
body.sec-simulation #plan-index-buttons nav > span,
body.sec-simulation #plan-index-buttons nav p span { background: #F1F4F4; }
body.sec-simulation #plan-index-buttons nav span.on { background: var(--c-footer); color: #FFFFFF; }
body.sec-simulation #plan-index-buttons nav p strong { border-color: #C9CDCF; font-family: var(--f-sans-jp); font-weight: 700; font-size: 13px; letter-spacing: 0.05em; color: var(--c-text); }
body.sec-simulation #plan-index-buttons nav p strong:before { display: none; }
/* 1ページ目: プランと価格のボタン */
body.sec-simulation .simulation-list { font-family: var(--f-sans-jp) !important; }
body.sec-simulation .simulation-list article:not(:last-child) { border-bottom: 1px solid #E6ECEC; }
body.sec-simulation .simulation-list-top h4 { font-weight: 700; font-size: 15px; letter-spacing: 0.05em; line-height: 1.6; color: var(--c-text); }
body.sec-simulation .simulation-list-top h4::before { background-color: #A5B1B4; }
body.sec-simulation .simulation-list article .oh a { border-radius: 0; background-color: var(--c-footer); }
body.sec-simulation .simulation-list article .oh a:hover { background-color: var(--c-footer); opacity: 0.85; }
body.sec-simulation .simulation-list article .oh a::after { width: 8px; height: 8px; margin-top: -4px; border-width: 1px 1px 0 0; }
body.sec-simulation .simulation-list article .oh a small { font-size: 12px; letter-spacing: 0.05em; }
body.sec-simulation .simulation-list article .oh a em strong { margin-right: 2px; font-family: var(--f-num); font-weight: 400; font-size: 22px; letter-spacing: 0.05em; }
/* ボタン (オプションを追加して見積もり / スキップ / 印刷する / メールを送る / TOPページへ) */
body.sec-simulation :is(button.blue, a.blue) { position: relative; border-radius: 0; background-color: var(--c-footer); background-image: none; font-family: var(--f-sans-jp); font-weight: 500; font-size: 14px; letter-spacing: 0.1em; box-shadow: none; }
body.sec-simulation button.gray { border: 1px solid #C9CDCF; border-radius: 0; background-color: #FFFFFF; background-image: none; font-family: var(--f-sans-jp); font-weight: 500; font-size: 14px; letter-spacing: 0.1em; color: var(--c-text-warm); box-shadow: none; }
body.sec-simulation :is(button.blue, button.gray, a.blue):hover { opacity: 0.85; box-shadow: none; }
body.sec-simulation a.blue:before { display: none; }
/* 選択中の内容・見積もり結果のボックス (simulation.css の灰色・ピンクの面) */
body.sec-simulation #simulation-subpage .gray-box { background-color: #F1F4F4; }
body.sec-simulation #simulation-subpage .pink-box { background-color: #FFFFFF; border: 1px solid #C9CDCF; }
body.sec-simulation #simulation-total .lead { font-family: var(--f-serif-jp); font-weight: 700; font-size: 18px; letter-spacing: 0.15em; color: var(--c-text); }
body.sec-simulation .simulation-item-list > li { border-bottom-color: #C9CDCF; font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; color: var(--c-text-warm); }
body.sec-simulation .simulation-item-list > li h4 { font-family: var(--f-sans-jp); font-weight: 700; font-size: 15px; color: var(--c-text); }
body.sec-simulation .simulation-item-list > li h4::before { background-color: #A5B1B4; }
body.sec-simulation .simulation-item-total { font-family: var(--f-sans-jp) !important; color: var(--c-text); }
body.sec-simulation .simulation-item-total p strong { font-family: var(--f-num); font-size: 30px; letter-spacing: 0.05em; }
body.sec-simulation .simulation-note-list > li { font-family: var(--f-sans-jp); font-size: 13px; letter-spacing: 0.05em; line-height: 1.8; color: var(--c-text-warm); }
body.sec-simulation .simulation-note-list > li::before { background-color: #A5B1B4; }
/* 2ページ目: オプションの表 (application.css) */
body.sec-simulation .table-layout-wp { border-bottom-color: #E6ECEC; }
body.sec-simulation .table-layout-wp dt { border-top-color: #E6ECEC; background-color: #F1F4F4; font-family: var(--f-sans-jp); font-weight: 700; font-size: 14px; letter-spacing: 0.05em; color: var(--c-text); }
body.sec-simulation .table-layout-wp dd { font-family: var(--f-sans-jp); font-size: 14px; letter-spacing: 0.05em; color: var(--c-text-warm); }
body.sec-simulation .table-layout-wp dd a:not(.normal):not(.blue) { color: #7D8A8E; }
body.sec-simulation .table-layout-wp dd :is(.detail:not(:last-child), .border-b, table tr:not(:last-child) td, table tr.border-b td) { border-bottom-color: #E6ECEC; }
body.sec-simulation .table-layout-wp dd .ph.point p::before,
body.sec-simulation .table-layout-wp dd .ph.select b.icon { border-radius: 0; background: var(--c-footer); color: #FFFFFF; }
body.sec-simulation .table-layout-wp dd .ph.point p::after { border-top-color: var(--c-footer); }
body.sec-simulation .table-layout-wp dd table td a { border-color: #C9CDCF; border-radius: 0; background-color: #FFFFFF; color: #7D8A8E; }
body.sec-simulation .table-layout-wp dd table td a:hover { background-color: #F1F4F4; }
body.sec-simulation .table-layout-wp dd table td a.toggle { border-color: var(--c-footer); background-color: var(--c-footer); color: #FFFFFF; }
body.sec-simulation .table-layout-wp dd .price { font-family: var(--f-sans-jp); color: var(--c-text); }
body.sec-simulation .table-layout-wp dd h4.title { border-radius: 0; background-color: #7D8A8E; font-family: var(--f-sans-jp); font-weight: 500; letter-spacing: 0.05em; } /* ロイヤルカイラカメラマン など指名の見出し: 濃いグレー → トーンのグレー */
@media only screen and (max-width: 767px) {
	body.sec-simulation main .midasi2 { margin: 40px auto 24px; font-size: 17px; letter-spacing: 0.1em; }
	body.sec-simulation .simulation-list article .oh a em strong { font-size: 18px; }
	body.sec-simulation .simulation-item-total p strong { font-size: 24px; }
}
