/*
 * oto-v2-article.css — 記事本文の部品を新デザインにそろえる（第1弾）
 *
 * 旧CSS（style.css / css/oto-article.css / inc/legacy-content.css）の後に読み込み、
 * `.oto2-single` 配下に限定して上書きする。部品のHTML（クラス名）は変えない。
 * 色は記事の --accent（カテゴリー色／記事ごとの上書き）に追従する。
 *
 * 対象: INDEX / HOTEL GUIDE / h2見出し（ピル＋破線の下線）/ REVIEW星評価 /
 *       利用しやすさのバー / 利用シーンのバッジ / h3見出し / PLAN INFO / SUMMARY
 */

.oto2-single .oto-article {
	--c: var(--accent);
	--cd: var(--accent-dk);
	--on: var(--accent-on);
}

/* 本文の基本（読みやすさ優先で、色と行間だけ整える） */
.oto2-single .oto-entry-body p {
	font-family: var(--oto2-ui);
}

/* ---------- INDEX ---------- */
.oto2-single .oto-entry-body .oto-list-mokuji {
	padding: 18px 18px 10px;
	border: 0;
	border-radius: 14px;
	background: #f6f5f2;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-list-mokuji__head {
	gap: 8px;
	margin: 0 0 6px;
}
.oto2-single .oto-entry-body .oto-list-mokuji__label {
	font: 900 11px/1 var(--oto2-en);
	letter-spacing: 0.18em;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-list-mokuji__sub {
	display: none;
}
.oto2-single .oto-entry-body .oto-list-mokuji__list li {
	border: 0;
	border-bottom: 1px dashed #c9c5bf;
}
.oto2-single .oto-entry-body .oto-list-mokuji__list li:last-child {
	border-bottom: 0;
}
.oto2-single .oto-entry-body .oto-list-mokuji__list a {
	font: 700 13px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-list-mokuji__list a:hover {
	text-decoration: underline;
	text-decoration-color: var(--c);
}
.oto2-single .oto-entry-body .oto-list-mokuji__num {
	font: 900 12px/1 var(--oto2-en);
	color: var(--cd);
}

/* ---------- h2見出し（B案：英字ラベルのピル＋日本語タイトル＋破線の下線） ---------- */
.oto2-single .oto-entry-body .oto-h2-outline-color,
.oto2-single .oto-entry-body .oto-h2-outline {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin: 34px 0 14px;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 2px dashed #b3aea7;
	background: none;
	-webkit-text-stroke: 0;
}
.oto2-single .oto-entry-body .oto-h2-outline-color__en,
.oto2-single .oto-entry-body .oto-h2-outline__en {
	display: inline-block;
	padding: 6px 11px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	-webkit-text-stroke: 0;
	text-shadow: none;
}
.oto2-single .oto-entry-body .oto-h2-outline-color__jp,
.oto2-single .oto-entry-body .oto-h2-outline__jp {
	font: 900 22px/1.35 var(--oto2-ui);
	color: var(--oto2-ink);
	-webkit-text-stroke: 0;
	text-shadow: none;
}
.oto2-single .oto-entry-body .oto-h2-outline__bar {
	display: none;
}

/* ---------- HOTEL GUIDE（施設紹介） ---------- */
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start,.o2o-h2-gourmet-start) {
	position: relative;
	display: grid;
	gap: 8px;
	margin: 14px 0 0;
	padding: 26px 18px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: none;
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start,.o2o-h2-gourmet-start)::before,
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start,.o2o-h2-gourmet-start)::after {
	content: none;
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__eng,.o2o-h2-gourmet-start__eng) {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	margin: 0;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.14em;
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__title,.o2o-h2-gourmet-start__title) {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 22px/1.3 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__loc,.o2o-h2-gourmet-start__loc) {
	margin: 0;
	font: 700 12px/1.4 var(--oto2-ui);
	color: #5c5853;
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__desc,.o2o-h2-gourmet-start__desc) {
	margin: 4px 0 0;
	font: 700 12.5px/1.7 var(--oto2-ui);
	color: #3a3733;
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__rule,.o2o-h2-gourmet-start__rule) {
	display: none;
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__tags,.o2o-h2-gourmet-start__tags) {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__tags,.o2o-h2-gourmet-start__tags) span {
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 11px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__ad,.o2o-h2-gourmet-start__ad) {
	margin: 4px 0 0;
	font: 700 11px/1.5 var(--oto2-ui);
	color: #6b6661;
}

/* ---------- REVIEW 星評価 ---------- */
.oto2-single .oto-entry-body .oto-review {
	margin: 0;
	padding: 6px 16px;
	border: 0;
	border-radius: 14px;
	background: #f6f5f2;
}
.oto2-single .oto-entry-body .oto-review__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px dashed #c9c5bf;
	font: 700 14px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-review__row:last-child {
	border-bottom: 0;
}
.oto2-single .oto-entry-body .oto-review__stars {
	font-size: 17px;
	letter-spacing: 2px;
	color: var(--accent-md, var(--cd));
}
.oto2-single .oto-entry-body .oto-review__stars .off {
	color: #d9d6d1;
}

/* ---------- 推し活での利用しやすさ（カード＋バー） ---------- */
.oto2-single .oto-entry-body .oto-usecase {
	position: relative;
	margin: 30px 0 10px;
	padding: 26px 18px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-h2-bg-subtitle {
	margin: 0 0 8px;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .oto-h2-bg-subtitle__eyebrow {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	margin: 0;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-h2-bg-subtitle__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 20px/1.35 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-bar {
	display: grid;
	grid-template-columns: 84px 1fr 44px;
	align-items: center;
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body .oto-bar__name {
	width: auto;
	font: 900 12px/1 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-bar__track {
	display: block;
	height: 16px;
	overflow: hidden;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-bar__fill {
	display: block;
	height: 100%;
	background: var(--c);
	border-right: 2px solid var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-bar__fill[style*="100%"] {
	border-right: 0;
}
.oto2-single .oto-entry-body .oto-bar__val {
	text-align: right;
	font: 900 12px/1 var(--oto2-en);
	color: var(--cd);
}

/* ---------- 利用シーンのバッジ（遠征利用の場合 など） ---------- */
.oto2-single .oto-entry-body .oto-case-badge {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 22px 0 8px;
}
.oto2-single .oto-entry-body .oto-case-badge__label {
	flex: none;
	padding: 6px 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 12px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-case-badge__line {
	flex: 1;
	height: 0;
	border: 0;
	border-top: 2px dashed #b3aea7;
	background: none;
}

/* ---------- h3見出し（PLAN INFO・SUMMARY など） ---------- */
.oto2-single .oto-entry-body .oto-h3-leftline-subtitle {
	display: flex;
	align-items: center;
	gap: 0;
	justify-content: flex-start;
	text-align: left;
	width: 100%;
	max-width: none;
	margin: 26px 0 12px;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .oto-h3-leftline-subtitle__bar {
	display: none;
}
.oto2-single .oto-entry-body .oto-h3-leftline-subtitle__body {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 8px 10px;
	text-align: left;
}
.oto2-single .oto-entry-body .oto-h3-leftline-subtitle__en {
	padding: 8px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 11.5px/1.3 var(--oto2-en);
	letter-spacing: 0.12em;
}
.oto2-single .oto-entry-body .oto-h3-leftline-subtitle__jp {
	font: 900 18px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}

/* ---------- PLAN INFO ---------- */
.oto2-single .oto-entry-body .o2o-info-wrap {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo > div {
	display: grid;
	gap: 4px;
	margin: 0;
	padding: 10px 14px;
	border: 0;
	border-radius: 12px;
	background: #f6f5f2;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo > div.is-full {
	grid-column: 1 / -1;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo dt {
	margin: 0;
	font: 900 11px/1.3 var(--oto2-ui);
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-table-simpleinfo dd {
	margin: 0;
	font: 700 14px/1.6 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-simpleinfo dd a {
	font-weight: 900;
	color: var(--oto2-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- SUMMARY（良かったポイント／気になるポイント） ---------- */
.oto2-single .oto-entry-body .oto-summary-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 26px;
	margin-top: 30px;
}
.oto2-single .oto-entry-body .oto-table-good-check {
	position: relative;
	display: block;
	padding: 24px 18px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-table-good-check__label {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	margin: 0;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 12px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-table-good-check.is-bad .oto-table-good-check__label {
	background: #e4e1dc;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-good-check__text {
	display: block;
	font: 700 13.5px/1.9 var(--oto2-ui);
	color: var(--oto2-ink);
}

@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start,.o2o-h2-gourmet-start) {
		grid-template-columns: 1fr 1fr;
		column-gap: 28px;
		align-items: center;
		padding: 28px 28px 22px;
	}
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__title,.o2o-h2-gourmet-start__title),
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__loc,.o2o-h2-gourmet-start__loc) {
		grid-column: 1;
	}
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__desc,.o2o-h2-gourmet-start__desc),
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__tags,.o2o-h2-gourmet-start__tags) {
		grid-column: 2;
	}
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__desc,.o2o-h2-gourmet-start__desc) {
		grid-row: 1 / span 1;
		margin: 0;
	}
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__tags,.o2o-h2-gourmet-start__tags) {
		grid-row: 2;
	}
	.oto2-single .oto-entry-body :is(.o2o-h2-hotel-start__ad,.o2o-h2-gourmet-start__ad) {
		grid-column: 1 / -1;
	}
	.oto2-single .oto-entry-body .oto-h2-outline-color__jp,
	.oto2-single .oto-entry-body .oto-h2-outline__jp {
		font-size: 24px;
	}
	.oto2-single .oto-entry-body .oto-usecase {
		padding: 28px 26px 22px;
	}
	.oto2-single .oto-entry-body .oto-table-simpleinfo > div {
		grid-template-columns: 130px 1fr;
		align-items: baseline;
	}
	.oto2-single .oto-entry-body .oto-summary-grid {
		grid-template-columns: 1.4fr 1fr;
		gap: 18px;
	}
}

/* =========================================================
   第2弾：写真・アメニティ・Wi-Fiカード・STAY REPORT・番号見出し・周辺情報・Q&A
   ========================================================= */

/* ---------- 本文の写真：黒枠・角丸・影つきの額縁 ---------- */
/* 写真の上下の余白：下は次の段落の余白(22px)から影(6px)を引いた分だけ見えるので、上もそれに合わせて16pxにする */
.oto2-single .oto-entry-body .wp-block-image,
.oto2-single .oto-entry-body .o2o-plan__img {
	margin-top: 16px;
	margin-bottom: 4px;
}
.oto2-single .oto-entry-body .wp-block-image img,
.oto2-single .oto-entry-body .o2o-plan__img img {
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}

/* ---------- アメニティ一覧（ラベル＋チップ） ---------- */
.oto2-single .oto-entry-body .oto-facility {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 24px 0 6px;
}
.oto2-single .oto-entry-body .oto-sublabel {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font: 900 13px/1.3 var(--oto2-ui);
	letter-spacing: 0;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-sublabel::before {
	content: "";
	flex: none;
	width: 10px;
	height: 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 3px;
	background: var(--c);
}
.oto2-single .oto-entry-body .oto-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}
.oto2-single .oto-entry-body .oto-chip {
	padding: 7px 12px;
	border: 0;
	border-radius: 99px;
	background: #f6f5f2;
	color: var(--oto2-ink);
	font: 700 12.5px/1.3 var(--oto2-ui);
}
.oto2-single .oto-entry-body a.oto-chip:hover {
	background: var(--c);
	color: var(--on);
}

/* ---------- Wi-Fi速度などの数値カード ---------- */
.oto2-single .oto-entry-body .oto-table-wifi {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}
.oto2-single .oto-entry-body .oto-stat-card {
	min-width: 0;
	gap: 8px;
	padding: 14px 14px 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-stat-card__label {
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.16em;
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-stat-card__val {
	font: 900 22px/1 var(--oto2-en);
	white-space: nowrap;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .stat-card__unit,
.oto2-single .oto-entry-body .oto-stat-card__unit {
	margin-left: 4px;
	font: 900 12px/1 var(--oto2-ui);
	color: #5c5853;
}

/* ---------- STAY REPORT（チェックの一覧カード） ---------- */
.oto2-single .oto-entry-body :is(.oto-point,.oto-list-subtitle-check) {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
	min-width: 0;
	margin: 12px 0 6px;
	padding: 26px 18px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body :is(.oto-point__head,.oto-list-subtitle-check__head) {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body :is(.oto-point__label,.oto-list-subtitle-check__label) {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.14em;
}
.oto2-single .oto-entry-body :is(.oto-point__title,.oto-list-subtitle-check__title) {
	display: block;
	font: 900 18px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body :is(.oto-point,.oto-list-subtitle-check) figure {
	margin: 0;
}
.oto2-single .oto-entry-body :is(.oto-point__list,.oto-list-subtitle-check__list) {
	display: grid;
	gap: 10px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body :is(.oto-point__item,.oto-list-subtitle-check__item) {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 0;
	border: 0;
	font: 700 13.5px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body :is(.oto-point__item,.oto-list-subtitle-check__item) > span:last-child {
	min-width: 0;
}
.oto2-single .oto-entry-body :is(.oto-point__mark,.oto-list-subtitle-check__mark) {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	margin-top: 2px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-ui);
}

/* ---------- 番号つきの見出し（POINT 01 など） ---------- */
.oto2-single .oto-entry-body .oto-h3-number-subtitle {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 26px 0 8px;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body .oto-h3-number-subtitle__num {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: var(--c);
	color: var(--on);
	font: 900 20px/1 var(--oto2-en);
}
.oto2-single .oto-entry-body .oto-h3-number-subtitle__icon {
	flex: none;
}
.oto2-single .oto-entry-body .oto-h3-number-subtitle__rule {
	display: none;
}
.oto2-single .oto-entry-body .oto-h3-number-subtitle__text {
	display: block;
	min-height: 0;
}
.oto2-single .oto-entry-body .oto-h3-number-subtitle__kicker {
	display: block;
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.16em;
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-h3-number-subtitle__title {
	margin: 5px 0 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 17px/1.45 var(--oto2-ui);
	color: var(--oto2-ink);
}

/* ---------- 小見出し（近くのコンビニ情報 など）：マーカー線（他のh4とそろえる） ---------- */
.oto2-single .oto-entry-body .oto-h4-miniunderbar {
	display: block;
	margin: 22px 0 10px;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .oto-h4-miniunderbar__jp {
	font: 900 16px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
	background: linear-gradient(transparent 62%, var(--c) 62%);
}
.oto2-single .oto-entry-body .oto-h4-miniunderbar__bar {
	display: none;
}

/* ---------- Q&A ---------- */
.oto2-single .oto-entry-body .oto-faq {
	display: grid;
	gap: 12px;
	margin: 16px 0 0;
}
.oto2-single .oto-entry-body .oto-faq__item {
	display: grid;
	gap: 8px;
	padding: 14px 16px;
	border: 0;
	border-radius: 14px;
	background: #f6f5f2;
}
.oto2-single .oto-entry-body .oto-faq__q,
.oto2-single .oto-entry-body .oto-faq__a {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.oto2-single .oto-entry-body .oto-faq__q > span:first-child,
.oto2-single .oto-entry-body .oto-faq__a > span:first-child {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	font: 900 10px/1 var(--oto2-en);
	letter-spacing: 0;
}
.oto2-single .oto-entry-body .oto-faq__q > span:first-child {
	background: var(--c);
	color: var(--on);
}
.oto2-single .oto-entry-body .oto-faq__a > span:first-child {
	background: #fff;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-faq__q > span:last-child {
	font: 900 13.5px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-faq__a > span:last-child {
	font: 700 13.5px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
}

@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body .oto-table-wifi {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	.oto2-single .oto-entry-body .oto-stat-card__val {
		font-size: 26px;
	}
	.oto2-single .oto-entry-body :is(.oto-point,.oto-list-subtitle-check) {
		padding: 30px 28px 24px;
	}
}


/* =========================================================
   第3弾：リスト・ボックス・良し悪し・メリデメ・リンク・ボタン・予約
   ========================================================= */

/* ---------- 2列リスト（キャンペーン概要など） ---------- */
.oto2-single .oto-entry-body ul.oto-list-2column,
.oto2-single .oto-entry-body ul.oto-list2 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.oto2-single .oto-entry-body .oto-list-2column li,
.oto2-single .oto-entry-body .oto-list2 li {
	margin: 0;
	padding: 12px 14px;
	border: 0;
	border-radius: 12px;
	background: #f6f5f2;
	font: 700 13.5px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
}

/* ---------- 注文した商品などのボックス ---------- */
.oto2-single .oto-entry-body .oto-titlebox--note {
	position: relative;
	margin: 16px 0 6px;
	padding: 26px 18px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-titlebox__note-label {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	margin: 0;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 12px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-titlebox--note .oto-list {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.oto2-single .oto-entry-body .oto-list__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 0;
	border: 0;
	font: 700 13.5px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-list__mark {
	flex: none;
	width: 11px;
	height: 11px;
	margin-top: 7px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
	font-size: 0;
	line-height: 0;
	overflow: hidden;
}

/* ---------- 良かったポイント／気になるポイント（ボックス） ---------- */
.oto2-single .oto-entry-body .oto-prosbox {
	position: relative;
	margin: 16px 0 6px;
	padding: 24px 18px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-prosbox__label {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	margin: 0;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 12px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-prosbox--con .oto-prosbox__label {
	background: #e4e1dc;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-prosbox__body {
	font: 700 13.5px/1.9 var(--oto2-ui);
	color: var(--oto2-ink);
}

/* ---------- メリット・デメリットの表 ---------- */
.oto2-single .oto-entry-body .oto-table-merit-demerit__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
}
.oto2-single .oto-entry-body .oto-table-merit-demerit__col {
	display: grid;
	gap: 10px;
	min-width: 0;
	padding: 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-table-merit-demerit__col-head {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .oto-table-merit-demerit__col-en {
	display: block;
	font: 900 10.5px/1 var(--oto2-ui);
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-table-merit-demerit__col-title {
	display: block;
	margin-top: 5px;
	font: 900 17px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-merit-demerit__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 10px 12px;
	border: 0;
	border-radius: 12px;
	background: #f6f5f2;
	font: 700 13.5px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-merit-demerit__num {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
}
.oto2-single .oto-entry-body .oto-table-merit-demerit__col:nth-child(2) .oto-table-merit-demerit__num {
	background: #e4e1dc;
	color: var(--oto2-ink);
}

/* ---------- 外部リンクの矢印：文字の↗は線が細くなるので、太い線の図形に置き換える ---------- */
.oto2-single .oto-entry-body .oto-affiliate-btn__arrow,
.oto2-single .oto-entry-body .oto-link-thumbnail__arrow,
.oto2-single .oto-entry-body .oto-link-booking__btn::after {
	font-size: 0;
	line-height: 0;
}
.oto2-single .oto-entry-body .oto-affiliate-btn__arrow {
	position: relative;
	flex: none;
	width: 24px;
	height: 24px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
}
.oto2-single .oto-entry-body .oto-affiliate-btn__arrow::after,
.oto2-single .oto-entry-body .oto-link-thumbnail__arrow::after,
.oto2-single .oto-entry-body .oto-link-booking__btn::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 12px;
	transform: translate(-50%, -50%);
	background-color: var(--on);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 17.5L17 7M8.5 6.5h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 17.5L17 7M8.5 6.5h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- アフィリエイトのボタン ---------- */
.oto2-single .oto-entry-body .oto-affiliate-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0;
	padding: 12px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 4px 0 rgba(32, 30, 29, 0.16);
	font: 900 13px/1.3 var(--oto2-ui);
	color: var(--oto2-ink);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-affiliate-btn:hover,
.oto2-single .oto-entry-body .oto-affiliate-btn:focus-visible {
	transform: translateY(2px);
	box-shadow: 0 2px 0 rgba(32, 30, 29, 0.16);
}

/* ---------- 商品カード（ITEM） ---------- */
.oto2-single .oto-entry-body .oto-link-shopcard {
	display: grid;
	gap: 12px;
	margin: 12px 0;
	padding: 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-link-shopcard__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body .oto-link-shopcard__kicker {
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.14em;
}
.oto2-single .oto-entry-body .oto-link-shopcard__pr {
	padding: 0;
	border: 0;
	background: none;
	font: 700 11px/1.3 var(--oto2-ui);
	color: #6b6661;
}
.oto2-single .oto-entry-body .oto-link-shopcard__body {
	display: flex;
	gap: 12px;
	align-items: center;
}
.oto2-single .oto-entry-body .oto-link-shopcard__photo {
	flex: none;
	width: 88px;
	height: 88px;
	object-fit: cover;
	border: 2px solid var(--oto2-ink);
	border-radius: 12px;
}
.oto2-single .oto-entry-body .oto-link-shopcard__name {
	font: 900 15px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-link-shopcard__desc {
	margin-top: 4px;
	font: 700 12.5px/1.6 var(--oto2-ui);
	color: #5c5853;
}
.oto2-single .oto-entry-body .oto-link-shopcard__btns {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}

/* ---------- サムネ付きリンク ---------- */
.oto2-single .oto-entry-body a.oto-link-thumbnail {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 12px 0;
	padding: 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: #fff;
	color: var(--oto2-ink);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__thumb {
	flex: none;
	width: 80px;
	height: 60px;
	object-fit: cover;
	border: 2px solid var(--oto2-ink);
	border-radius: 10px;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__title {
	display: block;
	font: 900 13.5px/1.5 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-thumbnail__domain {
	display: block;
	margin-top: 4px;
	font: 700 11px/1.4 var(--oto2-en);
	color: #6b6661;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__arrow {
	position: relative;
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 5px;
	vertical-align: -2px;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__arrow::after {
	background-color: #6b6661;
	width: 12px;
	height: 12px;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__domain-mark {
	display: none;
}

/* ---------- 関連記事リンク ---------- */
.oto2-single .oto-entry-body a.oto-link-kanren {
	display: grid;
	margin: 12px 0;
	overflow: hidden;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
	color: var(--oto2-ink);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-link-kanren__thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.oto2-single .oto-entry-body .oto-link-kanren__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.oto2-single .oto-entry-body .oto-link-kanren__badge {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-kanren__body {
	display: grid;
	align-content: center;
	gap: 6px;
	padding: 12px 14px 14px;
}
.oto2-single .oto-entry-body .oto-link-kanren__kicker {
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.16em;
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-link-kanren__title {
	font: 900 14px/1.6 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-kanren__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font: 700 12px/1.4 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-kanren__tag {
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-link-kanren__more {
	font-weight: 900;
}

/* ---------- 予約サイトのバナーとボタン（BOOKING） ---------- */
.oto2-single .oto-entry-body .banner-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 12px 0;
}
.oto2-single .oto-entry-body .banner-item {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .banner-item a {
	display: block;
	overflow: hidden;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: #fff;
}
.oto2-single .oto-entry-body .banner-item img {
	display: block;
	width: 100%;
	height: auto;
}
.oto2-single .oto-entry-body .oto-link-booking {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 12px 0;
}
.oto2-single .oto-entry-body .oto-link-booking__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 40px 12px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	box-shadow: 0 4px 0 rgba(32, 30, 29, 0.22);
	font: 900 13px/1 var(--oto2-ui);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-link-booking__btn::after {
	left: auto;
	right: 14px;
	transform: translateY(-50%);
	background-color: currentColor;
}

@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body ul.oto-list-2column,
	.oto2-single .oto-entry-body ul.oto-list2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.oto2-single .oto-entry-body .oto-table-merit-demerit__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}
	.oto2-single .oto-entry-body .oto-link-shopcard__btns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.oto2-single .oto-entry-body a.oto-link-kanren {
		grid-template-columns: 240px 1fr;
	}
	.oto2-single .oto-entry-body .banner-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* ---------- 予約ボタンの見出し（CHECK ＼ … ／）と、メリデメの外枠 ---------- */
.oto2-single .oto-entry-body .oto-link-booking__lead {
	display: grid;
	gap: 6px;
	margin: 22px 0 8px;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
}
.oto2-single .oto-entry-body .oto-link-booking__lead-kicker {
	justify-self: start;
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.16em;
}
.oto2-single .oto-entry-body .oto-link-booking__lead-sub {
	font: 700 13px/1.6 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-merit-demerit {
	margin: 12px 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-affiliate-btn__arrow::after,
.oto2-single .oto-entry-body .oto-link-booking__btn::after {
	width: 14px;
	height: 14px;
}

/* =========================================================
   固定ページ（このサイトについて など）の部品
   ========================================================= */

/* 注意書きのボックス：リストが無い場合は、ラベルを普通の文章として出す */
.oto2-single .oto-entry-body .oto-titlebox--note:not(:has(.oto-list)) {
	padding: 16px 18px;
	background: #f6f5f2;
	border-color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-titlebox--note:not(:has(.oto-list)) .oto-titlebox__note-label {
	position: static;
	display: block;
	height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	font: 700 13px/1.8 var(--oto2-ui);
	color: var(--oto2-ink);
}

/* 通常のh2（英字ラベル＋日本語タイトル）も、B案の見出しにそろえる */
.oto2-single .oto-entry-body .oto-h2 {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin: 34px 0 14px;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 2px dashed #b3aea7;
	background: none;
}
.oto2-single .oto-entry-body .oto-h2__en {
	display: inline-block;
	padding: 6px 11px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.oto2-single .oto-entry-body .oto-h2__jp {
	display: block;
	font: 900 22px/1.35 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-h2__bar {
	display: none;
}

/* マーカー */
.oto2-single .oto-entry-body .oto-mark {
	background: linear-gradient(transparent 60%, rgba(241, 194, 66, 0.75) 60%);
	color: inherit;
	font-weight: 900;
}

/* SNSリンク（X・Instagram） */
.oto2-single .oto-entry-body .oto-share__icon {
	display: inline-flex;
	align-items: center;
	margin: 0 8px 8px 0;
	padding: 9px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 12px/1 var(--oto2-ui);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-share__icon:hover,
.oto2-single .oto-entry-body .oto-share__icon:focus-visible {
	background: var(--oto2-ink);
	color: #fff;
}

/* 「主な発信内容」のタイル */
.oto2-single .oto-entry-body .oto-about-tiles {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	margin: 0;
}
.oto2-single .oto-entry-body .oto-about-tile {
	display: grid;
	gap: 4px;
	margin: 0;
	padding: 12px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-about-tile__bar {
	display: none;
}
.oto2-single .oto-entry-body .oto-about-tile__body {
	display: grid;
	gap: 4px;
}
.oto2-single .oto-entry-body .oto-about-tile__en {
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.16em;
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-about-tile__jp {
	font: 900 14px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}

/* お問い合わせの案内ボックス */
.oto2-single .oto-entry-body .oto-cta-box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 8px 0;
	padding: 16px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-cta-box__title {
	font: 900 15px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-cta-box__sub {
	margin-top: 2px;
	font: 700 11px/1.4 var(--oto2-en);
	color: #6b6661;
}
.oto2-single .oto-entry-body .oto-cta-box__btn {
	padding: 11px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--oto2-ink);
	color: #fff;
	font: 900 13px/1 var(--oto2-ui);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-cta-box__btn:hover,
.oto2-single .oto-entry-body .oto-cta-box__btn:focus-visible {
	background: var(--oto2-oshi);
}

@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body .oto-about-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.oto2-single .oto-entry-body .oto-about-tile--full {
		grid-column: 1 / -1;
	}
	.oto2-single .oto-entry-body .oto-h2__jp {
		font-size: 24px;
	}
}

/* =========================================================
   第4弾：使用回数の少ない見出し・カード・表（個別記事の残り）
   ========================================================= */

/* ---------- ギャラリー・素のリスト ---------- */
.oto2-single .oto-entry-body .wp-block-gallery {
	gap: 14px;
	margin: 6px 0;
}
.oto2-single .oto-entry-body .wp-block-gallery figure.wp-block-image {
	margin: 0;
}
.oto2-single .oto-entry-body ul.wp-block-list {
	display: grid;
	gap: 8px;
	margin: 14px 0;
	padding: 0;
	list-style: none;
}
.oto2-single .oto-entry-body p + ul.wp-block-list {
	margin-top: 18px;
}
/* 箇条書きの1項目＝1枚のうすいグレーのカード（長い文でも区切りが分かる） */
.oto2-single .oto-entry-body ul.wp-block-list > li {
	position: relative;
	margin: 0;
	padding: 11px 14px 11px 38px;
	border-radius: 12px;
	background: #f6f5f2;
	font: 700 13.5px/1.75 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body ul.wp-block-list > li::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 1.05em;
	width: 10px;
	height: 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
}
.oto2-single .oto-entry-body figcaption {
	margin-top: 8px;
	font: 700 12px/1.6 var(--oto2-ui);
	color: #6b6661;
}

/* ---------- h2の変種：B案の見出し（ピル＋日本語タイトル＋破線）にそろえる ---------- */
.oto2-single .oto-entry-body .oto-h2-subtitlebox-line,
.oto2-single .oto-entry-body .oto-h2-underbar-number,
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d,
.oto2-single .oto-entry-body .oto-h2-subtitle2-center {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin: 34px 0 14px;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 2px dashed #b3aea7;
	background: none;
	text-align: left;
}
.oto2-single .oto-entry-body .oto-h2-subtitlebox-line__num,
.oto2-single .oto-entry-body .oto-h2-subtitle2-center__kicker,
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 11px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
	letter-spacing: 0.12em;
}
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__badge-num,
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__badge-label {
	font: 900 11px/1 var(--oto2-en);
	color: inherit;
}
.oto2-single .oto-entry-body .oto-h2-subtitlebox-line__name,
.oto2-single .oto-entry-body .oto-h2-underbar-number__jp,
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__name,
.oto2-single .oto-entry-body .oto-h2-subtitle2-center__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 22px/1.35 var(--oto2-ui);
	color: var(--oto2-ink);
	text-align: left;
}
.oto2-single .oto-entry-body .oto-h2-subtitlebox-line__rule,
.oto2-single .oto-entry-body .oto-h2-underbar-number__num,
.oto2-single .oto-entry-body .oto-h2-subtitle2-center__bar {
	display: none;
}
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__body {
	display: grid;
	gap: 4px;
}
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__sub {
	font: 700 12px/1.4 var(--oto2-ui);
	color: #6b6661;
}
.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__desc,
.oto2-single .oto-entry-body .oto-h2-subtitle2-center__desc {
	margin: 4px 0 0;
	font: 700 13px/1.8 var(--oto2-ui);
	color: #3a3733;
}

/* h2：ボックス型の内部リンク（SHOP GUIDE） */
.oto2-single .oto-entry-body .oto-h2-box-internallink {
	margin: 30px 0 14px;
}
.oto2-single .oto-entry-body .oto-h2-box-internallink__eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 8px;
}
.oto2-single .oto-entry-body .oto-h2-box-internallink__en {
	padding: 6px 11px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
	letter-spacing: 0.12em;
}
.oto2-single .oto-entry-body .oto-h2-box-internallink__sub {
	font: 700 12px/1.4 var(--oto2-ui);
	color: #6b6661;
}
.oto2-single .oto-entry-body .oto-h2-box-internallink__box {
	padding: 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-h2-box-internallink__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 20px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-h2-box-internallink__desc {
	margin: 6px 0 12px;
	font: 700 13px/1.7 var(--oto2-ui);
	color: #3a3733;
}
.oto2-single .oto-entry-body .oto-shopguide-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}
.oto2-single .oto-entry-body .oto-shopguide-links__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	padding: 10px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 12.5px/1.3 var(--oto2-ui);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-shopguide-links__item:hover,
.oto2-single .oto-entry-body .oto-shopguide-links__item:focus-visible {
	background: var(--c);
	color: var(--on);
}
.oto2-single .oto-entry-body .oto-shopguide-links__arrow {
	font-size: 9px;
}

/* ---------- h4の変種 ---------- */
.oto2-single .oto-entry-body .oto-h4-underline-color {
	display: inline-flex;
	flex-direction: column;
	gap: 6px;
	margin: 22px 0 10px;
	padding: 0 0 6px;
	border: 0;
	border-bottom: 4px solid var(--c);
	background: none;
}
.oto2-single .oto-entry-body .oto-h4-underline-color__en {
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.16em;
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-h4-underline-color__jp {
	font: 900 16px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .o2o-area-h4b {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 30px 0 10px;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .o2o-area-h4b__pill {
	padding: 6px 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11.5px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .o2o-area-h4b__station {
	font: 900 22px/1.3 var(--oto2-ui);
	color: var(--oto2-ink);
}

/* ---------- カード（ホテル・会場）と横スクロール ---------- */
.oto2-single .oto-entry-body .oto-h3-card-hotel,
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue {
	display: grid;
	overflow: hidden;
	margin: 12px 0;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__photo,
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__body,
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__body {
	display: grid;
	gap: 8px;
	padding: 14px 16px 16px;
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__badge {
	justify-self: start;
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__title,
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 17px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__desc {
	margin: 0;
	font: 700 12.5px/1.7 var(--oto2-ui);
	color: #3a3733;
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__links a {
	padding: 8px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 12px/1 var(--oto2-ui);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-h3-card-hotel__links a.solid {
	background: var(--oto2-ink);
	color: #fff;
}
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__events {
	display: grid;
	gap: 6px;
}
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__event {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 700 12.5px/1.5 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__dot {
	flex: none;
	width: 9px;
	height: 9px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
}
.oto2-single .oto-entry-body .oto-scroll-cards {
	display: flex;
	flex-direction: column;
}
.oto2-single .oto-entry-body .oto-scroll-cards__track {
	order: 1;
}
/* 操作部は、TOPのPICK UPと同じく、カード列の下に置く（ドット＋矢印ボタン） */
.oto2-single .oto-entry-body .oto-scroll-cards__head {
	order: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 6px 0 0;
}
.oto2-single .oto-entry-body .oto-scroll-cards__hint {
	display: none;
}
.oto2-single .oto-entry-body .oto-scroll-cards__head .oto2-seg i {
	background: rgba(32, 30, 29, 0.22);
}
.oto2-single .oto-entry-body .oto-scroll-cards__head .oto2-seg i.on {
	background: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-scroll-cards__nav {
	display: flex;
	gap: 10px;
}
.oto2-single .oto-entry-body .oto-scroll-cards__btn {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: transparent;
	color: var(--oto2-ink);
	font-size: 0;
	line-height: 1;
	cursor: pointer;
}
.oto2-single .oto-entry-body .oto-scroll-cards__btn::after {
	font: 900 18px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-scroll-cards__btn[data-dir="prev"]::after {
	content: "\2190";
}
.oto2-single .oto-entry-body .oto-scroll-cards__btn[data-dir="next"]::after {
	content: "\2192";
}
.oto2-single .oto-entry-body .oto-scroll-cards__btn:hover,
.oto2-single .oto-entry-body .oto-scroll-cards__btn:focus-visible {
	background: var(--oto2-ink);
	color: #fff;
}
.oto2-single .oto-entry-body .oto-scroll-cards__track .oto-h3-card-shoporvenue {
	margin: 0 0 6px;
}

/* ---------- 悩みの吹き出し（こんなお悩みの人におすすめ） ---------- */
.oto2-single .oto-entry-body .oto-voice-lead {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 12.5px/1.3 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-voice-lead__arrow {
	font-size: 9px;
}
.oto2-single .oto-entry-body .oto-table-image-text {
	display: grid;
	gap: 10px;
	margin: 10px 0;
}
.oto2-single .oto-entry-body .oto-voice-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-voice-card__text {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font: 700 13.5px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-voice-card__bar {
	flex: none;
	width: 4px;
	align-self: stretch;
	border-radius: 99px;
	background: var(--c);
}
.oto2-single .oto-entry-body .oto-voice-card__icon img {
	display: block;
	width: 44px;
	height: auto;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* ---------- 「ほかも見たい人は」の区切りとSNSボタン ---------- */
.oto2-single .oto-entry-body .oto-sns-lead {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 22px 0 8px;
}
.oto2-single .oto-entry-body .oto-sns-lead__rule {
	flex: 1;
	height: 0;
	border: 0;
	border-top: 2px dashed #b3aea7;
	background: none;
}
.oto2-single .oto-entry-body .oto-sns-lead__label {
	font: 900 13px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
	text-align: center;
}
.oto2-single .oto-entry-body .o2o-link-sns__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.oto2-single .oto-entry-body .o2o-link-sns__btn {
	padding: 10px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	box-shadow: 0 4px 0 rgba(32, 30, 29, 0.16);
	font: 900 12.5px/1 var(--oto2-ui);
	text-decoration: none;
}

/* ---------- 比較カード（メリットその1 など） ---------- */
/* 横スクロール（TOPのPICK UPと同じ操作部）。画像は正方形のまま、カード幅に合わせて小さくなる */
.oto2-single .oto-entry-body .oto-cardgrid {
	display: flex;
	align-items: stretch;
	gap: 14px;
	margin: 12px 0 0;
	padding: 2px 2px 10px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.oto2-single .oto-entry-body .oto-cardgrid::-webkit-scrollbar {
	display: none;
}
.oto2-single .oto-entry-body .oto-cardgrid .oto-card {
	display: grid;
	grid-template-rows: auto 1fr;
	flex: 0 0 min(270px, 78%);
	scroll-snap-align: start;
	overflow: hidden;
	margin: 0;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-cardgrid .oto-card__thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: cover;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-cardgrid .oto-card__body {
	display: grid;
	gap: 8px;
	padding: 14px 16px 16px;
}
.oto2-single .oto-entry-body .oto-card__badge {
	justify-self: start;
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-cardgrid .oto-card__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 17px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-cardgrid .oto-card__body p {
	margin: 0;
	font: 500 13.5px/1.8 var(--oto2-ui);
}

/* ---------- 比較表（○×）・マップ枠・ボックス ---------- */
.oto2-single .oto-entry-body .o2o-spec-card {
	margin: 12px 0;
	padding: 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .o2o-spec-card__title {
	margin: 0 0 10px;
	font: 900 15px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .o2o-spec-card__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}
.oto2-single .oto-entry-body .o2o-spec-card__item {
	display: grid;
	justify-items: center;
	gap: 6px;
	padding: 10px 8px;
	border-radius: 12px;
	background: #f6f5f2;
	font: 700 12px/1.4 var(--oto2-ui);
	text-align: center;
}
.oto2-single .oto-entry-body .o2o-map-box {
	display: grid;
	place-items: center;
	min-height: 120px;
	margin: 12px 0;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #f6f5f2;
	font: 900 13px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-titlebox--outline {
	position: relative;
	margin: 16px 0;
	padding: 26px 18px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-titlebox--outline .oto-titlebox__head {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
	letter-spacing: 0.14em;
}
.oto2-single .oto-entry-body .oto-titlebox--outline .oto-titlebox__body p {
	font: 500 14px/1.9 var(--oto2-ui);
}

/* ---------- 一覧系の表（金額・セットリスト・チェック・タイムライン） ---------- */
.oto2-single .oto-entry-body .oto-pat-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 10px;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .oto-pat-head__en {
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.14em;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-pat-head__title {
	display: block;
}
.oto2-single .oto-entry-body .oto-pat-head__jp {
	font: 900 18px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-pat-head__bar {
	display: none;
}
.oto2-single .oto-entry-body .oto-table-price__list,
.oto2-single .oto-entry-body .oto-table-setlist__grid {
	display: grid;
	gap: 8px;
}
.oto2-single .oto-entry-body .oto-table-price__row,
.oto2-single .oto-entry-body .oto-table-setlist__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px;
	border: 0;
	border-radius: 12px;
	background: #f6f5f2;
	font: 700 13.5px/1.6 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-price__price {
	flex: none;
	font: 900 15px/1 var(--oto2-en);
}
.oto2-single .oto-entry-body .oto-table-setlist__row {
	justify-content: flex-start;
}
.oto2-single .oto-entry-body .oto-table-setlist__num {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 24px;
	padding: 0 6px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
}
.oto2-single .oto-entry-body .oto-table-checklist {
	display: grid;
	gap: 14px;
}
.oto2-single .oto-entry-body .oto-table-checklist__card {
	position: relative;
	display: grid;
	gap: 10px;
	padding: 26px 16px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-table-checklist__badge {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-table-checklist__headrow {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 12px;
}
.oto2-single .oto-entry-body .oto-table-checklist__name {
	font: 900 17px/1.4 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-table-checklist__price {
	font: 900 13px/1.4 var(--oto2-ui);
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-table-checklist__list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.oto2-single .oto-entry-body .oto-table-checklist__item {
	padding: 6px 10px;
	border-radius: 99px;
	background: #f6f5f2;
	font: 700 12px/1.3 var(--oto2-ui);
}
.oto2-single .oto-entry-body .o2o-timeline {
	display: grid;
	gap: 10px;
	margin: 8px 0;
}
.oto2-single .oto-entry-body .o2o-timeline__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 14px;
	border-radius: 12px;
	background: #f6f5f2;
}
.oto2-single .oto-entry-body .o2o-timeline__num {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
	color: var(--on);
	font: 900 11px/1 var(--oto2-en);
}
.oto2-single .oto-entry-body .o2o-timeline__time {
	flex: none;
	font: 900 13px/1.6 var(--oto2-en);
	color: var(--cd);
}
.oto2-single .oto-entry-body .o2o-timeline__text {
	margin: 0;
	font: 700 13.5px/1.7 var(--oto2-ui);
}

/* サムネ画像なしのリンクカード */
.oto2-single .oto-entry-body a.oto-link-thumbnail--simple {
	justify-content: space-between;
}

@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body .oto-h2-subtitlebox-line__name,
	.oto2-single .oto-entry-body .oto-h2-underbar-number__jp,
	.oto2-single .oto-entry-body .oto-h2-number-subtitle-line-d__name,
	.oto2-single .oto-entry-body .oto-h2-subtitle2-center__title {
		font-size: 24px;
	}
	.oto2-single .oto-entry-body .oto-shopguide-links {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* 悩みの吹き出し・アイコン付きカードの調整 */
.oto2-single .oto-entry-body .oto-voice-lead::before,
.oto2-single .oto-entry-body .oto-voice-lead::after,
.oto2-single .oto-entry-body .oto-voice-lead__arrow::before,
.oto2-single .oto-entry-body .oto-voice-lead__arrow::after {
	content: none;
}
.oto2-single .oto-entry-body .oto-voice-lead__wrap {
	display: block;
	margin: 22px 0 10px;
	text-align: left;
}
.oto2-single .oto-entry-body .oto-voice-card {
	flex-direction: row;
	flex-wrap: nowrap;
}
.oto2-single .oto-entry-body .oto-voice-card__text {
	flex: 1;
	min-width: 0;
}
.oto2-single .oto-entry-body .oto-voice-card__icon {
	flex: none;
	width: 48px;
	height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	overflow: visible;
}

/* 路線図のブロック：記事データ内の<style>で紺色が指定されているため、見出しの色と枠だけ新デザインにそろえる */
.oto2-single .oto-entry-body .route-map {
	border: 2px solid var(--oto2-ink) !important;
	border-radius: 16px !important;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-h3-station-accessline {
	font-family: var(--oto2-ui) !important;
	font-weight: 900 !important;
	color: var(--oto2-ink) !important;
}
.oto2-single .oto-entry-body .route-meta {
	font-family: var(--oto2-ui);
	font-weight: 700;
}

/* 関連記事リンクのカード：親の幅いっぱいに広げる（縮むと右側の文字が潰れる） */
.oto2-single .oto-entry-body a.oto-link-kanren,
.oto2-single .oto-entry-body a.oto-link-thumbnail {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
}

/* =========================================================
   関連記事リンクカード（確定デザイン）
   上辺に「あわせて読みたい」のピル、上半分に写真、下半分にタイトルとタグ。
   PCは左に写真・右に文字の横並び。
   ========================================================= */
.oto2-single .oto-entry-body a.oto-link-kanren {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	margin: 28px 0 12px;
	overflow: visible;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
	color: var(--oto2-ink);
	text-decoration: none;
}
.oto2-single .oto-entry-body a.oto-link-kanren::before {
	content: "あわせて読みたい";
	position: absolute;
	top: -15px;
	left: 16px;
	z-index: 2;
	display: flex;
	align-items: center;
	height: 28px;
	padding: 0 13px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11.5px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-kanren__thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-bottom: 2px solid var(--oto2-ink);
	border-radius: 14px 14px 0 0;
	background: #e4e1dc;
}
.oto2-single .oto-entry-body .oto-link-kanren__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-link-kanren__badge {
	position: absolute;
	top: 10px;
	right: 10px;
	left: auto;
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 11px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-kanren__body {
	display: grid;
	align-content: center;
	gap: 8px;
	padding: 14px 16px 16px;
}
.oto2-single .oto-entry-body .oto-link-kanren__kicker {
	display: none;
}
.oto2-single .oto-entry-body .oto-link-kanren__title {
	display: -webkit-box;
	overflow: hidden;
	font: 900 14px/1.65 var(--oto2-ui);
	color: var(--oto2-ink);
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}
.oto2-single .oto-entry-body .oto-link-kanren__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font: 700 12px/1.4 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-kanren__tag {
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-link-kanren__more {
	font-weight: 900;
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body a.oto-link-kanren:hover .oto-link-kanren__more,
.oto2-single .oto-entry-body a.oto-link-kanren:focus-visible .oto-link-kanren__more {
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body a.oto-link-kanren {
		grid-template-columns: 240px minmax(0, 1fr);
	}
	.oto2-single .oto-entry-body .oto-link-kanren__thumb {
		aspect-ratio: auto;
		min-height: 150px;
		border-right: 2px solid var(--oto2-ink);
		border-bottom: 0;
		border-radius: 14px 0 0 14px;
	}
	.oto2-single .oto-entry-body .oto-link-kanren__thumb img {
		position: absolute;
		inset: 0;
	}
	.oto2-single .oto-entry-body .oto-link-kanren__body {
		padding: 16px 20px;
	}
	.oto2-single .oto-entry-body .oto-link-kanren__title {
		font-size: 15px;
	}
}

/* 関連記事リンクカードの下の行：カテゴリー／タグ／丸い矢印ボタン */
.oto2-single .oto-entry-body .oto-link-kanren__foot {
	justify-content: flex-start;
	gap: 8px 10px;
}
.oto2-single .oto-entry-body .oto-link-kanren__cat {
	padding: 5px 11px;
	border-radius: 99px;
	background: #f6f5f2;
	color: var(--oto2-ink);
	font: 900 12px/1.2 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-link-kanren__tag {
	font: 900 12px/1.4 var(--oto2-ui);
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-link-kanren__more {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 30px;
	height: 30px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
	color: var(--on);
}
.oto2-single .oto-entry-body .oto-link-kanren__more svg {
	display: block;
}

/* =========================================================
   「気になる店名をタップ」などのジャンプリンクの箱（oto-link-color-accent / -strong）
   上辺にラベルのピル、中にリンクのピルを並べる。旧デザインの2種類（枠のみ／塗りつぶし）は同じ形にそろえる。
   ========================================================= */
.oto2-single .oto-entry-body .oto-link-color-accent,
.oto2-single .oto-entry-body .oto-link-color-strong,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent {
	position: relative;
	display: block;
	margin: 28px 0 12px;
	padding: 26px 16px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-link-color-accent__label,
.oto2-single .oto-entry-body .oto-link-color-strong__label,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent__label {
	position: absolute;
	top: -15px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 28px;
	margin: 0;
	padding: 0 13px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11.5px/1 var(--oto2-ui);
	letter-spacing: 0;
}
.oto2-single .oto-entry-body .oto-link-color-accent__list,
.oto2-single .oto-entry-body .oto-link-color-strong__list,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
}
.oto2-single .oto-entry-body .oto-link-color-accent__item,
.oto2-single .oto-entry-body .oto-link-color-strong__item,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 10px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 13px/1.3 var(--oto2-ui);
	text-decoration: none;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-link-color-accent__item:hover,
.oto2-single .oto-entry-body .oto-link-color-strong__item:hover,
.oto2-single .oto-entry-body .oto-link-color-accent__item:focus-visible,
.oto2-single .oto-entry-body .oto-link-color-strong__item:focus-visible {
	background: var(--c);
	color: var(--on);
}
/* 矢印：文字の「›」は細いので、太い線の図形（下向きの山形）に置き換える（ページ内の該当箇所へ移動するリンクのため） */
.oto2-single .oto-entry-body .oto-link-color-accent__arrow,
.oto2-single .oto-entry-body .oto-link-color-strong__arrow,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent__arrow {
	position: relative;
	flex: none;
	width: 22px;
	height: 22px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
	font-size: 0;
	line-height: 0;
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-link-color-accent__arrow::after,
.oto2-single .oto-entry-body .oto-link-color-strong__arrow::after,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent__arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 11px;
	height: 11px;
	transform: translate(-50%, -50%);
	background-color: var(--on);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 素のリスト（点つき）：項目の間隔と、点のデザイン */
.oto2-single .oto-entry-body ul.oto-list,
.oto2-single .oto-entry-body .oto-list:not(ul) {
	display: grid;
	gap: 8px;
	margin: 6px 0 12px;
	padding: 0;
	list-style: none;
}
.oto2-single .oto-entry-body ul.oto-list > li {
	list-style: none;
}

/* =========================================================
   SHOP INFO / HOTEL INFO のヒーロー（記事の入力欄から出す .oto-hero）
   記事データ側（.o2o-h2-*-start）と同じ、上辺にピルのカード。
   ========================================================= */
.oto2-single .oto-entry-body .oto-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
	margin: 14px 0 0;
	padding: 26px 18px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-hero__main,
.oto2-single .oto-entry-body .oto-hero__side {
	display: grid;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body .oto-hero__kicker {
	position: absolute;
	top: -14px;
	left: 16px;
	display: flex;
	align-items: center;
	height: 26px;
	padding: 0 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 10.5px/1 var(--oto2-en);
	letter-spacing: 0.14em;
}
.oto2-single .oto-entry-body .oto-hero__name {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: 900 22px/1.3 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-hero__area {
	font: 700 12px/1.4 var(--oto2-ui);
	color: #5c5853;
}
.oto2-single .oto-entry-body .oto-hero .oto-hero__desc {
	margin: 0;
	font: 700 12.5px/1.7 var(--oto2-ui);
	color: #3a3733;
}
.oto2-single .oto-entry-body .oto-hero__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.oto2-single .oto-entry-body .oto-hero__chips .oto-chip {
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 11px/1 var(--oto2-ui);
}
@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body .oto-hero {
		grid-template-columns: 1fr 1fr;
		column-gap: 28px;
		align-items: center;
		padding: 28px 28px 22px;
	}
}

/* =========================================================
   外部リンクのカード（oto-link-thumbnail）の決定版
   写真は黒枠の角丸、縦の区切り線はなし、右端に丸い矢印ボタン。
   ========================================================= */
.oto2-single .oto-entry-body a.oto-link-thumbnail {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	align-items: center;
	gap: 14px;
	margin: 14px 0;
	padding: 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
	color: var(--oto2-ink);
	text-decoration: none;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__thumb {
	align-self: center;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border: 2px solid var(--oto2-ink);
	border-radius: 10px;
	background: #e4e1dc;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__body {
	display: grid;
	gap: 8px;
	min-width: 0;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__title {
	font: 900 14px/1.55 var(--oto2-ui);
	color: var(--oto2-ink);
	-webkit-line-clamp: 2;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__desc {
	font: 700 12px/1.6 var(--oto2-ui);
	color: #5c5853;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__domain {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font: 700 12px/1.2 var(--oto2-en);
	color: #6b6661;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__arrow {
	position: relative;
	display: inline-block;
	flex: none;
	width: 24px;
	height: 24px;
	margin: 0 0 0 auto;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
	font-size: 0;
	line-height: 0;
	vertical-align: baseline;
}
.oto2-single .oto-entry-body .oto-link-thumbnail__arrow::after {
	width: 11px;
	height: 11px;
	background-color: var(--on);
}
/* 写真なしの横並び版：矢印をカードの右端に置く */
.oto2-single .oto-entry-body a.oto-link-thumbnail--simple {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 14px;
}
.oto2-single .oto-entry-body a.oto-link-thumbnail--simple > .oto-link-thumbnail__arrow {
	margin: 0;
}
@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body a.oto-link-thumbnail {
		grid-template-columns: 168px minmax(0, 1fr);
		gap: 18px;
	}
	.oto2-single .oto-entry-body .oto-link-thumbnail__title {
		font-size: 15px;
	}
}

/* =========================================================
   ○×の比較カード（o2o-spec-card）：項目の余白・文字位置をそろえる
   各項目は「ラベル（中央）→ 取扱あり／なし のピル（中央）」の縦並び。
   ========================================================= */
.oto2-single .oto-entry-body .o2o-spec-card {
	display: grid;
	gap: 12px;
	margin: 14px 0;
	padding: 18px 16px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .o2o-spec-card__title {
	margin: 0;
	font: 900 15px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .o2o-spec-card__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}
.oto2-single .oto-entry-body .o2o-spec-card__item,
.oto2-single .oto-entry-body .o2o-spec-card__item:last-child {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 14px 8px;
	border: 0;
	border-radius: 12px;
	background: #f6f5f2;
	text-align: center;
}
.oto2-single .oto-entry-body .o2o-spec-card__label {
	font: 700 12.5px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
	text-align: center;
}
.oto2-single .oto-entry-body .o2o-spec-card__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 76px;
	padding: 5px 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	font: 900 11.5px/1.2 var(--oto2-ui);
}
.oto2-single .oto-entry-body .o2o-spec-card__mark.is-yes {
	background: var(--c);
	color: var(--on);
}
.oto2-single .oto-entry-body .o2o-spec-card__mark.is-no {
	background: #fff;
	color: #6b6661;
	font-weight: 700;
}

/* ○×カード：狭い画面でも、ラベルが途中で折り返さないように余白を詰める */
.oto2-single .oto-entry-body .o2o-spec-card {
	padding: 18px 12px 14px;
}
.oto2-single .oto-entry-body .o2o-spec-card__title {
	padding: 0 4px;
}
.oto2-single .oto-entry-body .o2o-spec-card__grid {
	gap: 6px;
}
.oto2-single .oto-entry-body .o2o-spec-card__item,
.oto2-single .oto-entry-body .o2o-spec-card__item:last-child {
	padding: 14px 4px;
}
.oto2-single .oto-entry-body .o2o-spec-card__label {
	font-size: 12px;
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.oto2-single .oto-entry-body .o2o-spec-card__mark {
	min-width: 62px;
	padding: 5px 8px;
	white-space: nowrap;
}
@media (min-width: 720px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body .o2o-spec-card {
		padding: 18px 16px 16px;
	}
	.oto2-single .oto-entry-body .o2o-spec-card__grid {
		gap: 8px;
	}
	.oto2-single .oto-entry-body .o2o-spec-card__mark {
		min-width: 76px;
		padding: 5px 12px;
	}
}

/* =========================================================
   固定ページの情報表（oto-datagrid：主な推し活ジャンル／サイト名・URL など）
   PLAN INFO と同じ、薄いグレーの行。ラベルを上、値を下に。
   ========================================================= */
.oto2-single .oto-entry-body dl.oto-datagrid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
	margin: 0;
	padding: 0;
}
.oto2-single .oto-entry-body .oto-datagrid > div {
	display: grid;
	gap: 4px;
	min-width: 0;
	margin: 0;
	padding: 10px 14px;
	border: 0;
	border-radius: 12px;
	background: #f6f5f2;
}
.oto2-single .oto-entry-body .oto-datagrid dt {
	margin: 0;
	padding: 0;
	font: 900 11px/1.3 var(--oto2-ui);
	color: var(--cd);
}
.oto2-single .oto-entry-body .oto-datagrid dd {
	margin: 0;
	padding: 0;
	font: 700 14px/1.7 var(--oto2-ui);
	color: var(--oto2-ink);
	overflow-wrap: anywhere;
}
.oto2-single .oto-entry-body .oto-datagrid dd a {
	font-weight: 900;
	color: var(--oto2-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.oto2-single .oto-entry-body .oto-datagrid dd a:hover,
.oto2-single .oto-entry-body .oto-datagrid dd a:focus-visible {
	text-decoration-color: var(--c);
	text-decoration-thickness: 3px;
}
.oto2-single .oto-entry-body .oto-about-copyright {
	margin: 12px 0 0;
	font: 700 12px/1.6 var(--oto2-en);
	color: #6b6661;
}
@media (min-width: 1024px) and (max-width: 1099px) {
	.oto2-single .oto-entry-body dl.oto-datagrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.oto2-single .oto-entry-body .oto-datagrid > div.is-full {
		grid-column: 1 / -1;
	}
	.oto2-single .oto-entry-body .oto-datagrid > div {
		grid-template-columns: 160px minmax(0, 1fr);
		align-items: baseline;
	}
}

/* =========================================================
   素の見出し（クラスのない h2〜h6：プライバシーポリシーなど、文章中心のページ）
   h2〜h4 は破線の下線、h5・h6 は小さな色の四角＋太字。
   ========================================================= */
.oto2-single .oto-entry-body :is(h2, h3, h4).wp-block-heading {
	margin: 34px 0 14px;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 2px dashed #b3aea7;
	background: none;
	font: 900 22px/1.4 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body :is(h3, h4).wp-block-heading {
	font-size: 19px;
}
.oto2-single .oto-entry-body :is(h5, h6).wp-block-heading {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 30px 0 8px;
	padding: 0;
	border: 0;
	background: none;
	font: 900 16px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body :is(h5, h6).wp-block-heading::before {
	content: "";
	flex: none;
	width: 10px;
	height: 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 3px;
	background: var(--c);
}


/* ---------- 乗り換え案内（路線図）：縦のタイムライン型。幅に関係なく収まる ---------- */
.oto2-single .oto-entry-body .route-map {
	margin: 24px 0;
	padding: 16px 16px 18px;
	border: 2px solid var(--oto2-ink);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .route-map .oto-h3-station-accessline {
	margin: 0 0 4px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--oto2-ink);
	font: 900 15px/1.5 var(--oto2-ui);
}
.oto2-single .oto-entry-body .route-meta {
	margin: 2px 0 12px;
	font: 700 12px/1.6 var(--oto2-ui);
	color: #6b6661;
	text-align: left;
}
.oto2-single .oto-entry-body .rm-group {
	padding: 14px 14px 12px;
	border: 2px dashed rgba(32, 30, 29, 0.3);
	border-radius: 12px;
	background: #faf9f6;
}
.oto2-single .oto-entry-body .rm-group + .rm-group,
.oto2-single .oto-entry-body .route-meta + .rm-group {
	margin-top: 0;
}
.oto2-single .oto-entry-body .route-row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	padding: 0;
	overflow: visible;
}
.oto2-single .oto-entry-body .rm-station {
	flex: none;
	min-width: 150px;
	max-width: 100%;
	padding: 10px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 12px;
	background: var(--oto2-ink);
	color: #fff;
	font: 900 14px/1.3 var(--oto2-ui);
	text-align: center;
	box-shadow: none;
}
.oto2-single .oto-entry-body .rm-station.-light {
	background: #fff;
	color: var(--oto2-ink);
	border: 2px solid var(--oto2-ink);
}
.oto2-single .oto-entry-body .rm-station small {
	font: 700 11px/1.3 var(--oto2-ui);
	opacity: 0.8;
}
.oto2-single .oto-entry-body .rm-line {
	flex: none;
	position: relative;
	width: 8px;
	min-width: 8px;
	height: 52px;
	margin: 0 0 0 36px;
	border-radius: 4px;
}
.oto2-single .oto-entry-body .rm-line::after {
	top: auto;
	right: auto;
	bottom: -11px;
	left: 50%;
	transform: translateX(-50%);
	border: 7px solid transparent;
	border-top-color: currentColor;
	border-left-color: transparent;
}
.oto2-single .oto-entry-body .rm-label {
	top: 50%;
	left: 22px;
	transform: translateY(-50%);
	padding: 5px 10px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 11px/1 var(--oto2-ui);
	box-shadow: none;
}


/* 比較カードの操作部（ドット＋矢印）。js/oto2.js が .oto-cardgrid の直後に作る */
.oto2-single .oto-entry-body .oto2-cgctl {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 4px 0 12px;
}
.oto2-single .oto-entry-body .oto2-cgctl .oto2-seg i {
	background: rgba(32, 30, 29, 0.22);
}
.oto2-single .oto-entry-body .oto2-cgctl .oto2-seg i.on {
	background: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto2-cgctl .oto2-arr button {
	border-color: var(--oto2-ink);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto2-cgctl .oto2-arr button:hover,
.oto2-single .oto-entry-body .oto2-cgctl .oto2-arr button:focus-visible {
	background: var(--oto2-ink);
	color: #fff;
}

/* ---------- ジャンプリンク（見出し・ラベルなしの <a> だけを並べた型） ----------
   外枠をやめて、丸いボタンだけを並べる（枠の中に枠が入る形をなくす） */
.oto2-single .oto-entry-body .oto-link-color-hoveraccent:has(> a) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 14px 0 22px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
}
.oto2-single .oto-entry-body .oto-link-color-hoveraccent > a {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 13px/1.3 var(--oto2-ui);
	text-decoration: none;
	box-shadow: 0 4px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-link-color-hoveraccent > a:hover,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent > a:focus-visible {
	background: var(--oto2-ink);
	color: #fff;
}

/* =========================================================
   小見出し(h4)・悩みの吹き出し・予約ボタンの枠（2026-11 確定案）
   ========================================================= */

/* h4（英字＋日本語）：黒いタグ＋蛍光ペン風のマーカー線 */
.oto2-single .oto-entry-body .oto-h4-underline-color {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 26px 0 12px;
	padding: 0;
	border: 0;
}
.oto2-single .oto-entry-body .oto-h4-underline-color__en {
	flex: none;
	padding: 6px 10px;
	border-radius: 8px;
	background: var(--oto2-ink);
	color: #fff;
	font: 900 10px/1 var(--oto2-en);
	letter-spacing: 0.14em;
}
.oto2-single .oto-entry-body .oto-h4-underline-color__jp {
	font: 900 17px/1.5 var(--oto2-ui);
	color: var(--oto2-ink);
	background: linear-gradient(transparent 62%, var(--c) 62%);
}

/* 悩みの吹き出し：チャット風（左にアイコン、右に吹き出し）。ラベルの▼は外す */
.oto2-single .oto-entry-body .oto-voice-lead__arrow {
	display: none;
}
.oto2-single .oto-entry-body .oto-table-image-text {
	gap: 14px;
}
.oto2-single .oto-entry-body .oto-voice-card {
	flex-direction: row-reverse;
	justify-content: flex-end;
	align-items: center;
	gap: 14px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}
.oto2-single .oto-entry-body .oto-voice-card__icon {
	flex: none;
	width: 46px;
}
.oto2-single .oto-entry-body .oto-voice-card__icon img {
	width: 46px;
	height: 46px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	object-fit: cover;
}
.oto2-single .oto-entry-body .oto-voice-card__text {
	position: relative;
	flex: 1;
	align-items: center;
	padding: 12px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-voice-card__text::before {
	content: "";
	position: absolute;
	left: -8px;
	top: 50%;
	width: 12px;
	height: 12px;
	background: #fff;
	border-left: 2px solid var(--oto2-ink);
	border-bottom: 2px solid var(--oto2-ink);
	transform: translateY(-50%) rotate(45deg);
}
.oto2-single .oto-entry-body .oto-voice-card__bar {
	display: none;
}

/* 予約ボタン：CHECKのラベルを上辺に載せた枠で、リード文とボタンをひとまとめにする（ボタンの色は遷移先サイトの色のまま） */
.oto2-single .oto-entry-body .oto-link-booking__lead {
	position: relative;
	margin: 30px 0 0;
	padding: 22px 14px 4px;
	border: 2px solid var(--oto2-ink);
	border-bottom: 0;
	border-radius: 16px 16px 0 0;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-link-booking__lead-kicker {
	position: absolute;
	top: -14px;
	left: 14px;
	display: inline-flex;
	align-items: center;
	height: 28px;
	padding: 0 13px;
}
.oto2-single .oto-entry-body .oto-link-booking__lead + .oto-link-booking {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 14px;
	padding: 8px 14px 16px;
	border: 2px solid var(--oto2-ink);
	border-top: 0;
	border-radius: 0 0 16px 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-link-booking__lead + .oto-link-booking .oto-link-booking__btn {
	width: 100%;
	min-width: 0;
	padding: 12px 34px 12px 14px;
	font-size: 12.5px;
}
.oto2-single .oto-entry-body .oto-link-booking__lead + .oto-link-booking .oto-link-booking__btn::after {
	right: 12px;
}
.oto2-single .oto-entry-body .oto-link-booking__lead + .oto-link-booking .oto-link-booking__btn {
	white-space: nowrap;
}
@media (max-width: 420px) {
	.oto2-single .oto-entry-body .oto-link-booking__lead + .oto-link-booking .oto-link-booking__btn {
		padding: 12px 28px 12px 12px;
		font-size: 11.5px;
	}
	.oto2-single .oto-entry-body .oto-link-booking__lead + .oto-link-booking .oto-link-booking__btn::after {
		right: 9px;
	}
}


/* =========================================================
   細かい調整（バナー・メニュー表・カードのボタン・目次の下・ポイントの枠）
   ========================================================= */

/* メニュー表：罫線そろえ用に足してある空の項目は出さない */
.oto2-single .oto-entry-body .oto-list2 li:empty {
	display: none;
}

/* 会場・ショップカードの下のボタン：角丸ピルにする */
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__links a {
	flex: 1 1 0;
	min-width: 0;
	padding: 9px 12px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 12px/1.2 var(--oto2-ui);
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
}
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__links a.solid {
	background: var(--oto2-ink);
	color: #fff;
}
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__links a:hover,
.oto2-single .oto-entry-body .oto-h3-card-shoporvenue__links a:focus-visible {
	background: var(--c);
	color: var(--on);
}

/* 目次と、HOTEL/SHOP GUIDEの枠の間隔：枠と本文の間隔にそろえる */
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content:has(> :first-child:is(.o2o-h2-hotel-start, .o2o-h2-gourmet-start)) {
	margin-top: -16px;
}

/* 「予約は 〇〇公式サイト から」などのポイントの枠（point1）：ラベルを上辺に載せた枠 */
.oto2-single .oto-entry-body .point1__wrap {
	position: relative;
	display: block;
	height: 0;
	margin: 32px 0 0;
	padding: 0;
	border: 0;
	background: none;
}
.oto2-single .oto-entry-body .point1__label {
	position: absolute;
	top: -14px;
	left: 14px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	height: 28px;
	padding: 0 13px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: var(--c);
	color: var(--on);
	font: 900 11.5px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .point1__wrap + .point1__box {
	margin: 0 0 14px;
	padding: 24px 16px 16px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .point1__box > :first-child {
	margin-top: 0;
}
.oto2-single .oto-entry-body .point1__box > :last-child {
	margin-bottom: 0;
}

/* ---------- 表（oto-table-simple）：角丸の黒枠＋色付きの見出し行 ---------- */
.oto2-single .oto-entry-body .oto-table-simple-wrap {
	margin: 14px 0;
	overflow-x: auto;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 0 rgba(32, 30, 29, 0.14);
}
.oto2-single .oto-entry-body .oto-table-simple {
	width: 100%;
	min-width: 420px;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	font: 700 12.5px/1.6 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-simple th {
	padding: 10px 12px;
	border: 0;
	border-bottom: 2px solid var(--oto2-ink);
	background: var(--c);
	color: var(--on);
	font: 900 12px/1.4 var(--oto2-ui);
	text-align: left;
	vertical-align: middle;
}
.oto2-single .oto-entry-body .oto-table-simple td {
	padding: 10px 12px;
	border: 0;
	border-bottom: 1.5px dashed rgba(32, 30, 29, 0.3);
	background: #fff;
	vertical-align: middle;
}
.oto2-single .oto-entry-body .oto-table-simple tbody tr:last-child td,
.oto2-single .oto-entry-body .oto-table-simple td[rowspan]:last-of-type {
	border-bottom-color: rgba(32, 30, 29, 0.3);
}
.oto2-single .oto-entry-body .oto-table-simple td.place {
	background: #f6f5f2;
	font-weight: 900;
}
.oto2-single .oto-entry-body .oto-table-simple tbody tr:last-child td {
	border-bottom: 0;
}

/* メニュー表（2列リスト）：罫線そろえ用の空の項目は出さない */
.oto2-single .oto-entry-body .oto-list-2column li:empty,
.oto2-single .oto-entry-body .oto-list li:empty {
	display: none;
}

/* 星評価の箱：上の余白を、下（次の段落の上余白）にそろえる */
.oto2-single .oto-entry-body .oto-review {
	margin-top: 22px;
}

/* =========================================================
   上下の余白をそろえる（2026-11）
   基準：段落の上余白 22px。部品が段落のすぐ後ろに来るときも 22px にする。
   ========================================================= */

/* INDEX（目次）の下：最初の部品の上余白をいったんなくして、目次との間隔を28pxにそろえる */
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content {
	margin-top: -24px;
}
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content > :first-child,
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content > style:first-child + *,
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content > :first-child > :first-child,
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content > style:first-child + * > :first-child,
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content > :first-child > :first-child > :first-child,
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content > style:first-child + * > :first-child > :first-child {
	margin-top: 0;
}

/* 段落のすぐ後ろに来る部品の上余白 */
.oto2-single .oto-entry-body p + :is(.oto-list, ul.oto-list, .oto-table-wifi, .banner-grid, .wp-block-gallery, .oto-link-shopcard, .oto-stat-card, .o2o-info-wrap, .oto-table-simple-wrap, .oto-faq) {
	margin-top: 22px;
}

/* 目次のすぐ下が「ラベルを上辺に載せた枠」（oto-h2-box-internallink）のとき：ラベルの出っ張り分(14px)を足す */
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content:has(> .oto-h2-box-internallink:first-child),
.oto2-single .oto-entry-body .oto-list-mokuji + .entry-content:has(> style:first-child + .oto-h2-box-internallink) {
	margin-top: -10px;
}


/* 情報カードの説明の点つきリスト（メニューの品目など） */
.oto2-single .oto-entry-body .oto-table-simpleinfo .oto2-bullets {
	display: grid;
	gap: 6px;
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo .oto2-bullets li {
	position: relative;
	margin: 0;
	padding-left: 20px;
	font: 700 13.5px/1.6 var(--oto2-ui);
	color: var(--oto2-ink);
}
.oto2-single .oto-entry-body .oto-table-simpleinfo .oto2-bullets li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 0.5em;
	width: 9px;
	height: 9px;
	border: 2px solid var(--oto2-ink);
	border-radius: 50%;
	background: var(--c);
}

/* 写真のすぐ下に来る情報カード：写真との間隔を空ける */
.oto2-single .oto-entry-body .wp-block-image + .oto-table-simpleinfo {
	margin-top: 22px;
}

/* 点つきリストにした情報カード：「注文した商品」の箱（oto-titlebox--note）と同じ、白地・黒枠・上辺ラベル */
.oto2-single .oto-entry-body .oto-table-simpleinfo > div:has(.oto2-bullets) {
	position: relative;
	display: block;
	margin-top: 16px;
	padding: 24px 16px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo > div:has(.oto2-bullets):first-child {
	margin-top: 14px;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo > div:has(.oto2-bullets) > dt {
	position: absolute;
	top: -14px;
	left: 14px;
	display: inline-flex;
	align-items: center;
	height: 28px;
	padding: 0 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 13px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-table-simpleinfo > div:has(.oto2-bullets) .oto2-bullets {
	gap: 10px;
	margin: 0;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo > div:has(.oto2-bullets) .oto2-bullets li {
	padding-left: 24px;
	font-size: 14px;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo > div:has(.oto2-bullets) .oto2-bullets li::before {
	top: 0.3em;
	width: 12px;
	height: 12px;
}

/* 点つきリストを含む情報カードの並び：1行だけのカードも、同じ白地・黒枠・上辺ラベルにそろえる */
.oto2-single .oto-entry-body .oto-table-simpleinfo:has(.oto2-bullets) {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 4px;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo:has(.oto2-bullets) > div {
	position: relative;
	display: block;
	margin-top: 18px;
	padding: 24px 16px 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 16px;
	background: #fff;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo:has(.oto2-bullets) > div:first-child {
	margin-top: 14px;
}
.oto2-single .oto-entry-body .oto-table-simpleinfo:has(.oto2-bullets) > div > dt {
	position: absolute;
	top: -14px;
	left: 14px;
	display: inline-flex;
	align-items: center;
	height: 28px;
	padding: 0 14px;
	border: 2px solid var(--oto2-ink);
	border-radius: 99px;
	background: #fff;
	color: var(--oto2-ink);
	font: 900 13px/1 var(--oto2-ui);
}
.oto2-single .oto-entry-body .oto-table-simpleinfo:has(.oto2-bullets) > div > dd {
	font: 700 14px/1.7 var(--oto2-ui);
}

/* POINTのラベル：旧デザインの飾り（::before）が左に余白をつくっていたので外す */
.oto2-single .oto-entry-body .oto-titlebox--outline .oto-titlebox__head::before,
.oto2-single .oto-entry-body .oto-titlebox--outline .oto-titlebox__head::after {
	content: none;
	display: none;
}
.oto2-single .oto-entry-body .oto-titlebox--outline .oto-titlebox__head {
	padding: 0 12px 0 14px;
}

/* 「こんなお悩みの人におすすめ」：ラベルと吹き出しの間隔を、吹き出しどうしの間隔(14px)にそろえる。上は段落との間隔(22px) */
.oto2-single .oto-entry-body .oto-voice-lead__wrap {
	margin: 22px 0 14px;
	padding: 0;
}
.oto2-single .oto-entry-body .oto-voice-lead__wrap .oto-voice-lead {
	margin: 0;
}
.oto2-single .oto-entry-body .oto-voice-lead__wrap + .oto-table-image-text {
	margin: 0;
}

/* 上辺にラベルが載る枠：ラベルの出っ張り(14px)を見込んで、枠の上余白を36px（＝ラベルの上に22px）にそろえる */
.oto2-single .oto-entry-body .oto-point,
.oto2-single .oto-entry-body .oto-titlebox--outline,
.oto2-single .oto-entry-body .oto-link-color-accent,
.oto2-single .oto-entry-body .oto-link-color-strong,
.oto2-single .oto-entry-body .oto-link-color-hoveraccent:not(:has(> a)),
.oto2-single .oto-entry-body .point1__wrap,
.oto2-single .oto-entry-body .oto-link-booking__lead {
	margin-top: 36px;
}

/* ブロックエディタの「カラム」：本文の幅が狭い（SP・中央の列）ので、常に縦に積む */
.oto2-single .oto-entry-body .wp-block-columns {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 28px;
}
.oto2-single .oto-entry-body .wp-block-columns > .wp-block-column {
	flex: 0 0 auto !important;
	width: 100%;
	min-width: 0;
}
